Обсуждение: BUG #18148: Handle null in a date/time fields when passing empty arrays issue

Поиск
Список
Период
Сортировка

BUG #18148: Handle null in a date/time fields when passing empty arrays issue

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      18148
Logged by:          jaafar melhem
Email address:      jaafarmelhem2591@gmail.com
PostgreSQL version: 14.6
Operating system:   linux-gnu
Description:

- I have 4 fields in a table, two are date type and two are time type, and i
have arrays to insert from them to this table.
- I have a function to insert to this table: IN "p_fromdates"
_varchar=NULL::character varying[], IN "p_todates" _varchar=NULL::character
varying[], IN "p_fromtimes" _varchar=NULL::character varying[], IN
"p_totimes" _varchar=NULL::character varying[],
- and I am inserting them like this : 
unnest(p_fromdates::_varchar)::date, unnest(p_todates::_varchar)::date,
unnest(p_fromtimes::_varchar)::time, 
unnest(p_totimes::_varchar)::time, 
- However when passing null values (empty arrays), the record is not
inserted, 
- I have tried to handle it but I didn't find any way, always the record is
not inserted if the 4 arrays are empty.
Postgresql version : PostgreSQL 14.6 on x86_64-pc-linux-gnu, compiled by gcc
(GCC) 8.5.0 20210514 (Red Hat 8.5.0-15), 64-bit


Re: BUG #18148: Handle null in a date/time fields when passing empty arrays issue

От
"David G. Johnston"
Дата:
On Thu, Oct 5, 2023 at 7:59 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      18148
Logged by:          jaafar melhem
Email address:      jaafarmelhem2591@gmail.com
PostgreSQL version: 14.6
Operating system:   linux-gnu
Description:       

- I have 4 fields in a table, two are date type and two are time type, and i
have arrays to insert from them to this table.
- I have a function to insert to this table: IN "p_fromdates"
_varchar=NULL::character varying[], IN "p_todates" _varchar=NULL::character
varying[], IN "p_fromtimes" _varchar=NULL::character varying[], IN
"p_totimes" _varchar=NULL::character varying[],
- and I am inserting them like this :
unnest(p_fromdates::_varchar)::date, unnest(p_todates::_varchar)::date,
unnest(p_fromtimes::_varchar)::time,
unnest(p_totimes::_varchar)::time,
- However when passing null values (empty arrays), the record is not
inserted,
- I have tried to handle it but I didn't find any way, always the record is
not inserted if the 4 arrays are empty.
Postgresql version : PostgreSQL 14.6 on x86_64-pc-linux-gnu, compiled by gcc
(GCC) 8.5.0 20210514 (Red Hat 8.5.0-15), 64-bit


This is not a bug, it is actually doing exactly what one would expect to happen if you ask the system to "insert nothing into this table".

null and "empty array" are two very different things.

What is the system supposed to insert if you don't provide it any values?

It is better if you provide an actual executable SQL script when asking for help.

David J.