mirror of
https://github.com/apache/superset.git
synced 2026-08-12 11:11:01 +00:00
refactor: use DATE_TRUNC for Elasticsearch time grain (#25717)
Co-authored-by: Mikel Vuka <mikel.vuka@zalando.de>
This commit is contained in:
@@ -14,27 +14,30 @@
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from parameterized import parameterized
|
||||
from sqlalchemy import column
|
||||
|
||||
from superset.constants import TimeGrain
|
||||
from superset.db_engine_specs.elasticsearch import ElasticSearchEngineSpec
|
||||
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||
|
||||
|
||||
class TestElasticsearchDbEngineSpec(TestDbEngineSpec):
|
||||
def test_time_grain_week_expression(self):
|
||||
@parameterized.expand(
|
||||
[
|
||||
[TimeGrain.SECOND, "DATE_TRUNC('second', ts)"],
|
||||
[TimeGrain.MINUTE, "DATE_TRUNC('minute', ts)"],
|
||||
[TimeGrain.HOUR, "DATE_TRUNC('hour', ts)"],
|
||||
[TimeGrain.DAY, "DATE_TRUNC('day', ts)"],
|
||||
[TimeGrain.WEEK, "DATE_TRUNC('week', ts)"],
|
||||
[TimeGrain.MONTH, "DATE_TRUNC('month', ts)"],
|
||||
[TimeGrain.YEAR, "DATE_TRUNC('year', ts)"],
|
||||
]
|
||||
)
|
||||
def test_time_grain_expressions(self, time_grain, expected_time_grain_expression):
|
||||
col = column("ts")
|
||||
col.type = "datetime"
|
||||
expected_time_grain_expression = "DATE_TRUNC('week', ts)"
|
||||
col.type = "DATETIME"
|
||||
actual = ElasticSearchEngineSpec.get_timestamp_expr(
|
||||
col=col, pdf=None, time_grain="P1W"
|
||||
)
|
||||
self.assertEqual(str(actual), expected_time_grain_expression)
|
||||
|
||||
def test_time_grain_hour_expression(self):
|
||||
col = column("ts")
|
||||
col.type = "datetime"
|
||||
expected_time_grain_expression = "HISTOGRAM(ts, INTERVAL 1 HOUR)"
|
||||
actual = ElasticSearchEngineSpec.get_timestamp_expr(
|
||||
col=col, pdf=None, time_grain="PT1H"
|
||||
col=col, pdf=None, time_grain=time_grain
|
||||
)
|
||||
self.assertEqual(str(actual), expected_time_grain_expression)
|
||||
|
||||
Reference in New Issue
Block a user