From 1eef90d0a21167c4043c7d8cacaa0e937c9eb8e8 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 6 Apr 2009 08:42:53 +0000 Subject: Rename the new CREATE DATABASE options to set collation and ctype into LC_COLLATE and LC_CTYPE, per discussion on pgsql-hackers. --- src/backend/commands/dbcommands.c | 14 +++++++------- src/backend/parser/gram.y | 29 +++++++++++++++-------------- src/bin/pg_dump/pg_dump.c | 6 +++--- src/bin/pg_dump/pg_dumpall.c | 6 +++--- src/bin/scripts/createdb.c | 6 +++--- src/include/parser/kwlist.h | 5 +++-- src/interfaces/ecpg/preproc/ecpg.trailer | 5 +++-- 7 files changed, 37 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index f9dcb973c0d..2b9b11e2fea 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -13,7 +13,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.219 2009/01/30 17:24:47 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.220 2009/04/06 08:42:52 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -169,7 +169,7 @@ createdb(const CreatedbStmt *stmt) errmsg("conflicting or redundant options"))); dencoding = defel; } - else if (strcmp(defel->defname, "collate") == 0) + else if (strcmp(defel->defname, "lc_collate") == 0) { if (dcollate) ereport(ERROR, @@ -177,7 +177,7 @@ createdb(const CreatedbStmt *stmt) errmsg("conflicting or redundant options"))); dcollate = defel; } - else if (strcmp(defel->defname, "ctype") == 0) + else if (strcmp(defel->defname, "lc_ctype") == 0) { if (dctype) ereport(ERROR, @@ -362,7 +362,7 @@ createdb(const CreatedbStmt *stmt) (errmsg("encoding %s does not match locale %s", pg_encoding_to_char(encoding), dbctype), - errdetail("The chosen CTYPE setting requires encoding %s.", + errdetail("The chosen LC_CTYPE setting requires encoding %s.", pg_encoding_to_char(ctype_encoding)))); if (!(collate_encoding == encoding || @@ -375,7 +375,7 @@ createdb(const CreatedbStmt *stmt) (errmsg("encoding %s does not match locale %s", pg_encoding_to_char(encoding), dbcollate), - errdetail("The chosen COLLATE setting requires encoding %s.", + errdetail("The chosen LC_COLLATE setting requires encoding %s.", pg_encoding_to_char(collate_encoding)))); /* @@ -394,8 +394,8 @@ createdb(const CreatedbStmt *stmt) if (strcmp(dbctype, src_ctype)) ereport(ERROR, - (errmsg("new ctype is incompatible with the ctype of the template database (%s)", src_ctype), - errhint("Use the same ctype as in the template database, or use template0 as template"))); + (errmsg("new LC_CTYPE is incompatible with LC_CTYPE of the template database (%s)", src_ctype), + errhint("Use the same LC_CTYPE as in the template database, or use template0 as template"))); } /* Resolve default tablespace for new database */ diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 9821bc15b5f..d1ff21946b9 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.661 2009/04/04 21:12:31 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.662 2009/04/06 08:42:52 heikki Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -437,7 +437,7 @@ static TypeName *TableFuncTypeName(List *columns); CLUSTER COALESCE COLLATE COLUMN COMMENT COMMIT COMMITTED CONCURRENTLY CONFIGURATION CONNECTION CONSTRAINT CONSTRAINTS CONTENT_P CONTINUE_P CONVERSION_P COPY COST CREATE CREATEDB - CREATEROLE CREATEUSER CROSS CSV CTYPE CURRENT_P + CREATEROLE CREATEUSER CROSS CSV CURRENT_P CURRENT_CATALOG CURRENT_DATE CURRENT_ROLE CURRENT_SCHEMA CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE @@ -464,9 +464,9 @@ static TypeName *TableFuncTypeName(List *columns); KEY - LANCOMPILER LANGUAGE LARGE_P LAST_P LEADING LEAST LEFT LEVEL - LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP LOCATION - LOCK_P LOGIN_P + LANCOMPILER LANGUAGE LARGE_P LAST_P LC_COLLATE_P LC_CTYPE_P LEADING + LEAST LEFT LEVEL LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP + LOCATION LOCK_P LOGIN_P MAPPING MATCH MAXVALUE MINUTE_P MINVALUE MODE MONTH_P MOVE @@ -6011,21 +6011,21 @@ createdb_opt_item: { $$ = makeDefElem("encoding", NULL); } - | COLLATE opt_equal Sconst + | LC_COLLATE_P opt_equal Sconst { - $$ = makeDefElem("collate", (Node *)makeString($3)); + $$ = makeDefElem("lc_collate", (Node *)makeString($3)); } - | COLLATE opt_equal DEFAULT + | LC_COLLATE_P opt_equal DEFAULT { - $$ = makeDefElem("collate", NULL); + $$ = makeDefElem("lc_collate", NULL); } - | CTYPE opt_equal Sconst + | LC_CTYPE_P opt_equal Sconst { - $$ = makeDefElem("ctype", (Node *)makeString($3)); + $$ = makeDefElem("lc_ctype", (Node *)makeString($3)); } - | CTYPE opt_equal DEFAULT + | LC_CTYPE_P opt_equal DEFAULT { - $$ = makeDefElem("ctype", NULL); + $$ = makeDefElem("lc_ctype", NULL); } | CONNECTION LIMIT opt_equal SignedIconst { @@ -10169,7 +10169,6 @@ unreserved_keyword: | CREATEROLE | CREATEUSER | CSV - | CTYPE | CURRENT_P | CURSOR | CYCLE @@ -10236,6 +10235,8 @@ unreserved_keyword: | LANGUAGE | LARGE_P | LAST_P + | LC_COLLATE_P + | LC_CTYPE_P | LEVEL | LISTEN | LOAD diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 7e4e7381fc6..f67002bd4ff 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12,7 +12,7 @@ * by PostgreSQL * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.533 2009/04/05 04:19:58 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.534 2009/04/06 08:42:53 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -1716,12 +1716,12 @@ dumpDatabase(Archive *AH) } if (strlen(collate) > 0) { - appendPQExpBuffer(creaQry, " COLLATE = "); + appendPQExpBuffer(creaQry, " LC_COLLATE = "); appendStringLiteralAH(creaQry, collate, AH); } if (strlen(ctype) > 0) { - appendPQExpBuffer(creaQry, " CTYPE = "); + appendPQExpBuffer(creaQry, " LC_CTYPE = "); appendStringLiteralAH(creaQry, ctype, AH); } if (strlen(tablespace) > 0 && strcmp(tablespace, "pg_default") != 0) diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index 949f9cd0f34..019c6411352 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.121 2009/04/05 04:19:58 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.122 2009/04/06 08:42:53 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -1048,13 +1048,13 @@ dumpCreateDB(PGconn *conn) if (strlen(dbcollate) != 0) { - appendPQExpBuffer(buf, " COLLATE = "); + appendPQExpBuffer(buf, " LC_COLLATE = "); appendStringLiteralConn(buf, dbcollate, conn); } if (strlen(dbctype) != 0) { - appendPQExpBuffer(buf, " CTYPE = "); + appendPQExpBuffer(buf, " LC_CTYPE = "); appendStringLiteralConn(buf, dbctype, conn); } diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c index 773107e4876..50777acd520 100644 --- a/src/bin/scripts/createdb.c +++ b/src/bin/scripts/createdb.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.33 2009/02/26 16:20:55 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.34 2009/04/06 08:42:53 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -186,9 +186,9 @@ main(int argc, char *argv[]) if (template) appendPQExpBuffer(&sql, " TEMPLATE %s", fmtId(template)); if (lc_collate) - appendPQExpBuffer(&sql, " COLLATE '%s'", lc_collate); + appendPQExpBuffer(&sql, " LC_COLLATE '%s'", lc_collate); if (lc_ctype) - appendPQExpBuffer(&sql, " CTYPE '%s'", lc_ctype); + appendPQExpBuffer(&sql, " LC_CTYPE '%s'", lc_ctype); appendPQExpBuffer(&sql, ";\n"); diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h index 1fb2c7a51af..23f5d87a7a6 100644 --- a/src/include/parser/kwlist.h +++ b/src/include/parser/kwlist.h @@ -11,7 +11,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/include/parser/kwlist.h,v 1.1 2009/03/07 00:13:58 alvherre Exp $ + * $PostgreSQL: pgsql/src/include/parser/kwlist.h,v 1.2 2009/04/06 08:42:53 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -98,7 +98,6 @@ PG_KEYWORD("createrole", CREATEROLE, UNRESERVED_KEYWORD) PG_KEYWORD("createuser", CREATEUSER, UNRESERVED_KEYWORD) PG_KEYWORD("cross", CROSS, TYPE_FUNC_NAME_KEYWORD) PG_KEYWORD("csv", CSV, UNRESERVED_KEYWORD) -PG_KEYWORD("ctype", CTYPE, UNRESERVED_KEYWORD) PG_KEYWORD("current", CURRENT_P, UNRESERVED_KEYWORD) PG_KEYWORD("current_catalog", CURRENT_CATALOG, RESERVED_KEYWORD) PG_KEYWORD("current_date", CURRENT_DATE, RESERVED_KEYWORD) @@ -209,6 +208,8 @@ PG_KEYWORD("lancompiler", LANCOMPILER, UNRESERVED_KEYWORD) PG_KEYWORD("language", LANGUAGE, UNRESERVED_KEYWORD) PG_KEYWORD("large", LARGE_P, UNRESERVED_KEYWORD) PG_KEYWORD("last", LAST_P, UNRESERVED_KEYWORD) +PG_KEYWORD("lc_collate", LC_COLLATE_P, UNRESERVED_KEYWORD) +PG_KEYWORD("lc_ctype", LC_CTYPE_P, UNRESERVED_KEYWORD) PG_KEYWORD("leading", LEADING, RESERVED_KEYWORD) PG_KEYWORD("least", LEAST, COL_NAME_KEYWORD) PG_KEYWORD("left", LEFT, TYPE_FUNC_NAME_KEYWORD) diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer index b31f06018a8..93cc43d176a 100644 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++ b/src/interfaces/ecpg/preproc/ecpg.trailer @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.6 2009/01/30 12:53:43 petere Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.7 2009/04/06 08:42:53 heikki Exp $ */ statements: /*EMPTY*/ | statements statement @@ -1547,7 +1547,6 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | CREATEROLE { $$ = make_str("createrole"); } | CREATEUSER { $$ = make_str("createuser"); } | CSV { $$ = make_str("csv"); } - | CTYPE { $$ = make_str("ctype"); } | CURSOR { $$ = make_str("cursor"); } | CYCLE { $$ = make_str("cycle"); } | DATA_P { $$ = make_str("data"); } @@ -1610,6 +1609,8 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | LANGUAGE { $$ = make_str("language"); } | LARGE_P { $$ = make_str("large"); } | LAST_P { $$ = make_str("last"); } + | LC_COLLATE_P { $$ = make_str("lc_collate"); } + | LC_CTYPE_P { $$ = make_str("lc_ctype"); } | LEVEL { $$ = make_str("level"); } | LISTEN { $$ = make_str("listen"); } | LOAD { $$ = make_str("load"); } -- cgit v1.2.3