выходя из Postgresql типа hstore с помощью ruby? - PullRequest
0 голосов
/ 28 июня 2018

Я использую postgresql типа hstore с рельсами (pg gem). Что мне нужно, так это массовая вставка значений hstore во множество строк, поэтому я хочу создать строку SQL.

Но я не могу найти метод цитирования hstore в pg gem (я думал, что он должен быть).

Я что-то упустил, или я должен сам написать этот метод цитаты?

1 Ответ

0 голосов
/ 29 июня 2018

Я бы, вероятно, использовал бы функции hstore(text, text) и hstore(text[], text[]) вместо того, чтобы пытаться создавать строковые версии. Объедините их с синтаксисом конструктора массива *1006*, и вы будете иметь дело только со строковыми литералами. Например, если ваш hstore представляет собой один ключ и значение, то:

insert into your_table (hstore_column)
values (hstore('key', 'value'))

будет работать и даст вам "key"=>"value" в hstore_column; если ваш hstore имеет несколько пар, то:

insert into your_table (hstore_column)
values (hstore(array['key1', 'key2', 'key3'], array['value1, 'value2', 'value3']))

даст вам "key1"=>"value1","key2"=>"value2","key3"=>"value3" в hstore_column.

Я сомневаюсь, что накладные расходы на вызов функций будут сильно отличаться от накладных расходов при разборе строковых версий.

...