-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmsg.py
More file actions
227 lines (172 loc) · 7.34 KB
/
Copy pathmsg.py
File metadata and controls
227 lines (172 loc) · 7.34 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
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
###########################################
# Kyu Hyeok Seo 2018-***** #
###########################################
# __str__ helps the class object to print a specific format
# Success message based on message description using an input
class CreateTableSuccess():
def __init__(self, tablename):
self.message = "'" + tablename + "'" + ' table is created'
def __str__(self):
return self.message
# Error message based on message description
class DuplicateColumnDefError(Exception):
def __init__(self, message='Create table has failed: column definition is duplicated'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class DuplicatePrimaryKeyDefError(Exception):
def __init__(self, message='Create table has failed: primary key definition is duplicated'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class ReferenceColumnStringError(Exception):
def __init__(self, message='Create table has failed: referenced column should be string'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class ReferenceTypeError(Exception):
def __init__(self, message='Create table has failed: foreign key references wrong type'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class ReferenceNonPrimaryKeyError(Exception):
def __init__(self, message='Create table has failed: foreign key references non primary key column'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class ReferenceColumnExistenceError(Exception):
def __init__(self, message='Create table has failed: foreign key references non existing column'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class ReferenceTableExistenceError(Exception):
def __init__(self, message='Create table has failed: foreign key references non existing table'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class NonExistingColumnDefError(Exception):
def __init__(self, colname, message='Create table has failed: '):
self.message = message + "'" + colname + "'" + ' does not exist in column definition'
def __str__(self):
return self.message
# Error message based on message description
class TableExistenceError(Exception):
def __init__(self, message='Create table has failed: table with the same name already exists'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class CharLengthError(Exception):
def __init__(self, message='Char length should be over 0'):
self.message = message
def __str__(self):
return self.message
# Success message based on message description using an input
class DropSuccess():
def __init__(self, tablename, message=' table is dropped'):
self.message = "'" + tablename + "'" + message
def __str__(self):
return self.message
# Error message based on message description
class NoSuchTable(Exception):
def __init__(self, message='No such table'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class DropReferencedTableError(Exception):
def __init__(self, tablename, message='Drop table has failed: '):
self.message = message + "'" + tablename + "'" + " is referenced by other table"
def __str__(self):
return self.message
# Success message based on message description
class InsertResult():
def __init__(self, message='1 row inserted'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class SelectTableExistenceError(Exception):
def __init__(self, tablename, message='Selection has failed: '):
self.message = message + "'" + tablename + "'" + " does not exist"
def __str__(self):
return self.message
# Error message based on message description
class InsertTypeMismatchError(Exception):
def __init__(self, message='Insertion has failed: Types are not matched'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class InsertColumnExistenceError(Exception):
def __init__(self, colname, message='Insertion has failed: '):
self.message = message + "'" + colname + "'" + " does not exist"
def __str__(self):
return self.message
# Error message based on message description
class InsertColumnNonNullableError(Exception):
def __init__(self, colname, message='Insertion has failed: '):
self.message = message + "'" + colname + "'" + " is not nullable"
def __str__(self):
return self.message
# Success message based on message description using an input cnt
class DeleteResult():
def __init__(self, cnt, message=' row(s) deleted'):
self.message = "'" + str(cnt) + "'" + message
def __str__(self):
return self.message
# Error message based on message description
class WhereTableNotSpecified(Exception):
def __init__(self, message='Where clause trying to reference tables which are not specified'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class WhereColumnNotExist(Exception):
def __init__(self, message='Where clause trying to reference non existing column'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class WhereAmbiguousReference(Exception):
def __init__(self, message='Where clause contains ambiguous reference'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class WhereIncomparableError(Exception):
def __init__(self, message='Where clause trying to compare incomparable values'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
# Customized exception without any document
# This exception occurs when select clause reference a table which is not specified in from clause
#
#
# (EX)
# select B.id from A;
class SelectTableNotSpecified(Exception):
def __init__(self, message='Select clause trying to reference tables which are not specified in From clause'):
self.message = message
def __str__(self):
return self.message
# Error message based on message description
class SelectColumnResolveError(Exception):
def __init__(self, colname, message='Selection has failed: fail to resolve '):
self.message = message + "'" + colname + "'"
def __str__(self):
return self.message
# Error message based on message description
class InsertDuplicatePrimaryKeyError(Exception):
def __init__(self, message='Insertion has failed: Primary key duplication'):
self.message = message
def __str__(self):
return self.message