В документации есть раздел по полуструктурированным соображениям , который предупреждает об определенных ситуациях, в которых значения для данного пути в столбце VARIANT не будут материализованы; например, если значения не все имеют одинаковый тип данных. То есть, если присутствуют и {"foo":1}
, и {"foo":"1"}
, значение для "foo", очевидно, не может быть извлечено как его столбец.
Но в случае, когда все значения имеют один и тот же тип, оно все еще не Совершенно ясно, как обрабатываются так называемые несобственные типы .
Документация описывает, например, даты и временные метки как несобственные в контексте данных VARIANT type (имеется в виду, что такие значения «хранятся как строки»), мой вопрос: распространяется ли это на числовые типы, такие как FLOAT8
. Документация предполагает, что собственные типы могут быть поняты в контексте JSON (который имеет собственный тип чисел, который является довольно гибридным по своей природе).
- Является
FLOAT8
собственным типом в данных VARIANT или оно хранится в виде строки? - Будет ли такое значение (сохранено в виде строки) извлечено в свой собственный столбец или отображено как "разобранная полуструктурированная структура" вместе с теми оставшимися значениями, которые не были извлечены в другие столбцы?
Документация предполагает, что можно проводить тесты производительности, «чтобы увидеть, какая структура обеспечивает лучшую производительность», но это будет намного проще с точным пониманием логики извлечения c .