From d3c5c47e0e8ba4cbca2b47e80a874841f7ba6108 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 2 Apr 2025 14:20:25 +1100 Subject: [PATCH] MDEV-36324 MDEV-35452 Missing appending FROM ... in spider_mbase_handler::append_key_select The missing append_from causes ill-formed query construction. This fixes spider/bugfix.mdev_35874 with --view-protocol. --- storage/spider/spd_db_mysql.cc | 4 +++- storage/spider/spd_db_mysql.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index b0c56b0376a..7cf3d2013cc 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -8889,12 +8889,13 @@ int spider_mbase_handler::append_key_select_part( default: DBUG_RETURN(0); } - error_num = append_key_select(str, idx); + error_num = append_key_select(str, sql_type, idx); DBUG_RETURN(error_num); } int spider_mbase_handler::append_key_select( spider_string *str, + ulong sql_type, uint idx ) { st_select_lex *select_lex = NULL; @@ -8943,6 +8944,7 @@ int spider_mbase_handler::append_key_select( str->q_append(SPIDER_SQL_COMMA_STR, SPIDER_SQL_COMMA_LEN); } str->length(str->length() - SPIDER_SQL_COMMA_LEN); + DBUG_RETURN(append_from(str, sql_type, first_link_idx)); } else { table_name_pos = str->length() + mysql_share->key_select_pos[idx]; if (str->append(mysql_share->key_select[idx])) diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h index ac00217ff4c..b9995faca7e 100644 --- a/storage/spider/spd_db_mysql.h +++ b/storage/spider/spd_db_mysql.h @@ -887,6 +887,7 @@ public: ) override; int append_key_select( spider_string *str, + ulong sql_type, uint idx ); int append_minimum_select_part(