(&self, p: ScanParams)
| 28 | } |
| 29 | |
| 30 | fn plan_scan(&self, p: ScanParams) -> Result<SqlPlan> { |
| 31 | if p.temporal.is_temporal() && !p.bitemporal { |
| 32 | return Err(SqlError::Unsupported { |
| 33 | detail: format!( |
| 34 | "FOR SYSTEM_TIME / FOR VALID_TIME requires a bitemporal \ |
| 35 | timeseries collection; '{}' was not created WITH bitemporal = true", |
| 36 | p.collection |
| 37 | ), |
| 38 | }); |
| 39 | } |
| 40 | // Timeseries scans use TimeseriesScan for time-range-aware execution. |
| 41 | let time_range = default_time_range(); |
| 42 | Ok(SqlPlan::TimeseriesScan { |
| 43 | collection: p.collection, |
| 44 | time_range, |
| 45 | bucket_interval_ms: 0, |
| 46 | group_by: Vec::new(), |
| 47 | aggregates: Vec::new(), |
| 48 | filters: p.filters, |
| 49 | projection: p.projection, |
| 50 | gap_fill: String::new(), |
| 51 | limit: p.limit.unwrap_or(10000), |
| 52 | tiered: false, |
| 53 | temporal: p.temporal, |
| 54 | }) |
| 55 | } |
| 56 | |
| 57 | fn plan_point_get(&self, _p: PointGetParams) -> Result<SqlPlan> { |
| 58 | Err(SqlError::Unsupported { |
nothing calls this directly
no test coverage detected