Skip to content

Commit 7b2b461

Browse files
committed
Multi session support for Snowflake.
1 parent 0ad4d86 commit 7b2b461

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

Virtual_EDW/Templates/templatePresentationGenerateTables.Handlebars

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ IF OBJECT_ID('[{{targetDataObject.name}}]', 'U') IS NOT NULL
77
DROP TABLE [{{targetDataObject.name}}];
88

99
CREATE TABLE [{{targetDataObject.name}}]
10-
(
10+
({{/if}}{{/each}}
11+
{{#each dataObjectMappings}}
1112
{{#each dataItemMappings}}
1213
[{{targetDataItem.name}}] [{{targetDataItem.dataType}}]{{#stringcompare targetDataItem.dataType "int"}}{{else}}{{#stringcompare targetDataItem.dataType "nvarchar"}}(1000){{else}}{{#stringcompare targetDataItem.dataType "datetime2"}}(7){{else}}{{#stringcompare targetDataItem.dataType "decimal"}}{{else}}{{#stringcompare targetDataItem.dataType "binary"}}(16){{else}}({{characterLength}}{{#stringcompare targetDataItem.dataType "numeric"}}{numericPrecision}},{{/stringcompare}}{{numericScale}}){{/stringcompare}}{{/stringcompare}}{{/stringcompare}}{{/stringcompare}}{{/stringcompare}},
1314
{{/each}}
14-
[SNAPSHOT_DATE] [datetime2](7) NOT NULL,
15-
[{{../metadataConfiguration.etlProcessAttribute}}] [int] NOT NULL,
16-
[{{../metadataConfiguration.loadDateTimeAttribute}}] [datetime2](7) NOT NULL,
17-
[{{../metadataConfiguration.changeDataCaptureAttribute}}] [nvarchar](100) NOT NULL,
18-
[{{../metadataConfiguration.eventDateTimeAttribute}}] [datetime2](7) NOT NULL,
19-
[{{../metadataConfiguration.recordChecksumAttribute}}] [binary](16) NOT NULL,
20-
){{/if}}{{/each}}
15+
{{/each}}
16+
[SNAPSHOT_DATE] [datetime2](7) NOT NULL,
17+
[{{metadataConfiguration.etlProcessAttribute}}] [int] NOT NULL,
18+
[{{metadataConfiguration.loadDateTimeAttribute}}] [datetime2](7) NOT NULL,
19+
[{{metadataConfiguration.changeDataCaptureAttribute}}] [nvarchar](100) NOT NULL,
20+
[{{metadataConfiguration.eventDateTimeAttribute}}] [datetime2](7) NOT NULL,
21+
[{{metadataConfiguration.recordChecksumAttribute}}] [binary](16) NOT NULL
22+
)

Virtual_EDW/VdwUtility.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ public static void CreateVdwSchema(Microsoft.Data.SqlClient.SqlConnection connec
234234

235235
public static void ExecuteInDatabase(TeamConnection teamConnection, string query)
236236
{
237+
// SQL Server
237238
if (teamConnection.TechnologyConnectionType == TechnologyConnectionType.SqlServer)
238239
{
239240
var connectionString = teamConnection.CreateSqlServerConnectionString(false);
@@ -260,6 +261,7 @@ public static void ExecuteInDatabase(TeamConnection teamConnection, string query
260261
sqlConnection.Dispose();
261262
}
262263
}
264+
// Snowflake
263265
else if (teamConnection.TechnologyConnectionType == TechnologyConnectionType.Snowflake)
264266
{
265267
IDbConnection conn = new SnowflakeDbConnection();
@@ -269,8 +271,13 @@ public static void ExecuteInDatabase(TeamConnection teamConnection, string query
269271
{
270272
conn.Open();
271273
IDbCommand cmd = conn.CreateCommand();
274+
// Select the Snowflake warehouse.
272275
cmd.CommandText = $"USE WAREHOUSE {teamConnection.DatabaseServer.Warehouse}";
273276
cmd.ExecuteNonQuery();
277+
// Support multiple statements for this session.
278+
cmd.CommandText = "ALTER SESSION SET MULTI_STATEMENT_COUNT = 0;";
279+
cmd.ExecuteNonQuery();
280+
// Run the query generated from the template.
274281
cmd.CommandText = query;
275282
cmd.ExecuteNonQuery();
276283
}

0 commit comments

Comments
 (0)