Skip to content

Commit f3a7730

Browse files
committed
KBC-3059 pass application in SNFLK DSN
1 parent 2f276b1 commit f3a7730

2 files changed

Lines changed: 16 additions & 12 deletions

File tree

src/Connection/Snowflake/SnowflakeDSNGenerator.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
class SnowflakeDSNGenerator
1111
{
12+
private const SNOWFLAKE_APPLICATION = 'Keboola_Connection';
13+
1214
/**
1315
* The connection constructor accepts the following options:
1416
* - host (string, required) - hostname
@@ -112,6 +114,8 @@ public static function generateDSN(array $options): string
112114
$dsn .= ';CLIENT_SESSION_KEEP_ALIVE=TRUE';
113115
}
114116

117+
$dsn .= ';application=' . SnowflakeQuote::quoteSingleIdentifier(self::SNOWFLAKE_APPLICATION);
118+
115119
return $dsn;
116120
}
117121
}

tests/Unit/Connection/Snowflake/SnowflakeDSNGeneratorTest.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,95 +39,95 @@ public function dsnOptionsProvider(): Generator
3939
yield 'all' => [
4040
$options,
4141
// phpcs:ignore
42-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
42+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
4343
];
4444

4545
$optionsCopy = $options;
4646
unset($optionsCopy['port']);
4747
yield 'no port' => [
4848
$optionsCopy,
4949
// phpcs:ignore
50-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=443;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
50+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=443;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
5151
];
5252

5353
$optionsCopy = $options;
5454
unset($optionsCopy['tracing']);
5555
yield 'no tracing' => [
5656
$optionsCopy,
5757
// phpcs:ignore
58-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=0;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
58+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=0;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
5959
];
6060

6161
$optionsCopy = $options;
6262
unset($optionsCopy['loginTimeout']);
6363
yield 'no loginTimeout' => [
6464
$optionsCopy,
6565
// phpcs:ignore
66-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
66+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
6767
];
6868

6969
$optionsCopy = $options;
7070
unset($optionsCopy['networkTimeout']);
7171
yield 'no networkTimeout' => [
7272
$optionsCopy,
7373
// phpcs:ignore
74-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
74+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
7575
];
7676

7777
$optionsCopy = $options;
7878
unset($optionsCopy['queryTimeout']);
7979
yield 'no queryTimeout' => [
8080
$optionsCopy,
8181
// phpcs:ignore
82-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
82+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
8383
];
8484

8585
$optionsCopy = $options;
8686
unset($optionsCopy['maxBackoffAttempts']);
8787
yield 'no maxBackoffAttempts' => [
8888
$optionsCopy,
8989
// phpcs:ignore
90-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
90+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
9191
];
9292

9393
$optionsCopy = $options;
9494
unset($optionsCopy['database']);
9595
yield 'no database' => [
9696
$optionsCopy,
9797
// phpcs:ignore
98-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
98+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
9999
];
100100

101101
$optionsCopy = $options;
102102
unset($optionsCopy['schema']);
103103
yield 'no schema' => [
104104
$optionsCopy,
105105
// phpcs:ignore
106-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
106+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
107107
];
108108

109109
$optionsCopy = $options;
110110
unset($optionsCopy['warehouse']);
111111
yield 'no warehouse' => [
112112
$optionsCopy,
113113
// phpcs:ignore
114-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";CLIENT_SESSION_KEEP_ALIVE=TRUE',
114+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
115115
];
116116

117117
$optionsCopy = $options;
118118
unset($optionsCopy['clientSessionKeepAlive']);
119119
yield 'no clientSessionKeepAlive' => [
120120
$optionsCopy,
121121
// phpcs:ignore
122-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse"',
122+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=123;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";application="Keboola_Connection"',
123123
];
124124

125125
$optionsCopy = $options;
126126
$optionsCopy['port'] = '';
127127
yield 'empty string as port' => [
128128
$optionsCopy,
129129
// phpcs:ignore
130-
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=443;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE',
130+
'Driver=SnowflakeDSIIDriver;Server=snowflakecomputing.com;Port=443;Tracing=1;Login_timeout=10;Network_timeout=15;Query_timeout=20;Database="snowflake_db";Schema="snowflake_schema";Warehouse="snowflake_warehouse";CLIENT_SESSION_KEEP_ALIVE=TRUE;application="Keboola_Connection"',
131131
];
132132
}
133133

0 commit comments

Comments
 (0)