Rails, PostgreSQL и hstore

Если бы я добавил эти хеш-значения {"1"=>"1", "3"=>"3", "2"=>"2"} в столбец hstore в PostgreSql (9.4) (через rails 5}, этот хэш будет переупорядочен в столбце hstore и будет выглядеть так: {"1"=>"1", "2"=>"2", "3"=>"3"} Можно ли это предотвратить?


person parzival    schedule 12.01.2017    source источник


Ответы (1)


Порядок хеширования гарантирован в Ruby. Я предполагаю, что, поскольку он покидает Ruby и переходит к базе данных, вы больше не получаете гарантию. Я не думаю, что postgres сохраняет порядок source:

Порядок пар [hstore] не имеет значения (и может не воспроизводиться на выходе)

Если вы действительно хотите, чтобы порядок был сохранен, я думаю, вам не повезло. Если вы хотите, чтобы порядок был таким же, вы должны отсортировать хэш Ruby известным способом, а затем таким же образом отсортировать SQL. Я считаю, что есть способ отсортировать столбец hstore по ключам: Упорядочить по значению произвольного атрибута в hstore

person squarism    schedule 21.04.2017