diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2017-03-07 10:42:11 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2017-03-07 10:42:18 -0500 |
commit | 11324e408f0e3a25621c611467927c644894b30d (patch) | |
tree | ddfa645887b4a99e67c11a12fa3b721884ef4300 | |
parent | a71f10189dc10a2fe422158a2c9409e0f77c6b9e (diff) | |
download | postgresql-11324e408f0e3a25621c611467927c644894b30d.tar.gz postgresql-11324e408f0e3a25621c611467927c644894b30d.zip |
Remove vestigial grammar support for CHARACTER ... CHARACTER SET option.
The SQL standard says that you should be able to write "CHARACTER SET foo"
as part of the declaration of a char-type column. We don't implement that,
but a rough form of support has existed in gram.y since commit f10b63923.
That's now sat there for nigh 20 years without anyone fleshing it out ---
and even if someone did, the contemplated approach of having separate data
type name(s) for every character set certainly isn't what we'd do today.
Let's just remove the grammar production; if anyone is ever motivated to
work on this, reinventing the grammar support is a trivial fraction of
what they'd have to do. And we've never documented anything about
supporting such a clause.
Per gripe from Neha Khatri.
Discussion: https://postgr.es/m/CAFO0U+-iOS5oYN5v3SBuZvfhPUTRrkDFEx8w7H17B07Rwg3YUA@mail.gmail.com
-rw-r--r-- | src/backend/parser/gram.y | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 083124ed3be..bb55e1c95cc 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -513,7 +513,6 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); Bit ConstBit BitWithLength BitWithoutLength %type <str> character %type <str> extract_arg -%type <str> opt_charset %type <boolean> opt_varying opt_timezone opt_no_inherit %type <ival> Iconst SignedIconst @@ -11923,28 +11922,20 @@ ConstCharacter: CharacterWithLength } ; -CharacterWithLength: character '(' Iconst ')' opt_charset +CharacterWithLength: character '(' Iconst ')' { - if (($5 != NULL) && (strcmp($5, "sql_text") != 0)) - $1 = psprintf("%s_%s", $1, $5); - $$ = SystemTypeName($1); $$->typmods = list_make1(makeIntConst($3, @3)); $$->location = @1; } ; -CharacterWithoutLength: character opt_charset +CharacterWithoutLength: character { - if (($2 != NULL) && (strcmp($2, "sql_text") != 0)) - $1 = psprintf("%s_%s", $1, $2); - $$ = SystemTypeName($1); - /* char defaults to char(1), varchar to no limit */ if (strcmp($1, "bpchar") == 0) $$->typmods = list_make1(makeIntConst(1, -1)); - $$->location = @1; } ; @@ -11968,11 +11959,6 @@ opt_varying: | /*EMPTY*/ { $$ = FALSE; } ; -opt_charset: - CHARACTER SET ColId { $$ = $3; } - | /*EMPTY*/ { $$ = NULL; } - ; - /* * SQL date/time types */ |