mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
fix: can't sync temporal flag on virtual table (#19366)
This commit is contained in:
@@ -130,8 +130,8 @@ def cta_result(ctas_method: CtasMethod):
|
||||
if backend() != "presto":
|
||||
return [], []
|
||||
if ctas_method == CtasMethod.TABLE:
|
||||
return [{"rows": 1}], [{"name": "rows", "type": "BIGINT", "is_date": False}]
|
||||
return [{"result": True}], [{"name": "result", "type": "BOOLEAN", "is_date": False}]
|
||||
return [{"rows": 1}], [{"name": "rows", "type": "BIGINT", "is_dttm": False}]
|
||||
return [{"result": True}], [{"name": "result", "type": "BOOLEAN", "is_dttm": False}]
|
||||
|
||||
|
||||
# TODO(bkyryliuk): quote table and schema names for all databases
|
||||
|
||||
@@ -207,8 +207,8 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
)
|
||||
def test_presto_expand_data_with_simple_structural_columns(self):
|
||||
cols = [
|
||||
{"name": "row_column", "type": "ROW(NESTED_OBJ VARCHAR)"},
|
||||
{"name": "array_column", "type": "ARRAY(BIGINT)"},
|
||||
{"name": "row_column", "type": "ROW(NESTED_OBJ VARCHAR)", "is_dttm": False},
|
||||
{"name": "array_column", "type": "ARRAY(BIGINT)", "is_dttm": False},
|
||||
]
|
||||
data = [
|
||||
{"row_column": ["a"], "array_column": [1, 2, 3]},
|
||||
@@ -218,9 +218,9 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
cols, data
|
||||
)
|
||||
expected_cols = [
|
||||
{"name": "row_column", "type": "ROW(NESTED_OBJ VARCHAR)"},
|
||||
{"name": "row_column.nested_obj", "type": "VARCHAR"},
|
||||
{"name": "array_column", "type": "ARRAY(BIGINT)"},
|
||||
{"name": "row_column", "type": "ROW(NESTED_OBJ VARCHAR)", "is_dttm": False},
|
||||
{"name": "row_column.nested_obj", "type": "VARCHAR", "is_dttm": False},
|
||||
{"name": "array_column", "type": "ARRAY(BIGINT)", "is_dttm": False},
|
||||
]
|
||||
|
||||
expected_data = [
|
||||
@@ -232,7 +232,9 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
{"array_column": 6, "row_column": "", "row_column.nested_obj": ""},
|
||||
]
|
||||
|
||||
expected_expanded_cols = [{"name": "row_column.nested_obj", "type": "VARCHAR"}]
|
||||
expected_expanded_cols = [
|
||||
{"name": "row_column.nested_obj", "type": "VARCHAR", "is_dttm": False}
|
||||
]
|
||||
self.assertEqual(actual_cols, expected_cols)
|
||||
self.assertEqual(actual_data, expected_data)
|
||||
self.assertEqual(actual_expanded_cols, expected_expanded_cols)
|
||||
@@ -247,6 +249,7 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
{
|
||||
"name": "row_column",
|
||||
"type": "ROW(NESTED_OBJ1 VARCHAR, NESTED_ROW ROW(NESTED_OBJ2 VARCHAR))",
|
||||
"is_dttm": False,
|
||||
}
|
||||
]
|
||||
data = [{"row_column": ["a1", ["a2"]]}, {"row_column": ["b1", ["b2"]]}]
|
||||
@@ -257,10 +260,19 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
{
|
||||
"name": "row_column",
|
||||
"type": "ROW(NESTED_OBJ1 VARCHAR, NESTED_ROW ROW(NESTED_OBJ2 VARCHAR))",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{"name": "row_column.nested_obj1", "type": "VARCHAR", "is_dttm": False},
|
||||
{
|
||||
"name": "row_column.nested_row",
|
||||
"type": "ROW(NESTED_OBJ2 VARCHAR)",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "row_column.nested_row.nested_obj2",
|
||||
"type": "VARCHAR",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{"name": "row_column.nested_obj1", "type": "VARCHAR"},
|
||||
{"name": "row_column.nested_row", "type": "ROW(NESTED_OBJ2 VARCHAR)"},
|
||||
{"name": "row_column.nested_row.nested_obj2", "type": "VARCHAR"},
|
||||
]
|
||||
expected_data = [
|
||||
{
|
||||
@@ -278,9 +290,17 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
]
|
||||
|
||||
expected_expanded_cols = [
|
||||
{"name": "row_column.nested_obj1", "type": "VARCHAR"},
|
||||
{"name": "row_column.nested_row", "type": "ROW(NESTED_OBJ2 VARCHAR)"},
|
||||
{"name": "row_column.nested_row.nested_obj2", "type": "VARCHAR"},
|
||||
{"name": "row_column.nested_obj1", "type": "VARCHAR", "is_dttm": False},
|
||||
{
|
||||
"name": "row_column.nested_row",
|
||||
"type": "ROW(NESTED_OBJ2 VARCHAR)",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "row_column.nested_row.nested_obj2",
|
||||
"type": "VARCHAR",
|
||||
"is_dttm": False,
|
||||
},
|
||||
]
|
||||
self.assertEqual(actual_cols, expected_cols)
|
||||
self.assertEqual(actual_data, expected_data)
|
||||
@@ -296,6 +316,7 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
{
|
||||
"name": "row_column",
|
||||
"type": "ROW(NESTED_ROW ROW(NESTED_OBJ VARCHAR))",
|
||||
"is_dttm": False,
|
||||
}
|
||||
]
|
||||
data = [
|
||||
@@ -311,9 +332,18 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
{
|
||||
"name": "row_column",
|
||||
"type": "ROW(NESTED_ROW ROW(NESTED_OBJ VARCHAR))",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "row_column.nested_row",
|
||||
"type": "ROW(NESTED_OBJ VARCHAR)",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "row_column.nested_row.nested_obj",
|
||||
"type": "VARCHAR",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{"name": "row_column.nested_row", "type": "ROW(NESTED_OBJ VARCHAR)"},
|
||||
{"name": "row_column.nested_row.nested_obj", "type": "VARCHAR"},
|
||||
]
|
||||
expected_data = [
|
||||
{
|
||||
@@ -339,8 +369,16 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
]
|
||||
|
||||
expected_expanded_cols = [
|
||||
{"name": "row_column.nested_row", "type": "ROW(NESTED_OBJ VARCHAR)"},
|
||||
{"name": "row_column.nested_row.nested_obj", "type": "VARCHAR"},
|
||||
{
|
||||
"name": "row_column.nested_row",
|
||||
"type": "ROW(NESTED_OBJ VARCHAR)",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "row_column.nested_row.nested_obj",
|
||||
"type": "VARCHAR",
|
||||
"is_dttm": False,
|
||||
},
|
||||
]
|
||||
self.assertEqual(actual_cols, expected_cols)
|
||||
self.assertEqual(actual_data, expected_data)
|
||||
@@ -353,10 +391,11 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
)
|
||||
def test_presto_expand_data_with_complex_array_columns(self):
|
||||
cols = [
|
||||
{"name": "int_column", "type": "BIGINT"},
|
||||
{"name": "int_column", "type": "BIGINT", "is_dttm": False},
|
||||
{
|
||||
"name": "array_column",
|
||||
"type": "ARRAY(ROW(NESTED_ARRAY ARRAY(ROW(NESTED_OBJ VARCHAR))))",
|
||||
"is_dttm": False,
|
||||
},
|
||||
]
|
||||
data = [
|
||||
@@ -367,16 +406,22 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
cols, data
|
||||
)
|
||||
expected_cols = [
|
||||
{"name": "int_column", "type": "BIGINT"},
|
||||
{"name": "int_column", "type": "BIGINT", "is_dttm": False},
|
||||
{
|
||||
"name": "array_column",
|
||||
"type": "ARRAY(ROW(NESTED_ARRAY ARRAY(ROW(NESTED_OBJ VARCHAR))))",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "array_column.nested_array",
|
||||
"type": "ARRAY(ROW(NESTED_OBJ VARCHAR))",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "array_column.nested_array.nested_obj",
|
||||
"type": "VARCHAR",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{"name": "array_column.nested_array.nested_obj", "type": "VARCHAR"},
|
||||
]
|
||||
expected_data = [
|
||||
{
|
||||
@@ -432,8 +477,13 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
{
|
||||
"name": "array_column.nested_array",
|
||||
"type": "ARRAY(ROW(NESTED_OBJ VARCHAR))",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{
|
||||
"name": "array_column.nested_array.nested_obj",
|
||||
"type": "VARCHAR",
|
||||
"is_dttm": False,
|
||||
},
|
||||
{"name": "array_column.nested_array.nested_obj", "type": "VARCHAR"},
|
||||
]
|
||||
self.assertEqual(actual_cols, expected_cols)
|
||||
self.assertEqual(actual_data, expected_data)
|
||||
@@ -545,12 +595,12 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
)
|
||||
def test_presto_expand_data_array(self):
|
||||
cols = [
|
||||
{"name": "event_id", "type": "VARCHAR", "is_date": False},
|
||||
{"name": "timestamp", "type": "BIGINT", "is_date": False},
|
||||
{"name": "event_id", "type": "VARCHAR", "is_dttm": False},
|
||||
{"name": "timestamp", "type": "BIGINT", "is_dttm": False},
|
||||
{
|
||||
"name": "user",
|
||||
"type": "ROW(ID BIGINT, FIRST_NAME VARCHAR, LAST_NAME VARCHAR)",
|
||||
"is_date": False,
|
||||
"is_dttm": False,
|
||||
},
|
||||
]
|
||||
data = [
|
||||
@@ -564,16 +614,16 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
cols, data
|
||||
)
|
||||
expected_cols = [
|
||||
{"name": "event_id", "type": "VARCHAR", "is_date": False},
|
||||
{"name": "timestamp", "type": "BIGINT", "is_date": False},
|
||||
{"name": "event_id", "type": "VARCHAR", "is_dttm": False},
|
||||
{"name": "timestamp", "type": "BIGINT", "is_dttm": False},
|
||||
{
|
||||
"name": "user",
|
||||
"type": "ROW(ID BIGINT, FIRST_NAME VARCHAR, LAST_NAME VARCHAR)",
|
||||
"is_date": False,
|
||||
"is_dttm": False,
|
||||
},
|
||||
{"name": "user.id", "type": "BIGINT"},
|
||||
{"name": "user.first_name", "type": "VARCHAR"},
|
||||
{"name": "user.last_name", "type": "VARCHAR"},
|
||||
{"name": "user.id", "type": "BIGINT", "is_dttm": False},
|
||||
{"name": "user.first_name", "type": "VARCHAR", "is_dttm": False},
|
||||
{"name": "user.last_name", "type": "VARCHAR", "is_dttm": False},
|
||||
]
|
||||
expected_data = [
|
||||
{
|
||||
@@ -586,9 +636,9 @@ class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
||||
}
|
||||
]
|
||||
expected_expanded_cols = [
|
||||
{"name": "user.id", "type": "BIGINT"},
|
||||
{"name": "user.first_name", "type": "VARCHAR"},
|
||||
{"name": "user.last_name", "type": "VARCHAR"},
|
||||
{"name": "user.id", "type": "BIGINT", "is_dttm": False},
|
||||
{"name": "user.first_name", "type": "VARCHAR", "is_dttm": False},
|
||||
{"name": "user.last_name", "type": "VARCHAR", "is_dttm": False},
|
||||
]
|
||||
|
||||
self.assertEqual(actual_cols, expected_cols)
|
||||
|
||||
@@ -48,9 +48,9 @@ class TestSupersetResultSet(SupersetTestCase):
|
||||
self.assertEqual(
|
||||
results.columns,
|
||||
[
|
||||
{"is_date": False, "type": "STRING", "name": "a"},
|
||||
{"is_date": False, "type": "STRING", "name": "b"},
|
||||
{"is_date": False, "type": "STRING", "name": "c"},
|
||||
{"is_dttm": False, "type": "STRING", "name": "a"},
|
||||
{"is_dttm": False, "type": "STRING", "name": "b"},
|
||||
{"is_dttm": False, "type": "STRING", "name": "c"},
|
||||
],
|
||||
)
|
||||
|
||||
@@ -61,8 +61,8 @@ class TestSupersetResultSet(SupersetTestCase):
|
||||
self.assertEqual(
|
||||
results.columns,
|
||||
[
|
||||
{"is_date": False, "type": "STRING", "name": "a"},
|
||||
{"is_date": False, "type": "INT", "name": "b"},
|
||||
{"is_dttm": False, "type": "STRING", "name": "a"},
|
||||
{"is_dttm": False, "type": "INT", "name": "b"},
|
||||
],
|
||||
)
|
||||
|
||||
@@ -76,11 +76,11 @@ class TestSupersetResultSet(SupersetTestCase):
|
||||
self.assertEqual(
|
||||
results.columns,
|
||||
[
|
||||
{"is_date": False, "type": "FLOAT", "name": "a"},
|
||||
{"is_date": False, "type": "INT", "name": "b"},
|
||||
{"is_date": False, "type": "STRING", "name": "c"},
|
||||
{"is_date": True, "type": "DATETIME", "name": "d"},
|
||||
{"is_date": False, "type": "BOOL", "name": "e"},
|
||||
{"is_dttm": False, "type": "FLOAT", "name": "a"},
|
||||
{"is_dttm": False, "type": "INT", "name": "b"},
|
||||
{"is_dttm": False, "type": "STRING", "name": "c"},
|
||||
{"is_dttm": True, "type": "DATETIME", "name": "d"},
|
||||
{"is_dttm": False, "type": "BOOL", "name": "e"},
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@@ -477,8 +477,8 @@ class TestSqlLab(SupersetTestCase):
|
||||
"datasourceName": f"test_viz_flow_table_{random()}",
|
||||
"schema": "superset",
|
||||
"columns": [
|
||||
{"is_date": False, "type": "STRING", "name": f"viz_type_{random()}"},
|
||||
{"is_date": False, "type": "OBJECT", "name": f"ccount_{random()}"},
|
||||
{"is_dttm": False, "type": "STRING", "name": f"viz_type_{random()}"},
|
||||
{"is_dttm": False, "type": "OBJECT", "name": f"ccount_{random()}"},
|
||||
],
|
||||
"sql": """\
|
||||
SELECT *
|
||||
@@ -507,8 +507,8 @@ class TestSqlLab(SupersetTestCase):
|
||||
"chartType": "dist_bar",
|
||||
"schema": "superset",
|
||||
"columns": [
|
||||
{"is_date": False, "type": "STRING", "name": f"viz_type_{random()}"},
|
||||
{"is_date": False, "type": "OBJECT", "name": f"ccount_{random()}"},
|
||||
{"is_dttm": False, "type": "STRING", "name": f"viz_type_{random()}"},
|
||||
{"is_dttm": False, "type": "OBJECT", "name": f"ccount_{random()}"},
|
||||
],
|
||||
"sql": """\
|
||||
SELECT *
|
||||
|
||||
Reference in New Issue
Block a user