Re: MERGE lacks ruleutils.c decompiling support!?
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-05-10T09:40:36Z
Lists: pgsql-hackers
BTW, I spent some time adding a cross-check to see if the code was at least approximately correct for all the queries in the MERGE regression tests, and couldn't find any failures. I then extended the test to the other optimizable commands, and couldn't find any problems there either. My approach was perhaps a bit simple-minded: I just patched pg_analyze_and_rewrite_fixedparams() to call pg_get_querydef() after parse_analyze_fixedparams(), then ran the main regression tests. No crashes. Also had it output as a WARNING together with the query_string, so that I could eyeball for any discrepancies; I couldn't find any queries that produce wrong contents, though this was just manual examination of the resulting noise logs. I suppose a better approach might be to run the query produced by pg_get_querydef() again through parse analysis and see if it produces the same; or better yet, discard the original parsed query and parse the pg_get_querydef(). I didn't try to do this. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "No deja de ser humillante para una persona de ingenio saber que no hay tonto que no le pueda enseñar algo." (Jean B. Say)
Commits
-
Add ruleutils support for decompiling MERGE commands.
- f200b9695fde 15.3 landed
- 41e2c52fd6eb 16.0 landed