1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Trivial manual merge

This commit is contained in:
sergefp@mysql.com
2004-05-15 00:06:16 +04:00
13 changed files with 620 additions and 56 deletions

View File

@ -461,6 +461,7 @@ public:
*/
bool allow_sum_func;
LEX_STRING name; /* name for named prepared statements */
LEX *lex; // parse tree descriptor
/*
Points to the query associated with this statement. It's const, but
@ -527,8 +528,14 @@ public:
/*
Used to seek all existing statements in the connection
Deletes all statements in destructor.
Container for all statements created/used in a connection.
Statements in Statement_map have unique Statement::id (guaranteed by id
assignment in Statement::Statement)
Non-empty statement names are unique too: attempt to insert a new statement
with duplicate name causes older statement to be deleted
Statements are auto-deleted when they are removed from the map and when the
map is deleted.
*/
class Statement_map
@ -536,12 +543,14 @@ class Statement_map
public:
Statement_map();
int insert(Statement *statement)
int insert(Statement *statement);
Statement *find_by_name(LEX_STRING *name)
{
int rc= my_hash_insert(&st_hash, (byte *) statement);
if (rc == 0)
last_found_statement= statement;
return rc;
Statement *stmt;
stmt= (Statement*)hash_search(&names_hash, (byte*)name->str,
name->length);
return stmt;
}
Statement *find(ulong id)
@ -555,15 +564,21 @@ public:
{
if (statement == last_found_statement)
last_found_statement= 0;
if (statement->name.str)
{
hash_delete(&names_hash, (byte *) statement);
}
hash_delete(&st_hash, (byte *) statement);
}
~Statement_map()
{
hash_free(&st_hash);
hash_free(&names_hash);
}
private:
HASH st_hash;
HASH names_hash;
Statement *last_found_statement;
};