helper->quoteColumnName($column) . ' AS BIGINT)'); case IQueryBuilder::PARAM_STR: case IQueryBuilder::PARAM_JSON: return new QueryFunction('CAST(' . $this->helper->quoteColumnName($column) . ' AS TEXT)'); default: return parent::castColumn($column, $type); } } /** * @inheritdoc */ protected function prepareColumn($column, $type) { if ($type === IQueryBuilder::PARAM_JSON && !is_array($column) && !($column instanceof IParameter) && !($column instanceof ILiteral)) { $column = $this->castColumn($column, $type); } return parent::prepareColumn($column, $type); } /** * @inheritdoc */ public function iLike($x, $y, $type = null): string { $x = $this->helper->quoteColumnName($x); $y = $this->helper->quoteColumnName($y); return $this->expressionBuilder->comparison($x, 'ILIKE', $y); } }