merge into syntax
sql_metadata.Parser("""MERGE INTO wines w USING (VALUES('Chateau Lafite 2003', '24')) v ON v.column1 = w.winename WHEN NOT MATCHED INSERT VALUES(v.column1, v.column2) WHEN MATCHED UPDATE SET stock = stock + v.column2;""").tokens raise an ValueError: Not supported query type! Not supported query type: MERGE INTO wines w USING (VALUES('Chateau Lafite 2003', '24')) v ON v.column1 = w.winename WHEN NOT MATCHED INSERT VALUES(v.column1, v.column2) WHEN MATCHED UPDATE SET stock = stock + v.column2;
I see the comment stating supported queries are "select, insert, update, replace, create table, alter table, with + select"
Request here would be to support a MERGE INTO, for it is almost the same as an UPDATE:
MERGE
INTO
myschema.mytable e
USING (
SELECT
c.id
, SUM( c.q ) AS n
FROM myschema.mytable c
WHERE
NVL( c.f,0 ) = 0
HAVING
SUM( c.q ) = 0
GROUP BY
c.id
)
cte
ON
(
e.id = cte.id
)
WHEN MATCHED THEN
UPDATE
SET e.my_flag = cte.n;