77
88class 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