@@ -479,6 +479,15 @@ public function testArrayFromLength(string $type, ?string $length, array $expect
479479 $ this ->assertSame ($ expectedArray , $ definition ->getArrayFromLength ());
480480 }
481481
482+ /**
483+ * @dataProvider provideTestGetTypeFromAlias
484+ */
485+ public function testBackendBasetypeFromAlias (string $ type , string $ expectedType ): void
486+ {
487+ $ definition = new Snowflake ($ type );
488+ $ this ->assertSame ($ expectedType , $ definition ->getBackendBasetype ());
489+ }
490+
482491 public function arrayFromLengthProvider (): Generator
483492 {
484493 yield 'simple ' => [
@@ -507,4 +516,57 @@ public function arrayFromLengthProvider(): Generator
507516 ['numeric_precision ' => 10 , 'numeric_scale ' => 0 ],
508517 ];
509518 }
519+
520+ public function provideTestGetTypeFromAlias (): Generator
521+ {
522+ foreach (Snowflake::TYPES as $ type ) {
523+ switch ($ type ) {
524+ case Snowflake::TYPE_NVARCHAR :
525+ case Snowflake::TYPE_NVARCHAR2 :
526+ case Snowflake::TYPE_CHAR :
527+ case Snowflake::TYPE_CHARACTER :
528+ case Snowflake::TYPE_CHAR_VARYING :
529+ case Snowflake::TYPE_CHARACTER_VARYING :
530+ case Snowflake::TYPE_NCHAR_VARYING :
531+ case Snowflake::TYPE_NCHAR :
532+ case Snowflake::TYPE_STRING :
533+ case Snowflake::TYPE_TEXT :
534+ $ expectedType = Snowflake::TYPE_VARCHAR ;
535+ break ;
536+ case Snowflake::TYPE_DEC :
537+ case Snowflake::TYPE_DECIMAL :
538+ case Snowflake::TYPE_NUMERIC :
539+ case Snowflake::TYPE_INT :
540+ case Snowflake::TYPE_INTEGER :
541+ case Snowflake::TYPE_BIGINT :
542+ case Snowflake::TYPE_SMALLINT :
543+ case Snowflake::TYPE_TINYINT :
544+ case Snowflake::TYPE_BYTEINT :
545+ $ expectedType = Snowflake::TYPE_NUMBER ;
546+ break ;
547+ case Snowflake::TYPE_FLOAT :
548+ case Snowflake::TYPE_FLOAT4 :
549+ case Snowflake::TYPE_FLOAT8 :
550+ case Snowflake::TYPE_DOUBLE :
551+ case Snowflake::TYPE_DOUBLE_PRECISION :
552+ case Snowflake::TYPE_REAL :
553+ $ expectedType = Snowflake::TYPE_FLOAT ;
554+ break ;
555+ case Snowflake::TYPE_VARBINARY :
556+ $ expectedType = Snowflake::TYPE_BINARY ;
557+ break ;
558+ case Snowflake::TYPE_DATETIME :
559+ $ expectedType = Snowflake::TYPE_TIMESTAMP_NTZ ;
560+ break ;
561+ default :
562+ $ expectedType = $ type ;
563+ break ;
564+ }
565+
566+ yield $ type => [
567+ 'type ' => $ type ,
568+ 'expectedType ' => $ expectedType ,
569+ ];
570+ }
571+ }
510572}
0 commit comments