public static BinaryOperation ( parent $LeftOperandExpression, $Operator, parent $RightOperandExpression ) : |
||
$LeftOperandExpression | parent | |
$RightOperandExpression | parent | |
return |
public function __construct(ColumnData $ColumnData) { $ConstraintExpressions = []; foreach ($ColumnData as $ColumnIdentifier => $Value) { $Column = $ColumnData->GetColumn($ColumnIdentifier); $ConstraintExpressions[] = Expression::BinaryOperation(Expression::Column($Column), Binary::Equality, Expression::PersistData($Column, Expression::Constant($Value))); } parent::__construct($ConstraintExpressions, Binary::LogicalAnd); }
public function __construct(ForeignKey $ForeignKey) { $ReferencedColumnMap = $ForeignKey->GetReferencedColumnMap(); $ConstraintExpressions = []; foreach ($ReferencedColumnMap as $PrimaryColumn) { $ForeignColumn = $ReferencedColumnMap[$PrimaryColumn]; $ConstraintExpressions[] = Expression::BinaryOperation(Expression::Column($PrimaryColumn), Binary::Equality, Expression::Column($ForeignColumn)); } parent::__construct($ConstraintExpressions, Binary::LogicalAnd); }
public function MapCastExpression($CastType, CoreExpression $CastValueExpression) { switch ($CastType) { case O\Cast::Boolean: return Expression::Conditional($CastValueExpression, Expression::Constant(1), Expression::Constant(0)); case O\Cast::Double: return Expression::BinaryOperation($CastValueExpression, O\Binary::Addition, Expression::Literal('0.0')); default: return Expression::Cast($CastType, $CastValueExpression); } }
public function __construct(array $Expressions, $LogicalOperator = Binary::LogicalAnd) { $PredicateExpression = null; foreach ($Expressions as $Expression) { if ($PredicateExpression === null) { $PredicateExpression = $Expression; } else { $PredicateExpression = Expression::BinaryOperation($PredicateExpression, $LogicalOperator, $Expression); } } parent::__construct($PredicateExpression->GetLeftOperandExpression(), $PredicateExpression->GetOperator(), $PredicateExpression->GetRightOperandExpression()); }
protected function OptimizeBinaryOperationExpression(BinaryOperationExpression $Expression) { $LeftOperand = $Expression->GetLeftOperandExpression(); $RightOperand = $Expression->GetRightOperandExpression(); if ($LeftOperand instanceof ReviveColumnExpression && $this->IsExpressionConstant($RightOperand)) { $this->OptimizeReviveColumnCompareConstantExpression($LeftOperand, $RightOperand); } else { if ($RightOperand instanceof ReviveColumnExpression && $this->IsExpressionConstant($LeftOperand)) { $this->OptimizeReviveColumnCompareConstantExpression($RightOperand, $LeftOperand); } else { return $Expression; } } return Expression::BinaryOperation($LeftOperand, $Expression->GetOperator(), $RightOperand); }
private function Subtract(CoreExpression $Expression, $Value) { return Expression::BinaryOperation($Expression, O\Binary::Subtraction, Expression::Constant($Value)); }
public function MapBinaryOperationExpression(CoreExpression $LeftOperandExpression, $BinaryOperator, CoreExpression $RightOperandExpression) { return Expression::BinaryOperation($LeftOperandExpression, $BinaryOperator, $RightOperandExpression); }