From: Nicolas Boisselier Date: Fri, 1 Jul 2016 10:11:20 +0000 (+0100) Subject: try to get indexes X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=2dcbd101d66b7ec7189d3fa0144a49531d982a98;p=nb.git try to get indexes --- diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 63855767..3b7a09f9 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -126,7 +126,7 @@ Class Table extends nb { $db_sql_replace_fct = empty($this->db()->sql_replace) ? '' : $this->db()->sql_replace; $sql_replace = function($sql) use ($sql_replace_fct,$db_sql_replace_fct) { if ($db_sql_replace_fct) $sql = $db_sql_replace_fct($sql); - return $sql_replace_fct ? $sql_replace_fct($sql) : $sql; + return $sql_replace_fct ? $sql_replace_fct($sql,$this) : $sql; }; if (!self::p('db.type')) return $sql_replace($this->sql()); @@ -162,7 +162,8 @@ Class Table extends nb { ; } - return $sql_replace($sql.')'); + $sql_index = '';#$this->db()->type('table.sql.index',false); + return $sql_replace($sql.')'.($sql_index ? ';'.$this->db()->row($sql_index) : '')); } /* diff --git a/lib/php/db/types/sqlite.php b/lib/php/db/types/sqlite.php index a36afe7d..39db9881 100644 --- a/lib/php/db/types/sqlite.php +++ b/lib/php/db/types/sqlite.php @@ -13,6 +13,7 @@ $DB_TYPES['sqlite'] = array ( #'table.sql' => 'SELECT sql FROM sqlite_master WHERE name=\'\'', 'table.sql' => "SELECT GROUP_CONCAT(sql,';') FROM sqlite_master WHERE tbl_name=''", +'table.sql.index' => "SELECT sql FROM sqlite_master WHERE type='index' AND tbl_name=''", 'table.csv.load' => ['.mode csv','.sep \\t','.import '], 'sqliteCreateFunction' => array ( @@ -66,4 +67,8 @@ $DB_TYPES['sqlite'] = array ( $field->type = preg_replace(array_keys($r),array_values($r),$field->type); }, +'sql.replace' => function($sql,$t) { + #$sql .= $t->db()->row("SELECT sql FROM sqlite_master WHERE type='index' AND tbl_name=".$t->sql_name()); + return $sql; +}, );?>