From a1cfada68e97d8313bbca06b8678510f386d6479 Mon Sep 17 00:00:00 2001 From: Pepa Martinec Date: Fri, 11 Apr 2025 11:29:57 +0200 Subject: [PATCH 1/2] feat: Increase maximum VARCHAR size in Snowflake to 128MB, according to 2025_02 Bundle https://docs.snowflake.com/en/release-notes/bcr-bundles/2025_02/bcr-1942 (cherry picked from commit 10db57970dd0451fb20db5ea87b0dfa343d1c253) --- packages/php-datatypes/src/Definition/Snowflake.php | 2 +- packages/php-datatypes/tests/SnowflakeDatatypeTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/php-datatypes/src/Definition/Snowflake.php b/packages/php-datatypes/src/Definition/Snowflake.php index 55cd3e564..7a4400904 100644 --- a/packages/php-datatypes/src/Definition/Snowflake.php +++ b/packages/php-datatypes/src/Definition/Snowflake.php @@ -106,7 +106,7 @@ class Snowflake extends Common self::TYPE_GEOMETRY, self::TYPE_VECTOR, ]; - public const MAX_VARCHAR_LENGTH = 16777216; + public const MAX_VARCHAR_LENGTH = 134217728; public const MAX_VARBINARY_LENGTH = 8388608; /** diff --git a/packages/php-datatypes/tests/SnowflakeDatatypeTest.php b/packages/php-datatypes/tests/SnowflakeDatatypeTest.php index 153857284..66a218d03 100644 --- a/packages/php-datatypes/tests/SnowflakeDatatypeTest.php +++ b/packages/php-datatypes/tests/SnowflakeDatatypeTest.php @@ -216,10 +216,10 @@ public function testValidCharacterLengths(): void new Snowflake('STRING'); new Snowflake('STRING', ['length' => '']); new Snowflake('STRING', ['length' => '1']); - new Snowflake('STRING', ['length' => '16777216']); + new Snowflake('STRING', ['length' => '134217728']); new Snowflake('STRING', [ 'length' => [ - 'character_maximum' => '16777216', + 'character_maximum' => '134217728', ], ]); new Snowflake('STRING', [ @@ -444,7 +444,7 @@ public function invalidCharacterLengths(): array return [ ['a'], ['0'], - ['16777217'], + ['134217729'], ['-1'], ]; } From 8c6590128360180b1a1737c16fb1d1b70984aadc Mon Sep 17 00:00:00 2001 From: Pepa Martinec Date: Fri, 11 Apr 2025 14:07:17 +0200 Subject: [PATCH 2/2] feat: Use separate default and max length for Snowflake VARCHAR (cherry picked from commit 226bc28f92faaa529c676139d806fee5035d8f71) --- packages/php-datatypes/src/Definition/Snowflake.php | 1 + .../Backend/Snowflake/ToStage/StageTableDefinitionFactory.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/php-datatypes/src/Definition/Snowflake.php b/packages/php-datatypes/src/Definition/Snowflake.php index 7a4400904..bc2e8bc2e 100644 --- a/packages/php-datatypes/src/Definition/Snowflake.php +++ b/packages/php-datatypes/src/Definition/Snowflake.php @@ -106,6 +106,7 @@ class Snowflake extends Common self::TYPE_GEOMETRY, self::TYPE_VECTOR, ]; + public const DEFAULT_VARCHAR_LENGTH = 16777216; public const MAX_VARCHAR_LENGTH = 134217728; public const MAX_VARBINARY_LENGTH = 8388608; diff --git a/packages/php-db-import-export/src/Backend/Snowflake/ToStage/StageTableDefinitionFactory.php b/packages/php-db-import-export/src/Backend/Snowflake/ToStage/StageTableDefinitionFactory.php index 1ea94e73e..c0989111d 100644 --- a/packages/php-db-import-export/src/Backend/Snowflake/ToStage/StageTableDefinitionFactory.php +++ b/packages/php-db-import-export/src/Backend/Snowflake/ToStage/StageTableDefinitionFactory.php @@ -87,7 +87,7 @@ private static function createNvarcharColumn(string $columnName): SnowflakeColum new Snowflake( Snowflake::TYPE_VARCHAR, [ - 'length' => (string) Snowflake::MAX_VARCHAR_LENGTH, + 'length' => (string) Snowflake::DEFAULT_VARCHAR_LENGTH, 'nullable' => true, // set all columns to be nullable ], ),