diff options
| author | Tom Lane | 2021-07-06 22:10:11 +0000 |
|---|---|---|
| committer | Tom Lane | 2021-07-06 22:10:20 +0000 |
| commit | 955b3e0f9269639fb916cee3dea37aee50b82df0 (patch) | |
| tree | 395cf4010f26d0e3f2383f9ad724cb683135acce /src/include | |
| parent | 5798ca529935698ab976780565fb2b4d8d34d810 (diff) | |
Allow CustomScan providers to say whether they support projections.
Previously, all CustomScan providers had to support projections,
but there may be cases where this is inconvenient. Add a flag
bit to say if it's supported.
Important item for the release notes: this is non-backwards-compatible
since the default is now to assume that CustomScan providers can't
project, instead of assuming that they can. It's fail-soft, but could
result in visible performance penalties due to adding unnecessary
Result nodes.
Sven Klemm, reviewed by Aleksander Alekseev; some cosmetic fiddling
by me.
Discussion: https://postgr.es/m/CAMCrgp1kyakOz6c8aKhNDJXjhQ1dEjEnp+6KNT3KxPrjNtsrDg@mail.gmail.com
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/nodes/extensible.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/include/nodes/extensible.h b/src/include/nodes/extensible.h index 9e425e56518..cc9b7e9928d 100644 --- a/src/include/nodes/extensible.h +++ b/src/include/nodes/extensible.h @@ -76,10 +76,12 @@ extern const ExtensibleNodeMethods *GetExtensibleNodeMethods(const char *name, /* * Flags for custom paths, indicating what capabilities the resulting scan - * will have. + * will have. The flags fields of CustomPath and CustomScan nodes are + * bitmasks of these flags. */ #define CUSTOMPATH_SUPPORT_BACKWARD_SCAN 0x0001 #define CUSTOMPATH_SUPPORT_MARK_RESTORE 0x0002 +#define CUSTOMPATH_SUPPORT_PROJECTION 0x0004 /* * Custom path methods. Mostly, we just need to know how to convert a |
