Re: SEARCH and CYCLE clauses
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-11-25T13:06:03Z
Lists: pgsql-hackers
Attachments
- v4-0001-SEARCH-and-CYCLE-clauses.patch (text/plain) patch v4-0001
On 2020-10-10 07:25, Pavel Stehule wrote: > This patch is based on transformation CYCLE and SEARCH clauses to > specific expressions - it is in agreement with ANSI SQL > > There is not a problem with compilation > Nobody had objections in discussion > There are enough regress tests and documentation > check-world passed > doc build passed > > I'll mark this patch as ready for committer > > Possible enhancing for this feature (can be done in next steps) > > 1. support UNION DISTINCT > 2. better compatibility with Oracle and DB2 (USING clause can be optional) Here is an updated patch. New since last time: - UNION DISTINCT is now supported (since hash_record() was added) - Some code has been cleaned up. - Some code has been moved from the rewriter to the parser so that certain errors are properly detected at parse time. - Added more syntax checks and more tests. - Support for dependency tracking was added (the type and operator for the cycle mark need to be added as dependencies). I found a bug that nested UNIONs (foo UNION bar UNION baz) were not handled (would crash) in the rewriter code. For now, I have just changed that to error out. This could be fixed, it would be a localized change in the rewriter code in any case. Doesn't seem important for the first pass, though. -- Peter Eisentraut 2ndQuadrant, an EDB company https://www.2ndquadrant.com/
Commits
-
Enhanced cycle mark values
- f4adc41c4f92 14.0 landed
-
SEARCH and CYCLE clauses
- 3696a600e229 14.0 landed
-
doc: Expand recursive query documentation
- 323ae003e464 14.0 landed
-
Adjust cycle detection examples and tests
- 3fb676504da9 14.0 landed