summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc.rej
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_parse.cc.rej')
-rw-r--r--sql/sql_parse.cc.rej166
1 files changed, 166 insertions, 0 deletions
diff --git a/sql/sql_parse.cc.rej b/sql/sql_parse.cc.rej
new file mode 100644
index 00000000000..6e2bd03867d
--- /dev/null
+++ b/sql/sql_parse.cc.rej
@@ -0,0 +1,166 @@
+***************
+*** 67,109 ****
+ static void decrease_user_connections(USER_CONN *uc);
+ #endif /* NO_EMBEDDED_ACCESS_CHECKS */
+ static bool check_multi_update_lock(THD *thd);
+- static void remove_escape(char *name);
+ static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables);
+
+ const char *any_db="*any*"; // Special symbol for check_access
+
+! LEX_STRING command_name[]={
+! (char *)STRING_WITH_LEN("Sleep"),
+! (char *)STRING_WITH_LEN("Quit"),
+! (char *)STRING_WITH_LEN("Init DB"),
+! (char *)STRING_WITH_LEN("Query"),
+! (char *)STRING_WITH_LEN("Field List"),
+! (char *)STRING_WITH_LEN("Create DB"),
+! (char *)STRING_WITH_LEN("Drop DB"),
+! (char *)STRING_WITH_LEN("Refresh"),
+! (char *)STRING_WITH_LEN("Shutdown"),
+! (char *)STRING_WITH_LEN("Statistics"),
+! (char *)STRING_WITH_LEN("Processlist"),
+! (char *)STRING_WITH_LEN("Connect"),
+! (char *)STRING_WITH_LEN("Kill"),
+! (char *)STRING_WITH_LEN("Debug"),
+! (char *)STRING_WITH_LEN("Ping"),
+! (char *)STRING_WITH_LEN("Time"),
+! (char *)STRING_WITH_LEN("Delayed insert"),
+! (char *)STRING_WITH_LEN("Change user"),
+! (char *)STRING_WITH_LEN("Binlog Dump"),
+! (char *)STRING_WITH_LEN("Table Dump"),
+! (char *)STRING_WITH_LEN("Connect Out"),
+! (char *)STRING_WITH_LEN("Register Slave"),
+! (char *)STRING_WITH_LEN("Prepare"),
+! (char *)STRING_WITH_LEN("Execute"),
+! (char *)STRING_WITH_LEN("Long Data"),
+! (char *)STRING_WITH_LEN("Close stmt"),
+! (char *)STRING_WITH_LEN("Reset stmt"),
+! (char *)STRING_WITH_LEN("Set option"),
+! (char *)STRING_WITH_LEN("Fetch"),
+! (char *)STRING_WITH_LEN("Daemon"),
+! (char *)STRING_WITH_LEN("Error") // Last command number
+ };
+
+ const char *xa_state_names[]={
+--- 67,108 ----
+ static void decrease_user_connections(USER_CONN *uc);
+ #endif /* NO_EMBEDDED_ACCESS_CHECKS */
+ static bool check_multi_update_lock(THD *thd);
+ static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables);
+
+ const char *any_db="*any*"; // Special symbol for check_access
+
+! const LEX_STRING command_name[]={
+! C_STRING_WITH_LEN("Sleep"),
+! C_STRING_WITH_LEN("Quit"),
+! C_STRING_WITH_LEN("Init DB"),
+! C_STRING_WITH_LEN("Query"),
+! C_STRING_WITH_LEN("Field List"),
+! C_STRING_WITH_LEN("Create DB"),
+! C_STRING_WITH_LEN("Drop DB"),
+! C_STRING_WITH_LEN("Refresh"),
+! C_STRING_WITH_LEN("Shutdown"),
+! C_STRING_WITH_LEN("Statistics"),
+! C_STRING_WITH_LEN("Processlist"),
+! C_STRING_WITH_LEN("Connect"),
+! C_STRING_WITH_LEN("Kill"),
+! C_STRING_WITH_LEN("Debug"),
+! C_STRING_WITH_LEN("Ping"),
+! C_STRING_WITH_LEN("Time"),
+! C_STRING_WITH_LEN("Delayed insert"),
+! C_STRING_WITH_LEN("Change user"),
+! C_STRING_WITH_LEN("Binlog Dump"),
+! C_STRING_WITH_LEN("Table Dump"),
+! C_STRING_WITH_LEN("Connect Out"),
+! C_STRING_WITH_LEN("Register Slave"),
+! C_STRING_WITH_LEN("Prepare"),
+! C_STRING_WITH_LEN("Execute"),
+! C_STRING_WITH_LEN("Long Data"),
+! C_STRING_WITH_LEN("Close stmt"),
+! C_STRING_WITH_LEN("Reset stmt"),
+! C_STRING_WITH_LEN("Set option"),
+! C_STRING_WITH_LEN("Fetch"),
+! C_STRING_WITH_LEN("Daemon"),
+! C_STRING_WITH_LEN("Error") // Last command number
+ };
+
+ const char *xa_state_names[]={
+***************
+*** 1738,1744 ****
+ password. New clients send the size (1 byte) + string (not null
+ terminated, so also '\0' for empty string).
+ */
+! char db_buff[NAME_LEN+1]; // buffer to store db in utf8
+ char *db= passwd;
+ uint passwd_len= thd->client_capabilities & CLIENT_SECURE_CONNECTION ?
+ *passwd++ : strlen(passwd);
+--- 1736,1742 ----
+ password. New clients send the size (1 byte) + string (not null
+ terminated, so also '\0' for empty string).
+ */
+! char db_buff[NAME_LEN+1]; // buffer to store db in utf8
+ char *db= passwd;
+ uint passwd_len= thd->client_capabilities & CLIENT_SECURE_CONNECTION ?
+ *passwd++ : strlen(passwd);
+***************
+*** 2315,2321 ****
+ DBUG_RETURN(1);
+ }
+ db= lex->select_lex.db;
+- remove_escape(db); // Fix escaped '_'
+ if (check_db_name(db))
+ {
+ my_error(ER_WRONG_DB_NAME, MYF(0), db);
+--- 2312,2317 ----
+ DBUG_RETURN(1);
+ }
+ db= lex->select_lex.db;
+ if (check_db_name(db))
+ {
+ my_error(ER_WRONG_DB_NAME, MYF(0), db);
+***************
+*** 6310,6345 ****
+ }
+
+
+- /* Fix escaping of _, % and \ in database and table names (for ODBC) */
+-
+- static void remove_escape(char *name)
+- {
+- if (!*name) // For empty DB names
+- return;
+- char *to;
+- #ifdef USE_MB
+- char *strend=name+(uint) strlen(name);
+- #endif
+- for (to=name; *name ; name++)
+- {
+- #ifdef USE_MB
+- int l;
+- if (use_mb(system_charset_info) &&
+- (l = my_ismbchar(system_charset_info, name, strend)))
+- {
+- while (l--)
+- *to++ = *name++;
+- name--;
+- continue;
+- }
+- #endif
+- if (*name == '\\' && name[1])
+- name++; // Skip '\\'
+- *to++= *name;
+- }
+- *to=0;
+- }
+-
+ /****************************************************************************
+ ** save order by and tables in own lists
+ ****************************************************************************/
+--- 6296,6301 ----
+ }
+
+
+ /****************************************************************************
+ ** save order by and tables in own lists
+ ****************************************************************************/