-
Notifications
You must be signed in to change notification settings - Fork 108
Expand file tree
/
Copy pathtest_row.py
More file actions
70 lines (65 loc) · 2.25 KB
/
test_row.py
File metadata and controls
70 lines (65 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from tests.aggregate_tests.aggtst_base import TstView, TstTable
class cmpxtst_row_int_var_tbl(TstTable):
"""Define the table used by the ROW of int and varchar tests"""
def __init__(self):
self.sql = """CREATE TABLE row_int_var_tbl(
id INT,
c1 ROW(i1 INT NOT NULL, i2 INT NULL) NOT NULL,
c2 ROW(i1 INT NOT NULL, i2 INT NULL),
c3 ROW(v1 VARCHAR NOT NULL, v2 VARCHAR NULL) NOT NULL,
c4 ROW(v1 VARCHAR NOT NULL, v2 VARCHAR NULL)
)"""
self.data = [
{
"id": 0,
"c1": {"i1": 20, "i2": None},
"c2": {"i1": 22, "i2": 44},
"c3": {"v1": "hi", "v2": "bye"},
"c4": {"v1": "hello", "v2": None},
},
{
"id": 1,
"c1": {"i1": 10, "i2": None},
"c2": {"i1": 33, "i2": None},
"c3": {"v1": "bye", "v2": "adios"},
"c4": {"v1": "ciao", "v2": None},
},
]
class cmpxtst_row_field_access(TstView):
def __init__(self):
# checked manually
self.data = [
{
"id": 0,
"i1": 20,
"i2": None,
"i10": 22,
"i20": 44,
"v1": "hi",
"v2": "bye",
"v10": "hello",
"v20": None,
},
{
"id": 1,
"i1": 10,
"i2": None,
"i10": 33,
"i20": None,
"v1": "bye",
"v2": "adios",
"v10": "ciao",
"v20": None,
},
]
self.sql = """CREATE MATERIALIZED VIEW row_field_access AS SELECT
id,
row_int_var_tbl.c1.i1,
row_int_var_tbl.c1.i2,
row_int_var_tbl.c2.i1,
row_int_var_tbl.c2.i2,
row_int_var_tbl.c3.v1,
row_int_var_tbl.c3.v2,
row_int_var_tbl.c4.v1,
row_int_var_tbl.c4.v2
FROM row_int_var_tbl"""