|
|
@ -1836,15 +1836,18 @@ typedef struct ForeignPath |
|
|
|
} ForeignPath; |
|
|
|
} ForeignPath; |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* CustomPath represents a table scan done by some out-of-core extension. |
|
|
|
* CustomPath represents a table scan or a table join done by some out-of-core |
|
|
|
|
|
|
|
* extension. |
|
|
|
* |
|
|
|
* |
|
|
|
* We provide a set of hooks here - which the provider must take care to set |
|
|
|
* We provide a set of hooks here - which the provider must take care to set |
|
|
|
* up correctly - to allow extensions to supply their own methods of scanning |
|
|
|
* up correctly - to allow extensions to supply their own methods of scanning |
|
|
|
* a relation. For example, a provider might provide GPU acceleration, a |
|
|
|
* a relation or joing relations. For example, a provider might provide GPU |
|
|
|
* cache-based scan, or some other kind of logic we haven't dreamed up yet. |
|
|
|
* acceleration, a cache-based scan, or some other kind of logic we haven't |
|
|
|
|
|
|
|
* dreamed up yet. |
|
|
|
* |
|
|
|
* |
|
|
|
* CustomPaths can be injected into the planning process for a relation by |
|
|
|
* CustomPaths can be injected into the planning process for a base or join |
|
|
|
* set_rel_pathlist_hook functions. |
|
|
|
* relation by set_rel_pathlist_hook or set_join_pathlist_hook functions, |
|
|
|
|
|
|
|
* respectively. |
|
|
|
* |
|
|
|
* |
|
|
|
* Core code must avoid assuming that the CustomPath is only as large as |
|
|
|
* Core code must avoid assuming that the CustomPath is only as large as |
|
|
|
* the structure declared here; providers are allowed to make it the first |
|
|
|
* the structure declared here; providers are allowed to make it the first |
|
|
|