summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart1998-08-25 15:04:24 +0000
committerThomas G. Lockhart1998-08-25 15:04:24 +0000
commit12cf9f8075dac3bb81efa845285922ed520d9dc7 (patch)
tree3fdfa4029cbeb7a31901917625562f2dadcfd330
parentfddd79aa73e2a1905be426c22c494cb651a39017 (diff)
Support SERIAL column type. Expand into an integer column but mark
is_sequence in the ColumnDef structure.
-rw-r--r--src/backend/parser/gram.y18
-rw-r--r--src/backend/parser/keywords.c3
2 files changed, 18 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index a81f0f6a35a..bdbe286d21f 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.24 1998/08/24 01:13:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.25 1998/08/25 15:04:23 thomas Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -294,7 +294,7 @@ Oid param_type(int t); /* used in parse_expr.c */
LANCOMPILER, LISTEN, LOAD, LOCK_P, LOCATION, MAXVALUE, MINVALUE, MOVE,
NEW, NONE, NOTHING, NOTNULL, OIDS, OPERATOR, PROCEDURAL,
RECIPE, RENAME, RESET, RETURNS, ROW, RULE,
- SEQUENCE, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED,
+ SEQUENCE, SERIAL, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED,
VACUUM, VERBOSE, VERSION, ENCODING
/* Keywords (obsolete; retain through next version for parser - thomas 1997-12-04) */
@@ -749,6 +749,19 @@ columnDef: ColId Typename ColQualifier
n->constraints = $3;
$$ = (Node *)n;
}
+ | ColId SERIAL
+ {
+ ColumnDef *n = makeNode(ColumnDef);
+ n->colname = $1;
+ n->typename = makeNode(TypeName);
+ n->typename->name = xlateSqlType("integer");
+ n->defval = NULL;
+ n->is_not_null = TRUE;
+ n->is_sequence = TRUE;
+ n->constraints = NULL;
+
+ $$ = (Node *)n;
+ }
;
ColQualifier: ColQualList { $$ = $1; }
@@ -4541,6 +4554,7 @@ ColId: IDENT { $$ = $1; }
| PRIVILEGES { $$ = "privileges"; }
| RECIPE { $$ = "recipe"; }
| ROW { $$ = "row"; }
+ | SERIAL { $$ = "serial"; }
| START { $$ = "start"; }
| STATEMENT { $$ = "statement"; }
| TIME { $$ = "time"; }
diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c
index 383696f5675..f04dbf63573 100644
--- a/src/backend/parser/keywords.c
+++ b/src/backend/parser/keywords.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.40 1998/08/24 01:39:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.41 1998/08/25 15:04:24 thomas Exp $
*
*-------------------------------------------------------------------------
*/
@@ -186,6 +186,7 @@ static ScanKeyword ScanKeywords[] = {
{"second", SECOND_P},
{"select", SELECT},
{"sequence", SEQUENCE},
+ {"serial", SERIAL},
{"set", SET},
{"setof", SETOF},
{"show", SHOW},