/** @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) . ')';
 }