diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 78e94f3401b3fb03eab044643664ec2bfb7412af..8945cd5debf8cb810b3baf30c93894c94d1f16fc 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -617,3 +617,8 @@ Mon Jul 19 07:53:20 CEST 1999 - Fixed quoting bug in ecpglib.c - Set ecpg version to 2.6.1 - Set library version to 3.0.1 + +Sun Aug 1 13:31:19 CEST 1999 + + - Synced preproc.y with gram.y. + - Set ecpg version to 2.6.2 diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index 359b42b3fa5e0d7b4b96686394dc2aeb7b2291c5..3433ec75ac5337aec699183d2454872a39a565e2 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global MAJOR_VERSION=2 MINOR_VERSION=6 -PATCHLEVEL=1 +PATCHLEVEL=2 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \ -DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \ diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 02caacf4cf47524754c8d73dc235a8cb9e5afc5b..23eaa6d82ce8d82eb7079ebae45af4aefc113b59 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -777,10 +777,10 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim %type <str> update_target_el opt_id relation_name database_name %type <str> access_method attr_name class index_name name func_name %type <str> file_name AexprConst ParamNo TypeId -%type <str> in_expr_nodes not_in_expr_nodes a_expr b_expr +%type <str> in_expr_nodes a_expr b_expr %type <str> opt_indirection expr_list extract_list extract_arg %type <str> position_list substr_list substr_from -%type <str> trim_list in_expr substr_for not_in_expr attr attrs +%type <str> trim_list in_expr substr_for attr attrs %type <str> Typename SimpleTypename Generic Numeric generic opt_float opt_numeric %type <str> opt_decimal Character character opt_varying opt_charset %type <str> opt_collate Datetime datetime opt_timezone opt_interval @@ -3687,7 +3687,7 @@ a_expr: attr { $$ = make4_str($1, make1_str(" in ("), $4, make1_str(")")); } - | a_expr NOT IN '(' not_in_expr ')' + | a_expr NOT IN '(' in_expr ')' { $$ = make4_str($1, make1_str(" not in ("), $5, make1_str(")")); } @@ -4020,23 +4020,9 @@ in_expr: SubSelect { $$ = $1; } ; -in_expr_nodes: AexprConst +in_expr_nodes: a_expr { $$ = $1; } - | in_expr_nodes ',' AexprConst - { $$ = cat3_str($1, make1_str(","), $3);} - ; - -not_in_expr: SubSelect - { - $$ = $1; - } - | not_in_expr_nodes - { $$ = $1; } - ; - -not_in_expr_nodes: AexprConst - { $$ = $1; } - | not_in_expr_nodes ',' AexprConst + | in_expr_nodes ',' a_expr { $$ = cat3_str($1, make1_str(","), $3);} ; @@ -5647,7 +5633,7 @@ ecpg_expr: attr { $$ = make4_str($1, make1_str(" in ("), $4, make1_str(")")); } - | a_expr NOT IN '(' not_in_expr ')' + | a_expr NOT IN '(' in_expr ')' { $$ = make4_str($1, make1_str(" not in ("), $5, make1_str(")")); }