connectivity/source/parse/sqlbison.y | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-)
New commits: commit 82b6f749d7ee4b26476d5972a5a4147f4d61da62 Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Thu Feb 27 16:46:01 2025 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu Feb 27 20:23:18 2025 +0100 Revert "tdf#159588: Query-GUI: LOWER isnt supported in Query-GUI if ... This causes regression, see tdf#165458 This reverts commit 9530664d07f400f4d8dcbe54d0e82d69168844de. Change-Id: Ic2be6ea3a41e1a22c9443a2fe8a0cae188bc6eb6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182314 Tested-by: Julien Nabet <serval2...@yahoo.fr> Reviewed-by: Julien Nabet <serval2...@yahoo.fr> (cherry picked from commit 1137a2f025152576790933763daddef7d0c6197f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182316 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y index 23de1cb772ab..00666ed87a09 100644 --- a/connectivity/source/parse/sqlbison.y +++ b/connectivity/source/parse/sqlbison.y @@ -233,12 +233,12 @@ using namespace connectivity; %type <pParseNode> datetime_primary datetime_value_fct time_zone time_zone_specifier /*interval_term*/ interval_qualifier %type <pParseNode> start_field non_second_datetime_field end_field single_datetime_field extract_field datetime_field time_zone_field %type <pParseNode> char_length_exp octet_length_exp bit_length_exp select_sublist string_value_exp -%type <pParseNode> char_value_exp concatenation char_factor char_primary string_value_fct char_substring_fct +%type <pParseNode> char_value_exp concatenation char_factor char_primary string_value_fct char_substring_fct fold %type <pParseNode> form_conversion char_translation trim_fct trim_operands trim_spec bit_value_fct bit_substring_fct op_column_commalist %type <pParseNode> /*bit_concatenation*/ bit_value_exp bit_factor bit_primary collate_clause char_value_fct unique_spec value_exp_commalist in_predicate_value unique_test update_source %type <pParseNode> function_arg_commalist3 string_function_3Argument function_arg_commalist4 string_function_4Argument function_arg_commalist2 string_function_1Argument string_function_2Argument %type <pParseNode> date_function_0Argument date_function_1Argument function_name12 function_name23 function_name1 function_name2 function_name3 function_name0 numeric_function_0Argument numeric_function_1Argument numeric_function_2Argument -%type <pParseNode> all query_primary sql_not for_length comparison column_val cross_union /*opt_schema_element_list*/ +%type <pParseNode> all query_primary sql_not for_length upper_lower comparison column_val cross_union /*opt_schema_element_list*/ %type <pParseNode> /*op_authorization op_schema*/ nil_fkt schema_element base_table_def base_table_element base_table_element_commalist %type <pParseNode> column_def odbc_fct_spec odbc_call_spec odbc_fct_type op_parameter union_statement %type <pParseNode> op_odbc_call_parameter odbc_parameter_commalist odbc_parameter function_args_commalist function_arg @@ -1929,12 +1929,10 @@ string_function_1Argument: SQL_TOKEN_LENGTH | SQL_TOKEN_ASCII | SQL_TOKEN_LCASE - | SQL_TOKEN_LOWER | SQL_TOKEN_LTRIM | SQL_TOKEN_RTRIM | SQL_TOKEN_SPACE | SQL_TOKEN_UCASE - | SQL_TOKEN_UPPER ; string_function_2Argument: @@ -3251,6 +3249,7 @@ bit_primary: ; char_value_fct: char_substring_fct + | fold | form_conversion { $$ = SQL_NEW_RULE; @@ -3297,6 +3296,20 @@ char_substring_fct: $$->append(newNode(")", SQLNodeType::Punctuation)); } ; +upper_lower: + SQL_TOKEN_UPPER + | SQL_TOKEN_LOWER + ; +fold: + upper_lower '(' value_exp ')' + { + $$ = SQL_NEW_RULE; + $$->append($1); + $$->append(newNode("(", SQLNodeType::Punctuation)); + $$->append($3); + $$->append(newNode(")", SQLNodeType::Punctuation)); + } + ; form_conversion: SQL_TOKEN_CONVERT '(' string_value_exp SQL_TOKEN_USING table_node ')' {