объяснить, что значит left bound в респонсах при запросе массивов? Я парсю байты вот таким псевдокодом — https://carc.in/#/r/74tj.
"SELECT '{{41, 42, NULL}, {42, 42, 43}}'::int[]" возвращает подобное:
dimensions # => 2
has_null # => 1
oid # => 23
dimensions_info # => [Array::PQDimensionInformation(@lbound=1, @size=2),
Array::PQDimensionInformation(@lbound=1, @size=3)]
Что это за lbound, на что он влияет?
Вот тут могут быть подсказки, но я так и не смог понять:
— https://github.com/will/crystal-pg/blob/master/src/pg/decoders/array_decoder.cr#L16-L18
— https://github.com/will/crystal-pg/blob/master/src/pg/decoders/array_decoder.cr#L31
По умолчанию массивы в pg индексируются с 1. Очевидно lbound это и есть первый ("нижний") индекс
Обсуждают сегодня