git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: bb513b3) | patch
SEARCH and CYCLE clauses
Mon, 1 Feb 2021 12:54:59 +0000 (13:54 +0100)
Mon, 1 Feb 2021 13:32:51 +0000 (14:32 +0100)
commit 3696a600e2292d43c00949ddf0352e4ebb487e5b
SEARCH and CYCLE clauses

This adds the SQL standard feature that adds the SEARCH and CYCLE
clauses to recursive queries to be able to do produce breadth- or
depth-first search orders and detect cycles. These clauses can be
rewritten into queries using existing syntax, and that is what this
patch does in the rewriter.

Reviewed-by: Vik Fearing <vik@postgresfriends.org>
Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/db80ceee-6f97-9b4a-8ee8-3ba0c58e5be2@2ndquadrant.com
28 files changed:
doc/src/sgml/queries.sgml diff | blob | blame | history
doc/src/sgml/ref/select.sgml diff | blob | blame | history
src/backend/catalog/dependency.c diff | blob | blame | history
src/backend/nodes/copyfuncs.c diff | blob | blame | history
src/backend/nodes/equalfuncs.c diff | blob | blame | history
src/backend/nodes/nodeFuncs.c diff | blob | blame | history
src/backend/nodes/outfuncs.c diff | blob | blame | history
src/backend/nodes/readfuncs.c diff | blob | blame | history
src/backend/parser/analyze.c diff | blob | blame | history
src/backend/parser/gram.y diff | blob | blame | history
src/backend/parser/parse_agg.c diff | blob | blame | history
src/backend/parser/parse_cte.c diff | blob | blame | history
src/backend/parser/parse_expr.c diff | blob | blame | history
src/backend/parser/parse_func.c diff | blob | blame | history
src/backend/parser/parse_relation.c diff | blob | blame | history
src/backend/parser/parse_target.c diff | blob | blame | history
src/backend/rewrite/Makefile diff | blob | blame | history
src/backend/rewrite/rewriteHandler.c diff | blob | blame | history
src/backend/rewrite/rewriteSearchCycle.c [new file with mode: 0644] blob
src/backend/utils/adt/ruleutils.c diff | blob | blame | history
src/include/nodes/nodes.h diff | blob | blame | history
src/include/nodes/parsenodes.h diff | blob | blame | history
src/include/parser/analyze.h diff | blob | blame | history
src/include/parser/kwlist.h diff | blob | blame | history
src/include/parser/parse_node.h diff | blob | blame | history
src/include/rewrite/rewriteSearchCycle.h [new file with mode: 0644] blob
src/test/regress/expected/with.out diff | blob | blame | history
src/test/regress/sql/with.sql diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /