summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-08-15 09:54:19 +0300
committerunknown <monty@mashka.mysql.fi>2003-08-15 09:54:19 +0300
commitccd828900b1d7cbb4e68562b06e1d8d7455eea5e (patch)
tree8af6b315e91238a5e5102bbf069129cfc58554b0 /sql
parent5c9e0cdc5309a7f16aa57a9a99e11f0c7740e7ec (diff)
downloadmariadb-git-ccd828900b1d7cbb4e68562b06e1d8d7455eea5e.tar.gz
Cleanups to recent patches
Fix packet error when using wrong GRANT command include/config-win.h: Changed back to test for HAVE_SETFILEPOINTER instead of operating system mysql-test/r/grant.result: Extra test to catch wrong packet bug mysql-test/t/grant.test: Extra test to catch wrong packet bug mysys/my_chsize.c: Cleanup sql/opt_range.cc: Fix to recent BETWEEN patch sql/sql_acl.cc: Fix packet error when using wrong GRANT command sql/sql_select.cc: Cleanups Added not critical out-of-memory check
Diffstat (limited to 'sql')
-rw-r--r--sql/opt_range.cc3
-rw-r--r--sql/sql_acl.cc2
-rw-r--r--sql/sql_select.cc10
3 files changed, 11 insertions, 4 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index c7bad3b18f3..349a5d0271c 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -798,7 +798,8 @@ static SEL_TREE *get_mm_tree(PARAM *param,COND *cond)
table_map ref_tables=cond->used_tables();
if (cond->type() != Item::FUNC_ITEM)
{ // Should be a field
- if (ref_tables & param->current_table)
+ if ((ref_tables & param->current_table) ||
+ (ref_tables & ~(param->prev_tables | param->read_tables)))
DBUG_RETURN(0);
DBUG_RETURN(new SEL_TREE(SEL_TREE::MAYBE));
}
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 6df778c997b..83cd2c7d2b4 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -2370,7 +2370,7 @@ int mysql_grant (THD *thd, const char *db, List <LEX_USER> &list,
else
{
net_printf(&thd->net,ER_WRONG_USAGE,"DB GRANT","GLOBAL PRIVILEGES");
- result= -1;
+ result= 1;
}
}
}
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index c4c2f890f5d..7922af04ea8 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1490,11 +1490,15 @@ add_key_field(KEY_FIELD **key_fields,uint and_level,
}
}
DBUG_ASSERT(num_values == 1);
- // DBUG_ASSERT(eq_func); /* QQ: Can I uncomment this ASSERT ? */
+ /*
+ For the moment eq_func is always true. This slot is reserved for future
+ extensions where we want to remembers other things than just eq comparisons
+ */
+ DBUG_ASSERT(eq_func);
/* Store possible eq field */
(*key_fields)->field=field;
(*key_fields)->eq_func=eq_func;
- (*key_fields)->val=*value;
+ (*key_fields)->val= *value;
(*key_fields)->level=(*key_fields)->const_level=and_level;
(*key_fields)->exists_optimize=exists_optimize;
(*key_fields)++;
@@ -1582,6 +1586,8 @@ add_key_fields(JOIN_TAB *stat,KEY_FIELD **key_fields,uint *and_level,
if (cond_func->arguments()[0]->type() == Item::FIELD_ITEM)
{
Item *tmp=new Item_null;
+ if (!tmp) // Should never be true
+ return;
add_key_field(key_fields,*and_level,
((Item_field*) (cond_func->arguments()[0]))->field,
cond_func->functype() == Item_func::ISNULL_FUNC,