1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-07 14:46:50 +02:00

Reflection\Result: fixed case insensitivity

This commit is contained in:
David Grudl
2015-10-26 19:54:18 +01:00
parent a3325cac4d
commit f2a400084f
2 changed files with 8 additions and 5 deletions

View File

@@ -98,7 +98,7 @@ class Result
$this->columns = []; $this->columns = [];
$reflector = $this->driver instanceof Dibi\Reflector ? $this->driver : NULL; $reflector = $this->driver instanceof Dibi\Reflector ? $this->driver : NULL;
foreach ($this->driver->getResultColumns() as $info) { foreach ($this->driver->getResultColumns() as $info) {
$this->columns[] = $this->names[$info['name']] = new Column($reflector, $info); $this->columns[] = $this->names[strtolower($info['name'])] = new Column($reflector, $info);
} }
} }
} }

View File

@@ -16,7 +16,7 @@ $conn = new Dibi\Connection($config);
$conn->loadFile(__DIR__ . "/data/$config[system].sql"); $conn->loadFile(__DIR__ . "/data/$config[system].sql");
$info = $conn->query(' $info = $conn->query('
SELECT products.product_id, orders.order_id, customers.name, products.product_id + 1 AS xxx SELECT products.product_id, orders.order_id, customers.name, products.product_id + 1 AS [xXx]
FROM products FROM products
INNER JOIN orders USING (product_id) INNER JOIN orders USING (product_id)
INNER JOIN customers USING (customer_id) INNER JOIN customers USING (customer_id)
@@ -24,14 +24,14 @@ $info = $conn->query('
Assert::same( Assert::same(
['product_id', 'order_id', 'name', 'xxx'], ['product_id', 'order_id', 'name', 'xXx'],
$info->getColumnNames() $info->getColumnNames()
); );
if ($config['driver'] !== 'sqlite3' && $config['driver'] !== 'pdo') { if ($config['driver'] !== 'sqlite3' && $config['driver'] !== 'pdo') {
Assert::same( Assert::same(
['products.product_id', 'orders.order_id', 'customers.name', 'xxx'], ['products.product_id', 'orders.order_id', 'customers.name', 'xXx'],
$info->getColumnNames(TRUE) $info->getColumnNames(TRUE)
); );
} }
@@ -49,9 +49,12 @@ if ($config['system'] !== 'sqlite') {
} }
Assert::null($columns[0]->isNullable()); Assert::null($columns[0]->isNullable());
Assert::same('xxx', $columns[3]->getName()); Assert::same('xXx', $columns[3]->getName());
Assert::null($columns[3]->getTableName()); Assert::null($columns[3]->getTableName());
if ($config['system'] !== 'sqlite') { if ($config['system'] !== 'sqlite') {
Assert::same('i', $columns[0]->getType()); Assert::same('i', $columns[0]->getType());
} }
Assert::null($columns[3]->isNullable()); Assert::null($columns[3]->isNullable());
Assert::same('xXx', $info->getColumn('xxx')->getName());
Assert::same('xXx', $info->getColumn('xXx')->getName());