Если бы я добавил эти хеш-значения {"1"=>"1", "3"=>"3", "2"=>"2"} в столбец hstore в PostgreSql (9.4) (через rails 5}, этот хэш будет переупорядочен в столбце hstore и будет выглядеть так: {"1"=>"1", "2"=>"2", "3"=>"3"} Можно ли это предотвратить?
Rails, PostgreSQL и hstore
Ответы (1)
Порядок хеширования гарантирован в Ruby. Я предполагаю, что, поскольку он покидает Ruby и переходит к базе данных, вы больше не получаете гарантию. Я не думаю, что postgres сохраняет порядок source:
Порядок пар [hstore] не имеет значения (и может не воспроизводиться на выходе)
Если вы действительно хотите, чтобы порядок был сохранен, я думаю, вам не повезло. Если вы хотите, чтобы порядок был таким же, вы должны отсортировать хэш Ruby известным способом, а затем таким же образом отсортировать SQL. Я считаю, что есть способ отсортировать столбец hstore по ключам: Упорядочить по значению произвольного атрибута в hstore
person
squarism
schedule
21.04.2017