I have the following code in Atk4 model:
$sql = 'REPLACE(\'[dnum]\', \'{DD}\', LPAD(DAY([issue_date]), 2, \'0\'))';
$f = $this->addExpression('calc_document_number',
[$sql, 'type' => 'string', 'read_only' => true]);
The code above should replace {DD} in the dnum column with padded issue_date column. For search/sort reasons in database directly.
It seems that the {DD} part of the SQL is currently parsed/processed by Atk4. Is it possible to escape the curly braces so Atk4 will ignore them?
note: \{DD\} does not work
Yes you're right. Escaping braces is not implemented in DSQL not in Data. You can work around this issue by using
expr()method directly and passing{DD}as a parameter (which will not be replaced once again).This way it works for me:
Also created a ticket to future reference: https://github.com/atk4/dsql/issues/144