Limit the max string length of enum type to NAMEDATALEN-1(64-1=63)
This commit is contained in:
@ -34,7 +34,7 @@ static int sort_order_cmp(const void* p1, const void* p2);
|
||||
|
||||
#define checkEnumLableValue(val) \
|
||||
do { \
|
||||
if (NAMEDATALEN < strlen(val) || 0 == strlen(val)) { \
|
||||
if (NAMEDATALEN - 1 < strlen(val) || 0 == strlen(val)) { \
|
||||
ereport(ERROR, \
|
||||
(errcode(ERRCODE_INVALID_NAME), \
|
||||
errmsg("invalid enum label \"%s\"", val), \
|
||||
|
@ -1,4 +1,26 @@
|
||||
--
|
||||
-- Check max string length of enum type
|
||||
--
|
||||
SELECT char_length('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZDQ');
|
||||
char_length
|
||||
-------------
|
||||
64
|
||||
(1 row)
|
||||
|
||||
CREATE TYPE over_enum AS ENUM('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZDQ');
|
||||
ERROR: invalid enum label "createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZDQ"
|
||||
DETAIL: Labels must contain 1 to 63 characters.
|
||||
DROP TYPE IF EXISTS over_enum;
|
||||
NOTICE: type "over_enum" does not exist, skipping
|
||||
SELECT char_length('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZD');
|
||||
char_length
|
||||
-------------
|
||||
63
|
||||
(1 row)
|
||||
|
||||
CREATE TYPE max_eunm AS ENUM('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZD');
|
||||
DROP TYPE IF EXISTS max_eunm;
|
||||
--
|
||||
-- Enum tests
|
||||
--
|
||||
CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');
|
||||
|
@ -1,3 +1,13 @@
|
||||
--
|
||||
-- Check max string length of enum type
|
||||
--
|
||||
SELECT char_length('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZDQ');
|
||||
CREATE TYPE over_enum AS ENUM('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZDQ');
|
||||
DROP TYPE IF EXISTS over_enum;
|
||||
SELECT char_length('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZD');
|
||||
CREATE TYPE max_eunm AS ENUM('createcshksjdbnskjcbnskjcbnsjcbncbsxkcbscbKHWEIDHBIWFHBSBCISAZD');
|
||||
DROP TYPE IF EXISTS max_eunm;
|
||||
|
||||
--
|
||||
-- Enum tests
|
||||
--
|
||||
|
Reference in New Issue
Block a user