- [misc] remove duplicate code.

This commit is contained in:
liumengyi
2024-09-06 09:06:59 +08:00
committed by 曹延义
parent b6673ba47e
commit 83db4e933e
-138
View File
@@ -233,46 +233,6 @@ class sqlparser
return "$name($argStr)";
}
/**
* Get expression.
*
* @param string|array $table
* @param string $column
* @param string $alias
* @param string $function
* @access public
* @return PhpMyAdmin\SqlParser\Components\Expression
*/
public function getExpression($table = null, $column = null, $alias = null, $function = null)
{
if(is_array($table)) return call_user_func_array(array($this, 'getExpression'), $table);
$expression = new PhpMyAdmin\SqlParser\Components\Expression();
if(!empty($function))
{
$expression->function = $function;
$expression->expr = $this->getFunction($function, $expression->build($this->getExpression($table, $column)));
}
else
{
if($column === '*')
{
$table = trim(trim($table), '`');
$expression->expr = empty($table) ? '*' : "`$table`.*";
}
else
{
$expression->table = $table;
$expression->column = $column;
}
}
$expression->alias = $alias;
return $expression;
}
/**
* Get expression.
*
@@ -329,58 +289,6 @@ class sqlparser
return $condition;
}
/**
* Get condition.
*
* @param mixed $tableA
* @param mixed $columnA
* @param string $operator
* @param mixed $tableB
* @param mixed $columnB
* @param mixed $group
* @access public
* @return object
*/
public function getCondition($tableA = null, $columnA = null, $operator = '', $tableB = null, $columnB = null, $group = 1)
{
if(is_array($tableA)) return call_user_func_array(array($this, 'getCondition'), $tableA);
$condition = new PhpMyAdmin\SqlParser\Components\Condition();
$tableA = $this->trimExpr($tableA);
$columnA = $this->trimExpr($columnA);
$tableB = $this->trimExpr($tableB);
/* 如果tableB不为空,那么columnB就是字段,需要trim。*/
if(!empty($tableB)) $columnA = $this->trimExpr($columnA);
$exprA = empty($tableA) ? "`$columnA`" : "`$tableA`.`$columnA`";
$exprB = empty($tableB) ? "$columnB" : "`$tableB`.`$columnB`";
$operator = strtoupper($operator);
$condition->expr = "$exprA $operator $exprB";
$condition->group = $group;
return $condition;
}
/**
* operatorCondition
*
* @param string $type
* @access public
* @return void
*/
public function operatorCondition($type)
{
$condition = new PhpMyAdmin\SqlParser\Components\Condition();
$condition->isOperator = true;
$condition->expr = strtoupper($type);
return $condition;
}
/**
* Get condition.
*
@@ -529,52 +437,6 @@ class sqlparser
return $conditions;
}
/**
* Combine conditions.
*
* @param array|object $conditions
* @access public
* @return array
*/
public function combineConditions($conditions, $quote = false)
{
if(empty($conditions)) return array();
if($conditions instanceof PhpMyAdmin\SqlParser\Components\Condition === true) return $conditions;
$first = reset($conditions);
$last = end($conditions);
if($quote)
{
$first = $this->addQuote($first, 'left');
$last = $this->addQuote($last, 'right');
}
$quote = true;
if(is_array($first)) $first = $this->combineConditions($first, $quote);
if(is_array($last)) $last = $this->combineConditions($last, $quote);
$conditions[0] = $first;
$conditions[count($conditions) - 1] = $last;
return $conditions;
}
public function addQuote($conditions, $side)
{
if($conditions instanceof PhpMyAdmin\SqlParser\Components\Condition === true)
{
$expr = $conditions->expr;
$conditions->expr = $side == 'left' ? '(' . $expr : $expr . ')';
return $conditions;
}
$condition = $side == 'left' ? current($conditions) : end($conditions);
$index = $side == 'left' ? 0 : count($conditions) - 1;
$conditions[$index] = $this->addQuote($condition, $side);
return $conditions;
}
/**
* Match columns with table.
*