/** @override */ public function toSql($tableSql, EarthIT_DBC_Namer $dbObjectNamer, EarthIT_DBC_ParamsBuilder $params) { $columnName = $dbObjectNamer->getColumnName($this->rc, $this->field); $fieldValueSql = $tableSql . '.{' . $params->bind(new EarthIT_DBC_SQLIdentifier($columnName)) . '}'; $valueParamName = $params->bind($this->value); return "{$fieldValueSql} = {{$valueParamName}}"; }
/** * @param string $tableSql SQL fragment giving the table name or alias */ public function toSql($tableSql, EarthIT_DBC_Namer $dbObjectNamer, EarthIT_DBC_ParamsBuilder $params) { $columnName = $dbObjectNamer->getColumnName($this->rc, $this->field); $fieldValueSql = $tableSql . '.{' . $params->bind(new EarthIT_DBC_SQLIdentifier($columnName)) . '}'; $valueValueSql = $this->valueExpression->toSql($params); return $this->comparisonOp->toSql($fieldValueSql, $valueValueSql); }
/** * @param string $tableSql SQL fragment giving the table name or alias */ public function toSql($tableSql, EarthIT_DBC_Namer $dbObjectNamer, EarthIT_DBC_ParamsBuilder $params) { $columnName = $dbObjectNamer->getColumnName($this->rc, $this->field); $fieldValueSql = $tableSql . '.{' . $params->bind(new EarthIT_DBC_SQLIdentifier($columnName)) . '}'; $patternParamName = $params->newParam('pattern', $this->getLikePattern()); if ($this->caseInsensitive) { $fieldValueSql = "lower({$fieldValueSql})"; // Works on Postgres, anyway! } return "{$fieldValueSql} LIKE {{$patternParamName}}"; }
/** @override */ public function toSql($tableSql, EarthIT_DBC_Namer $dbObjectNamer, EarthIT_DBC_ParamsBuilder $params) { $columnSqls = array(); foreach ($this->fields as $field) { $columnName = $dbObjectNamer->getColumnName($this->rc, $field); $fieldValueSql = $tableSql . '.{' . $params->bind(new EarthIT_DBC_SQLIdentifier($columnName)) . '}'; $columnSqls[] = $fieldValueSql; } $valueTupleSqls = array(); foreach ($this->valueTuples as $valueTuple) { $valueSqls = array(); foreach ($valueTuple as $value) { $valueSqls[] = '{' . $params->bind($value) . '}'; } $valueTupleSqls[] = '(' . implode(', ', $valueSqls) . ')'; } return "(" . implode(', ', $columnSqls) . ") IN (" . implode(', ', $valueTupleSqls) . ')'; }