From 84f3a5ddefd46483d21effb5af494c50a9f87e71 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Mon, 26 Oct 2015 19:54:18 +0100 Subject: [PATCH] DibiResultInfo: fixed case insensitivity --- dibi/libs/DibiDatabaseInfo.php | 2 +- tests/dibi/DibiResult.meta.phpt | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dibi/libs/DibiDatabaseInfo.php b/dibi/libs/DibiDatabaseInfo.php index d8293f77..2b031f55 100644 --- a/dibi/libs/DibiDatabaseInfo.php +++ b/dibi/libs/DibiDatabaseInfo.php @@ -390,7 +390,7 @@ class DibiResultInfo extends DibiObject $this->columns = array(); $reflector = $this->driver instanceof IDibiReflector ? $this->driver : NULL; foreach ($this->driver->getResultColumns() as $info) { - $this->columns[] = $this->names[$info['name']] = new DibiColumnInfo($reflector, $info); + $this->columns[] = $this->names[strtolower($info['name'])] = new DibiColumnInfo($reflector, $info); } } } diff --git a/tests/dibi/DibiResult.meta.phpt b/tests/dibi/DibiResult.meta.phpt index 46d95e49..517dad37 100644 --- a/tests/dibi/DibiResult.meta.phpt +++ b/tests/dibi/DibiResult.meta.phpt @@ -16,7 +16,7 @@ $conn = new DibiConnection($config); $conn->loadFile(__DIR__ . "/data/$config[system].sql"); $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 INNER JOIN orders USING (product_id) INNER JOIN customers USING (customer_id) @@ -24,14 +24,14 @@ $info = $conn->query(' Assert::same( - array('product_id', 'order_id', 'name', 'xxx'), + array('product_id', 'order_id', 'name', 'xXx'), $info->getColumnNames() ); if ($config['driver'] !== 'sqlite3' && $config['driver'] !== 'pdo') { Assert::same( - array('products.product_id', 'orders.order_id', 'customers.name', 'xxx'), + array('products.product_id', 'orders.order_id', 'customers.name', 'xXx'), $info->getColumnNames(TRUE) ); } @@ -49,9 +49,12 @@ if ($config['system'] !== 'sqlite') { } Assert::null($columns[0]->nullable); -Assert::same('xxx', $columns[3]->name); +Assert::same('xXx', $columns[3]->name); Assert::null($columns[3]->tableName); if ($config['system'] !== 'sqlite') { Assert::same('i', $columns[0]->type); } Assert::null($columns[3]->nullable); + +Assert::same('xXx', $info->getColumn('xxx')->getName()); +Assert::same('xXx', $info->getColumn('xXx')->getName());