{
struct variable * p = (struct variable*) mm_alloc(sizeof(struct variable));
- p->name = strdup(name);
+ p->name = mm_strdup(name);
p->type = type;
p->brace_level = braces_open;
%token TYPECAST
/* Keywords (in SQL92 reserved words) */
-%token ABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY AS, ASC,
+%token ABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY, AS, ASC,
BEGIN_TRANS, BETWEEN, BOTH, BY,
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
CONSTRAINT, CREATE, CROSS, CURRENT, CURRENT_DATE, CURRENT_TIME,
CURRENT_TIMESTAMP, CURRENT_USER, CURSOR,
DAY_P, DECIMAL, DECLARE, DEFAULT, DELETE, DESC, DISTINCT, DOUBLE, DROP,
END_TRANS, EXECUTE, EXISTS, EXTRACT,
- FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
+ FALSE_P, FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
GRANT, GROUP, HAVING, HOUR_P,
IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS,
JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL,
MATCH, MINUTE_P, MONTH_P, NAMES,
- NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NOTIFY, NULL_P, NUMERIC,
+ NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NULL_P, NUMERIC,
OF, ON, ONLY, OPTION, OR, ORDER, OUTER_P,
PARTIAL, POSITION, PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC,
READ, REFERENCES, RELATIVE, REVOKE, RIGHT, ROLLBACK,
SCROLL, SECOND_P, SELECT, SET, SUBSTRING,
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
- TO, TRAILING, TRANSACTION, TRIM,
+ TO, TRAILING, TRANSACTION, TRIM, TRUE_P,
UNION, UNIQUE, UPDATE, USER, USING,
VALUES, VARCHAR, VARYING, VIEW,
WHERE, WITH, WORK, YEAR_P, ZONE
/* Keywords (in SQL3 reserved words) */
-%token FALSE_P, TRIGGER, TRUE_P
+%token TRIGGER
/* Keywords (in SQL92 non-reserved words) */
%token TYPE_P
-/* Keywords for Postgres support (not in SQL92 reserved words) */
-%token ABORT_TRANS, AFTER, AGGREGATE, ANALYZE,
- BACKWARD, BEFORE, BINARY, CACHE, CLUSTER, COPY, CYCLE,
- DATABASE, DELIMITERS, DO, EACH, EXPLAIN, EXTEND,
+/* Keywords for Postgres support (not in SQL92 reserved words)
+ *
+ * The CREATEDB and CREATEUSER tokens should go away
+ * when some sort of pg_privileges relation is introduced.
+ * - Todd A. Brandys 1998-01-01?
+ */
+%token ABORT_TRANS, AFTER, AGGREGATE, ANALYZE, BACKWARD, BEFORE, BINARY,
+ CACHE, CLUSTER, COPY, CREATEDB, CREATEUSER, CYCLE,
+ DATABASE, DELIMITERS, DO, EACH, ENCODING, EXPLAIN, EXTEND,
FORWARD, FUNCTION, HANDLER,
INCREMENT, INDEX, INHERITS, INSTEAD, ISNULL,
- LANCOMPILER, LISTEN, UNLISTEN, LOAD, LOCK_P, LOCATION, MAXVALUE, MINVALUE, MOVE,
- NEW, NONE, NOTHING, NOTNULL, OIDS, OPERATOR, PROCEDURAL,
+ LANCOMPILER, LISTEN, UNLISTEN, LOAD, LOCATION, LOCK_P, MAXVALUE, MINVALUE, MOVE,
+ NEW, NOCREATEDB, NOCREATEUSER, NONE, NOTHING, NOTIFY, NOTNULL,
+ OIDS, OPERATOR, PASSWORD, PROCEDURAL,
RECIPE, RENAME, RESET, RETURNS, ROW, RULE,
SERIAL, SEQUENCE, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED,
- VACUUM, VERBOSE, VERSION, ENCODING
-
-/* Keywords (obsolete; retain through next version for parser - thomas 1997-12-0 4) */
-%token ARCHIVE
-
-/*
- * Tokens for pg_passwd support. The CREATEDB and CREATEUSER tokens should go a way
- * when some sort of pg_privileges relation is introduced.
- *
- * Todd A. Brandys
- */
-%token PASSWORD, CREATEDB, NOCREATEDB, CREATEUSER, NOCREATEUSER, VALID, UNTIL
+ UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION
/* Special keywords, not in the query language - see the "lex" file */
%token IDENT SCONST Op CSTRING CVARIABLE CPP_LINE
%type Iconst Fconst Sconst TransactionStmt CreateStmt UserId
%type CreateAsElement OptCreateAs CreateAsList CreateAsStmt
-%type OptArchiveType OptInherit key_reference key_action
+%type OptInherit key_reference key_action
%type key_match constraint_expr ColLabel SpecialRuleRelation
%type ColId default_expr ColQualifier columnDef ColQualList
%type ColConstraint ColConstraintElem default_list NumericOnly FloatOnly
*****************************************************************************/
CreateStmt: CREATE TABLE relation_name '(' OptTableElementList ')'
- OptInherit OptArchiveType
+ OptInherit
{
- $$ = cat5_str(make1_str("create table"), $3, make3_str(make1_str("("), $5, make1_str(")")), $7, $8);
+ $$ = cat4_str(make1_str("create table"), $3, make3_str(make1_str("("), $5, make1_str(")")), $7);
}
;
| /*EMPTY*/ { $$ = make1_str(""); }
;
-/*
- * "ARCHIVE" keyword was removed in 6.3, but we keep it for now
- * so people can upgrade with old pg_dump scripts. - momjian 1997-11-20(?)
- */
-OptArchiveType: ARCHIVE '=' NONE { $$ = make1_str("archive = none"); }
- | /*EMPTY*/ { $$ = make1_str(""); }
- ;
-
CreateAsStmt: CREATE TABLE relation_name OptCreateAs AS SubSelect
{
$$ = cat5_str(make1_str("create table"), $3, $4, make1_str("as"), $6);
/* initial definition */
this->next = cur;
this->name = $2;
- this->command = cat4_str(cat5_str(cat5_str(make1_str("declare"), strdup($2), $3, make1_str("cursor for select"), $7), $8, $9, $10, $11), $12, $13, $14);
+ this->command = cat4_str(cat5_str(cat5_str(make1_str("declare"), mm_strdup($2), $3, make1_str("cursor for select"), $7), $8, $9, $10, $11), $12, $13, $14);
this->argsinsert = argsinsert;
this->argsresult = argsresult;
argsinsert = argsresult = NULL;
cur = this;
- $$ = cat3_str(make1_str("/*"), strdup(this->command), make1_str("*/"));
+ $$ = cat3_str(make1_str("/*"), mm_strdup(this->command), make1_str("*/"));
}
;
* list due to shift/reduce conflicts in yacc. If so, move
* down to the ColLabel entity. - thomas 1997-11-06
*/
-ColId: ident { $$ = $1; }
- | datetime { $$ = $1; }
- | ABSOLUTE { $$ = make1_str("absolute"); }
- | ACTION { $$ = make1_str("action"); }
- | CACHE { $$ = make1_str("cache"); }
- | CYCLE { $$ = make1_str("cycle"); }
- | DATABASE { $$ = make1_str("database"); }
- | DELIMITERS { $$ = make1_str("delimiters"); }
- | DOUBLE { $$ = make1_str("double"); }
- | EACH { $$ = make1_str("each"); }
- | ENCODING { $$ = make1_str("encoding"); }
- | FUNCTION { $$ = make1_str("function"); }
- | INCREMENT { $$ = make1_str("increment"); }
- | INDEX { $$ = make1_str("index"); }
- | INSENSITIVE { $$ = make1_str("insensitive"); }
- | KEY { $$ = make1_str("key"); }
- | LANGUAGE { $$ = make1_str("language"); }
- | LOCATION { $$ = make1_str("location"); }
- | MATCH { $$ = make1_str("match"); }
- | MAXVALUE { $$ = make1_str("maxvalue"); }
- | MINVALUE { $$ = make1_str("minvalue"); }
- | NEXT { $$ = make1_str("next"); }
- | OF { $$ = make1_str("of"); }
- | ONLY { $$ = make1_str("only"); }
- | OPERATOR { $$ = make1_str("operator"); }
- | OPTION { $$ = make1_str("option"); }
- | PASSWORD { $$ = make1_str("password"); }
- | PRIOR { $$ = make1_str("prior"); }
- | PRIVILEGES { $$ = make1_str("privileges"); }
- | READ { $$ = make1_str("read"); }
- | RECIPE { $$ = make1_str("recipe"); }
- | RELATIVE { $$ = make1_str("relative"); }
- | ROW { $$ = make1_str("row"); }
- | SCROLL { $$ = make1_str("scroll"); }
- | SERIAL { $$ = make1_str("serial"); }
- | START { $$ = make1_str("start"); }
- | STATEMENT { $$ = make1_str("statement"); }
- | TIME { $$ = make1_str("time"); }
- | TIMEZONE_HOUR { $$ = make1_str("timezone_hour"); }
- | TIMEZONE_MINUTE { $$ = make1_str("timezone_minute"); }
- | TRIGGER { $$ = make1_str("trigger"); }
- | TYPE_P { $$ = make1_str("type"); }
- | VALID { $$ = make1_str("valid"); }
- | VERSION { $$ = make1_str("version"); }
- | ZONE { $$ = make1_str("zone"); }
+ColId: ident { $$ = $1; }
+ | datetime { $$ = $1; }
+ | ABSOLUTE { $$ = make1_str("absolute"); }
+ | ACTION { $$ = make1_str("action"); }
+ | AFTER { $$ = make1_str("after"); }
+ | AGGREGATE { $$ = make1_str("aggregate"); }
+ | BACKWARD { $$ = make1_str("backward"); }
+ | BEFORE { $$ = make1_str("before"); }
+ | CACHE { $$ = make1_str("cache"); }
+ | CREATEDB { $$ = make1_str("createdb"); }
+ | CREATEUSER { $$ = make1_str("createuser"); }
+ | CYCLE { $$ = make1_str("cycle"); }
+ | DATABASE { $$ = make1_str("database"); }
+ | DELIMITERS { $$ = make1_str("delimiters"); }
+ | DOUBLE { $$ = make1_str("double"); }
+ | EACH { $$ = make1_str("each"); }
+ | ENCODING { $$ = make1_str("encoding"); }
+ | FORWARD { $$ = make1_str("forward"); }
+ | FUNCTION { $$ = make1_str("function"); }
+ | HANDLER { $$ = make1_str("handler"); }
+ | INCREMENT { $$ = make1_str("increment"); }
+ | INDEX { $$ = make1_str("index"); }
+ | INHERITS { $$ = make1_str("inherits"); }
+ | INSENSITIVE { $$ = make1_str("insensitive"); }
+ | INSTEAD { $$ = make1_str("instead"); }
+ | ISNULL { $$ = make1_str("isnull"); }
+ | KEY { $$ = make1_str("key"); }
+ | LANGUAGE { $$ = make1_str("language"); }
+ | LANCOMPILER { $$ = make1_str("lancompiler"); }
+ | LOCATION { $$ = make1_str("location"); }
+ | MATCH { $$ = make1_str("match"); }
+ | MAXVALUE { $$ = make1_str("maxvalue"); }
+ | MINVALUE { $$ = make1_str("minvalue"); }
+ | NEXT { $$ = make1_str("next"); }
+ | NOCREATEDB { $$ = make1_str("nocreatedb"); }
+ | NOCREATEUSER { $$ = make1_str("nocreateuser"); }
+ | NOTHING { $$ = make1_str("nothing"); }
+ | NOTNULL { $$ = make1_str("notnull"); }
+ | OF { $$ = make1_str("of"); }
+ | OIDS { $$ = make1_str("oids"); }
+ | ONLY { $$ = make1_str("only"); }
+ | OPERATOR { $$ = make1_str("operator"); }
+ | OPTION { $$ = make1_str("option"); }
+ | PASSWORD { $$ = make1_str("password"); }
+ | PRIOR { $$ = make1_str("prior"); }
+ | PRIVILEGES { $$ = make1_str("privileges"); }
+ | PROCEDURAL { $$ = make1_str("procedural"); }
+ | READ { $$ = make1_str("read"); }
+ | RECIPE { $$ = make1_str("recipe"); }
+ | RELATIVE { $$ = make1_str("relative"); }
+ | RENAME { $$ = make1_str("rename"); }
+ | RETURNS { $$ = make1_str("returns"); }
+ | ROW { $$ = make1_str("row"); }
+ | RULE { $$ = make1_str("rule"); }
+ | SCROLL { $$ = make1_str("scroll"); }
+ | SEQUENCE { $$ = make1_str("sequence"); }
+ | SERIAL { $$ = make1_str("serial"); }
+ | START { $$ = make1_str("start"); }
+ | STATEMENT { $$ = make1_str("statement"); }
+ | STDIN { $$ = make1_str("stdin"); }
+ | STDOUT { $$ = make1_str("stdout"); }
+ | TIME { $$ = make1_str("time"); }
+ | TIMEZONE_HOUR { $$ = make1_str("timezone_hour"); }
+ | TIMEZONE_MINUTE { $$ = make1_str("timezone_minute"); }
+ | TRIGGER { $$ = make1_str("trigger"); }
+ | TRUSTED { $$ = make1_str("trusted"); }
+ | TYPE_P { $$ = make1_str("type"); }
+ | VALID { $$ = make1_str("valid"); }
+ | VERSION { $$ = make1_str("version"); }
+ | ZONE { $$ = make1_str("zone"); }
;
-
/* Column label
* Allowed labels in "AS" clauses.
* Include TRUE/FALSE SQL3 reserved words for Postgres backward
* when used as a full identifier. - thomas 1997-11-06
*/
ColLabel: ColId { $$ = $1; }
- | ARCHIVE { $$ = make1_str("archive"); }
+ | ABORT_TRANS { $$ = make1_str("abort"); }
+ | ANALYZE { $$ = make1_str("analyze"); }
+ | BINARY { $$ = make1_str("binary"); }
| CLUSTER { $$ = make1_str("cluster"); }
| CONSTRAINT { $$ = make1_str("constraint"); }
+ | COPY { $$ = make1_str("copy"); }
| CROSS { $$ = make1_str("cross"); }
+ | CURRENT { $$ = make1_str("current"); }
+ | DO { $$ = make1_str("do"); }
+ | EXPLAIN { $$ = make1_str("explain"); }
+ | EXTEND { $$ = make1_str("extend"); }
+ | FALSE_P { $$ = make1_str("false"); }
| FOREIGN { $$ = make1_str("foreign"); }
| GROUP { $$ = make1_str("group"); }
+ | LISTEN { $$ = make1_str("listen"); }
| LOAD { $$ = make1_str("load"); }
+ | LOCK_P { $$ = make1_str("lock"); }
+ | MOVE { $$ = make1_str("move"); }
+ | NEW { $$ = make1_str("new"); }
+ | NONE { $$ = make1_str("none"); }
| ORDER { $$ = make1_str("order"); }
| POSITION { $$ = make1_str("position"); }
| PRECISION { $$ = make1_str("precision"); }
+ | RESET { $$ = make1_str("reset"); }
+ | SETOF { $$ = make1_str("setof"); }
+ | SHOW { $$ = make1_str("show"); }
| TABLE { $$ = make1_str("table"); }
| TRANSACTION { $$ = make1_str("transaction"); }
| TRUE_P { $$ = make1_str("true"); }
- | FALSE_P { $$ = make1_str("false"); }
+ | VACUUM { $$ = make1_str("vacuum"); }
+ | VERBOSE { $$ = make1_str("verbose"); }
;
SpecialRuleRelation: CURRENT
type: simple_type
{
$$.type_enum = $1;
- $$.type_str = strdup(ECPGtype_name($1));
+ $$.type_str = mm_strdup(ECPGtype_name($1));
}
| struct_type
{
}
| Sconst
{
- $$ = strdup($1);
+ $$ = mm_strdup($1);
$$[0] = '\"';
$$[strlen($$) - 1] = '\"';
free($1);
| DO name '(' dotext ')' {
$
$.command = make4_str($2, make1_str("("), $4, make1_str(")"));
- $
$.str = cat2_str(make1_str("do"), strdup($$.command));
+ $
$.str = cat2_str(make1_str("do"), mm_strdup($$.command));
}
| DO SQL_BREAK {
| SQL_CALL name '(' dotext ')' {
$
$.command = make4_str($2, make1_str("("), $4, make1_str(")"));
- $
$.str = cat2_str(make1_str("call"), strdup($$.command));
+ $
$.str = cat2_str(make1_str("call"), mm_strdup($$.command));
}
/* some other stuff for ecpg */