mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Added support for calculating index cadinality
This commit is contained in:
parent
c12c9af224
commit
f3c68d3831
2 changed files with 22 additions and 4 deletions
|
@ -166,9 +166,19 @@ struct Ndb_table_local_info {
|
|||
ha_rows records;
|
||||
};
|
||||
|
||||
void ha_ndbcluster::set_rec_per_key()
|
||||
{
|
||||
DBUG_ENTER("ha_ndbcluster::get_status_const");
|
||||
for (uint i=0 ; i < table->keys ; i++)
|
||||
{
|
||||
table->key_info[i].rec_per_key[table->key_info[i].key_parts-1]= 1;
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void ha_ndbcluster::records_update()
|
||||
{
|
||||
DBUG_ENTER("ha_ndbcluster::records_update");
|
||||
DBUG_ENTER("ha_ndbcluster::get_status_variable");
|
||||
struct Ndb_table_local_info *info= (struct Ndb_table_local_info *)m_table_info;
|
||||
DBUG_PRINT("info", ("id=%d, no_uncommitted_rows_count=%d",
|
||||
((const NDBTAB *)m_table)->getTableId(),
|
||||
|
@ -2380,13 +2390,16 @@ void ha_ndbcluster::info(uint flag)
|
|||
DBUG_PRINT("info", ("HA_STATUS_NO_LOCK"));
|
||||
if (flag & HA_STATUS_TIME)
|
||||
DBUG_PRINT("info", ("HA_STATUS_TIME"));
|
||||
if (flag & HA_STATUS_CONST)
|
||||
DBUG_PRINT("info", ("HA_STATUS_CONST"));
|
||||
if (flag & HA_STATUS_VARIABLE)
|
||||
{
|
||||
DBUG_PRINT("info", ("HA_STATUS_VARIABLE"));
|
||||
records_update();
|
||||
}
|
||||
if (flag & HA_STATUS_CONST)
|
||||
{
|
||||
DBUG_PRINT("info", ("HA_STATUS_CONST"));
|
||||
set_rec_per_key();
|
||||
}
|
||||
if (flag & HA_STATUS_ERRKEY)
|
||||
{
|
||||
DBUG_PRINT("info", ("HA_STATUS_ERRKEY"));
|
||||
|
@ -3432,6 +3445,7 @@ ha_ndbcluster::~ha_ndbcluster()
|
|||
|
||||
int ha_ndbcluster::open(const char *name, int mode, uint test_if_locked)
|
||||
{
|
||||
int res;
|
||||
KEY *key;
|
||||
DBUG_ENTER("open");
|
||||
DBUG_PRINT("enter", ("name: %s mode: %d test_if_locked: %d",
|
||||
|
@ -3458,8 +3472,11 @@ int ha_ndbcluster::open(const char *name, int mode, uint test_if_locked)
|
|||
free_share(m_share); m_share= 0;
|
||||
DBUG_RETURN(HA_ERR_NO_CONNECTION);
|
||||
}
|
||||
res= get_metadata(name);
|
||||
if (!res)
|
||||
info(HA_STATUS_VARIABLE | HA_STATUS_CONST);
|
||||
|
||||
DBUG_RETURN(get_metadata(name));
|
||||
DBUG_RETURN(res);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -258,6 +258,7 @@ class ha_ndbcluster: public handler
|
|||
uint32 blobs_buffer_size;
|
||||
uint dupkey;
|
||||
|
||||
void set_rec_per_key();
|
||||
void records_update();
|
||||
void no_uncommitted_rows_execute_failure();
|
||||
void no_uncommitted_rows_update(int);
|
||||
|
|
Loading…
Reference in a new issue