private function quoteTableNames($tables, &$params)
{
foreach ($tables as $i => $table) {
if ($table instanceof Query) {
list($sql, $params) = $this->build($table, $params);
$tables[$i] = "({$sql}) " . $this->db->quoteTableName($i);
} elseif (is_string($i)) {
if (strpos($table, '(') === false) {
$table = $this->db->quoteTableName($table);
}
$tables[$i] = "{$table} " . $this->db->quoteTableName($i);
} elseif (strpos($table, '(') === false) {
if (preg_match('/^(.*?)(?i:\\s+as|)\\s+([^ ]+)$/', $table, $matches)) {
// with alias
$tables[$i] = $this->db->quoteTableName($matches[1]) . ' ' . $this->db->quoteTableName($matches[2]);
} else {
$tables[$i] = $this->db->quoteTableName($table);
}
}
}
return $tables;
}