diff options
author | unknown <sergefp@mysql.com> | 2004-04-05 19:43:37 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2004-04-05 19:43:37 +0400 |
commit | 9470bf848015a5cfb0291387f9e8cb71ccbc3bb4 (patch) | |
tree | 617aa81bcde9afbb78f590039c16af502a91bb52 /sql/sql_class.cc | |
parent | 518c3c83f8e570b7bb55377d1491feb19b6dca45 (diff) | |
download | mariadb-git-9470bf848015a5cfb0291387f9e8cb71ccbc3bb4.tar.gz |
Many files:
SQL Syntax for Prepared Statements (WL#1622)
ps.test, ps.result:
new file
sql/item.cc:
SQL Syntax for Prepared Statements (WL#1622)
sql/item.h:
SQL Syntax for Prepared Statements (WL#1622)
sql/lex.h:
SQL Syntax for Prepared Statements (WL#1622)
sql/mysql_priv.h:
SQL Syntax for Prepared Statements (WL#1622)
sql/mysqld.cc:
SQL Syntax for Prepared Statements (WL#1622)
sql/sql_class.cc:
SQL Syntax for Prepared Statements (WL#1622)
sql/sql_class.h:
SQL Syntax for Prepared Statements (WL#1622)
sql/sql_lex.h:
SQL Syntax for Prepared Statements (WL#1622)
sql/sql_parse.cc:
SQL Syntax for Prepared Statements (WL#1622)
sql/sql_prepare.cc:
SQL Syntax for Prepared Statements (WL#1622)
sql/sql_yacc.yy:
SQL Syntax for Prepared Statements (WL#1622)
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 1b4c8bec416..49fa0455a30 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -78,6 +78,23 @@ extern "C" void free_user_var(user_var_entry *entry) my_free((char*) entry,MYF(0)); } +/**************************************************************************** +** SQL syntax names for Prepared Statements +****************************************************************************/ + +extern "C" byte *get_stmt_key(SQL_PREP_STMT_ENTRY *entry, uint *length, + my_bool not_used __attribute__((unused))) +{ + *length=(uint) entry->name.length; + return (byte*) entry->name.str; +} + +extern "C" void free_sql_stmt(SQL_PREP_STMT_ENTRY *entry) +{ + char *pos= (char*) entry+ALIGN_SIZE(sizeof(*entry)); + my_free((char*) entry,MYF(0)); +} + /**************************************************************************** ** Thread specific functions @@ -160,7 +177,10 @@ THD::THD():user_time(0), current_statement(0), is_fatal_error(0), 16); else bzero((char*) &user_var_events, sizeof(user_var_events)); - + + hash_init(&sql_prepared_stmts, &my_charset_bin, USER_VARS_HASH_SIZE, 0, 0, + (hash_get_key) get_stmt_key, + (hash_free_key) free_sql_stmt,0); /* Protocol */ protocol= &protocol_simple; // Default protocol protocol_simple.init(this); @@ -279,6 +299,7 @@ void THD::cleanup(void) my_free((char*) variables.datetime_format, MYF(MY_ALLOW_ZERO_PTR)); delete_dynamic(&user_var_events); hash_free(&user_vars); + hash_free(&sql_prepared_stmts); if (global_read_lock) unlock_global_read_lock(this); if (ull) |