Обсуждение: pgsql: Fix handling of REWIND/MARK/BACKWARD in incremental sort

Поиск
Список
Период
Сортировка

pgsql: Fix handling of REWIND/MARK/BACKWARD in incremental sort

От
Tomas Vondra
Дата:
Fix handling of REWIND/MARK/BACKWARD in incremental sort

The executor flags were not handled entirely correctly, although the
bugs were mostly harmless and it was mostly comment inaccuracy. We don't
need to strip any of the flags for child nodes.

Incremental sort does not support backward scans of mark/restore, so
MARK/BACKWARDS flags should not be possible. So we simply ensure this
using an assert, and we don't bother removing them when initializing
the child node.

With REWIND it's a bit less clear - incremental sort does not support
REWIND, but there is no way to signal this - it's legal to just ignore
the flag. We however continue passing the flag to child nodes, because
they might be useful to leverage that.

Reported-by: Michael Paquier
Author: James Coleman
Reviewed-by: Tomas Vondra
Discussion: https://postgr.es/m/20200414065336.GI1492@paquier.xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c4427226483c78618ba45eff34917400a77718a5

Modified Files
--------------
src/backend/executor/nodeIncrementalSort.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)