mirror of
https://github.com/postgres/postgres.git
synced 2025-05-21 15:54:08 +03:00
*** empty log message ***
This commit is contained in:
parent
0eb5ab8250
commit
9309eac111
@ -837,5 +837,11 @@ Wed Mar 1 10:49:03 CET 2000
|
|||||||
|
|
||||||
- Synced preproc.y with gram.y.
|
- Synced preproc.y with gram.y.
|
||||||
- Added output of arrays.
|
- Added output of arrays.
|
||||||
|
|
||||||
|
Thu Mar 2 11:25:09 CET 2000
|
||||||
|
|
||||||
|
- Fixed some parsing problems. A variable can now be a reserved
|
||||||
|
SQL keyword.
|
||||||
|
- Made sure double quotes in statements are correctly quoted.
|
||||||
- Set library version to 3.1.0.
|
- Set library version to 3.1.0.
|
||||||
- Set ecpg version to 2.7.0.
|
- Set ecpg version to 2.7.0.
|
||||||
|
@ -39,7 +39,7 @@ extern const char *get_dtype(enum ECPGdtype);
|
|||||||
extern void lex_init(void);
|
extern void lex_init(void);
|
||||||
extern char *make_str(const char *);
|
extern char *make_str(const char *);
|
||||||
extern void output_line_number(void);
|
extern void output_line_number(void);
|
||||||
extern void output_statement(char *, int, char *);
|
extern void output_statement(char *, int, char *, char *, struct arguments *, struct arguments *);
|
||||||
extern void output_simple_statement(char *);
|
extern void output_simple_statement(char *);
|
||||||
extern char *hashline_number(void);
|
extern char *hashline_number(void);
|
||||||
extern int yyparse(void);
|
extern int yyparse(void);
|
||||||
|
@ -13,7 +13,15 @@ output_line_number()
|
|||||||
void
|
void
|
||||||
output_simple_statement(char *cmd)
|
output_simple_statement(char *cmd)
|
||||||
{
|
{
|
||||||
fputs(cmd, yyout);
|
int i, j = strlen(cmd);;
|
||||||
|
|
||||||
|
/* do this char by char as we have to filter '\"' */
|
||||||
|
for (i = 0; i < j; i++) {
|
||||||
|
if (cmd[i] != '"')
|
||||||
|
fputc(cmd[i], yyout);
|
||||||
|
else
|
||||||
|
fputs("\\\"", yyout);
|
||||||
|
}
|
||||||
output_line_number();
|
output_line_number();
|
||||||
free(cmd);
|
free(cmd);
|
||||||
}
|
}
|
||||||
@ -86,19 +94,20 @@ hashline_number(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
output_statement(char * stmt, int mode, char *descriptor)
|
output_statement(char * stmt, int mode, char *descriptor,
|
||||||
|
char *con, struct arguments *insert, struct arguments *result)
|
||||||
{
|
{
|
||||||
int i, j = strlen(stmt);
|
int i, j = strlen(stmt);
|
||||||
|
|
||||||
if (descriptor == NULL)
|
if (descriptor == NULL)
|
||||||
fprintf(yyout, "{ ECPGdo(__LINE__, %s, \"", connection ? connection : "NULL");
|
fprintf(yyout, "{ ECPGdo(__LINE__, %s, \"", con ? con : "NULL");
|
||||||
else
|
else
|
||||||
fprintf(yyout, "{ ECPGdo_descriptor(__LINE__, %s, \"%s\", \"",
|
fprintf(yyout, "{ ECPGdo_descriptor(__LINE__, %s, \"%s\", \"",
|
||||||
connection ? connection : "NULL", descriptor);
|
con ? con : "NULL", descriptor);
|
||||||
|
|
||||||
/* do this char by char as we have to filter '\"' */
|
/* do this char by char as we have to filter '\"' */
|
||||||
for (i = 0; i < j; i++) {
|
for (i = 0; i < j; i++) {
|
||||||
if (stmt[i] != '\"')
|
if (stmt[i] != '"')
|
||||||
fputc(stmt[i], yyout);
|
fputc(stmt[i], yyout);
|
||||||
else
|
else
|
||||||
fputs("\\\"", yyout);
|
fputs("\\\"", yyout);
|
||||||
@ -109,9 +118,9 @@ output_statement(char * stmt, int mode, char *descriptor)
|
|||||||
fputs("\", ", yyout);
|
fputs("\", ", yyout);
|
||||||
|
|
||||||
/* dump variables to C file */
|
/* dump variables to C file */
|
||||||
dump_variables(argsinsert, 1);
|
dump_variables(insert, 1);
|
||||||
fputs("ECPGt_EOIT, ", yyout);
|
fputs("ECPGt_EOIT, ", yyout);
|
||||||
dump_variables(argsresult, 1);
|
dump_variables(result, 1);
|
||||||
fputs("ECPGt_EORT);", yyout);
|
fputs("ECPGt_EORT);", yyout);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -120,6 +129,7 @@ output_statement(char * stmt, int mode, char *descriptor)
|
|||||||
mode |= 2;
|
mode |= 2;
|
||||||
whenever_action(mode);
|
whenever_action(mode);
|
||||||
free(stmt);
|
free(stmt);
|
||||||
|
if (descriptor != NULL)
|
||||||
free(descriptor);
|
free(descriptor);
|
||||||
if (connection != NULL)
|
if (connection != NULL)
|
||||||
free(connection);
|
free(connection);
|
||||||
|
@ -350,17 +350,18 @@ make_name(void)
|
|||||||
%type <str> storage_clause opt_initializer c_anything blockstart
|
%type <str> storage_clause opt_initializer c_anything blockstart
|
||||||
%type <str> blockend variable_list variable c_thing c_term
|
%type <str> blockend variable_list variable c_thing c_term
|
||||||
%type <str> opt_pointer cvariable ECPGDisconnect dis_name storage_modifier
|
%type <str> opt_pointer cvariable ECPGDisconnect dis_name storage_modifier
|
||||||
%type <str> stmt symbol opt_symbol ECPGRelease execstring server_name
|
%type <str> stmt ECPGRelease execstring server_name
|
||||||
%type <str> connection_object opt_server opt_port c_stuff opt_reference
|
%type <str> connection_object opt_server opt_port c_stuff opt_reference
|
||||||
%type <str> user_name opt_user char_variable ora_user ident
|
%type <str> user_name opt_user char_variable ora_user ident
|
||||||
%type <str> db_prefix server opt_options opt_connection_name c_list
|
%type <str> db_prefix server opt_options opt_connection_name c_list
|
||||||
%type <str> ECPGSetConnection cpp_line ECPGTypedef c_args
|
%type <str> ECPGSetConnection cpp_line ECPGTypedef c_args ECPGKeywords
|
||||||
%type <str> enum_type civariableonly ECPGCursorStmt ECPGDeallocate
|
%type <str> enum_type civariableonly ECPGCursorStmt ECPGDeallocate
|
||||||
%type <str> ECPGFree ECPGDeclare ECPGVar opt_at enum_definition
|
%type <str> ECPGFree ECPGDeclare ECPGVar opt_at enum_definition
|
||||||
%type <str> struct_type s_struct declaration declarations variable_declarations
|
%type <str> struct_type s_struct declaration declarations variable_declarations
|
||||||
%type <str> s_struct s_union union_type ECPGSetAutocommit on_off
|
%type <str> s_struct s_union union_type ECPGSetAutocommit on_off
|
||||||
%type <str> ECPGAllocateDescr ECPGDeallocateDescr
|
%type <str> ECPGAllocateDescr ECPGDeallocateDescr symbol opt_symbol
|
||||||
%type <str> ECPGGetDescriptorHeader
|
%type <str> ECPGGetDescriptorHeader ECPGColId ECPGColLabel ECPGTypeName
|
||||||
|
%type <str> ECPGLabelTypeName
|
||||||
|
|
||||||
%type <descriptor> ECPGFetchDescStmt ECPGGetDescriptor
|
%type <descriptor> ECPGFetchDescStmt ECPGGetDescriptor
|
||||||
|
|
||||||
@ -391,64 +392,64 @@ statement: ecpgstart opt_at stmt ';' { connection = NULL; }
|
|||||||
|
|
||||||
opt_at: SQL_AT connection_target { connection = $2; }
|
opt_at: SQL_AT connection_target { connection = $2; }
|
||||||
|
|
||||||
stmt: AlterTableStmt { output_statement($1, 0, NULL); }
|
stmt: AlterTableStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| AlterGroupStmt { output_statement($1, 0, NULL); }
|
| AlterGroupStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| AlterUserStmt { output_statement($1, 0, NULL); }
|
| AlterUserStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ClosePortalStmt { output_statement($1, 0, NULL); }
|
| ClosePortalStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CommentStmt { output_statement($1, 0, NULL); }
|
| CommentStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CopyStmt { output_statement($1, 0, NULL); }
|
| CopyStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreateStmt { output_statement($1, 0, NULL); }
|
| CreateStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreateAsStmt { output_statement($1, 0, NULL); }
|
| CreateAsStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreateGroupStmt { output_statement($1, 0, NULL); }
|
| CreateGroupStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreateSeqStmt { output_statement($1, 0, NULL); }
|
| CreateSeqStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreatePLangStmt { output_statement($1, 0, NULL); }
|
| CreatePLangStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreateTrigStmt { output_statement($1, 0, NULL); }
|
| CreateTrigStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreateUserStmt { output_statement($1, 0, NULL); }
|
| CreateUserStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ClusterStmt { output_statement($1, 0, NULL); }
|
| ClusterStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DefineStmt { output_statement($1, 0, NULL); }
|
| DefineStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DropStmt { output_statement($1, 0, NULL); }
|
| DropStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| TruncateStmt { output_statement($1, 0, NULL); }
|
| TruncateStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DropGroupStmt { output_statement($1, 0, NULL); }
|
| DropGroupStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DropPLangStmt { output_statement($1, 0, NULL); }
|
| DropPLangStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DropTrigStmt { output_statement($1, 0, NULL); }
|
| DropTrigStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DropUserStmt { output_statement($1, 0, NULL); }
|
| DropUserStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ExtendStmt { output_statement($1, 0, NULL); }
|
| ExtendStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ExplainStmt { output_statement($1, 0, NULL); }
|
| ExplainStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| FetchStmt { output_statement($1, 1, NULL); }
|
| FetchStmt { output_statement($1, 1, NULL, connection, argsinsert, argsresult); }
|
||||||
| GrantStmt { output_statement($1, 0, NULL); }
|
| GrantStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| IndexStmt { output_statement($1, 0, NULL); }
|
| IndexStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ListenStmt { output_statement($1, 0, NULL); }
|
| ListenStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| UnlistenStmt { output_statement($1, 0, NULL); }
|
| UnlistenStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| LockStmt { output_statement($1, 0, NULL); }
|
| LockStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ProcedureStmt { output_statement($1, 0, NULL); }
|
| ProcedureStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ReindexStmt { output_statement($1, 0, NULL); }
|
| ReindexStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| RemoveAggrStmt { output_statement($1, 0, NULL); }
|
| RemoveAggrStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| RemoveOperStmt { output_statement($1, 0, NULL); }
|
| RemoveOperStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| RemoveFuncStmt { output_statement($1, 0, NULL); }
|
| RemoveFuncStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| RemoveStmt { output_statement($1, 0, NULL); }
|
| RemoveStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| RenameStmt { output_statement($1, 0, NULL); }
|
| RenameStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| RevokeStmt { output_statement($1, 0, NULL); }
|
| RevokeStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| OptimizableStmt {
|
| OptimizableStmt {
|
||||||
if (strncmp($1, "/* " , sizeof("/* ")-1) == 0)
|
if (strncmp($1, "/* " , sizeof("/* ")-1) == 0)
|
||||||
output_simple_statement($1);
|
output_simple_statement($1);
|
||||||
else
|
else
|
||||||
output_statement($1, 1, NULL);
|
output_statement($1, 1, NULL, connection, argsinsert, argsresult);
|
||||||
}
|
}
|
||||||
| RuleStmt { output_statement($1, 0, NULL); }
|
| RuleStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| TransactionStmt {
|
| TransactionStmt {
|
||||||
fprintf(yyout, "{ ECPGtrans(__LINE__, %s, \"%s\");", connection ? connection : "NULL", $1);
|
fprintf(yyout, "{ ECPGtrans(__LINE__, %s, \"%s\");", connection ? connection : "NULL", $1);
|
||||||
whenever_action(2);
|
whenever_action(2);
|
||||||
free($1);
|
free($1);
|
||||||
}
|
}
|
||||||
| ViewStmt { output_statement($1, 0, NULL); }
|
| ViewStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| LoadStmt { output_statement($1, 0, NULL); }
|
| LoadStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| CreatedbStmt { output_statement($1, 0, NULL); }
|
| CreatedbStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| DropdbStmt { output_statement($1, 0, NULL); }
|
| DropdbStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| VacuumStmt { output_statement($1, 0, NULL); }
|
| VacuumStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| VariableSetStmt { output_statement($1, 0, NULL); }
|
| VariableSetStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| VariableShowStmt { output_statement($1, 0, NULL); }
|
| VariableShowStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| VariableResetStmt { output_statement($1, 0, NULL); }
|
| VariableResetStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ConstraintsSetStmt { output_statement($1, 0, NULL); }
|
| ConstraintsSetStmt { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ECPGAllocateDescr { fprintf(yyout,"ECPGallocate_desc(__LINE__, \"%s\");",$1);
|
| ECPGAllocateDescr { fprintf(yyout,"ECPGallocate_desc(__LINE__, \"%s\");",$1);
|
||||||
whenever_action(0);
|
whenever_action(0);
|
||||||
free($1);
|
free($1);
|
||||||
@ -488,8 +489,8 @@ stmt: AlterTableStmt { output_statement($1, 0, NULL); }
|
|||||||
whenever_action(2);
|
whenever_action(2);
|
||||||
free($1);
|
free($1);
|
||||||
}
|
}
|
||||||
| ECPGExecute { output_statement($1, 0, NULL); }
|
| ECPGExecute { output_statement($1, 0, NULL, connection, argsinsert, argsresult); }
|
||||||
| ECPGFetchDescStmt { output_statement($1.str, 1, $1.name); }
|
| ECPGFetchDescStmt { output_statement($1.str, 1, $1.name, connection, argsinsert, argsresult); }
|
||||||
| ECPGFree {
|
| ECPGFree {
|
||||||
fprintf(yyout, "{ ECPGdeallocate(__LINE__, \"%s\");", $1);
|
fprintf(yyout, "{ ECPGdeallocate(__LINE__, \"%s\");", $1);
|
||||||
|
|
||||||
@ -509,6 +510,7 @@ stmt: AlterTableStmt { output_statement($1, 0, NULL); }
|
|||||||
}
|
}
|
||||||
| ECPGOpen {
|
| ECPGOpen {
|
||||||
struct cursor *ptr;
|
struct cursor *ptr;
|
||||||
|
struct arguments *p;
|
||||||
|
|
||||||
for (ptr = cur; ptr != NULL; ptr=ptr->next)
|
for (ptr = cur; ptr != NULL; ptr=ptr->next)
|
||||||
{
|
{
|
||||||
@ -522,15 +524,14 @@ stmt: AlterTableStmt { output_statement($1, 0, NULL); }
|
|||||||
mmerror(ET_ERROR, errortext);
|
mmerror(ET_ERROR, errortext);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(yyout, "{ ECPGdo(__LINE__, %s, \"%s\",", ptr->connection ? ptr->connection : "NULL", ptr->command);
|
/* merge variables given in prepare statement with those given here */
|
||||||
/* dump variables to C file*/
|
for (p = argsinsert; p && p->next; p = p->next);
|
||||||
dump_variables(ptr->argsinsert, 0);
|
if (p)
|
||||||
dump_variables(argsinsert, 0);
|
p->next = ptr->argsinsert;
|
||||||
fputs("ECPGt_EOIT, ", yyout);
|
else
|
||||||
dump_variables(ptr->argsresult, 0);
|
argsinsert = ptr->argsinsert;
|
||||||
fputs("ECPGt_EORT);", yyout);
|
|
||||||
whenever_action(2);
|
output_statement(ptr->command, 0, NULL, ptr->connection, argsinsert, ptr->argsresult);
|
||||||
free($1);
|
|
||||||
}
|
}
|
||||||
| ECPGPrepare {
|
| ECPGPrepare {
|
||||||
if (connection)
|
if (connection)
|
||||||
@ -3840,138 +3841,10 @@ TypeId: ColId
|
|||||||
* list due to shift/reduce conflicts in yacc. If so, move
|
* list due to shift/reduce conflicts in yacc. If so, move
|
||||||
* down to the ColLabel entity. - thomas 1997-11-06
|
* down to the ColLabel entity. - thomas 1997-11-06
|
||||||
*/
|
*/
|
||||||
ColId: ident { $$ = $1; }
|
ColId: ECPGColId { $$ = $1; }
|
||||||
| datetime { $$ = $1; }
|
| ECPGTypeName { $$ = $1; }
|
||||||
| ABSOLUTE { $$ = make_str("absolute"); }
|
|
||||||
| ACCESS { $$ = make_str("access"); }
|
|
||||||
| ACTION { $$ = make_str("action"); }
|
|
||||||
| AFTER { $$ = make_str("after"); }
|
|
||||||
| AGGREGATE { $$ = make_str("aggregate"); }
|
|
||||||
| BACKWARD { $$ = make_str("backward"); }
|
|
||||||
| BEFORE { $$ = make_str("before"); }
|
|
||||||
| CACHE { $$ = make_str("cache"); }
|
|
||||||
| COMMENT { $$ = make_str("comment"); }
|
|
||||||
| COMMITTED { $$ = make_str("committed"); }
|
|
||||||
| CONSTRAINTS { $$ = make_str("constraints"); }
|
|
||||||
| CREATEDB { $$ = make_str("createdb"); }
|
|
||||||
| CREATEUSER { $$ = make_str("createuser"); }
|
|
||||||
| CYCLE { $$ = make_str("cycle"); }
|
|
||||||
| DATABASE { $$ = make_str("database"); }
|
|
||||||
| DEFERRED { $$ = make_str("deferred"); }
|
|
||||||
| DELIMITERS { $$ = make_str("delimiters"); }
|
|
||||||
| DOUBLE { $$ = make_str("double"); }
|
|
||||||
| EACH { $$ = make_str("each"); }
|
|
||||||
| ENCODING { $$ = make_str("encoding"); }
|
|
||||||
| EXCLUSIVE { $$ = make_str("exclusive"); }
|
|
||||||
| FORWARD { $$ = make_str("forward"); }
|
|
||||||
| FUNCTION { $$ = make_str("function"); }
|
|
||||||
| HANDLER { $$ = make_str("handler"); }
|
|
||||||
| IMMEDIATE { $$ = make_str("immediate"); }
|
|
||||||
| INCREMENT { $$ = make_str("increment"); }
|
|
||||||
| INDEX { $$ = make_str("index"); }
|
|
||||||
| INHERITS { $$ = make_str("inherits"); }
|
|
||||||
| INSENSITIVE { $$ = make_str("insensitive"); }
|
|
||||||
| INSTEAD { $$ = make_str("instead"); }
|
|
||||||
| INTERVAL { $$ = make_str("interval"); }
|
|
||||||
| ISNULL { $$ = make_str("isnull"); }
|
|
||||||
| ISOLATION { $$ = make_str("isolation"); }
|
|
||||||
| KEY { $$ = make_str("key"); }
|
|
||||||
| LANGUAGE { $$ = make_str("language"); }
|
|
||||||
| LANCOMPILER { $$ = make_str("lancompiler"); }
|
|
||||||
| LEVEL { $$ = make_str("level"); }
|
|
||||||
| LOCATION { $$ = make_str("location"); }
|
|
||||||
| MATCH { $$ = make_str("match"); }
|
|
||||||
| MAXVALUE { $$ = make_str("maxvalue"); }
|
|
||||||
| MINVALUE { $$ = make_str("minvalue"); }
|
|
||||||
| MODE { $$ = make_str("mode"); }
|
|
||||||
| NEXT { $$ = make_str("next"); }
|
|
||||||
| NOCREATEDB { $$ = make_str("nocreatedb"); }
|
|
||||||
| NOCREATEUSER { $$ = make_str("nocreateuser"); }
|
|
||||||
| NOTHING { $$ = make_str("nothing"); }
|
|
||||||
| NOTNULL { $$ = make_str("notnull"); }
|
|
||||||
| OF { $$ = make_str("of"); }
|
|
||||||
| OIDS { $$ = make_str("oids"); }
|
|
||||||
| ONLY { $$ = make_str("only"); }
|
|
||||||
| OPERATOR { $$ = make_str("operator"); }
|
|
||||||
| OPTION { $$ = make_str("option"); }
|
|
||||||
| PASSWORD { $$ = make_str("password"); }
|
|
||||||
| PENDANT { $$ = make_str("pendant"); }
|
|
||||||
| PRIOR { $$ = make_str("prior"); }
|
|
||||||
| PRIVILEGES { $$ = make_str("privileges"); }
|
|
||||||
| PROCEDURAL { $$ = make_str("procedural"); }
|
|
||||||
| READ { $$ = make_str("read"); }
|
|
||||||
| RELATIVE { $$ = make_str("relative"); }
|
|
||||||
| RENAME { $$ = make_str("rename"); }
|
|
||||||
| RESTRICT { $$ = make_str("restrict"); }
|
|
||||||
| RETURNS { $$ = make_str("returns"); }
|
|
||||||
| ROW { $$ = make_str("row"); }
|
|
||||||
| RULE { $$ = make_str("rule"); }
|
|
||||||
| SCROLL { $$ = make_str("scroll"); }
|
|
||||||
| SEQUENCE { $$ = make_str("sequence"); }
|
|
||||||
| SERIAL { $$ = make_str("serial"); }
|
|
||||||
| SERIALIZABLE { $$ = make_str("serializable"); }
|
|
||||||
| SHARE { $$ = make_str("share"); }
|
|
||||||
| START { $$ = make_str("start"); }
|
|
||||||
| STATEMENT { $$ = make_str("statement"); }
|
|
||||||
| STDIN { $$ = make_str("stdin"); }
|
|
||||||
| STDOUT { $$ = make_str("stdout"); }
|
|
||||||
| SYSID { $$ = make_str("sysid"); }
|
|
||||||
| TEMP { $$ = make_str("temp"); }
|
|
||||||
| TEMPORARY { $$ = make_str("temporary"); }
|
|
||||||
| TIME { $$ = make_str("time"); }
|
|
||||||
| TIMESTAMP { $$ = make_str("timestamp"); }
|
|
||||||
| TIMEZONE_HOUR { $$ = make_str("timezone_hour"); }
|
|
||||||
| TIMEZONE_MINUTE { $$ = make_str("timezone_minute"); }
|
|
||||||
| TRIGGER { $$ = make_str("trigger"); }
|
|
||||||
| TRUNCATE { $$ = make_str("truncate"); }
|
|
||||||
| TRUSTED { $$ = make_str("trusted"); }
|
|
||||||
| TYPE_P { $$ = make_str("type"); }
|
|
||||||
| VALID { $$ = make_str("valid"); }
|
|
||||||
| VERSION { $$ = make_str("version"); }
|
|
||||||
| ZONE { $$ = make_str("zone"); }
|
|
||||||
| SQL_AT { $$ = make_str("at"); }
|
|
||||||
| SQL_BOOL { $$ = make_str("bool"); }
|
|
||||||
| SQL_BREAK { $$ = make_str("break"); }
|
|
||||||
| SQL_CALL { $$ = make_str("call"); }
|
|
||||||
| SQL_CONNECT { $$ = make_str("connect"); }
|
|
||||||
| SQL_CONTINUE { $$ = make_str("continue"); }
|
|
||||||
| SQL_COUNT { $$ = make_str("count"); }
|
|
||||||
| SQL_DATA { $$ = make_str("data"); }
|
|
||||||
| SQL_DATETIME_INTERVAL_CODE { $$ = make_str("datetime_interval_code"); }
|
|
||||||
| SQL_DATETIME_INTERVAL_PRECISION { $$ = make_str("datetime_interval_precision"); }
|
|
||||||
| SQL_DEALLOCATE { $$ = make_str("deallocate"); }
|
|
||||||
| SQL_DISCONNECT { $$ = make_str("disconnect"); }
|
|
||||||
| SQL_FOUND { $$ = make_str("found"); }
|
|
||||||
| SQL_GO { $$ = make_str("go"); }
|
|
||||||
| SQL_GOTO { $$ = make_str("goto"); }
|
|
||||||
| SQL_IDENTIFIED { $$ = make_str("identified"); }
|
|
||||||
| SQL_INDICATOR { $$ = make_str("indicator"); }
|
|
||||||
| SQL_INT { $$ = make_str("int"); }
|
|
||||||
| SQL_KEY_MEMBER { $$ = make_str("key_member"); }
|
|
||||||
| SQL_LENGTH { $$ = make_str("length"); }
|
|
||||||
| SQL_LONG { $$ = make_str("long"); }
|
|
||||||
| SQL_NAME { $$ = make_str("name"); }
|
|
||||||
| SQL_NULLABLE { $$ = make_str("nullable"); }
|
|
||||||
| SQL_OCTET_LENGTH { $$ = make_str("octet_length"); }
|
|
||||||
| SQL_OFF { $$ = make_str("off"); }
|
|
||||||
| SQL_OPEN { $$ = make_str("open"); }
|
|
||||||
| SQL_PREPARE { $$ = make_str("prepare"); }
|
|
||||||
| SQL_RELEASE { $$ = make_str("release"); }
|
|
||||||
| SQL_RETURNED_LENGTH { $$ = make_str("returned_length"); }
|
|
||||||
| SQL_RETURNED_OCTET_LENGTH { $$ = make_str("returned_octet_length"); }
|
|
||||||
| SQL_SCALE { $$ = make_str("scale"); }
|
|
||||||
| SQL_SECTION { $$ = make_str("section"); }
|
|
||||||
| SQL_SHORT { $$ = make_str("short"); }
|
|
||||||
| SQL_SIGNED { $$ = make_str("signed"); }
|
|
||||||
| SQL_SQLERROR { $$ = make_str("sqlerror"); }
|
|
||||||
| SQL_SQLPRINT { $$ = make_str("sqlprint"); }
|
|
||||||
| SQL_SQLWARNING { $$ = make_str("sqlwarning"); }
|
|
||||||
| SQL_STOP { $$ = make_str("stop"); }
|
|
||||||
| SQL_STRUCT { $$ = make_str("struct"); }
|
|
||||||
| SQL_UNSIGNED { $$ = make_str("unsigned"); }
|
|
||||||
| SQL_VAR { $$ = make_str("var"); }
|
|
||||||
| SQL_WHENEVER { $$ = make_str("whenever"); }
|
|
||||||
;
|
;
|
||||||
|
|
||||||
/* Column label
|
/* Column label
|
||||||
* Allowed labels in "AS" clauses.
|
* Allowed labels in "AS" clauses.
|
||||||
* Include TRUE/FALSE SQL3 reserved words for Postgres backward
|
* Include TRUE/FALSE SQL3 reserved words for Postgres backward
|
||||||
@ -3982,54 +3855,8 @@ ColId: ident { $$ = $1; }
|
|||||||
* rather than in ColId if there was a shift/reduce conflict
|
* rather than in ColId if there was a shift/reduce conflict
|
||||||
* when used as a full identifier. - thomas 1997-11-06
|
* when used as a full identifier. - thomas 1997-11-06
|
||||||
*/
|
*/
|
||||||
ColLabel: ColId { $$ = $1; }
|
ColLabel: ECPGLabelTypeName { $$ = $1; }
|
||||||
| ABORT_TRANS { $$ = make_str("abort"); }
|
| ECPGColLabel { $$ = $1; }
|
||||||
| ANALYZE { $$ = make_str("analyze"); }
|
|
||||||
| BINARY { $$ = make_str("binary"); }
|
|
||||||
| CASE { $$ = make_str("case"); }
|
|
||||||
| CLUSTER { $$ = make_str("cluster"); }
|
|
||||||
| COALESCE { $$ = make_str("coalesce"); }
|
|
||||||
| CONSTRAINT { $$ = make_str("constraint"); }
|
|
||||||
| COPY { $$ = make_str("copy"); }
|
|
||||||
| CURRENT { $$ = make_str("current"); }
|
|
||||||
| CURRENT_USER { $$ = make_str("current_user"); }
|
|
||||||
| DEC { $$ = make_str("dec"); }
|
|
||||||
| DECIMAL { $$ = make_str("decimal"); }
|
|
||||||
| DEFERRABLE { $$ = make_str("deferrable"); }
|
|
||||||
| DO { $$ = make_str("do"); }
|
|
||||||
| ELSE { $$ = make_str("else"); }
|
|
||||||
| END_TRANS { $$ = make_str("end"); }
|
|
||||||
| EXPLAIN { $$ = make_str("explain"); }
|
|
||||||
| EXTEND { $$ = make_str("extend"); }
|
|
||||||
| FALSE_P { $$ = make_str("false"); }
|
|
||||||
| FLOAT { $$ = make_str("float"); }
|
|
||||||
| FOREIGN { $$ = make_str("foreign"); }
|
|
||||||
| GLOBAL { $$ = make_str("global"); }
|
|
||||||
| GROUP { $$ = make_str("group"); }
|
|
||||||
| INITIALLY { $$ = make_str("initially"); }
|
|
||||||
| LISTEN { $$ = make_str("listen"); }
|
|
||||||
| LOAD { $$ = make_str("load"); }
|
|
||||||
| LOCK_P { $$ = make_str("lock"); }
|
|
||||||
| MOVE { $$ = make_str("move"); }
|
|
||||||
| NEW { $$ = make_str("new"); }
|
|
||||||
| NONE { $$ = make_str("none"); }
|
|
||||||
| NULLIF { $$ = make_str("nullif"); }
|
|
||||||
| NUMERIC { $$ = make_str("numeric"); }
|
|
||||||
| ORDER { $$ = make_str("order"); }
|
|
||||||
| POSITION { $$ = make_str("position"); }
|
|
||||||
| PRECISION { $$ = make_str("precision"); }
|
|
||||||
| RESET { $$ = make_str("reset"); }
|
|
||||||
| SESSION_USER { $$ = make_str("session_user"); }
|
|
||||||
| SETOF { $$ = make_str("setof"); }
|
|
||||||
| SHOW { $$ = make_str("show"); }
|
|
||||||
| TABLE { $$ = make_str("table"); }
|
|
||||||
| THEN { $$ = make_str("then"); }
|
|
||||||
| TRANSACTION { $$ = make_str("transaction"); }
|
|
||||||
| TRUE_P { $$ = make_str("true"); }
|
|
||||||
| USER { $$ = make_str("user"); }
|
|
||||||
| VACUUM { $$ = make_str("vacuum"); }
|
|
||||||
| VERBOSE { $$ = make_str("verbose"); }
|
|
||||||
| WHEN { $$ = make_str("when"); }
|
|
||||||
;
|
;
|
||||||
|
|
||||||
SpecialRuleRelation: CURRENT
|
SpecialRuleRelation: CURRENT
|
||||||
@ -4364,7 +4191,7 @@ type: simple_type
|
|||||||
$$.type_dimension = -1;
|
$$.type_dimension = -1;
|
||||||
$$.type_index = -1;
|
$$.type_index = -1;
|
||||||
}
|
}
|
||||||
| symbol
|
| ECPGColLabel
|
||||||
{
|
{
|
||||||
/* this is for typedef'ed types */
|
/* this is for typedef'ed types */
|
||||||
struct typedefs *this = get_typedef($1);
|
struct typedefs *this = get_typedef($1);
|
||||||
@ -4427,9 +4254,6 @@ s_union: UNION opt_symbol
|
|||||||
$$ = cat2_str(make_str("union"), $2);
|
$$ = cat2_str(make_str("union"), $2);
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_symbol: /* empty */ { $$ = EMPTY; }
|
|
||||||
| symbol { $$ = $1; }
|
|
||||||
|
|
||||||
simple_type: unsigned_type { $$=$1; }
|
simple_type: unsigned_type { $$=$1; }
|
||||||
| opt_signed signed_type { $$=$2; }
|
| opt_signed signed_type { $$=$2; }
|
||||||
;
|
;
|
||||||
@ -4469,7 +4293,7 @@ variable_list: variable
|
|||||||
$$ = cat_str(3, $1, make_str(","), $3);
|
$$ = cat_str(3, $1, make_str(","), $3);
|
||||||
}
|
}
|
||||||
|
|
||||||
variable: opt_pointer symbol opt_array_bounds opt_initializer
|
variable: opt_pointer ECPGColLabel opt_array_bounds opt_initializer
|
||||||
{
|
{
|
||||||
struct ECPGtype * type;
|
struct ECPGtype * type;
|
||||||
int dimension = $3.index1; /* dimension of array */
|
int dimension = $3.index1; /* dimension of array */
|
||||||
@ -4788,7 +4612,7 @@ ECPGSetConnection: SET SQL_CONNECTION to_equal connection_object
|
|||||||
/*
|
/*
|
||||||
* define a new type for embedded SQL
|
* define a new type for embedded SQL
|
||||||
*/
|
*/
|
||||||
ECPGTypedef: TYPE_P symbol IS type opt_type_array_bounds opt_reference
|
ECPGTypedef: TYPE_P ECPGColLabel IS type opt_type_array_bounds opt_reference
|
||||||
{
|
{
|
||||||
/* add entry to list */
|
/* add entry to list */
|
||||||
struct typedefs *ptr, *this;
|
struct typedefs *ptr, *this;
|
||||||
@ -4880,7 +4704,7 @@ opt_reference: SQL_REFERENCE { $$ = make_str("reference"); }
|
|||||||
/*
|
/*
|
||||||
* define the type of one variable for embedded SQL
|
* define the type of one variable for embedded SQL
|
||||||
*/
|
*/
|
||||||
ECPGVar: SQL_VAR symbol IS type opt_type_array_bounds opt_reference
|
ECPGVar: SQL_VAR ECPGColLabel IS type opt_type_array_bounds opt_reference
|
||||||
{
|
{
|
||||||
struct variable *p = find_variable($2);
|
struct variable *p = find_variable($2);
|
||||||
int dimension = $5.index1;
|
int dimension = $5.index1;
|
||||||
@ -4998,110 +4822,204 @@ action : SQL_CONTINUE {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* some other stuff for ecpg */
|
/* some other stuff for ecpg */
|
||||||
/*
|
|
||||||
* no longer used
|
/* additional ColId entries */
|
||||||
ecpg_expr: c_expr
|
ECPGKeywords: SQL_AT { $$ = make_str("at"); }
|
||||||
{ $$ = $1; }
|
| SQL_BREAK { $$ = make_str("break"); }
|
||||||
| a_expr TYPECAST Typename
|
| SQL_CALL { $$ = make_str("call"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("::"), $3); }
|
| SQL_CONNECT { $$ = make_str("connect"); }
|
||||||
| '-' ecpg_expr %prec UMINUS
|
| SQL_CONTINUE { $$ = make_str("continue"); }
|
||||||
{ $$ = cat2_str(make_str("-"), $2); }
|
| SQL_COUNT { $$ = make_str("count"); }
|
||||||
| '%' ecpg_expr
|
| SQL_DATA { $$ = make_str("data"); }
|
||||||
{ $$ = cat2_str(make_str("%"), $2); }
|
| SQL_DATETIME_INTERVAL_CODE { $$ = make_str("datetime_interval_code"); }
|
||||||
| '^' ecpg_expr
|
| SQL_DATETIME_INTERVAL_PRECISION { $$ = make_str("datetime_interval_precision"); }
|
||||||
{ $$ = cat2_str(make_str("^"), $2); }
|
| SQL_DEALLOCATE { $$ = make_str("deallocate"); }
|
||||||
| '|' ecpg_expr
|
| SQL_DISCONNECT { $$ = make_str("disconnect"); }
|
||||||
{ $$ = cat2_str(make_str("|"), $2); }
|
| SQL_FOUND { $$ = make_str("found"); }
|
||||||
| ';' a_expr
|
| SQL_GO { $$ = make_str("go"); }
|
||||||
{ $$ = cat2_str(make_str(";"), $2); }
|
| SQL_GOTO { $$ = make_str("goto"); }
|
||||||
| a_expr '%'
|
| SQL_IDENTIFIED { $$ = make_str("identified"); }
|
||||||
{ $$ = cat2_str($1, make_str("%")); }
|
| SQL_INDICATOR { $$ = make_str("indicator"); }
|
||||||
| a_expr '^'
|
| SQL_KEY_MEMBER { $$ = make_str("key_member"); }
|
||||||
{ $$ = cat2_str($1, make_str("^")); }
|
| SQL_LENGTH { $$ = make_str("length"); }
|
||||||
| a_expr '|'
|
| SQL_NAME { $$ = make_str("name"); }
|
||||||
{ $$ = cat2_str($1, make_str("|")); }
|
| SQL_NULLABLE { $$ = make_str("nullable"); }
|
||||||
| a_expr '+' ecpg_expr
|
| SQL_OCTET_LENGTH { $$ = make_str("octet_length"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("+"), $3); }
|
| SQL_OFF { $$ = make_str("off"); }
|
||||||
| a_expr '-' ecpg_expr
|
| SQL_OPEN { $$ = make_str("open"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("-"), $3); }
|
| SQL_PREPARE { $$ = make_str("prepare"); }
|
||||||
| a_expr '*' ecpg_expr
|
| SQL_RELEASE { $$ = make_str("release"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("*"), $3); }
|
| SQL_RETURNED_LENGTH { $$ = make_str("returned_length"); }
|
||||||
| a_expr '/' ecpg_expr
|
| SQL_RETURNED_OCTET_LENGTH { $$ = make_str("returned_octet_length"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("/"), $3); }
|
| SQL_SCALE { $$ = make_str("scale"); }
|
||||||
| a_expr '%' ecpg_expr
|
| SQL_SECTION { $$ = make_str("section"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("%"), $3); }
|
| SQL_SQLERROR { $$ = make_str("sqlerror"); }
|
||||||
| a_expr '^' ecpg_expr
|
| SQL_SQLPRINT { $$ = make_str("sqlprint"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("^"), $3); }
|
| SQL_SQLWARNING { $$ = make_str("sqlwarning"); }
|
||||||
| a_expr '|' ecpg_expr
|
| SQL_STOP { $$ = make_str("stop"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("|"), $3); }
|
| SQL_VAR { $$ = make_str("var"); }
|
||||||
| a_expr '<' ecpg_expr
|
| SQL_WHENEVER { $$ = make_str("whenever"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("<"), $3); }
|
;
|
||||||
| a_expr '>' ecpg_expr
|
|
||||||
{ $$ = cat_str(3, $1, make_str(">"), $3); }
|
ECPGTypeName: SQL_BOOL { $$ = make_str("bool"); }
|
||||||
| a_expr '=' NULL_P
|
| SQL_INT { $$ = make_str("int"); }
|
||||||
{ $$ = cat2_str($1, make_str("= NULL")); }
|
| SQL_LONG { $$ = make_str("long"); }
|
||||||
| NULL_P '=' ecpg_expr
|
| SQL_SHORT { $$ = make_str("short"); }
|
||||||
{ $$ = cat2_str(make_str("= NULL"), $3); }
|
| SQL_STRUCT { $$ = make_str("struct"); }
|
||||||
| a_expr '=' ecpg_expr
|
| SQL_SIGNED { $$ = make_str("signed"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("="), $3); }
|
| SQL_UNSIGNED { $$ = make_str("unsigned"); }
|
||||||
| a_expr Op ecpg_expr
|
| DOUBLE { $$ = make_str("double"); }
|
||||||
{ $$ = cat_str(3, $1, make_str("="), $3); }
|
|
||||||
| Op ecpg_expr
|
ECPGLabelTypeName: FLOAT { $$ = make_str("float"); }
|
||||||
{ $$ = cat2_str($1, $2); }
|
| ECPGTypeName { $$ = $1; }
|
||||||
| a_expr Op
|
;
|
||||||
{ $$ = cat2_str($1, $2); }
|
|
||||||
| a_expr AND ecpg_expr
|
opt_symbol: symbol { $$ = $1; }
|
||||||
{ $$ = cat_str(3, $1, make_str("and"), $3); }
|
| /*EMPTY*/ { $$ = EMPTY; }
|
||||||
| a_expr OR ecpg_expr
|
;
|
||||||
{ $$ = cat_str(3, $1, make_str("or"), $3); }
|
|
||||||
| NOT ecpg_expr
|
symbol: ColLabel { $$ = $1; }
|
||||||
{ $$ = cat2_str(make_str("not"), $2); }
|
|
||||||
| a_expr LIKE ecpg_expr
|
ECPGColId: /* to be used instead of ColId */
|
||||||
{ $$ = cat_str(3, $1, make_str("like"), $3); }
|
ECPGKeywords { $$ = $1; }
|
||||||
| a_expr NOT LIKE ecpg_expr
|
| ident { $$ = $1; }
|
||||||
{ $$ = cat_str(3, $1, make_str("not like"), $4); }
|
| datetime { $$ = $1; }
|
||||||
| a_expr ISNULL
|
| ABSOLUTE { $$ = make_str("absolute"); }
|
||||||
{ $$ = cat2_str($1, make_str("isnull")); }
|
| ACCESS { $$ = make_str("access"); }
|
||||||
| a_expr IS NULL_P
|
| ACTION { $$ = make_str("action"); }
|
||||||
{ $$ = cat2_str($1, make_str("is null")); }
|
| AFTER { $$ = make_str("after"); }
|
||||||
| a_expr NOTNULL
|
| AGGREGATE { $$ = make_str("aggregate"); }
|
||||||
{ $$ = cat2_str($1, make_str("notnull")); }
|
| BACKWARD { $$ = make_str("backward"); }
|
||||||
| a_expr IS NOT NULL_P
|
| BEFORE { $$ = make_str("before"); }
|
||||||
{ $$ = cat2_str($1, make_str("is not null")); }
|
| CACHE { $$ = make_str("cache"); }
|
||||||
| a_expr IS TRUE_P
|
| COMMENT { $$ = make_str("comment"); }
|
||||||
{ $$ = cat2_str($1, make_str("is true")); }
|
| COMMITTED { $$ = make_str("committed"); }
|
||||||
| a_expr IS NOT FALSE_P
|
| CONSTRAINTS { $$ = make_str("constraints"); }
|
||||||
{ $$ = cat2_str($1, make_str("is not false")); }
|
| CREATEDB { $$ = make_str("createdb"); }
|
||||||
| a_expr IS FALSE_P
|
| CREATEUSER { $$ = make_str("createuser"); }
|
||||||
{ $$ = cat2_str($1, make_str("is false")); }
|
| CYCLE { $$ = make_str("cycle"); }
|
||||||
| a_expr IS NOT TRUE_P
|
| DATABASE { $$ = make_str("database"); }
|
||||||
{ $$ = cat2_str($1, make_str("is not true")); }
|
| DEFERRED { $$ = make_str("deferred"); }
|
||||||
| a_expr BETWEEN b_expr AND b_expr
|
| DELIMITERS { $$ = make_str("delimiters"); }
|
||||||
{
|
| EACH { $$ = make_str("each"); }
|
||||||
$$ = cat_str(5, $1, make_str("between"), $3, make_str("and"), $5);
|
| ENCODING { $$ = make_str("encoding"); }
|
||||||
}
|
| EXCLUSIVE { $$ = make_str("exclusive"); }
|
||||||
| a_expr NOT BETWEEN b_expr AND b_expr
|
| FORWARD { $$ = make_str("forward"); }
|
||||||
{
|
| FUNCTION { $$ = make_str("function"); }
|
||||||
$$ = cat_str(5, $1, make_str("not between"), $4, make_str("and"), $6);
|
| HANDLER { $$ = make_str("handler"); }
|
||||||
}
|
| IMMEDIATE { $$ = make_str("immediate"); }
|
||||||
| a_expr IN '(' in_expr ')'
|
| INCREMENT { $$ = make_str("increment"); }
|
||||||
{
|
| INDEX { $$ = make_str("index"); }
|
||||||
$$ = cat_str(4, $1, make_str(" in ("), $4, make_str(")"));
|
| INHERITS { $$ = make_str("inherits"); }
|
||||||
}
|
| INSENSITIVE { $$ = make_str("insensitive"); }
|
||||||
| a_expr NOT IN '(' in_expr ')'
|
| INSTEAD { $$ = make_str("instead"); }
|
||||||
{
|
| INTERVAL { $$ = make_str("interval"); }
|
||||||
$$ = cat_str(4, $1, make_str(" not in ("), $5, make_str(")"));
|
| ISNULL { $$ = make_str("isnull"); }
|
||||||
}
|
| ISOLATION { $$ = make_str("isolation"); }
|
||||||
| a_expr all_Op sub_type '(' SubSelect ')'
|
| KEY { $$ = make_str("key"); }
|
||||||
{
|
| LANGUAGE { $$ = make_str("language"); }
|
||||||
$$ = cat_str(4, $1, $2, $3, cat_str(3, make_str("("), $5, make_str(")")));
|
| LANCOMPILER { $$ = make_str("lancompiler"); }
|
||||||
}
|
| LEVEL { $$ = make_str("level"); }
|
||||||
| row_expr
|
| LOCATION { $$ = make_str("location"); }
|
||||||
{ $$ = $1; }
|
| MATCH { $$ = make_str("match"); }
|
||||||
| civariableonly
|
| MAXVALUE { $$ = make_str("maxvalue"); }
|
||||||
{ $$ = $1; }
|
| MINVALUE { $$ = make_str("minvalue"); }
|
||||||
|
| MODE { $$ = make_str("mode"); }
|
||||||
|
| NEXT { $$ = make_str("next"); }
|
||||||
|
| NOCREATEDB { $$ = make_str("nocreatedb"); }
|
||||||
|
| NOCREATEUSER { $$ = make_str("nocreateuser"); }
|
||||||
|
| NOTHING { $$ = make_str("nothing"); }
|
||||||
|
| NOTNULL { $$ = make_str("notnull"); }
|
||||||
|
| OF { $$ = make_str("of"); }
|
||||||
|
| OIDS { $$ = make_str("oids"); }
|
||||||
|
| ONLY { $$ = make_str("only"); }
|
||||||
|
| OPERATOR { $$ = make_str("operator"); }
|
||||||
|
| OPTION { $$ = make_str("option"); }
|
||||||
|
| PASSWORD { $$ = make_str("password"); }
|
||||||
|
| PENDANT { $$ = make_str("pendant"); }
|
||||||
|
| PRIOR { $$ = make_str("prior"); }
|
||||||
|
| PRIVILEGES { $$ = make_str("privileges"); }
|
||||||
|
| PROCEDURAL { $$ = make_str("procedural"); }
|
||||||
|
| READ { $$ = make_str("read"); }
|
||||||
|
| RELATIVE { $$ = make_str("relative"); }
|
||||||
|
| RENAME { $$ = make_str("rename"); }
|
||||||
|
| RESTRICT { $$ = make_str("restrict"); }
|
||||||
|
| RETURNS { $$ = make_str("returns"); }
|
||||||
|
| ROW { $$ = make_str("row"); }
|
||||||
|
| RULE { $$ = make_str("rule"); }
|
||||||
|
| SCROLL { $$ = make_str("scroll"); }
|
||||||
|
| SEQUENCE { $$ = make_str("sequence"); }
|
||||||
|
| SERIAL { $$ = make_str("serial"); }
|
||||||
|
| SERIALIZABLE { $$ = make_str("serializable"); }
|
||||||
|
| SHARE { $$ = make_str("share"); }
|
||||||
|
| START { $$ = make_str("start"); }
|
||||||
|
| STATEMENT { $$ = make_str("statement"); }
|
||||||
|
| STDIN { $$ = make_str("stdin"); }
|
||||||
|
| STDOUT { $$ = make_str("stdout"); }
|
||||||
|
| SYSID { $$ = make_str("sysid"); }
|
||||||
|
| TEMP { $$ = make_str("temp"); }
|
||||||
|
| TEMPORARY { $$ = make_str("temporary"); }
|
||||||
|
| TIME { $$ = make_str("time"); }
|
||||||
|
| TIMESTAMP { $$ = make_str("timestamp"); }
|
||||||
|
| TIMEZONE_HOUR { $$ = make_str("timezone_hour"); }
|
||||||
|
| TIMEZONE_MINUTE { $$ = make_str("timezone_minute"); }
|
||||||
|
| TRIGGER { $$ = make_str("trigger"); }
|
||||||
|
| TRUNCATE { $$ = make_str("truncate"); }
|
||||||
|
| TRUSTED { $$ = make_str("trusted"); }
|
||||||
|
| TYPE_P { $$ = make_str("type"); }
|
||||||
|
| VALID { $$ = make_str("valid"); }
|
||||||
|
| VERSION { $$ = make_str("version"); }
|
||||||
|
| ZONE { $$ = make_str("zone"); }
|
||||||
|
;
|
||||||
|
|
||||||
|
ECPGColLabel: ECPGColId { $$ = $1; }
|
||||||
|
| ABORT_TRANS { $$ = make_str("abort"); }
|
||||||
|
| ANALYZE { $$ = make_str("analyze"); }
|
||||||
|
| BINARY { $$ = make_str("binary"); }
|
||||||
|
| CASE { $$ = make_str("case"); }
|
||||||
|
| CLUSTER { $$ = make_str("cluster"); }
|
||||||
|
| COALESCE { $$ = make_str("coalesce"); }
|
||||||
|
| CONSTRAINT { $$ = make_str("constraint"); }
|
||||||
|
| COPY { $$ = make_str("copy"); }
|
||||||
|
| CURRENT { $$ = make_str("current"); }
|
||||||
|
| CURRENT_USER { $$ = make_str("current_user"); }
|
||||||
|
| DEC { $$ = make_str("dec"); }
|
||||||
|
| DECIMAL { $$ = make_str("decimal"); }
|
||||||
|
| DEFERRABLE { $$ = make_str("deferrable"); }
|
||||||
|
| DO { $$ = make_str("do"); }
|
||||||
|
| ELSE { $$ = make_str("else"); }
|
||||||
|
| END_TRANS { $$ = make_str("end"); }
|
||||||
|
| EXPLAIN { $$ = make_str("explain"); }
|
||||||
|
| EXTEND { $$ = make_str("extend"); }
|
||||||
|
| FALSE_P { $$ = make_str("false"); }
|
||||||
|
| FOREIGN { $$ = make_str("foreign"); }
|
||||||
|
| GLOBAL { $$ = make_str("global"); }
|
||||||
|
| GROUP { $$ = make_str("group"); }
|
||||||
|
| INITIALLY { $$ = make_str("initially"); }
|
||||||
|
| LISTEN { $$ = make_str("listen"); }
|
||||||
|
| LOAD { $$ = make_str("load"); }
|
||||||
|
| LOCK_P { $$ = make_str("lock"); }
|
||||||
|
| MOVE { $$ = make_str("move"); }
|
||||||
|
| NEW { $$ = make_str("new"); }
|
||||||
|
| NONE { $$ = make_str("none"); }
|
||||||
|
| NULLIF { $$ = make_str("nullif"); }
|
||||||
|
| NUMERIC { $$ = make_str("numeric"); }
|
||||||
|
| ORDER { $$ = make_str("order"); }
|
||||||
|
| POSITION { $$ = make_str("position"); }
|
||||||
|
| PRECISION { $$ = make_str("precision"); }
|
||||||
|
| RESET { $$ = make_str("reset"); }
|
||||||
|
| SESSION_USER { $$ = make_str("session_user"); }
|
||||||
|
| SETOF { $$ = make_str("setof"); }
|
||||||
|
| SHOW { $$ = make_str("show"); }
|
||||||
|
| TABLE { $$ = make_str("table"); }
|
||||||
|
| THEN { $$ = make_str("then"); }
|
||||||
|
| TRANSACTION { $$ = make_str("transaction"); }
|
||||||
|
| TRUE_P { $$ = make_str("true"); }
|
||||||
|
| USER { $$ = make_str("user"); }
|
||||||
|
| VACUUM { $$ = make_str("vacuum"); }
|
||||||
|
| VERBOSE { $$ = make_str("verbose"); }
|
||||||
|
| WHEN { $$ = make_str("when"); }
|
||||||
;
|
;
|
||||||
*/
|
|
||||||
|
|
||||||
into_list : coutputvariable | into_list ',' coutputvariable;
|
into_list : coutputvariable | into_list ',' coutputvariable;
|
||||||
|
|
||||||
@ -5137,8 +5055,6 @@ ident: IDENT { $$ = $1; }
|
|||||||
* C stuff
|
* C stuff
|
||||||
*/
|
*/
|
||||||
|
|
||||||
symbol: ident { $$ = $1; }
|
|
||||||
|
|
||||||
cpp_line: CPP_LINE { $$ = $1; }
|
cpp_line: CPP_LINE { $$ = $1; }
|
||||||
|
|
||||||
c_stuff: c_anything { $$ = $1; }
|
c_stuff: c_anything { $$ = $1; }
|
||||||
|
@ -222,8 +222,6 @@ dump_variables(struct arguments * list, int mode)
|
|||||||
|
|
||||||
/* Then the current element and its indicator */
|
/* Then the current element and its indicator */
|
||||||
ECPGdump_a_type(yyout, list->variable->name, list->variable->type,
|
ECPGdump_a_type(yyout, list->variable->name, list->variable->type,
|
||||||
/* (list->indicator->type->typ != ECPGt_NO_INDICATOR) ? list->indicator->name : NULL,
|
|
||||||
(list->indicator->type->typ != ECPGt_NO_INDICATOR) ? list->indicator->type : NULL, NULL, NULL);*/
|
|
||||||
list->indicator->name, list->indicator->type, NULL, NULL);
|
list->indicator->name, list->indicator->type, NULL, NULL);
|
||||||
|
|
||||||
/* Then release the list element. */
|
/* Then release the list element. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user