← Back to team overview

maria-developers team mailing list archive

bzr commit into file:///home/tsk/mprog/src/5.3-subqueries/ branch (timour:2788)

 

#At file:///home/tsk/mprog/src/5.3-subqueries/ based on revid:psergey@xxxxxxxxxxxx-20100329200940-9ikx6gpww0gtsx00

 2788 timour@xxxxxxxxxxxx	2010-04-02
      MWL#68: Subquery optimization: Efficient NOT IN execution with NULLs
      
      Fixed an error where the priority queue for the indexes used for partial
      matching was not emptied after each execution in all cases.

    modified:
      sql/item_subselect.cc
=== modified file 'sql/item_subselect.cc'
--- a/sql/item_subselect.cc	2010-03-29 14:04:35 +0000
+++ b/sql/item_subselect.cc	2010-04-02 14:27:06 +0000
@@ -3882,8 +3882,9 @@ subselect_hash_sj_engine::make_unique_en
                                     cur_ref_buff + test(maybe_null), we could
                                     use that information instead.
                                  */
+
                                  cur_ref_buff + null_count,
-                                 null_count ? tab->ref.key_buff : 0,
+                                 null_count ? cur_ref_buff : 0,
                                  cur_key_part->length, tab->ref.items[i]);
     cur_ref_buff+= cur_key_part->store_length;
   }
@@ -4908,6 +4909,8 @@ bool subselect_rowid_merge_engine::parti
 
   /* If there is a non-NULL key, it must be the first key in the keys array. */
   DBUG_ASSERT(!non_null_key || (non_null_key && merge_keys[0] == non_null_key));
+  /* The prioryty queue for keys must be empty. */
+  DBUG_ASSERT(!pq.elements);
 
   /* All data accesses during execution are via handler::ha_rnd_pos() */
   tmp_table->file->ha_rnd_init(0);
@@ -5031,6 +5034,7 @@ bool subselect_rowid_merge_engine::parti
   DBUG_ASSERT(FALSE);
 
 end:
+  queue_remove_all(&pq);
   tmp_table->file->ha_rnd_end();
   return res;
 }

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: timour@xxxxxxxxxxxx-20100402142706-klcgi39tjzhvy22z
# target_branch: file:///home/tsk/mprog/src/5.3-subqueries/
# testament_sha1: 4fde523e2e0dc9c7d4f88387713d20721fbc0bdd
# timestamp: 2010-04-02 17:27:10 +0300
# source_branch: file:///home/tsk/mprog/src/5.3-mwl68/
# base_revision_id: psergey@xxxxxxxxxxxx-20100329200940-\
#   9ikx6gpww0gtsx00
# 
# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWUDpC+sAAcP/gEAQAAJ5d///
96eegL////BQBHqu569mt53TZr21W3CUhNCJvUMptTNDKaek9QaDBGTJk0AeoCSSZBPTUZMRkp6M
UzSAaGgBkAB6g1MIU9Seo8UfqAygBkYmjQNBk9Q9TTJoNqhDKmn6kep6Q0xPRDE9QNAwQxAAaCSR
NACU/0jEp+gJknqZMgDTQNAAaSzT1x4nz0hPkbRTZs3TcwgTIFJaVFAYsi3qGrQ6p0QHwhwsumuF
SlIYvb0QsfT9egc/I0tqiUjYGs31rTtTODOffOTbaYtS1LDPtUQKu+EeqQ6XoZohKEEyzkA1ph32
sPbLI1eGmead6l9UOZEWu4wQ2WJsEk/H99L3FNGXBCs8kUsbFfRdlVN+66E09cnmBcc53itUy8UV
uJ4YGJzWNcJjpuWM3jT0hk8YRMTi3QmDSMk+AMQE+EE8dkTG/koowYPWNAHMJ3HLKse91craqD3D
vyWiqkdT+jO0p/bRlC3N2qtMIkLkH7qOBIZCfDQU2Ejhabg0J4RKDMMyUnz2wu65Irt/hNgs49GQ
tZQPkKRQLfRdmbEjdGWANkoQMRwIKqIGLeBA5hKOYc9ie8x9M5lUaYnJbj/bSJEnHlo80uwaAqYv
LVkZiPvrMyoNZw4qY5mr3TJNOUHo7YSzKVUxuL3QJQe1Ra6QxAYZW5ic2ZOMH5mC0qFT0QdYGGNi
bMaDgrBaeVk9bOnWhVqSwcEOwzdh1sLexHi1nAZxgHTFxfyjFIjzDkNLVhwBBmxd0mEPip6fpnrP
YeeOpo94QrXXUumCqqLPplmeFigVdXLrvvn6jA1hkKSEyG1dKsg0kcWQzjMcRbY21ZMrkTRsqRC4
EeDR2FfSZjTbdqNhlUtXWlauBYY5uxbSrvixn22bXPYqz7k5jeMHZbIisB6ePeRKRXFcLy/w3Zza
tz+agb4azWZyzVuPmY6DV32kAtid7TBfIxbjlfq/DYEFwsWaFZF1iucjWUdGp1taLo7Qdc+Swkpo
KQFJXFUBpp1a8lsHb23DECWg9GnlbwojNt7mYJOXiLd0P30QeEWsKBHSJQlfEY5oCBTgZ59reqTi
XC0CmN4olr4lkmXQKFUrjgVdaoCQRpOINb4vvsfJhMMzCrNIHVsMeUO903TkUivIV4BUKlIia1vi
RgnXigHUE66iEnqxXTk3dhUWtjx5/FoSIJUU8xY8uMOuYqnYRIeN8iJGHQMZbeNWFaKGCsC/XD3K
h4zflBcjgXMpRRgNpSxAoSHRIOqjXEDnDQOrNu3JTVQKgylfy5T0kYjR6WIRbFRJerm1GwxNG0n2
kVsxzUMnLABwSv51AV/CjBk+dImRQ0SYNPpwOaicN1MmKmLhzmXdrg+pkwzYF1yiGU03kHlpvAaC
RStZg2VBW1APnTplPeWxn3qWUl9RRM7Or58jwPcdNeODDx114ya8l5RaAsSqZcF5879jYzApK0ND
DsslQqYWd17Atb15qokecHvFJXkYjY2tkuM6tXJUF7BDYzCTecTng+LnO5xa5tAxl+hSz4/4u5Ip
woSCB0hfWA==