Commit d5e606c6 authored by Rucha Deodhar's avatar Rucha Deodhar

MDEV-26611: ERROR_INDEX isn't intuitively clear

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.
parent e9d80027
This diff is collapsed.
This diff is collapsed.
......@@ -8,5 +8,5 @@ SELECT 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
####################################
SELECT event_name, digest, digest_text, sql_text FROM events_statements_history_long;
event_name digest digest_text sql_text
statement/sql/select dfe1e2b52a48f7294a6385d229770021 SELECT ? + ? + SELECT ...
statement/sql/truncate 6aa520d69a5b4c9035650e7deeae48fd TRUNCATE TABLE truncat...
statement/sql/select ca9181d6d668396d467dd974f58a9402 SELECT ? + ? + SELECT ...
statement/sql/truncate 460cb5329baea0e4242059cfda01d1d7 TRUNCATE TABLE truncat...
......@@ -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)},
......
......@@ -306,7 +306,8 @@ class Sql_condition_items
/** 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 @@ class Sql_condition_items
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 @@ class Sql_condition_items
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 @@ class Sql_condition : public Sql_alloc,
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. */
......
......@@ -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);
......
......@@ -255,7 +255,7 @@ class Condition_information_item : public Diagnostics_information_item
MESSAGE_TEXT,
MYSQL_ERRNO,
RETURNED_SQLSTATE,
ERROR_INDEX
ROW_NUMBER
};
/**
......
......@@ -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
......
......@@ -21580,7 +21580,7 @@ void test_mdev_10075()
mysql_stmt_close(stmt);
rc= mysql_query(mysql, "GET DIAGNOSTICS CONDITION 1 @var1 = ERROR_INDEX");
rc= mysql_query(mysql, "GET DIAGNOSTICS CONDITION 1 @var1 = ROW_NUMBER");
myquery(rc);
rc= mysql_query(mysql, "SELECT @var1");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment