aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/urweb.grm
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2011-11-19 10:43:57 -0500
committerGravatar Adam Chlipala <adam@chlipala.net>2011-11-19 10:43:57 -0500
commite43dd849a122a59fa2c22278ddf9c9a09d1550bd (patch)
treeb8e125a96ec1466c542b24651ef1ce4027f21193 /src/urweb.grm
parent9a047b4f248ace0615eaf18ba130e14e49634723 (diff)
COALESCE
Diffstat (limited to 'src/urweb.grm')
-rw-r--r--src/urweb.grm10
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)