feat: 同步下新环境

This commit is contained in:
笔记本里的永平
2025-07-07 11:31:25 +08:00
parent 3d1050db3d
commit 86c261ba70
196 changed files with 13146 additions and 29319 deletions

View File

@@ -12,28 +12,24 @@
namespace think\db\builder;
use think\db\Builder;
use think\db\Query;
/**
* Pgsql数据库驱动
*/
class Pgsql extends Builder
{
protected $insertSql = 'INSERT INTO %TABLE% (%FIELD%) VALUES (%DATA%) %COMMENT%';
protected $insertAllSql = 'INSERT INTO %TABLE% (%FIELD%) %DATA% %COMMENT%';
/**
* limit分析
* @access protected
* @param Query $query 查询对象
* @param mixed $limit
* @param mixed $limit
* @return string
*/
public function parseLimit(Query $query, $limit)
public function parseLimit($limit)
{
$limitStr = '';
if (!empty($limit)) {
$limit = explode(',', $limit);
if (count($limit) > 1) {
@@ -42,19 +38,17 @@ class Pgsql extends Builder
$limitStr .= ' LIMIT ' . $limit[0] . ' ';
}
}
return $limitStr;
}
/**
* 字段和表名处理
* @access public
* @param Query $query 查询对象
* @param mixed $key 字段名
* @param bool $strict 严格检测
* @access protected
* @param mixed $key
* @param array $options
* @return string
*/
public function parseKey(Query $query, $key, $strict = false)
protected function parseKey($key, $options = [], $strict = false)
{
if (is_numeric($key)) {
return $key;
@@ -63,40 +57,31 @@ class Pgsql extends Builder
}
$key = trim($key);
if (strpos($key, '->') && false === strpos($key, '(')) {
if (strpos($key, '$.') && false === strpos($key, '(')) {
// JSON字段支持
list($field, $name) = explode('->', $key);
list($field, $name) = explode('$.', $key);
$key = $field . '->>\'' . $name . '\'';
} elseif (strpos($key, '.')) {
list($table, $key) = explode('.', $key, 2);
$alias = $query->getOptions('alias');
if ('__TABLE__' == $table) {
$table = $query->getOptions('table');
$table = is_array($table) ? array_shift($table) : $table;
$table = $this->query->getTable();
}
if (isset($alias[$table])) {
$table = $alias[$table];
if (isset($options['alias'][$table])) {
$table = $options['alias'][$table];
}
}
if (isset($table)) {
$key = $table . '.' . $key;
}
return $key;
}
/**
* 随机排序
* @access protected
* @param Query $query 查询对象
* @return string
*/
protected function parseRand(Query $query)
protected function parseRand()
{
return 'RANDOM()';
}