PQgetisnull: не возвращает true, даже если значение пусто в БД - PullRequest
0 голосов
/ 23 января 2010

Я работаю над ошибкой в ​​моей библиотеке баз данных, которая использует LibPQ для внутреннего использования. Я вижу следующее поведение, которое мне кажется странным:

Для типа данных postgreSql DATE возвращает значение true, если оно пусто в БД Для postgreSql Datatype TIME он возвращает true, если он пуст в DB

Но для VARCHAR SMALLINT..it возвращает false, даже если они были пустыми в БД.

PS. Я еще не проверял другие типы данных

1 Ответ

0 голосов
/ 23 января 2010

Пустая строка и ноль (0) НЕ совпадают с NULL. Запустите форму этого запроса, чтобы увидеть, сколько NULL против пустых строк существует для вашего поля:

SELECT COALESCE(<field_name>,'NULL'), COUNT(*)
FROM <table_name>
WHERE <field_name> = ''
   OR <field_name> IS NULL
GROUP BY 1

Заменить пустую строку ('') в этом запросе на ноль, чтобы проверить числовые поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...