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
00027 using namespace drizzled;
00028
00029 bool optimizer::UniqueIndex::getStats(Table *table,
00030 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 return false;
00051 }