BUG #15500: Cannot set NULL to a field with ENUM type
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
type character varying
Hint: You will need to rewrite or cast the expression.
Position: 87
Why I cannot set NULL to ENUM field?
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