pgsql: Support FETCH FIRST WITH TIES

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема pgsql: Support FETCH FIRST WITH TIES
Дата
Msg-id E1jLun1-0000uu-U9@gemulon.postgresql.org
обсуждение исходный текст
Ответы Re: pgsql: Support FETCH FIRST WITH TIES  (Julien Rouhaud <rjuju123@gmail.com>)
Список pgsql-committers
Support FETCH FIRST WITH TIES

WITH TIES is an option to the FETCH FIRST N ROWS clause (the SQL
standard's spelling of LIMIT), where you additionally get rows that
compare equal to the last of those N rows by the columns in the
mandatory ORDER BY clause.

There was a proposal by Andrew Gierth to implement this functionality in
a more powerful way that would yield more features, but the other patch
had not been finished at this time, so we decided to use this one for
now in the spirit of incremental development.

Author: Surafel Temesgen <surafel3000@gmail.com>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Reviewed-by: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Discussion: https://postgr.es/m/CALAY4q9ky7rD_A4vf=FVQvCGngm3LOes-ky0J6euMrg=_Se+ag@mail.gmail.com
Discussion: https://postgr.es/m/87o8wvz253.fsf@news-spur.riddles.org.uk

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/357889eb17bb9c9336c4f324ceb1651da616fe57

Modified Files
--------------
doc/src/sgml/ref/select.sgml            |  15 +--
src/backend/catalog/sql_features.txt    |   2 +-
src/backend/executor/nodeLimit.c        | 160 +++++++++++++++++++++++++++---
src/backend/nodes/copyfuncs.c           |   7 ++
src/backend/nodes/equalfuncs.c          |   2 +
src/backend/nodes/outfuncs.c            |   7 ++
src/backend/nodes/readfuncs.c           |   6 ++
src/backend/optimizer/plan/createplan.c |  45 ++++++++-
src/backend/optimizer/plan/planner.c    |   1 +
src/backend/optimizer/util/pathnode.c   |   2 +
src/backend/parser/analyze.c            |  21 ++--
src/backend/parser/gram.y               | 117 +++++++++++++++++-----
src/backend/parser/parse_clause.c       |  15 ++-
src/backend/utils/adt/ruleutils.c       |  27 ++++--
src/include/catalog/catversion.h        |   2 +-
src/include/nodes/execnodes.h           |   5 +
src/include/nodes/nodes.h               |  13 +++
src/include/nodes/parsenodes.h          |   2 +
src/include/nodes/pathnodes.h           |   1 +
src/include/nodes/plannodes.h           |   5 +
src/include/optimizer/pathnode.h        |   1 +
src/include/optimizer/planmain.h        |   5 +-
src/include/parser/parse_clause.h       |   3 +-
src/test/regress/expected/limit.out     | 167 ++++++++++++++++++++++++++++++++
src/test/regress/sql/limit.sql          |  48 +++++++++
25 files changed, 610 insertions(+), 69 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Adjust bytea get_bit/set_bit to use int8 not int4 for bit number
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Adjust bytea get_bit/set_bit to cope with bytea strings > 256MB.