Thread: BUG #15500: Cannot set NULL to a field with ENUM type

BUG #15500: Cannot set NULL to a field with ENUM type

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      15500
Logged by:          Ivan Shibkikh
Email address:      ivan.shib@gmail.com
PostgreSQL version: 11.1
Operating system:   Alpine Linux
Description:

1. Created a new type:
> create type day_of_week as enum ('Sunday', 'Monday', 'Tuesday',
'Wednesday', 'Thursday', 'Friday', 'Saturday');

2. Created a new table:
> CREATE TABLE public.schedule
(
    id SERIAL PRIMARY KEY NOT NULL,
    week_day day_of_week DEFAULT NULL,
    minute integer DEFAULT 0,
    hour integer DEFAULT 0
);

3. Insert a new record:
> INSERT INTO "public"."schedule" ("id", "week_day", "minute", "hour")
VALUES (DEFAULT, 'NULL', DEFAULT, DEFAULT);

Result:
[42804] ERROR: column "week_day" is of type day_of_week but expression is of
type character varying
Hint: You will need to rewrite or cast the expression.
Position: 87

Why I cannot set NULL to ENUM field?


Re: BUG #15500: Cannot set NULL to a field with ENUM type

From
Alvaro Herrera
Date:
On 2018-Nov-13, PG Bug reporting form wrote:

> 3. Insert a new record:
> > INSERT INTO "public"."schedule" ("id", "week_day", "minute", "hour")
> VALUES (DEFAULT, 'NULL', DEFAULT, DEFAULT);

This is not a NULL value -- it's a string that says NULL.  Try with

INSERT INTO public.schedule (id, week_day, minute, hour)
 VALUES (DEFAULT, NULL, DEFAULT, DEFAULT);

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services