code: 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;
      }
docs: Quotes table names passed.
  
  @param array $tables
  @param array $params
  @return array