create schema test_enum;
set current_schema to 'test_enum';
-- create extension dolphin;
show sql_compatibility;
sql_compatibility
-------------------
B
(1 row)
CREATE TABLE test (
age INT,
myname anonymous_enum('a','b')
);
ERROR: anonymous enum type can't be used elsewhere.
CREATE TABLE test (
age INT,
myname ttanonymous_enum('a','b')
);
ERROR: anonymous enum type can't be used elsewhere.
CREATE TABLE test (
age INT,
myname ttanonymous_enumtt('a','b')
);
ERROR: anonymous enum type can't be used elsewhere.
-- when drop a column using an auto created enum type, the created enum type will also be dropped.
CREATE TABLE test (
age INT,
myname enum('a','b')
);
SELECT COUNT(*) FROM pg_type WHERE typname like '%anonymous_enum%';
count
-------
1
(1 row)
ALTER TABLE test DROP myname;
SELECT COUNT(*) FROM pg_type WHERE typname like '%anonymous_enum%';
count
-------
0
(1 row)
DROP TABLE test;
-- when drop a table using an auto created enum type, the created enum type will also be dropped.
CREATE TABLE test (
age INT,
myname enum('a','b')
);
SELECT COUNT(*) FROM pg_type WHERE typname like '%anonymous_enum%';
count
-------
1
(1 row)
DROP TABLE test;
SELECT COUNT(*) FROM pg_type WHERE typname like '%anonymous_enum%';
count
-------
0
(1 row)
-- when drop a column using an hand created enum type, the created enum type will not be dropped.
CREATE TYPE job AS enum('x','y');
CREATE TABLE test (
age INT,
myjob job
);
SELECT typname FROM pg_type WHERE typname = 'job';
typname
---------
job
(1 row)
ALTER TABLE test DROP myjob;
SELECT typname FROM pg_type WHERE typname = 'job';
typname
---------
job
(1 row)
DROP TABLE test;
-- when alter column type to others, the created enum type will not be dropped.
CREATE TABLE test (
age INT,
myjob enum('x','y')
);
SELECT COUNT(*) FROM pg_type WHERE typname like '%anonymous_enum%';
count
-------
1
(1 row)
insert into test values(1, 'x');
insert into test values(2, 'y');
insert into test values(4, 'y');
alter table test alter myjob type text;
SELECT COUNT(*) FROM pg_type WHERE typname like '%anonymous_enum%';
count
-------
0
(1 row)
DROP TABLE test;
-- rename a type to a type contain 'anonymous_enum' is not allowed
create type test as enum('a','b');
ALTER type test RENAME TO anonymous_enum;
ERROR: type name "anonymous_enum" can't contain "anonymous_enum"
drop type test;
-- make name more the 64
CREATE TABLE testtttttttttttttttttttttttttttttttttt (
age INT,
myjobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb enum('x','y')
);
SELECT count(*) FROM pg_type WHERE typname like '%_anonymous_enum_1';
count
-------
1
(1 row)
drop table testtttttttttttttttttttttttttttttttttt;
-- when drop a table using an hand created enum type, the created enum type will not be dropped.
CREATE TABLE test (
age INT,
myjob job
);
SELECT typname FROM pg_type WHERE typname = 'job';
typname
---------
job
(1 row)
DROP TABLE test;
SELECT typname FROM pg_type WHERE typname = 'job';
typname
---------
job
(1 row)
DROP TYPE job;
-- test function
drop table if exists t1;
NOTICE: table "t1" does not exist, skipping
create table t1(c_id int, c_name varchar(20), c_age enum('20', '30'));
--插入1条数据
insert into t1 values(1, 'name+' || 1, 2);
--创建存储过程,插入10条数据
create or replace procedure p_enum1
as
begin
for i in 1..3 loop
insert into t1 values(i, 'name+' || i, 1);
end loop;
end;
/
--调用
call p_enum1();
p_enum1
---------
(1 row)
select * from t1;
c_id | c_name | c_age
------+--------+-------
1 | name+1 | 30
1 | name+1 | 20
2 | name+2 | 20
3 | name+3 | 20
(4 rows)
-- not allowed to create a type with type name contained 'anonymous_enum'
CREATE TYPE country_anonymous_enum_1 AS enum('CHINA','USA');
ERROR: enum type name "country_anonymous_enum_1" can't contain "anonymous_enum"
-- insert with existing index
CREATE TABLE test (
age INT,
myname enum('a','b','c')
);
INSERT INTO test (myname) VALUES (1);
-- insert with index 0 resulting in a null value
INSERT INTO test (myname) VALUES (0);
--?.*
CONTEXT: referenced column: myname
-- insert with out-of-range index
INSERT INTO test (myname) VALUES (4);
ERROR: enum order 4 out of the enum value size: 3
CONTEXT: referenced column: myname
-- query with existing index
SELECT * FROM test WHERE myname=1;
age | myname
-----+--------
| a
(1 row)
-- query with index 0
SELECT * FROM test WHERE myname=0;
age | myname
-----+--------
(0 rows)
-- query with out-of-range index
SELECT * FROM test WHERE myname=4;
age | myname
-----+--------
(0 rows)
-- delete with existing index
DELETE FROM test WHERE myname=1;
-- delete with index 0
DELETE FROM test WHERE myname=0;
-- delete with out-of-range index
DELETE FROM test WHERE myname=4;
DROP TABLE test;
-- foreigh key is not allowed
drop table if exists t_enum_0011_01;
NOTICE: table "t_enum_0011_01" does not exist, skipping
CREATE TABLE t_enum_0011_01
(
W_CITY varchar(60) PRIMARY KEY,
W_ADDRESS TEXT
);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_enum_0011_01_pkey" for table "t_enum_0011_01"
CREATE TABLE t_enum_0011_02
(
W_WAREHOUSE_SK INTEGER NOT NULL,
W_WAREHOUSE_ID CHAR(16) NOT NULL,
W_WAREHOUSE_NAME VARCHAR(20) ,
W_WAREHOUSE_SQ_FT INTEGER ,
W_STREET_NUMBER CHAR(10) ,
W_STREET_NAME VARCHAR(60) ,
W_STREET_TYPE CHAR(15) ,
W_SUITE_NUMBER CHAR(10) ,
W_CITY ENUM('xian','gansu','yanan') REFERENCES t_enum_0011_01(W_CITY),
W_COUNTY VARCHAR(30) ,
W_STATE CHAR(2) ,
W_ZIP CHAR(10) ,
W_COUNTRY VARCHAR(20) ,
W_GMT_OFFSET DECIMAL(5,2)
);
ERROR: anoymous enum type does not support foreign key
drop table if exists chameleon_case6;
NOTICE: table "chameleon_case6" does not exist, skipping
create table chameleon_case6(c1 enum('男','女','无'));
insert into chameleon_case6 values('女'), ('男');
select * from chameleon_case6 order by 1;
c1
----
女
男
(2 rows)
update chameleon_case6 set c1 ='无' where c1 = '女';
select * from chameleon_case6 order by 1;
c1
----
无
男
(2 rows)
drop table if exists test_abc;
NOTICE: table "test_abc" does not exist, skipping
create table test_abc (c1 enum('c', 'b', 'a'));
insert into test_abc values('a'), ('b'), ('c');
select c1,
c1 = 'b' AS "c1 = b", c1 <> 'b' AS "c1 <> b", c1 > 'b' AS "c1 > b", c1 >= 'b' AS "c1 >= b", c1 < 'b' AS "c1 < b", c1 <= 'b' AS "c1 <= b",
'b' = c1 AS "b = c1", 'b' <> c1 AS "b <> c1", 'b' > c1 AS "b > c1", 'b' >= c1 AS "b >= c1", 'b' < c1 AS "b < c1", 'b' <= c1 AS "b <= c1"
from test_abc order by 1;
c1 | c1 = b | c1 <> b | c1 > b | c1 >= b | c1 < b | c1 <= b | b = c1 | b <> c1 | b > c1 | b >= c1 | b < c1 | b <= c1
----+--------+---------+--------+---------+--------+---------+--------+---------+--------+---------+--------+---------
a | f | t | f | f | t | t | f | t | t | t | f | f
b | t | f | f | t | f | t | t | f | f | t | f | t
c | f | t | t | t | f | f | f | t | f | f | t | t
(3 rows)
create table enum_test_table(a enum('a', 'b', 'c'));
insert into enum_test_table values('a'), ('b'), ('c');
select * from enum_test_table where a = 1;
a
---
a
(1 row)
select * from enum_test_table where a = 2;
a
---
b
(1 row)
select * from enum_test_table where a = 3;
a
---
c
(1 row)
select * from enum_test_table where 1 = a;
a
---
a
(1 row)
select * from enum_test_table where 2 = a;
a
---
b
(1 row)
select * from enum_test_table where 3 = a;
a
---
c
(1 row)
select * from enum_test_table where 1 > a;
a
---
(0 rows)
select * from enum_test_table where 2 > a;
a
---
a
(1 row)
select * from enum_test_table where 3 > a;
a
---
a
b
(2 rows)
select * from enum_test_table where 1 >= a;
a
---
a
(1 row)
select * from enum_test_table where 2 >= a;
a
---
a
b
(2 rows)
select * from enum_test_table where 3 >= a;
a
---
a
b
c
(3 rows)
select * from enum_test_table where 1 < a;
a
---
b
c
(2 rows)
select * from enum_test_table where 2 < a;
a
---
c
(1 row)
select * from enum_test_table where 3 < a;
a
---
(0 rows)
select * from enum_test_table where 1 <= a;
a
---
a
b
c
(3 rows)
select * from enum_test_table where 2 <= a;
a
---
b
c
(2 rows)
select * from enum_test_table where 3 <= a;
a
---
c
(1 row)
select * from enum_test_table where 1 != a;
a
---
b
c
(2 rows)
select * from enum_test_table where 2 != a;
a
---
a
c
(2 rows)
select * from enum_test_table where 3 != a;
a
---
a
b
(2 rows)
select a + 1 from enum_test_table;
?column?
----------
2
3
4
(3 rows)
select a - 1 from enum_test_table;
?column?
----------
0
1
2
(3 rows)
select a * 1 from enum_test_table;
?column?
----------
1
2
3
(3 rows)
select a / 1 from enum_test_table;
?column?
----------
1
2
3
(3 rows)
create table test_enum_d(ssl_type enum('','any','X509','SPECIFIED') not null default '');
\d test_enum_d
--?.*
--?.*
--?.*
--?.*
\d+ test_enum_d
--?.*
--?.*
--?.*
--?.*
Has OIDs: no
Options: orientation=row, compression=no, collate=1537
Character Set: UTF8
Collate: utf8mb4_general_ci
-- test anonymous enum backup
create table student (
id int not null auto_increment,
name varchar(100),
gender enum('male', 'female'),
non_enum enum(),
primary key(id)
);
--?.*
--?.*
insert into student(name,gender) values('bill','male');
select * from student;
id | name | gender | non_enum
----+------+--------+----------
1 | bill | male |
(1 row)
create table student_bak as select * from student;
select * from student_bak;
id | name | gender | non_enum
----+------+--------+----------
1 | bill | male |
(1 row)
alter table student drop column gender;
select * from student_bak;
id | name | gender | non_enum
----+------+--------+----------
1 | bill | male |
(1 row)
alter table student drop column non_enum;
select * from student_bak;
id | name | gender | non_enum
----+------+--------+----------
1 | bill | male |
(1 row)
select * from pg_get_tabledef('student_bak');
pg_get_tabledef
------------------------------------------------------------------------------------
SET search_path = test_enum; +
CREATE TABLE student_bak ( +
id integer, +
name character varying(100) CHARACTER SET "UTF8" COLLATE utf8mb4_general_ci, +
gender enum('male', 'female') CHARACTER SET "UTF8" COLLATE utf8mb4_general_ci,+
non_enum enum() CHARACTER SET "UTF8" COLLATE utf8mb4_general_ci +
) +
CHARACTER SET = "UTF8" COLLATE = "utf8mb4_general_ci" +
WITH (orientation=row, compression=no);
(1 row)
drop table student, student_bak cascade;
drop schema test_enum cascade;
NOTICE: drop cascades to 12 other objects
--?.*
drop cascades to table t1
drop cascades to function p_enum1()
drop cascades to table t_enum_0011_01
--?.*
drop cascades to table chameleon_case6
--?.*
drop cascades to table test_abc
--?.*
drop cascades to table enum_test_table
--?.*
drop cascades to table test_enum_d
reset current_schema;
create schema db_b_new_gram_test3;
set current_schema to 'db_b_new_gram_test3';
create table t_charset_enum_column(c enum('a', 'b', 'c') charset test_character_set);
WARNING: test_character_set is not a valid encoding name. default value set
drop table t_charset_enum_column;
create table t_enum_column_drop(c1 int, c2 enum('a', 'b'));
alter table t_enum_column_drop drop c2;
drop table t_enum_column_drop;
create table t_enum_column_alter_type(c1 int, c2 enum('a', 'b'));
alter table t_enum_column_alter_type drop c2;
drop table t_enum_column_alter_type;
create table t_drop_view(c1 int, c2 enum('a'));
create view my_view as select * from t_drop_view;
drop view my_view;
drop table t_drop_view;
set dolphin.sql_mode to 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length,auto_recompile_function,error_for_division_by_zero';
drop table if exists test;
NOTICE: table "test" does not exist, skipping
create table test(color enum('red', 'green', 'blue', 'purple', 'yellow'));
insert into test values('red');
insert into test values('green');
insert into test values('orange');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('orange');
^
CONTEXT: referenced column: color
insert into test values(0);
--?ERROR: invalid input value for enum.*
CONTEXT: referenced column: color
insert into test values('0');
insert into test values(1);
insert into test values('1');
insert into test values(1.2);
insert into test values('1.2');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('1.2');
^
CONTEXT: referenced column: color
insert into test values(1.4);
insert into test values('1.4');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('1.4');
^
CONTEXT: referenced column: color
insert into test values(1.5);
insert into test values('1.5');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('1.5');
^
CONTEXT: referenced column: color
insert into test values(1.6);
insert into test values('1.6');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('1.6');
^
CONTEXT: referenced column: color
insert into test values('a1');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('a1');
^
CONTEXT: referenced column: color
insert into test values('1a');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('1a');
^
CONTEXT: referenced column: color
insert into test values('a123');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('a123');
^
CONTEXT: referenced column: color
insert into test values('123a');
--?ERROR: invalid input value for enum.*
LINE 1: insert into test values('123a');
^
CONTEXT: referenced column: color
select * from test;
color
-------
red
green
red
red
red
red
red
red
(9 rows)
delete from test;
insert ignore into test values('red');
insert ignore into test values('green');
insert ignore into test values('orange');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('orange');
^
CONTEXT: referenced column: color
insert ignore into test values(0);
WARNING: Invalid input value for enum. In strict sql_mode, do not allow the value 0.
CONTEXT: referenced column: color
insert ignore into test values('0');
insert ignore into test values(1);
insert ignore into test values('1');
insert ignore into test values(1.2);
insert ignore into test values('1.2');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('1.2');
^
CONTEXT: referenced column: color
insert ignore into test values(1.4);
insert ignore into test values('1.4');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('1.4');
^
CONTEXT: referenced column: color
insert ignore into test values(1.5);
insert ignore into test values('1.5');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('1.5');
^
CONTEXT: referenced column: color
insert ignore into test values(1.6);
insert ignore into test values('1.6');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('1.6');
^
CONTEXT: referenced column: color
insert ignore into test values('a1');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('a1');
^
CONTEXT: referenced column: color
insert ignore into test values('1a');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('1a');
^
CONTEXT: referenced column: color
insert ignore into test values('a123');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('a123');
^
CONTEXT: referenced column: color
insert ignore into test values('123a');
--?WARNING: invalid input value for enum .*
LINE 1: insert ignore into test values('123a');
^
CONTEXT: referenced column: color
select * from test;
color
-------
red
green
red
red
red
red
red
red
(19 rows)
delete from test;
set dolphin.sql_mode to 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length,auto_recompile_function,error_for_division_by_zero';
insert into test values('red');
insert into test values('green');
insert into test values('orange');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('orange');
^
CONTEXT: referenced column: color
insert into test values(0);
WARNING: Invalid input value for enum. In strict sql_mode, do not allow the value 0.
CONTEXT: referenced column: color
insert into test values('0');
insert into test values(1);
insert into test values('1');
insert into test values(1.2);
insert into test values('1.2');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('1.2');
^
CONTEXT: referenced column: color
insert into test values(1.4);
insert into test values('1.4');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('1.4');
^
CONTEXT: referenced column: color
insert into test values(1.5);
insert into test values('1.5');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('1.5');
^
CONTEXT: referenced column: color
insert into test values(1.6);
insert into test values('1.6');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('1.6');
^
CONTEXT: referenced column: color
insert into test values('a1');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('a1');
^
CONTEXT: referenced column: color
insert into test values('1a');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('1a');
^
CONTEXT: referenced column: color
insert into test values('a123');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('a123');
^
CONTEXT: referenced column: color
insert into test values('123a');
--?WARNING: invalid input value for enum .*
LINE 1: insert into test values('123a');
^
CONTEXT: referenced column: color
select * from test;
color
-------
red
green
red
red
red
red
red
red
(19 rows)
drop table test cascade;
drop schema db_b_new_gram_test3 cascade;
reset current_schema;
--
--test tailing blank for enum value
--
--expect failure with with duplicate values
create table tabenum(a enum ('a','a ') );
ERROR: enum has duplicate key value "a" = "a "
--expect success
create table tabenum(a enum ('a ',' a'));
drop table tabenum;
--expect failure
CREATE TYPE typenum AS ENUM ( 'a', 'a ');
ERROR: duplicate key value violates unique constraint "pg_enum_typid_label_index"
--?.*
--expect success
CREATE TYPE typenum AS ENUM ( 'a', ' a');
DROP TYPE typenum;
create table enum_test_table1(a enum('2024-07-05', '2024-07-05 14:59:58', '14:59:59'));
insert enum_test_table1 values('2024-07-05'), ('2024-07-05 14:59:58'), ('14:59:59');
select a + interval 1 day as 'a + interval 1 day' from enum_test_table1;
WARNING: Incorrect datetime value: "14:59:59"
CONTEXT: referenced column: a + interval 1 day
a + interval 1 day
---------------------
2024-07-06
2024-07-06 14:59:58
(3 rows)
select interval 1 day + a as 'interval 1 day + a' from enum_test_table1;
WARNING: Incorrect datetime value: "14:59:59"
CONTEXT: referenced column: interval 1 day + a
interval 1 day + a
---------------------
2024-07-06
2024-07-06 14:59:58
(3 rows)
select a - interval 1 day as 'a - interval 1 day' from enum_test_table1;
WARNING: Incorrect datetime value: "14:59:59"
CONTEXT: referenced column: a - interval 1 day
a - interval 1 day
---------------------
2024-07-04
2024-07-04 14:59:58
(3 rows)
drop table enum_test_table1;
create table set_t(a set('2024-07-05', '2024-07-05 14:59:58', '14:59:59'));
NOTICE: CREATE TABLE will create implicit set "set_t_a_set" for column "set_t.a"
insert set_t values('2024-07-05'), ('2024-07-05 14:59:58'), ('14:59:59');
select a + interval 1 day as 'a + interval 1 day' from set_t;
WARNING: Incorrect datetime value: "14:59:59"
CONTEXT: referenced column: a + interval 1 day
a + interval 1 day
---------------------
2024-07-06
2024-07-06 14:59:58
(3 rows)
select interval 1 day + a as 'interval 1 day + a' from set_t;
WARNING: Incorrect datetime value: "14:59:59"
CONTEXT: referenced column: interval 1 day + a
interval 1 day + a
---------------------
2024-07-06
2024-07-06 14:59:58
(3 rows)
select a - interval 1 day as 'a - interval 1 day' from set_t;
WARNING: Incorrect datetime value: "14:59:59"
CONTEXT: referenced column: a - interval 1 day
a - interval 1 day
---------------------
2024-07-04
2024-07-04 14:59:58
(3 rows)
drop table set_t;
reset dolphin.sql_mode;
CREATE TABLE staff (
name VARCHAR(40),
gender ENUM('male', 'female'),
age ENUM('young', 'old')
);
DELIMITER //
CREATE OR REPLACE PROCEDURE insert_data1(param1 CHAR(20), param2 ENUM('male', 'female'), param3 ENUM('young', 'old'))
BEGIN
INSERT INTO staff (name, gender, age) VALUES (param1,param2, param3);
END
//
DELIMITER ;
select insert_data1('aaa', 'yyy', 'xxx'); -- should fail
WARNING: invalid input value for enum insert_data1_2_2200_anonymous_enum: "yyy"
LINE 1: select insert_data1('aaa', 'yyy', 'xxx');
^
CONTEXT: referenced column: insert_data1
WARNING: invalid input value for enum insert_data1_3_2200_anonymous_enum: "xxx"
LINE 1: select insert_data1('aaa', 'yyy', 'xxx');
^
CONTEXT: referenced column: insert_data1
ERROR: invalid input value for enum staff_gender_2200_anonymous_enum_1: ""
CONTEXT: referenced column: gender
SQL statement "INSERT INTO staff (name, gender, age) VALUES (param1,param2, param3)"
PL/pgSQL function insert_data1(character,insert_data1_2_2200_anonymous_enum,insert_data1_3_2200_anonymous_enum) line 2 at SQL statement
referenced column: insert_data1
select insert_data1('aaa', 'female', 'old');
insert_data1
--------------
(1 row)
select * from staff;
name | gender | age
------+--------+-----
aaa | female | old
(1 row)
DELIMITER //
CREATE OR REPLACE PROCEDURE insert_data1(param1 CHAR(20), param2 ENUM('male', 'female'), param3 ENUM('young', 'old'))
BEGIN
INSERT INTO staff (name, gender, age) VALUES (param1,param2, param3);
END
//
DELIMITER ;
drop procedure insert_data1;
DELIMITER //
CREATE OR REPLACE PROCEDURE insert_data1(CHAR(20), ENUM('male', 'female'), ENUM('young', 'old'))
BEGIN
INSERT INTO staff (name, gender, age) VALUES ($1, $2, $3);
END
//
DELIMITER ;
select insert_data1('bbb', 'male', 'old');
insert_data1
--------------
(1 row)
select * from staff;
name | gender | age
------+--------+-----
aaa | female | old
bbb | male | old
(2 rows)
drop procedure insert_data1;
select count(*) from pg_type where typname like '%insert_data1%';
count
-------
0
(1 row)
drop table staff;
/* test prepare */
create table t_enumandset(a enum('a','b'), b set('a','b'));
NOTICE: CREATE TABLE will create implicit set "t_enumandset_b_set" for column "t_enumandset.b"
prepare st_enum as insert into t_enumandset(a) values(?);
prepare st_set as insert into t_enumandset(b) values(?);
execute st_enum('a');
execute st_enum('b');
execute st_enum('c'); --failed
--?.*
LINE 1: execute st_enum('c');
^
execute st_set('a');
execute st_set('b');
execute st_set('c'); --failed
--?.*
LINE 1: execute st_set('c');
^
select * from t_enumandset;
a | b
---+---
a |
b |
| a
| b
(4 rows)
drop table t_enumandset;