summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorRucha Deodhar <rucha.deodhar@mariadb.com>2021-09-29 14:18:40 +0530
committerRucha Deodhar <rucha.deodhar@mariadb.com>2021-09-29 14:28:14 +0530
commit28224147833e59f47491e05f247948a774b4c712 (patch)
treef94eb508bbc0a2a0422d5fc97855056938e3ac25 /sql
parent8dd4794c4e11b8790fadf0c203bcd118e7b755e8 (diff)
downloadmariadb-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.h4
-rw-r--r--sql/sql_error.h9
-rw-r--r--sql/sql_get_diagnostics.cc4
-rw-r--r--sql/sql_get_diagnostics.h2
-rw-r--r--sql/sql_yacc.yy6
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