-
Notifications
You must be signed in to change notification settings - Fork 39
/
test_psql.py
121 lines (111 loc) · 3.34 KB
/
test_psql.py
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
from simple_ddl_parser import DDLParser
def test_inherits():
ddl = """
CREATE TABLE public."Diagnosis_identifier" (
"Diagnosis_id" text NOT NULL
)
INHERITS (public.identifier);
"""
result = DDLParser(ddl).run(output_mode="postgres")
expected = [
{
"alter": {},
"checks": [],
"columns": [
{
"check": None,
"default": None,
"name": '"Diagnosis_id"',
"nullable": False,
"references": None,
"size": None,
"type": "text",
"unique": False,
}
],
"index": [],
"inherits": {"schema": "public", "table_name": "identifier"},
"partitioned_by": [],
"primary_key": [],
"schema": "public",
"table_name": '"Diagnosis_identifier"',
"tablespace": None,
}
]
assert expected == result
def test_cast_generated():
ddl = """CREATE TABLE test (
timestamp TIMESTAMP,
date DATE GENERATED ALWAYS AS (CAST(timestamp AS DATE))
)"""
result = DDLParser(ddl).run(output_mode="postgres")
expected = [
{
"alter": {},
"checks": [],
"columns": [
{
"check": None,
"default": None,
"name": "timestamp",
"nullable": True,
"references": None,
"size": None,
"type": "TIMESTAMP",
"unique": False,
},
{
"check": None,
"default": None,
"generated": {
"always": True,
"as": {"cast": {"as": "DATE", "value": "timestamp"}},
"stored": False,
},
"name": "date",
"nullable": True,
"references": None,
"size": None,
"type": "DATE",
"unique": False,
},
],
"index": [],
"partitioned_by": [],
"primary_key": [],
"schema": None,
"table_name": "test",
"tablespace": None,
}
]
assert expected == result
def test_with_time_zone():
expected = [
{
"alter": {},
"checks": [],
"columns": [
{
"check": None,
"default": None,
"name": "date_updated",
"nullable": True,
"references": None,
"size": None,
"type": "timestamp",
"unique": False,
"with_time_zone": True,
}
],
"index": [],
"partitioned_by": [],
"primary_key": [],
"schema": "public",
"table_name": "test",
"tablespace": None,
}
]
ddl = """
CREATE TABLE public.test (date_updated timestamp with time zone);"""
result = DDLParser(ddl).run(output_mode="postgres")
assert expected == result