Skip to content

Commit 18533b1

Browse files
authored
Merge pull request #46 from keboola/jirka-kbc-2222-snflk-type-has-constants
KBC-2222 Snowflake types as constants
2 parents 8138807 + 9bd7382 commit 18533b1

1 file changed

Lines changed: 105 additions & 58 deletions

File tree

src/Definition/Snowflake.php

Lines changed: 105 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,69 @@
77

88
class Snowflake extends Common
99
{
10+
const TYPE_NUMBER = 'NUMBER';
11+
const TYPE_DECIMAL = 'DECIMAL';
12+
const TYPE_NUMERIC = 'NUMERIC';
13+
const TYPE_INT = 'INT';
14+
const TYPE_INTEGER = 'INTEGER';
15+
const TYPE_BIGINT = 'BIGINT';
16+
const TYPE_SMALLINT = 'SMALLINT';
17+
const TYPE_TINYINT = 'TINYINT';
18+
const TYPE_BYTEINT = 'BYTEINT';
19+
const TYPE_FLOAT = 'FLOAT';
20+
const TYPE_FLOAT4 = 'FLOAT4';
21+
const TYPE_FLOAT8 = 'FLOAT8';
22+
const TYPE_DOUBLE = 'DOUBLE';
23+
const TYPE_DOUBLE_PRECISION = 'DOUBLE PRECISION';
24+
const TYPE_REAL = 'REAL';
25+
const TYPE_VARCHAR = 'VARCHAR';
26+
const TYPE_CHAR = 'CHAR';
27+
const TYPE_CHARACTER = 'CHARACTER';
28+
const TYPE_STRING = 'STRING';
29+
const TYPE_TEXT = 'TEXT';
30+
const TYPE_BOOLEAN = 'BOOLEAN';
31+
const TYPE_DATE = 'DATE';
32+
const TYPE_DATETIME = 'DATETIME';
33+
const TYPE_TIME = 'TIME';
34+
const TYPE_TIMESTAMP = 'TIMESTAMP';
35+
const TYPE_TIMESTAMP_NTZ = 'TIMESTAMP_NTZ';
36+
const TYPE_TIMESTAMP_LTZ = 'TIMESTAMP_LTZ';
37+
const TYPE_TIMESTAMP_TZ = 'TIMESTAMP_TZ';
38+
const TYPE_VARIANT = 'VARIANT';
39+
const TYPE_BINARY = 'BINARY';
40+
const TYPE_VARBINARY = 'VARBINARY';
1041
const TYPES = [
11-
"NUMBER",
12-
"DECIMAL", "NUMERIC",
13-
"INT", "INTEGER", "BIGINT", "SMALLINT", "TINYINT", "BYTEINT",
14-
"FLOAT", "FLOAT4", "FLOAT8",
15-
"DOUBLE", "DOUBLE PRECISION", "REAL",
16-
"VARCHAR",
17-
"CHAR", "CHARACTER",
18-
"STRING", "TEXT",
19-
"BOOLEAN",
20-
"DATE",
21-
"DATETIME",
22-
"TIME",
23-
"TIMESTAMP", "TIMESTAMP_NTZ", "TIMESTAMP_LTZ", "TIMESTAMP_TZ",
24-
"VARIANT",
25-
"BINARY","VARBINARY",
42+
self::TYPE_NUMBER,
43+
self::TYPE_DECIMAL,
44+
self::TYPE_NUMERIC,
45+
self::TYPE_INT,
46+
self::TYPE_INTEGER,
47+
self::TYPE_BIGINT,
48+
self::TYPE_SMALLINT,
49+
self::TYPE_TINYINT,
50+
self::TYPE_BYTEINT,
51+
self::TYPE_FLOAT,
52+
self::TYPE_FLOAT4,
53+
self::TYPE_FLOAT8,
54+
self::TYPE_DOUBLE,
55+
self::TYPE_DOUBLE_PRECISION,
56+
self::TYPE_REAL,
57+
self::TYPE_VARCHAR,
58+
self::TYPE_CHAR,
59+
self::TYPE_CHARACTER,
60+
self::TYPE_STRING,
61+
self::TYPE_TEXT,
62+
self::TYPE_BOOLEAN,
63+
self::TYPE_DATE,
64+
self::TYPE_DATETIME,
65+
self::TYPE_TIME,
66+
self::TYPE_TIMESTAMP,
67+
self::TYPE_TIMESTAMP_NTZ,
68+
self::TYPE_TIMESTAMP_LTZ,
69+
self::TYPE_TIMESTAMP_TZ,
70+
self::TYPE_VARIANT,
71+
self::TYPE_BINARY,
72+
self::TYPE_VARBINARY,
2673
];
2774

2875
/**
@@ -135,9 +182,9 @@ private function validateLength($type, $length = null)
135182
{
136183
$valid = true;
137184
switch (strtoupper($type)) {
138-
case "NUMBER":
139-
case "DECIMAL":
140-
case "NUMERIC":
185+
case self::TYPE_NUMBER:
186+
case self::TYPE_DECIMAL:
187+
case self::TYPE_NUMERIC:
141188
if (is_null($length) || $length === "") {
142189
break;
143190
}
@@ -154,60 +201,60 @@ private function validateLength($type, $length = null)
154201
$valid = false;
155202
break;
156203
}
157-
if ((int)$parts[0] <= 0 || (int)$parts[0] > 38) {
204+
if ((int) $parts[0] <= 0 || (int) $parts[0] > 38) {
158205
$valid = false;
159206
break;
160207
}
161-
if (isset($parts[1]) && ((int)$parts[1] > (int)$parts[0] || (int)$parts[1] > 38)) {
208+
if (isset($parts[1]) && ((int) $parts[1] > (int) $parts[0] || (int) $parts[1] > 38)) {
162209
$valid = false;
163210
break;
164211
}
165212
break;
166-
case "VARCHAR":
167-
case "CHAR":
168-
case "CHARACTER":
169-
case "STRING":
170-
case "TEXT":
213+
case self::TYPE_VARCHAR:
214+
case self::TYPE_CHAR:
215+
case self::TYPE_CHARACTER:
216+
case self::TYPE_STRING:
217+
case self::TYPE_TEXT:
171218
if (is_null($length) || $length == "") {
172219
break;
173220
}
174221
if (!is_numeric($length)) {
175222
$valid = false;
176223
break;
177224
}
178-
if ((int)$length <= 0 || (int)$length > 16777216) {
225+
if ((int) $length <= 0 || (int) $length > 16777216) {
179226
$valid = false;
180227
break;
181228
}
182229
break;
183-
case "TIME":
184-
case "DATETIME":
185-
case "TIMESTAMP":
186-
case "TIMESTAMP_NTZ":
187-
case "TIMESTAMP_LTZ":
188-
case "TIMESTAMP_TZ":
230+
case self::TYPE_TIME:
231+
case self::TYPE_DATETIME:
232+
case self::TYPE_TIMESTAMP:
233+
case self::TYPE_TIMESTAMP_NTZ:
234+
case self::TYPE_TIMESTAMP_LTZ:
235+
case self::TYPE_TIMESTAMP_TZ:
189236
if (is_null($length) || $length == "") {
190237
break;
191238
}
192239
if (!is_numeric($length)) {
193240
$valid = false;
194241
break;
195242
}
196-
if ((int)$length < 0 || (int)$length > 9) {
243+
if ((int) $length < 0 || (int) $length > 9) {
197244
$valid = false;
198245
break;
199246
}
200247
break;
201-
case "BINARY":
202-
case "VARBINARY":
248+
case self::TYPE_BINARY:
249+
case self::TYPE_VARBINARY:
203250
if (is_null($length) || $length == "") {
204251
break;
205252
}
206253
if (!is_numeric($length)) {
207254
$valid = false;
208255
break;
209256
}
210-
if ((int)$length < 1 || (int)$length > 8388608) {
257+
if ((int) $length < 1 || (int) $length > 8388608) {
211258
$valid = false;
212259
break;
213260
}
@@ -230,38 +277,38 @@ private function validateLength($type, $length = null)
230277
public function getBasetype()
231278
{
232279
switch (strtoupper($this->type)) {
233-
case "INT":
234-
case "INTEGER":
235-
case "BIGINT":
236-
case "SMALLINT":
237-
case "TINYINT":
238-
case "BYTEINT":
280+
case self::TYPE_INT:
281+
case self::TYPE_INTEGER:
282+
case self::TYPE_BIGINT:
283+
case self::TYPE_SMALLINT:
284+
case self::TYPE_TINYINT:
285+
case self::TYPE_BYTEINT:
239286
$basetype = BaseType::INTEGER;
240287
break;
241-
case "NUMBER":
242-
case "DECIMAL":
243-
case "NUMERIC":
288+
case self::TYPE_NUMBER:
289+
case self::TYPE_DECIMAL:
290+
case self::TYPE_NUMERIC:
244291
$basetype = BaseType::NUMERIC;
245292
break;
246-
case "FLOAT":
247-
case "FLOAT4":
248-
case "FLOAT8":
249-
case "DOUBLE":
250-
case "DOUBLE PRECISION":
251-
case "REAL":
293+
case self::TYPE_FLOAT:
294+
case self::TYPE_FLOAT4:
295+
case self::TYPE_FLOAT8:
296+
case self::TYPE_DOUBLE:
297+
case self::TYPE_DOUBLE_PRECISION:
298+
case self::TYPE_REAL:
252299
$basetype = BaseType::FLOAT;
253300
break;
254-
case "BOOLEAN":
301+
case self::TYPE_BOOLEAN:
255302
$basetype = BaseType::BOOLEAN;
256303
break;
257-
case "DATE":
304+
case self::TYPE_DATE:
258305
$basetype = BaseType::DATE;
259306
break;
260-
case "DATETIME":
261-
case "TIMESTAMP":
262-
case "TIMESTAMP_NTZ":
263-
case "TIMESTAMP_LTZ":
264-
case "TIMESTAMP_TZ":
307+
case self::TYPE_DATETIME:
308+
case self::TYPE_TIMESTAMP:
309+
case self::TYPE_TIMESTAMP_NTZ:
310+
case self::TYPE_TIMESTAMP_LTZ:
311+
case self::TYPE_TIMESTAMP_TZ:
265312
$basetype = BaseType::TIMESTAMP;
266313
break;
267314
default:

0 commit comments

Comments
 (0)