(&self, p: ScanParams)
| 35 | } |
| 36 | |
| 37 | fn plan_scan(&self, p: ScanParams) -> Result<SqlPlan> { |
| 38 | if p.temporal.is_temporal() { |
| 39 | return Err(SqlError::Unsupported { |
| 40 | detail: format!( |
| 41 | "FOR SYSTEM_TIME / FOR VALID_TIME is not supported on spatial collection '{}'", |
| 42 | p.collection |
| 43 | ), |
| 44 | }); |
| 45 | } |
| 46 | // Plain scan on spatial collection — no spatial predicate involved. |
| 47 | // Spatial predicates (ST_DWithin, ST_Contains, etc.) are detected |
| 48 | // in select.rs and routed to SpatialScan directly, bypassing this. |
| 49 | Ok(SqlPlan::Scan { |
| 50 | collection: p.collection, |
| 51 | alias: p.alias, |
| 52 | engine: EngineType::Spatial, |
| 53 | filters: p.filters, |
| 54 | projection: p.projection, |
| 55 | sort_keys: p.sort_keys, |
| 56 | limit: p.limit, |
| 57 | offset: p.offset, |
| 58 | distinct: p.distinct, |
| 59 | window_functions: p.window_functions, |
| 60 | temporal: p.temporal, |
| 61 | }) |
| 62 | } |
| 63 | |
| 64 | fn plan_point_get(&self, p: PointGetParams) -> Result<SqlPlan> { |
| 65 | Ok(SqlPlan::PointGet { |
nothing calls this directly
no test coverage detected