00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <config.h>
00022 #include <drizzled/session.h>
00023 #include <drizzled/join_table.h>
00024 #include <drizzled/sql_select.h>
00025 #include <drizzled/optimizer/access_method/unique_index.h>
00026 #include <drizzled/table.h>
00027
00028 using namespace drizzled;
00029
00030 void optimizer::UniqueIndex::getStats(Table& table, JoinTable& join_tab)
00031 {
00032 table.status= STATUS_NO_RECORD;
00033 if (join_tab.select)
00034 {
00035 delete join_tab.select->quick;
00036 join_tab.select->quick= 0;
00037 }
00038 delete join_tab.quick;
00039
00040 join_tab.quick= 0;
00041 join_tab.read_first_record= join_read_key;
00042 join_tab.read_record.read_record= join_no_more_records;
00043
00044 if (table.covering_keys.test(join_tab.ref.key) &&
00045 ! table.no_keyread)
00046 {
00047 table.key_read= 1;
00048 table.cursor->extra(HA_EXTRA_KEYREAD);
00049 }
00050 }