code: public function buildColumns($columns)
      {
          if (!is_array($columns)) {
              if (strpos($columns, '(') !== false) {
                  return $columns;
              }
  
              $rawColumns = $columns;
              $columns = preg_split('/\s*,\s*/', $columns, -1, PREG_SPLIT_NO_EMPTY);
              if ($columns === false) {
                  throw new InvalidArgumentException("$rawColumns is not valid columns.");
              }
          }
          foreach ($columns as $i => $column) {
              if ($column instanceof ExpressionInterface) {
                  $columns[$i] = $this->buildExpression($column);
              } elseif (strpos($column, '(') === false) {
                  $columns[$i] = $this->db->quoteColumnName($column);
              }
          }
  
          return implode(', ', $columns);
      }
docs: Processes columns and properly quotes them if necessary.
  It will join all columns into a string with comma as separators.
  @param string|array $columns the columns to be processed
  @return string the processing result