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]
