mirror of
https://github.com/postgres/postgres.git
synced 2025-10-24 01:29:19 +03:00
Remove dead NoMovementScanDirection code
Here remove some dead code from heapgettup() and heapgettup_pagemode() which was trying to support NoMovementScanDirection scans. This code can never be reached as standard_ExecutorRun() never calls ExecutePlan with NoMovementScanDirection. Additionally, plans which were scanning an unordered index would use NoMovementScanDirection rather than ForwardScanDirection. There was no real need for this, so here we adjust this so we use ForwardScanDirection for unordered index scans. A comment in pathnodes.h claimed that NoMovementScanDirection was used for PathKey reasons, but if that was true, it no longer is, per code in build_index_paths(). This does change the non-text format of the EXPLAIN output so that unordered index scans now have a "Forward" scan direction rather than "NoMovement". The text format of EXPLAIN has not changed. Author: Melanie Plageman Reviewed-by: Tom Lane, David Rowley Discussion: https://postgr.es/m/CAAKRu_bvkhka0CZQun28KTqhuUh5ZqY=_T8QEqZqOL02rpi2bw@mail.gmail.com
This commit is contained in:
@@ -16,8 +16,10 @@
|
||||
|
||||
|
||||
/*
|
||||
* ScanDirection was an int8 for no apparent reason. I kept the original
|
||||
* values because I'm not sure if I'll break anything otherwise. -ay 2/95
|
||||
* Defines the direction for scanning a table or an index. Scans are never
|
||||
* invoked using NoMovementScanDirectionScans. For convenience, we use the
|
||||
* values -1 and 1 for backward and forward scans. This allows us to perform
|
||||
* a few mathematical tricks such as what is done in ScanDirectionCombine.
|
||||
*/
|
||||
typedef enum ScanDirection
|
||||
{
|
||||
@@ -26,6 +28,13 @@ typedef enum ScanDirection
|
||||
ForwardScanDirection = 1
|
||||
} ScanDirection;
|
||||
|
||||
/*
|
||||
* Determine the net effect of two direction specifications.
|
||||
* This relies on having ForwardScanDirection = +1, BackwardScanDirection = -1,
|
||||
* and will probably not do what you want if applied to any other values.
|
||||
*/
|
||||
#define ScanDirectionCombine(a, b) ((a) * (b))
|
||||
|
||||
/*
|
||||
* ScanDirectionIsValid
|
||||
* True iff scan direction is valid.
|
||||
|
||||
Reference in New Issue
Block a user