Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv20432

Modified Files:
        sql_parser.mx 
Log Message:
fixed bug in parsing NULL values in coalesce function


Index: sql_parser.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_parser.mx,v
retrieving revision 1.266
retrieving revision 1.267
diff -u -d -r1.266 -r1.267
--- sql_parser.mx       19 Dec 2007 22:45:57 -0000      1.266
+++ sql_parser.mx       20 Dec 2007 08:52:02 -0000      1.267
@@ -372,6 +372,7 @@
        simple_table
        table_ref
        case_exp
+       case_scalar_exp
        cast_exp
        when_value
        when_search
@@ -493,6 +494,7 @@
        single_datetime_field
        interval_qualifier
        scalar_exp_list2
+       case_scalar_exp_list2
        when_value_list
        when_search_list
        opt_seps
@@ -3983,12 +3985,12 @@
                   append_symbol(
                    append_symbol(
                     L(), $3), $5)); }
- |   COALESCE '(' scalar_exp ',' scalar_exp ')'
+ |   COALESCE '(' case_scalar_exp ',' case_scalar_exp ')'
                { $$ = _symbol_create_list(SQL_COALESCE,
                   append_symbol(
                    append_symbol(
                     L(), $3), $5)); }
- |   COALESCE '(' scalar_exp_list2 ')'
+ |   COALESCE '(' case_scalar_exp_list2 ')'
                { $$ = _symbol_create_list(SQL_COALESCE, $3); }
  |   CASE scalar_exp when_value_list case_opt_else END
                { $$ = _symbol_create_list(SQL_CASE,
@@ -4013,6 +4015,17 @@
                        { $$ = append_symbol( $1, $3); }
  ;
 
+case_scalar_exp_list2:
+    case_scalar_exp ',' case_scalar_exp ',' case_scalar_exp
+                       { $$ = append_symbol( L(), $1);
+                         $$ = append_symbol( $$, $3);
+                         $$ = append_symbol( $$, $5);
+                       }
+ |  case_scalar_exp_list2 ',' case_scalar_exp
+                       { $$ = append_symbol( $1, $3); }
+ ;
+
+
 when_value:
     WHEN scalar_exp THEN scalar_exp
                        { $$ = _symbol_create_list( SQL_WHEN,
@@ -4049,6 +4062,10 @@
  |  ELSE sqlNULL       { $$ = _newAtomNode(NULL); }
  ;
 
+case_scalar_exp:
+    sqlNULL            { $$ = _newAtomNode(NULL); }
+ |  scalar_exp 
+ ;
                /* data types, more types to come */
 
 nonzero:


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to