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)]));
}