Handle Key_name or key_name in NibbleIterator::_get_index_cardinality().

This commit is contained in:
Daniel Nichter
2012-04-02 19:24:38 -06:00
parent 5eaa565566
commit 403c93db3b

View File

@@ -549,8 +549,11 @@ sub _get_index_cardinality {
. "WHERE Key_name = '$index'";
PTDEBUG && _d($sql);
my $cardinality = 1;
# XXX This will fail for the new Cxn which does not set NAME_lc by default.
my $rows = $cxn->dbh()->selectall_hashref($sql, 'key_name');
my $dbh = $cxn->dbh();
my $key_name = $dbh && ($dbh->{FetchHashKeyName} || '') eq 'NAME_lc'
? 'key_name'
: 'Key_name';
my $rows = $dbh->selectall_hashref($sql, $key_name);
foreach my $row ( values %$rows ) {
$cardinality *= $row->{cardinality} if $row->{cardinality};
}