* [feedback#8528,done] fix sql for dm.

This commit is contained in:
liumengyi
2025-02-21 16:49:04 +08:00
committed by 田淑杰
parent ce46d82e50
commit 48b7eefadc
2 changed files with 10 additions and 4 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ $config->bi->duckSQLTemp = array();
$config->bi->duckSQLTemp['mysql'] = "LOAD '{EXTENSIONPATH}';ATTACH 'host={HOST} user={USER} password={PASSWORD} port={PORT} database={DATABASE}' as mysqldb(TYPE MYSQL);USE mysqldb;{COPYSQL}";
$config->bi->duckSQLTemp['dm'] = '{EXTENSIONPATH} --driver="{DRIVER}" --db="host={HOST} user={USER} password={PASSWORD} port={PORT} database={DATABASE}" --copy="{COPYSQL}"';
$config->bi->drivers = array('mysql', 'duckdb');
$config->bi->drivers = array('mysql', 'duckdb', 'dm');
$config->bi->defaultDriver = 'mysql';
$config->bi->columnTypes = new stdclass();
+9 -3
View File
@@ -336,9 +336,10 @@ class biModel extends model
$dbh = $this->app->loadDriver($driver);
$prefixSQL = $driver == 'mysql' ? 'EXPLAIN' : 'PRAGMA enable_profiling=json; EXPLAIN ANALYZE';
if($this->config->db->driver == 'dm') $sql = $dbh->formatSQL($sql);
try
{
$rows = $dbh->query("$prefixSQL $sql")->fetchAll();
$dbh->exec("$prefixSQL $sql");
}
catch(Exception $e)
{
@@ -1696,7 +1697,7 @@ class biModel extends model
$countSql = "SELECT FOUND_ROWS() AS count";
if($driver == 'duckdb') $countSql = "SELECT COUNT(1) AS count FROM ($sql)";
if($driver == 'dm') $countSql = "SELECT COUNT(1) as count";
if($driver == 'dm') $countSql = "SELECT COUNT(1) as count FROM ($sql)";
return array($limitSql, $countSql);
}
@@ -1762,7 +1763,12 @@ class biModel extends model
$recPerPage = $stateObj->pager['recPerPage'];
$pageID = $stateObj->pager['pageID'];
list($limitSql, $countSql) = $this->getSql($sql, $driver, $recPerPage, $pageID);
list($limitSql, $countSql) = $this->getSQL($sql, $this->config->db->driver, $recPerPage, $pageID);
if($this->config->db->driver)
{
$limitSql = $dbh->formatSQL($limitSql);
$countSql = $dbh->formatSQL($countSql);
}
try
{