|
27 | 27 | from pygeofilter.parsers.cql2_text import parse as parse_cql2_text
|
28 | 28 | from shapely.geometry import MultiPolygon
|
29 | 29 | from shapely.geometry.base import BaseGeometry
|
30 |
| -from sqlalchemy import DDL, Row, RowMapping, String, func, select |
| 30 | +from sqlalchemy import Row, RowMapping, String, func, select |
31 | 31 | from sqlalchemy.dialects import postgresql as postgres
|
32 | 32 | from sqlalchemy.dialects.postgresql import TSTZRANGE
|
33 | 33 | from sqlalchemy.sql import Select
|
|
44 | 44 | from cubedash.index import EmptyDbError, ExplorerIndex
|
45 | 45 | from cubedash.index.postgis import ExplorerPgisIndex
|
46 | 46 | from cubedash.index.postgres import ExplorerPgIndex
|
47 |
| -from cubedash.summary import RegionInfo, TimePeriodOverview, _extents, _schema |
| 47 | +from cubedash.summary import RegionInfo, TimePeriodOverview, _extents |
48 | 48 | from cubedash.summary._extents import ProductArrival, RegionSummary
|
49 | 49 | from cubedash.summary._schema import PleaseRefresh
|
50 | 50 | from cubedash.summary._summarise import DEFAULT_TIMEZONE, Summariser
|
@@ -609,9 +609,7 @@ def drop_all(self) -> None:
|
609 | 609 | """
|
610 | 610 | Drop all cubedash-specific tables/schema.
|
611 | 611 | """
|
612 |
| - self.e_index.execute_query( |
613 |
| - DDL(f"drop schema if exists {_schema.CUBEDASH_SCHEMA} cascade") |
614 |
| - ) |
| 612 | + self.e_index.drop_all() |
615 | 613 |
|
616 | 614 | def get(
|
617 | 615 | self,
|
@@ -1043,7 +1041,7 @@ def get_count(
|
1043 | 1041 | query = self._add_filter_to_query(
|
1044 | 1042 | query, field_exprs, filter_lang, filter_cql
|
1045 | 1043 | )
|
1046 |
| - result = self.e_index.execute_query(query).fetchall() |
| 1044 | + result = self.e_index.execute_query(query) |
1047 | 1045 |
|
1048 | 1046 | if len(result) != 0:
|
1049 | 1047 | return result[0][0]
|
@@ -1123,21 +1121,26 @@ def search_items(
|
1123 | 1121 | offset
|
1124 | 1122 | )
|
1125 | 1123 |
|
1126 |
| - for r in self.e_index.execute_query(query): |
1127 |
| - yield DatasetItem( |
1128 |
| - dataset_id=r.id, |
1129 |
| - bbox=_box2d_to_bbox(r.bbox) if r.bbox else None, |
1130 |
| - product_name=r.product_name, |
1131 |
| - geometry=( |
1132 |
| - _get_shape(r.geometry, self.e_index.get_srid_name(r.geometry.srid)) |
1133 |
| - if r.geometry is not None |
1134 |
| - else None |
1135 |
| - ), |
1136 |
| - region_code=r.region_code, |
1137 |
| - creation_time=r.creation_time, |
1138 |
| - center_time=r.center_time, |
1139 |
| - odc_dataset=(self.index.datasets.get(r.id) if full_dataset else None), |
1140 |
| - ) |
| 1124 | + with self.e_index.execute_query_lazy(query) as result: |
| 1125 | + for r in result: |
| 1126 | + yield DatasetItem( |
| 1127 | + dataset_id=r.id, |
| 1128 | + bbox=_box2d_to_bbox(r.bbox) if r.bbox else None, |
| 1129 | + product_name=r.product_name, |
| 1130 | + geometry=( |
| 1131 | + _get_shape( |
| 1132 | + r.geometry, self.e_index.get_srid_name(r.geometry.srid) |
| 1133 | + ) |
| 1134 | + if r.geometry is not None |
| 1135 | + else None |
| 1136 | + ), |
| 1137 | + region_code=r.region_code, |
| 1138 | + creation_time=r.creation_time, |
| 1139 | + center_time=r.center_time, |
| 1140 | + odc_dataset=( |
| 1141 | + self.index.datasets.get(r.id) if full_dataset else None |
| 1142 | + ), |
| 1143 | + ) |
1141 | 1144 |
|
1142 | 1145 | def search_collections(
|
1143 | 1146 | self,
|
|
0 commit comments