User: hr      
Date: 2007-11-01 14:52:08+0000
Modified:
   dba/connectivity/source/parse/sqlbison.y

Log:
 INTEGRATION: CWS dba24b (1.57.6); FILE MERGED
 2007/09/28 11:24:26 oj 1.57.6.5: RESYNC: (1.57-1.58); FILE MERGED
 2007/08/30 13:49:21 oj 1.57.6.4: #i61061# add () around search_condition
 2007/08/24 08:20:33 oj 1.57.6.3: #i69678# allow functions in group by
 2007/08/24 06:48:15 oj 1.57.6.2: #i59211# add concat ||
 2007/08/23 11:01:57 oj 1.57.6.1: #i22582# little change boolean_factor

File Changes:

Directory: /dba/connectivity/source/parse/
==========================================

File [changed]: sqlbison.y
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/parse/sqlbison.y?r1=1.58&r2=1.59
Delta lines:  +27 -40
---------------------
--- sqlbison.y  2007-09-26 14:31:27+0000        1.58
+++ sqlbison.y  2007-11-01 14:52:06+0000        1.59
@@ -204,7 +204,7 @@
 %left <pParseNode> SQL_TOKEN_AND
 
 %left <pParseNode> SQL_LESSEQ SQL_GREATEQ SQL_NOTEQUAL SQL_LESS SQL_GREAT 
SQL_EQUAL /* '<' '>' = <> < > <= >= != */
-%left <pParseNode> '+' '-'
+%left <pParseNode> '+' '-' SQL_CONCAT
 %left <pParseNode> '*' '/'
 %left SQL_TOKEN_NATURAL SQL_TOKEN_CROSS SQL_TOKEN_FULL SQL_TOKEN_LEFT 
SQL_TOKEN_RIGHT
 %left ')'
@@ -1013,9 +1013,15 @@
                column_ref
                        {$$ = SQL_NEW_COMMALISTRULE;
                        $$->append($1);}
+       |       set_fct_spec
+               {$$ = SQL_NEW_COMMALISTRULE;
+                       $$->append($1);}
        |       column_ref_commalist ',' column_ref
                        {$1->append($3);
                        $$ = $1;}
+       |   column_ref_commalist ',' set_fct_spec
+                       {$1->append($3);
+                       $$ = $1;}
        ;
 
 opt_having_clause:
@@ -1045,14 +1051,7 @@
 
 boolean_test:
                boolean_primary
-       |       boolean_primary SQL_TOKEN_IS truth_value
-               {
-                       $$ = SQL_NEW_RULE;
-                       $$->append($1);
-                       $$->append($2);
-                       $$->append($3);
-               }
-       |       boolean_primary SQL_TOKEN_IS SQL_TOKEN_NOT truth_value %prec 
SQL_TOKEN_IS
+       |       boolean_primary SQL_TOKEN_IS sql_not truth_value
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
@@ -1060,39 +1059,14 @@
                        $$->append($3);
                        $$->append($4);
                }
-/*     |       sql_not SQL_TOKEN_LIKE string_value_exp opt_escape
-               {
-                       if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
-                       {
-                               OSQLParseNode* pColumnRef = 
newNode(aEmptyString, 
SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
-                               
pColumnRef->append(newNode(xxx_pGLOBAL_SQLPARSER->getFieldName(),SQL_NODE_NAME));
-
-                               $$ = SQL_NEW_RULE;
-                               $$->append(pColumnRef);
-                               $$->append($1);
-                               $$->append($2);
-                               if 
(xxx_pGLOBAL_SQLPARSER->buildLikeRule($$,$3,$4))
-                                       $$->append($4);
-                               else
-                               {
-                                       delete $$;
-                                       YYABORT;
-                               }
-                       }
-                       else
-                               YYERROR;
-               }
-*/
        ;
 boolean_factor:
                boolean_test
-       |       SQL_TOKEN_NOT '(' boolean_test ')'
+       |       SQL_TOKEN_NOT boolean_test
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
-                       $$->append($2 = newNode("(", SQL_NODE_PUNCTUATION));
-                       $$->append($3);
-                       $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION));
+                       $$->append($2);
                }
        ;
 boolean_term:
@@ -1409,6 +1383,7 @@
                                $$->append($1);
                                $$->append($2);
                                $$->append($3);
+                               // hello
                        }
                        else
                                YYERROR;
@@ -2646,6 +2621,13 @@
                        $$->append($2 = newNode("+", SQL_NODE_PUNCTUATION));
                        $$->append($3);
                }
+       |       value_exp SQL_CONCAT value_exp
+               {
+                       $$ = SQL_NEW_RULE;
+                       $$->append($1);
+                       $$->append($2);
+                       $$->append($3);
+               }
        ;
 
 char_primary:
@@ -3076,7 +3058,7 @@
                        $$->append($1 = newNode(":", SQL_NODE_PUNCTUATION));
                        $$->append($2);}
        |       '?'
-                       {$$ = SQL_NEW_RULE;
+                       {$$ = SQL_NEW_RULE; // test
                        $$->append($1 = newNode("?", SQL_NODE_PUNCTUATION));}
        |       '['     SQL_TOKEN_NAME ']'
                        {$$ = SQL_NEW_RULE;
@@ -3105,6 +3087,11 @@
                        if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
                        {
                                $$ = $1;
+                               if ( SQL_ISRULE($$,search_condition) )
+                               {
+                                       $$->insert(0,newNode("(", 
SQL_NODE_PUNCTUATION));
+                                       $$->append(newNode(")", 
SQL_NODE_PUNCTUATION));
+                               }
                        }
                        else
                                YYERROR;




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to