Commit 08b999f1 authored by Michael Meskes's avatar Michael Meskes

*** empty log message ***

parent 9672d38f
...@@ -790,6 +790,9 @@ Thu Jan 27 08:12:05 CET 2000 ...@@ -790,6 +790,9 @@ Thu Jan 27 08:12:05 CET 2000
- Fixed error messages in pgc.l. - Fixed error messages in pgc.l.
- Improved variable parsing. - Improved variable parsing.
- Synced preproc.y with gram.y. - Synced preproc.y with gram.y.
Mon Feb 14 10:35:18 CET 2000
- Synced preproc.y with gram.y.
- Set library version to 3.0.10. - Set library version to 3.0.10.
- Set ecpg version to 2.7.0. - Set ecpg version to 2.7.0.
...@@ -395,7 +395,7 @@ ECPGexecute(struct statement * stmt) ...@@ -395,7 +395,7 @@ ECPGexecute(struct statement * stmt)
{ {
bool status = false; bool status = false;
char *copiedquery; char *copiedquery;
PGresult *results; PGresult *results, *query;
PGnotify *notify; PGnotify *notify;
struct variable *var; struct variable *var;
...@@ -669,7 +669,8 @@ ECPGexecute(struct statement * stmt) ...@@ -669,7 +669,8 @@ ECPGexecute(struct statement * stmt)
{ {
char *pval; char *pval;
char *scan_length; char *scan_length;
char *array_query;
if (var == NULL) if (var == NULL)
{ {
ECPGlog("ECPGexecute line %d: Too few arguments.\n", stmt->lineno); ECPGlog("ECPGexecute line %d: Too few arguments.\n", stmt->lineno);
...@@ -724,10 +725,15 @@ ECPGexecute(struct statement * stmt) ...@@ -724,10 +725,15 @@ ECPGexecute(struct statement * stmt)
*((void **) var->pointer) = var->value; *((void **) var->pointer) = var->value;
add_mem(var->value, stmt->lineno); add_mem(var->value, stmt->lineno);
} }
#if 0
ECPGlog("ECPGexecute line %d: TYPE db: %d c: %d\n", stmt->lineno, PQftype(results, act_field), var->type); array_query = (char *)ecpg_alloc(strlen("select typelem from pg_type where oid=") + 11, stmt -> lineno);
sprintf(array_query, "select typelem from pg_type where oid=%d", PQftype(results, act_field));
query = PQexec(stmt->connection->connection, array_query);
if (PQresultStatus(query) == PGRES_TUPLES_OK)
ECPGlog("ECPGexecute line %d: TYPE database: %d C: %d array OID: %s\n", stmt->lineno, PQftype(results, act_field), var->type, (char *)PQgetvalue(query, 0, 0));
PQclear(query);
#endif
for (act_tuple = 0; act_tuple < ntuples && status; act_tuple++) for (act_tuple = 0; act_tuple < ntuples && status; act_tuple++)
{ {
pval = (char *)PQgetvalue(results, act_tuple, act_field); pval = (char *)PQgetvalue(results, act_tuple, act_field);
......
...@@ -37,7 +37,7 @@ extern void lex_init(void); ...@@ -37,7 +37,7 @@ extern void lex_init(void);
extern char *input_filename; extern char *input_filename;
extern int yyparse(void); extern int yyparse(void);
extern int yylex(void); extern int yylex(void);
extern void yyerror(const char * error); extern void yyerror(char *);
extern void *mm_alloc(size_t), *mm_realloc(void *, size_t); extern void *mm_alloc(size_t), *mm_realloc(void *, size_t);
extern char *mm_strdup(const char *); extern char *mm_strdup(const char *);
extern void mmerror(enum errortype, char * ); extern void mmerror(enum errortype, char * );
......
...@@ -760,9 +760,9 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim ...@@ -760,9 +760,9 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
%type <str> opt_collate Datetime datetime opt_timezone opt_interval %type <str> opt_collate Datetime datetime opt_timezone opt_interval
%type <str> numeric a_expr_or_null row_expr row_descriptor row_list %type <str> numeric a_expr_or_null row_expr row_descriptor row_list
%type <str> SelectStmt SubSelect result OptTemp OptTempType OptTempScope %type <str> SelectStmt SubSelect result OptTemp OptTempType OptTempScope
%type <str> opt_table opt_all opt_unique sort_clause sortby_list %type <str> opt_table opt_all sort_clause sortby_list
%type <str> sortby OptUseOp opt_inh_star relation_name_list name_list %type <str> sortby OptUseOp opt_inh_star relation_name_list name_list
%type <str> group_clause having_clause from_clause %type <str> group_clause having_clause from_clause opt_distinct
%type <str> table_list join_outer where_clause relation_expr sub_type %type <str> table_list join_outer where_clause relation_expr sub_type
%type <str> opt_column_list insert_rest InsertStmt OptimizableStmt %type <str> opt_column_list insert_rest InsertStmt OptimizableStmt
%type <str> columnList DeleteStmt LockStmt UpdateStmt CursorStmt %type <str> columnList DeleteStmt LockStmt UpdateStmt CursorStmt
...@@ -1306,35 +1306,35 @@ AlterTableStmt: ...@@ -1306,35 +1306,35 @@ AlterTableStmt:
/* ALTER TABLE <name> ADD [COLUMN] <coldef> */ /* ALTER TABLE <name> ADD [COLUMN] <coldef> */
ALTER TABLE relation_name opt_inh_star ADD opt_column columnDef ALTER TABLE relation_name opt_inh_star ADD opt_column columnDef
{ {
$$ = cat_str(5, make_str("alter table"), $3, $4, make_str("add"), $6, $7); $$ = cat_str(6, make_str("alter table"), $3, $4, make_str("add"), $6, $7);
} }
/* ALTER TABLE <name> ALTER [COLUMN] <colname> {SET DEFAULT <expr>|DROP /* ALTER TABLE <name> ALTER [COLUMN] <colname> {SET DEFAULT <expr>|DROP
DEFAULT} */ DEFAULT} */
| ALTER TABLE relation_name opt_inh_star ALTER opt_column ColId | ALTER TABLE relation_name opt_inh_star ALTER opt_column ColId
alter_column_action alter_column_action
{ {
$$ = cat_str(6, make_str("alter table"), $3, $4, make_str("alter"), $6, $7, $8); $$ = cat_str(7, make_str("alter table"), $3, $4, make_str("alter"), $6, $7, $8);
} }
/* ALTER TABLE <name> DROP [COLUMN] <name> {RESTRICT|CASCADE} */ /* ALTER TABLE <name> DROP [COLUMN] <name> {RESTRICT|CASCADE} */
| ALTER TABLE relation_name opt_inh_star DROP opt_column ColId | ALTER TABLE relation_name opt_inh_star DROP opt_column ColId drop_behavior
/* drop_behavior */
{ {
$$ = cat_str(5, make_str("alter table"), $3, $4, make_str("drop"), $6, $7); $$ = cat_str(7, make_str("alter table"), $3, $4, make_str("drop"), $6, $7, $8);
} }
/* ALTER TABLE <name> ADD CONSTRAINT ... */ /* ALTER TABLE <name> ADD CONSTRAINT ... */
| ALTER TABLE relation_name opt_inh_star ADD TableConstraint | ALTER TABLE relation_name opt_inh_star ADD TableConstraint
{ {
$$ = cat_str(4, make_str("alter table"), $3, $4, make_str("add"), $6); $$ = cat_str(5, make_str("alter table"), $3, $4, make_str("add"), $6);
} }
/* ALTER TABLE <name> DROP CONSTRAINT ... */ /* ALTER TABLE <name> DROP CONSTRAINT ... */
| ALTER TABLE relation_name opt_inh_star DROP CONSTRAINT name drop_behavior | ALTER TABLE relation_name opt_inh_star DROP CONSTRAINT name drop_behavior
{ {
$$ = cat_str(5, make_str("alter table"), $3, $4, make_str("drop constraint"), $7, $8); $$ = cat_str(6, make_str("alter table"), $3, $4, make_str("drop constraint"), $7, $8);
} }
; ;
alter_column_action: alter_column_action:
SET DEFAULT a_expr_or_null { $$ = cat2_str(make_str("set default"), $3); } SET DEFAULT a_expr { $$ = cat2_str(make_str("set default"), $3); }
| SET DEFAULT NULL_P { $$ = make_str("set default null"); }
| DROP DEFAULT { $$ = make_str("drop default"); } | DROP DEFAULT { $$ = make_str("drop default"); }
; ;
...@@ -1579,7 +1579,6 @@ key_match: MATCH FULL ...@@ -1579,7 +1579,6 @@ key_match: MATCH FULL
} }
| /*EMPTY*/ | /*EMPTY*/
{ {
mmerror(ET_WARN, "FOREIGN KEY match type UNSPECIFIED not implemented yet");
$$ = EMPTY; $$ = EMPTY;
} }
; ;
...@@ -1735,7 +1734,7 @@ CreateTrigStmt: CREATE TRIGGER name TriggerActionTime TriggerEvents ON ...@@ -1735,7 +1734,7 @@ CreateTrigStmt: CREATE TRIGGER name TriggerActionTime TriggerEvents ON
{ {
$$ = cat_str(12, make_str("create trigger"), $3, $4, $5, make_str("on"), $7, $8, make_str("execute procedure"), $11, make_str("("), $13, make_str(")")); $$ = cat_str(12, make_str("create trigger"), $3, $4, $5, make_str("on"), $7, $8, make_str("execute procedure"), $11, make_str("("), $13, make_str(")"));
} }
| CREATE CONSTRAINT TRIGGER name AFTER TriggerOneEvent ON | CREATE CONSTRAINT TRIGGER name AFTER TriggerEvents ON
relation_name OptConstrFromTable relation_name OptConstrFromTable
ConstraintAttributeSpec ConstraintAttributeSpec
FOR EACH ROW EXECUTE PROCEDURE FOR EACH ROW EXECUTE PROCEDURE
...@@ -2507,12 +2506,8 @@ UnlistenStmt: UNLISTEN relation_name ...@@ -2507,12 +2506,8 @@ UnlistenStmt: UNLISTEN relation_name
* *
* Transactions: * Transactions:
* *
* abort transaction * BEGIN / COMMIT / ROLLBACK
* (ABORT) * (also older versions END / ABORT)
* begin transaction
* (BEGIN)
* end transaction
* (END)
* *
*****************************************************************************/ *****************************************************************************/
TransactionStmt: ABORT_TRANS opt_trans { $$ = make_str("rollback"); } TransactionStmt: ABORT_TRANS opt_trans { $$ = make_str("rollback"); }
...@@ -2912,7 +2907,7 @@ select_clause: '(' select_clause ')' ...@@ -2912,7 +2907,7 @@ select_clause: '(' select_clause ')'
} }
; ;
SubSelect: SELECT opt_unique target_list SubSelect: SELECT opt_distinct target_list
result from_clause where_clause result from_clause where_clause
group_clause having_clause group_clause having_clause
{ {
...@@ -2937,8 +2932,8 @@ opt_all: ALL { $$ = make_str("all"); } ...@@ -2937,8 +2932,8 @@ opt_all: ALL { $$ = make_str("all"); }
| /*EMPTY*/ { $$ = EMPTY; } | /*EMPTY*/ { $$ = EMPTY; }
; ;
opt_unique: DISTINCT { $$ = make_str("distinct"); } opt_distinct: DISTINCT { $$ = make_str("distinct"); }
| DISTINCT ON ColId { $$ = cat2_str(make_str("distinct on"), $3); } | DISTINCT ON '(' expr_list ')' { $$ = cat_str(3, make_str("distinct on ("), $4, make_str(")")); }
| ALL { $$ = make_str("all"); } | ALL { $$ = make_str("all"); }
| /*EMPTY*/ { $$ = EMPTY; } | /*EMPTY*/ { $$ = EMPTY; }
; ;
...@@ -5428,7 +5423,7 @@ blockend : '}' { ...@@ -5428,7 +5423,7 @@ blockend : '}' {
%% %%
void yyerror(const char * error) void yyerror(char * error)
{ {
mmerror(ET_ERROR, error); mmerror(ET_ERROR, error);
} }
...@@ -5,9 +5,19 @@ int my_fun (void) ...@@ -5,9 +5,19 @@ int my_fun (void)
EXEC SQL BEGIN DECLARE SECTION; EXEC SQL BEGIN DECLARE SECTION;
int sql_index = 0; int sql_index = 0;
EXEC SQL END DECLARE SECTION; EXEC SQL END DECLARE SECTION;
FILE *dbgs;
if ((dbgs = fopen("/tmp/log", "w")) != NULL)
ECPGdebug(1, dbgs);
EXEC SQL WHENEVER SQLERROR GOTO Error; EXEC SQL WHENEVER SQLERROR GOTO Error;
EXEC SQL CONNECT TO 'mm';
EXEC SQL SELECT MIN(index) INTO :sql_index FROM tab; EXEC SQL SELECT MIN(index) INTO :sql_index FROM tab;
EXEC SQL DISCONNECT;
if (dbgs != NULL)
fclose(dbgs);
return (sql_index); return (sql_index);
......
...@@ -13,7 +13,6 @@ int main (void) ...@@ -13,7 +13,6 @@ int main (void)
EXEC SQL END DECLARE SECTION; EXEC SQL END DECLARE SECTION;
FILE *dbgs; FILE *dbgs;
if ((dbgs = fopen("log", "w")) != NULL) if ((dbgs = fopen("log", "w")) != NULL)
ECPGdebug(1, dbgs); ECPGdebug(1, dbgs);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment