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

Started by PG Bug reporting formover 7 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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?

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: PG Bug reporting form (#1)
Re: BUG #15500: Cannot set NULL to a field with ENUM type

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