fix: can't sync temporal flag on virtual table (#19366)

This commit is contained in:
Yongjie Zhao
2022-04-01 16:40:50 +08:00
committed by GitHub
parent d684ad073d
commit d954c3df86
15 changed files with 170 additions and 92 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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"},
],
)

View File

@@ -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 *