pgsql: SEARCH and CYCLE clauses

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема pgsql: SEARCH and CYCLE clauses
Дата
Msg-id E1l6Ze5-0007ka-OW@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3696a600e2292d43c00949ddf0352e4ebb487e5b

Modified Files
--------------
doc/src/sgml/queries.sgml                |  64 ++-
doc/src/sgml/ref/select.sgml             |  44 ++
src/backend/catalog/dependency.c         |  15 +
src/backend/nodes/copyfuncs.c            |  40 ++
src/backend/nodes/equalfuncs.c           |  36 ++
src/backend/nodes/nodeFuncs.c            |  42 +-
src/backend/nodes/outfuncs.c             |  36 ++
src/backend/nodes/readfuncs.c            |  44 ++
src/backend/parser/analyze.c             |  47 ++-
src/backend/parser/gram.y                |  58 ++-
src/backend/parser/parse_agg.c           |   7 +
src/backend/parser/parse_cte.c           | 193 +++++++++
src/backend/parser/parse_expr.c          |   4 +
src/backend/parser/parse_func.c          |   3 +
src/backend/parser/parse_relation.c      |  54 ++-
src/backend/parser/parse_target.c        |  17 +-
src/backend/rewrite/Makefile             |   1 +
src/backend/rewrite/rewriteHandler.c     |  18 +
src/backend/rewrite/rewriteSearchCycle.c | 668 +++++++++++++++++++++++++++++++
src/backend/utils/adt/ruleutils.c        |  47 +++
src/include/nodes/nodes.h                |   2 +
src/include/nodes/parsenodes.h           |  30 +-
src/include/parser/analyze.h             |   2 +
src/include/parser/kwlist.h              |   2 +
src/include/parser/parse_node.h          |   2 +
src/include/rewrite/rewriteSearchCycle.h |  21 +
src/test/regress/expected/with.out       | 558 ++++++++++++++++++++++++++
src/test/regress/sql/with.sql            | 279 +++++++++++++
28 files changed, 2301 insertions(+), 33 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Alexander Korotkov
Дата:
Сообщение: Re: pgsql: Implementation of subscripting for jsonb
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Revise make_partition_pruneinfo to not use its partitioned_rels