summaryrefslogtreecommitdiff
path: root/sql/opt_range.cc
diff options
context:
space:
mode:
authorram@gw.mysql.r18.ru <>2004-08-26 17:43:08 +0500
committerram@gw.mysql.r18.ru <>2004-08-26 17:43:08 +0500
commit49868b9fd498adee2fe29ea8eaed72c3a36b117c (patch)
treec5ad5f34987dec0ad20ba2d753b9ed5bf3b1c956 /sql/opt_range.cc
parent2a29cb02045d99c95570898a9bf6b971dd32ea75 (diff)
downloadmariadb-git-49868b9fd498adee2fe29ea8eaed72c3a36b117c.tar.gz
Should check for GEOM_FLAG later because keyX may be partly initialized (min_flag is not set).
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r--sql/opt_range.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 02947e58a9e..f11ed31950a 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -1401,12 +1401,6 @@ key_and(SEL_ARG *key1,SEL_ARG *key2,uint clone_flag)
return key2;
if (!key2)
return key1;
- if ((key1->min_flag | key2->min_flag) & GEOM_FLAG)
- {
- key1->free_tree();
- key2->free_tree();
- return 0; // Can't optimize this
- }
if (key1->part != key2->part)
{
if (key1->part > key2->part)
@@ -1462,6 +1456,13 @@ key_and(SEL_ARG *key1,SEL_ARG *key2,uint clone_flag)
return key1;
}
+ if ((key1->min_flag | key2->min_flag) & GEOM_FLAG)
+ {
+ key1->free_tree();
+ key2->free_tree();
+ return 0; // Can't optimize this
+ }
+
key1->use_count--;
key2->use_count--;
SEL_ARG *e1=key1->first(), *e2=key2->first(), *new_tree=0;