summaryrefslogtreecommitdiffstats
path: root/system/database/drivers/odbc
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-10-27 02:22:43 +0200
committerAndrey Andreev <narf@bofh.bg>2012-10-27 02:22:43 +0200
commit485a348a7a633d38f69a963e9f77e23077f75d11 (patch)
treed45c37f73b848e054ad424bfe29fbf839867b944 /system/database/drivers/odbc
parentca20d8445312e49e1e974c5ed8cf04400929e615 (diff)
Add database schema configuration support (used by PostgreSQL, fix #158)
Diffstat (limited to 'system/database/drivers/odbc')
-rw-r--r--system/database/drivers/odbc/odbc_driver.php13
1 files changed, 9 insertions, 4 deletions
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index 063a04b98..37f7a28d3 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -50,6 +50,11 @@ class CI_DB_odbc_driver extends CI_DB {
protected $_random_keyword;
/**
+ * @var string Database schema
+ */
+ public $schema = 'public';
+
+ /**
* Constructor
*
* @param array $params
@@ -234,17 +239,17 @@ class CI_DB_odbc_driver extends CI_DB {
*
* Generates a platform-specific query string so that the table names can be fetched
*
- * @param bool
+ * @param bool $prefix_limit = FALSE
* @return string
*/
protected function _list_tables($prefix_limit = FALSE)
{
- $sql = 'SHOW TABLES FROM '.$this->database;
+ $sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = '".$this->schema."'";
if ($prefix_limit !== FALSE && $this->dbprefix !== '')
{
- //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr);
- return FALSE; // not currently supported
+ return $sql." AND table_name LIKE '".$this->escape_like_str($this->dbprefix)."%' "
+ .sprintf($this->_like_escape_str, $this->_like_escape_chr);
}
return $sql;