summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <pekka@mysql.com>2005-03-28 23:06:19 +0200
committerunknown <pekka@mysql.com>2005-03-28 23:06:19 +0200
commit73e15f57f84c2639e320c647b6830e0bab79d858 (patch)
treee6080a4ea78a3fdff6cf8095ab0d0d77de2e3120 /sql
parent0e13f97e3a2511afc962aa0f555549567a8ad906 (diff)
parent5fb5282784c2d3fabb504367c1114282a65bbee8 (diff)
downloadmariadb-git-73e15f57f84c2639e320c647b6830e0bab79d858.tar.gz
Merge
client/mysqltest.c: Auto merged BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003: Auto merged myisam/mi_create.c: Auto merged mysql-test/r/grant2.result: Auto merged mysql-test/r/metadata.result: Auto merged mysql-test/r/ps_1general.result: Auto merged mysql-test/r/ps_2myisam.result: Auto merged mysql-test/r/ps_3innodb.result: Auto merged mysql-test/r/ps_4heap.result: Auto merged mysql-test/r/ps_5merge.result: Auto merged mysql-test/r/ps_6bdb.result: Auto merged mysql-test/r/type_enum.result: Auto merged mysql-test/t/grant2.test: Auto merged sql/sql_acl.cc: Auto merged sql/sql_parse.cc: Auto merged ndb/src/kernel/blocks/dbacc/Dbacc.hpp: SCCS merged ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: SCCS merged sql/sql_union.cc: DBUG_ASSERT(TRUE) is useless so assume opposite
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_acl.cc8
-rw-r--r--sql/sql_union.cc2
2 files changed, 7 insertions, 3 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 0a5939428cd..021d771cef1 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -1097,6 +1097,9 @@ static void acl_insert_db(const char *user, const char *host, const char *db,
/*
Get privilege for a host, user and db combination
+
+ as db_is_pattern changes the semantics of comparison,
+ acl_cache is not used if db_is_pattern is set.
*/
ulong acl_get(const char *host, const char *ip,
@@ -1116,7 +1119,7 @@ ulong acl_get(const char *host, const char *ip,
db=tmp_db;
}
key_length=(uint) (end-key);
- if ((entry=(acl_entry*) acl_cache->search(key,key_length)))
+ if (!db_is_pattern && (entry=(acl_entry*) acl_cache->search(key,key_length)))
{
db_access=entry->access;
VOID(pthread_mutex_unlock(&acl_cache->lock));
@@ -1165,7 +1168,8 @@ ulong acl_get(const char *host, const char *ip,
}
exit:
/* Save entry in cache for quick retrieval */
- if ((entry= (acl_entry*) malloc(sizeof(acl_entry)+key_length)))
+ if (!db_is_pattern &&
+ (entry= (acl_entry*) malloc(sizeof(acl_entry)+key_length)))
{
entry->access=(db_access & host_access);
entry->length=key_length;
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index 13c7f0a40b7..e366668659b 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -418,7 +418,7 @@ bool st_select_lex_unit::exec()
}
/* re-enabling indexes for next subselect iteration */
if (union_distinct && table->file->enable_indexes(HA_KEY_SWITCH_ALL))
- DBUG_ASSERT(TRUE);
+ DBUG_ASSERT(0);
}
for (SELECT_LEX *sl= select_cursor; sl; sl= sl->next_select())
{