diff options
author | Rucha Deodhar <rucha.deodhar@mariadb.com> | 2021-09-29 14:18:40 +0530 |
---|---|---|
committer | Rucha Deodhar <rucha.deodhar@mariadb.com> | 2021-09-29 14:28:14 +0530 |
commit | 28224147833e59f47491e05f247948a774b4c712 (patch) | |
tree | f94eb508bbc0a2a0422d5fc97855056938e3ac25 /sql | |
parent | 8dd4794c4e11b8790fadf0c203bcd118e7b755e8 (diff) | |
download | mariadb-git-bb-10.7-MDEV-26611.tar.gz |
MDEV-26611: ERROR_INDEX isn't intuitively clearbb-10.7-MDEV-26611
Fixup for MDEV-10075
Analysis: ERROR_INDEX implemented in MDEV-10075 was not intuitively clear.
Fix: changed parser to use ROW_NUMBER instead of ERROR_INDEX. Removed
ERROR_INDEX and ERROR_INDEX_SYM from related files. Changed m_error_index
to m_row_number.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/lex.h | 4 | ||||
-rw-r--r-- | sql/sql_error.h | 9 | ||||
-rw-r--r-- | sql/sql_get_diagnostics.cc | 4 | ||||
-rw-r--r-- | sql/sql_get_diagnostics.h | 2 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 6 |
5 files changed, 12 insertions, 13 deletions
diff --git a/sql/lex.h b/sql/lex.h index 6255cb1a35b..4ce88ccc2ee 100644 --- a/sql/lex.h +++ b/sql/lex.h @@ -222,7 +222,6 @@ SYMBOL symbols[] = { { "ENUM", SYM(ENUM)}, { "ERROR", SYM(ERROR_SYM)}, { "ERRORS", SYM(ERRORS)}, - { "ERROR_INDEX", SYM(ERROR_INDEX_SYM)}, { "ESCAPE", SYM(ESCAPE_SYM)}, { "ESCAPED", SYM(ESCAPED)}, { "EVENT", SYM(EVENT_SYM)}, @@ -569,6 +568,8 @@ SYMBOL symbols[] = { { "ROWTYPE", SYM(ROWTYPE_MARIADB_SYM)}, { "ROW_COUNT", SYM(ROW_COUNT_SYM)}, { "ROW_FORMAT", SYM(ROW_FORMAT_SYM)}, + /** sql_function and condition_property_name for GET DIAGNOSTICS */ + { "ROW_NUMBER", SYM(ROW_NUMBER_SYM)}, { "RTREE", SYM(RTREE_SYM)}, { "SAVEPOINT", SYM(SAVEPOINT_SYM)}, { "SCHEDULE", SYM(SCHEDULE_SYM)}, @@ -783,7 +784,6 @@ SYMBOL sql_functions[] = { { "PERCENTILE_CONT", SYM(PERCENTILE_CONT_SYM)}, { "PERCENTILE_DISC", SYM(PERCENTILE_DISC_SYM)}, { "RANK", SYM(RANK_SYM)}, - { "ROW_NUMBER", SYM(ROW_NUMBER_SYM)}, { "SESSION_USER", SYM(USER_SYM)}, { "STD", SYM(STD_SYM)}, { "STDDEV", SYM(STD_SYM)}, diff --git a/sql/sql_error.h b/sql/sql_error.h index b6ed7f5061a..e7f1a27a6a7 100644 --- a/sql/sql_error.h +++ b/sql/sql_error.h @@ -306,7 +306,8 @@ protected: /** SQL CURSOR_NAME condition item. */ String m_cursor_name; - ulong m_error_index; + /** SQL ROW_NUMBER condition item. */ + ulong m_row_number; Sql_condition_items() :m_class_origin((const char*) NULL, 0, & my_charset_utf8mb3_bin), @@ -319,7 +320,7 @@ protected: m_table_name((const char*) NULL, 0, & my_charset_utf8mb3_bin), m_column_name((const char*) NULL, 0, & my_charset_utf8mb3_bin), m_cursor_name((const char*) NULL, 0, & my_charset_utf8mb3_bin), - m_error_index(0) + m_row_number(0) { } void clear() @@ -334,7 +335,7 @@ protected: m_table_name.length(0); m_column_name.length(0); m_cursor_name.length(0); - m_error_index= 0; + m_row_number= 0; } }; @@ -446,7 +447,7 @@ private: DBUG_ASSERT(value.get_sql_errno() != 0); DBUG_ASSERT(msg != NULL); set_builtin_message_text(msg); - m_error_index= current_row_for_warning; + m_row_number= current_row_for_warning; } /** Destructor. */ diff --git a/sql/sql_get_diagnostics.cc b/sql/sql_get_diagnostics.cc index 6a479726df1..240975d2974 100644 --- a/sql/sql_get_diagnostics.cc +++ b/sql/sql_get_diagnostics.cc @@ -338,8 +338,8 @@ Condition_information_item::get_value(THD *thd, const Sql_condition *cond) str.set_ascii(cond->get_sqlstate(), strlen(cond->get_sqlstate())); value= make_utf8_string_item(thd, &str); break; - case ERROR_INDEX: - value= new (thd->mem_root) Item_uint(thd, cond->m_error_index); + case ROW_NUMBER: + value= new (thd->mem_root) Item_uint(thd, cond->m_row_number); } DBUG_RETURN(value); diff --git a/sql/sql_get_diagnostics.h b/sql/sql_get_diagnostics.h index 69432f9cf86..efe526d7c61 100644 --- a/sql/sql_get_diagnostics.h +++ b/sql/sql_get_diagnostics.h @@ -255,7 +255,7 @@ public: MESSAGE_TEXT, MYSQL_ERRNO, RETURNED_SQLSTATE, - ERROR_INDEX + ROW_NUMBER }; /** diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index b0685871311..dad897265e0 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -974,7 +974,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); %token <kwd> MUTEX_SYM %token <kwd> MYSQL_SYM %token <kwd> MYSQL_ERRNO_SYM -%token <kwd> ERROR_INDEX_SYM %token <kwd> NAMES_SYM /* SQL-2003-N */ %token <kwd> NAME_SYM /* SQL-2003-N */ %token <kwd> NATIONAL_SYM /* SQL-2003-R */ @@ -3631,8 +3630,8 @@ condition_information_item_name: { $$= Condition_information_item::MYSQL_ERRNO; } | RETURNED_SQLSTATE_SYM { $$= Condition_information_item::RETURNED_SQLSTATE; } - | ERROR_INDEX_SYM - { $$= Condition_information_item::ERROR_INDEX; } + | ROW_NUMBER_SYM + { $$= Condition_information_item::ROW_NUMBER; } ; sp_decl_ident: @@ -15664,7 +15663,6 @@ keyword_sp_var_and_label: | INVOKER_SYM | IMPORT | INDEXES - | ERROR_INDEX_SYM | INITIAL_SIZE_SYM | IO_SYM | IPC_SYM |