mirror of
https://github.com/postgres/postgres.git
synced 2025-05-06 19:59:18 +03:00
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
This commit is contained in:
parent
a71f10189d
commit
11324e408f
@ -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
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user