Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
9309eac1
Commit
9309eac1
authored
Mar 02, 2000
by
Michael Meskes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
parent
0eb5ab82
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
302 additions
and
372 deletions
+302
-372
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ChangeLog
+6
-0
src/interfaces/ecpg/preproc/extern.h
src/interfaces/ecpg/preproc/extern.h
+1
-1
src/interfaces/ecpg/preproc/output.c
src/interfaces/ecpg/preproc/output.c
+20
-10
src/interfaces/ecpg/preproc/preproc.y
src/interfaces/ecpg/preproc/preproc.y
+275
-359
src/interfaces/ecpg/preproc/variable.c
src/interfaces/ecpg/preproc/variable.c
+0
-2
No files found.
src/interfaces/ecpg/ChangeLog
View file @
9309eac1
...
@@ -837,5 +837,11 @@ Wed Mar 1 10:49:03 CET 2000
...
@@ -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.
src/interfaces/ecpg/preproc/extern.h
View file @
9309eac1
...
@@ -39,7 +39,7 @@ extern const char *get_dtype(enum ECPGdtype);
...
@@ -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
);
...
...
src/interfaces/ecpg/preproc/output.c
View file @
9309eac1
...
@@ -13,7 +13,15 @@ output_line_number()
...
@@ -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)
...
@@ -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,
\"
"
,
con
nection
?
connecti
on
:
"NULL"
);
fprintf
(
yyout
,
"{ ECPGdo(__LINE__, %s,
\"
"
,
con
?
c
on
:
"NULL"
);
else
else
fprintf
(
yyout
,
"{ ECPGdo_descriptor(__LINE__, %s,
\"
%s
\"
,
\"
"
,
fprintf
(
yyout
,
"{ ECPGdo_descriptor(__LINE__, %s,
\"
%s
\"
,
\"
"
,
con
nection
?
connecti
on
:
"NULL"
,
descriptor
);
con
?
c
on
:
"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)
...
@@ -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
(
args
insert
,
1
);
dump_variables
(
insert
,
1
);
fputs
(
"ECPGt_EOIT, "
,
yyout
);
fputs
(
"ECPGt_EOIT, "
,
yyout
);
dump_variables
(
args
result
,
1
);
dump_variables
(
result
,
1
);
fputs
(
"ECPGt_EORT);"
,
yyout
);
fputs
(
"ECPGt_EORT);"
,
yyout
);
}
}
else
else
...
@@ -120,7 +129,8 @@ output_statement(char * stmt, int mode, char *descriptor)
...
@@ -120,7 +129,8 @@ output_statement(char * stmt, int mode, char *descriptor)
mode
|=
2
;
mode
|=
2
;
whenever_action
(
mode
);
whenever_action
(
mode
);
free
(
stmt
);
free
(
stmt
);
free
(
descriptor
);
if
(
descriptor
!=
NULL
)
free
(
descriptor
);
if
(
connection
!=
NULL
)
if
(
connection
!=
NULL
)
free
(
connection
);
free
(
connection
);
}
}
...
...
src/interfaces/ecpg/preproc/preproc.y
View file @
9309eac1
...
@@ -350,17 +350,18 @@ make_name(void)
...
@@ -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; }
...
@@ -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); }
...
@@ -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,7 +510,8 @@ stmt: AlterTableStmt { output_statement($1, 0, NULL); }
...
@@ -509,7 +510,8 @@ 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)
{
{
if (strcmp(ptr->name, $1) == 0)
if (strcmp(ptr->name, $1) == 0)
...
@@ -521,16 +523,15 @@ stmt: AlterTableStmt { output_statement($1, 0, NULL); }
...
@@ -521,16 +523,15 @@ stmt: AlterTableStmt { output_statement($1, 0, NULL); }
sprintf(errortext, "trying to open undeclared cursor %s\n", $1);
sprintf(errortext, "trying to open undeclared cursor %s\n", $1);
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
...
@@ -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,55 +3855,9 @@ ColId: ident { $$ = $1; }
...
@@ -3982,55 +3855,9 @@ 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
...
@@ -4364,7 +4191,7 @@ type: simple_type
$$.type_dimension = -1;
$$.type_dimension = -1;
$$.type_index = -1;
$$.type_index = -1;
}
}
|
symbo
l
|
ECPGColLabe
l
{
{
/* 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
...
@@ -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
...
@@ -4469,7 +4293,7 @@ variable_list: variable
$$ = cat_str(3, $1, make_str(","), $3);
$$ = cat_str(3, $1, make_str(","), $3);
}
}
variable: opt_pointer
symbo
l opt_array_bounds opt_initializer
variable: opt_pointer
ECPGColLabe
l 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
...
@@ -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
symbo
l IS type opt_type_array_bounds opt_reference
ECPGTypedef: TYPE_P
ECPGColLabe
l 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"); }
...
@@ -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
symbo
l IS type opt_type_array_bounds opt_reference
ECPGVar: SQL_VAR
ECPGColLabe
l 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 {
...
@@ -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;
...
@@ -5130,15 +5048,13 @@ indicator: /* empty */ { $$ = NULL; }
...
@@ -5130,15 +5048,13 @@ indicator: /* empty */ { $$ = NULL; }
| SQL_INDICATOR cvariable { check_indicator((find_variable($2))->type); $$ = $2; }
| SQL_INDICATOR cvariable { check_indicator((find_variable($2))->type); $$ = $2; }
| SQL_INDICATOR name { check_indicator((find_variable($2))->type); $$ = $2; }
| SQL_INDICATOR name { check_indicator((find_variable($2))->type); $$ = $2; }
ident: IDENT { $$ = $1; }
ident: IDENT
{ $$ = $1; }
| CSTRING { $$ = make3_str(make_str("\""), $1, make_str("\"")); };
| CSTRING { $$ = make3_str(make_str("\""), $1, make_str("\"")); };
/*
/*
* 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; }
...
...
src/interfaces/ecpg/preproc/variable.c
View file @
9309eac1
...
@@ -222,8 +222,6 @@ dump_variables(struct arguments * list, int mode)
...
@@ -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. */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment