diff options
author | Adam Chlipala <adam@chlipala.net> | 2011-11-19 10:43:57 -0500 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2011-11-19 10:43:57 -0500 |
commit | e43dd849a122a59fa2c22278ddf9c9a09d1550bd (patch) | |
tree | b8e125a96ec1466c542b24651ef1ce4027f21193 /src/urweb.grm | |
parent | 9a047b4f248ace0615eaf18ba130e14e49634723 (diff) |
COALESCE
Diffstat (limited to 'src/urweb.grm')
-rw-r--r-- | src/urweb.grm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/urweb.grm b/src/urweb.grm index db8b6294..8e3fad90 100644 --- a/src/urweb.grm +++ b/src/urweb.grm @@ -244,7 +244,7 @@ fun tnamesOf (e, _) = | TRUE | FALSE | CAND | OR | NOT | COUNT | AVG | SUM | MIN | MAX | ASC | DESC - | INSERT | INTO | VALUES | UPDATE | SET | DELETE | NULL | IS + | INSERT | INTO | VALUES | UPDATE | SET | DELETE | NULL | IS | COALESCE | CURRENT_TIMESTAMP | NE | LT | LE | GT | GE | CCONSTRAINT | UNIQUE | CHECK | PRIMARY | FOREIGN | KEY | ON | NO | ACTION | RESTRICT | CASCADE | REFERENCES @@ -1881,6 +1881,14 @@ sqlexp : TRUE (sql_inject (EVar (["Basis"], "True", In in (EApp (e, sqlexp), loc) end) + | COALESCE LPAREN sqlexp COMMA sqlexp RPAREN + (let + val loc = s (COALESCEright, sqlexp2right) + val e = (EVar (["Basis"], "sql_coalesce", Infer), loc) + val e = (EApp (e, sqlexp1), loc) + in + (EApp (e, sqlexp2), loc) + end) | fname LPAREN sqlexp RPAREN (let val loc = s (fnameleft, RPARENright) |