Storm\Drivers\Platforms\Mysql\Columns\DataTypes\BinaryGuidDataType::GetReviveExpression PHP Метод

GetReviveExpression() публичный Метод

public GetReviveExpression ( Expression $Expression )
$Expression Storm\Core\Relational\Expressions\Expression
    public function GetReviveExpression(CoreExpression $Expression)
    {
        $HexedGuid = Expression::FunctionCall('HEX', Expression::ValueList([$Expression]));
        $Substring = function ($Expression, $Index, $Length = null) {
            //Mysql substring index is 1 based
            $Arguments = [$Expression, Expression::Constant($Index + 1)];
            if ($Length !== null) {
                $Arguments[] = Expression::Constant($Length);
            }
            return Expression::FunctionCall('SUBSTR', Expression::ValueList($Arguments));
        };
        return Expression::FunctionCall('CONCAT_WS', Expression::ValueList(['-', $Substring($HexedGuid, 12, 8), $Substring($HexedGuid, 4, 4), $Substring($HexedGuid, 0, 4), $Substring($HexedGuid, 8, 4), $Substring($HexedGuid, 20)]));
    }