From 6d7badc88837dab9bbfb10e5ef84a50b8e438065 Mon Sep 17 00:00:00 2001 From: Ruben Cerna Date: Mon, 6 Jul 2026 14:07:46 -0700 Subject: [PATCH 1/5] Add new SQL version --- .pipelines/mssql-pipelines.yml | 8 ++++---- config-generators/mssql-commands.txt | 2 ++ scripts/start-mssql-server.bash | 2 +- src/Service.Tests/DatabaseSchema-MsSql.sql | 24 ++++++++++++++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.pipelines/mssql-pipelines.yml b/.pipelines/mssql-pipelines.yml index bdfb5e37e6..9fbad293c2 100644 --- a/.pipelines/mssql-pipelines.yml +++ b/.pipelines/mssql-pipelines.yml @@ -176,8 +176,8 @@ jobs: # The variable setting on the pipeline UI sets the connection string # for the linux job above. data-source.connection-string: Server=(localdb)\MSSQLLocalDB;Persist Security Info=False;Integrated Security=True;MultipleActiveResultSets=False;Connection Timeout=30;TrustServerCertificate=True; - InstallerUrl: https://download.microsoft.com/download/7/c/1/7c14e92e-bdcb-4f89-b7cf-93543e7112d1/SqlLocalDB.msi - SqlVersionCode: '15.0' + InstallerUrl: https://download.microsoft.com/download/dea8c210-c44a-4a9d-9d80-0c81578860c5/ENU/SqlLocalDB.msi + SqlVersionCode: '17.0' steps: - template: templates/mssql-test-steps.yml @@ -199,8 +199,8 @@ jobs: # The variable setting on the pipeline UI sets the connection string # for the linux job above. data-source.connection-string: Server=(localdb)\MSSQLLocalDB;Persist Security Info=False;Integrated Security=True;MultipleActiveResultSets=False;Connection Timeout=30;TrustServerCertificate=True; - InstallerUrl: https://download.microsoft.com/download/7/c/1/7c14e92e-bdcb-4f89-b7cf-93543e7112d1/SqlLocalDB.msi - SqlVersionCode: '15.0' + InstallerUrl: https://download.microsoft.com/download/dea8c210-c44a-4a9d-9d80-0c81578860c5/ENU/SqlLocalDB.msi + SqlVersionCode: '17.0' steps: - template: templates/mssql-test-steps.yml diff --git a/config-generators/mssql-commands.txt b/config-generators/mssql-commands.txt index e3f2541983..99e138b846 100644 --- a/config-generators/mssql-commands.txt +++ b/config-generators/mssql-commands.txt @@ -16,6 +16,8 @@ add Broker --config "dab-config.MsSql.json" --source brokers --permissions "anon add WebsiteUser --config "dab-config.MsSql.json" --source website_users --permissions "anonymous:create,read,delete,update" add WebsiteUser_MM --config "dab-config.MsSql.json" --source website_users_mm --graphql "websiteuser_mm:websiteusers_mm" --permissions "anonymous:*" add SupportedType --config "dab-config.MsSql.json" --source type_table --permissions "anonymous:create,read,delete,update" +add VectorType --config "dab-config.MsSql.json" --source vector_type_table --rest true --graphql false --permissions "anonymous:create,read,delete,update" +update VectorType --config "dab-config.MsSql.json" --permissions "authenticated:create,read,delete,update" add stocks_price --config "dab-config.MsSql.json" --source stocks_price --permissions "authenticated:create,read,update,delete" update stocks_price --config "dab-config.MsSql.json" --permissions "anonymous:read" update stocks_price --config "dab-config.MsSql.json" --permissions "TestNestedFilterFieldIsNull_ColumnForbidden:read" --fields.exclude "price" diff --git a/scripts/start-mssql-server.bash b/scripts/start-mssql-server.bash index 5268a5b807..4b1f0a0a42 100644 --- a/scripts/start-mssql-server.bash +++ b/scripts/start-mssql-server.bash @@ -27,7 +27,7 @@ echo "forceencryption = 1" >> $CERT_DIR/mssql.conf cat $CERT_DIR/mssql.conf # Start mssql-server by volume mounting the cert, key and conf files. -docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=$DOCKER_SQL_PASS" -p 1433:1433 --name customerdb -h customerdb -v $CERT_DIR/mssql.conf:/var/opt/mssql/mssql.conf -v $CERT_DIR/mssql.pem:/var/opt/mssql/mssql.pem -v $CERT_DIR/mssql.key:/var/opt/mssql/mssql.key -d mcr.microsoft.com/mssql/server:2019-latest +docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=$DOCKER_SQL_PASS" -p 1433:1433 --name customerdb -h customerdb -v $CERT_DIR/mssql.conf:/var/opt/mssql/mssql.conf -v $CERT_DIR/mssql.pem:/var/opt/mssql/mssql.pem -v $CERT_DIR/mssql.key:/var/opt/mssql/mssql.key -d mcr.microsoft.com/mssql/server:2025-latest sleep 30 docker logs customerdb diff --git a/src/Service.Tests/DatabaseSchema-MsSql.sql b/src/Service.Tests/DatabaseSchema-MsSql.sql index 70414e95b0..39c796e3dc 100644 --- a/src/Service.Tests/DatabaseSchema-MsSql.sql +++ b/src/Service.Tests/DatabaseSchema-MsSql.sql @@ -40,6 +40,7 @@ DROP TABLE IF EXISTS stocks; DROP TABLE IF EXISTS comics; DROP TABLE IF EXISTS brokers; DROP TABLE IF EXISTS type_table; +DROP TABLE IF EXISTS vector_type_table; DROP TABLE IF EXISTS trees; DROP TABLE IF EXISTS fungi; DROP TABLE IF EXISTS empty_table; @@ -234,6 +235,12 @@ CREATE TABLE type_table( uuid_types uniqueidentifier DEFAULT newid() ); +CREATE TABLE vector_type_table( + id int IDENTITY(5001, 1) PRIMARY KEY, + vector_data vector(3), + vector_data_max vector(1998) +); + CREATE TABLE trees ( treeId int PRIMARY KEY, species varchar(max), @@ -616,6 +623,23 @@ VALUES INSERT INTO type_table(id, uuid_types) values(10, 'D1D021A8-47B4-4AE4-B718-98E89C41A161'); SET IDENTITY_INSERT type_table OFF +SET IDENTITY_INSERT vector_type_table ON +INSERT INTO vector_type_table(id, vector_data) +VALUES + (1, '[0.5, 0.25, 0.75]'), + (2, '[1.5, -2.5, 3.5]'), + (3, NULL), + (4, '[1.0, 2.0, 3.0]'), + (5, '[4.0, 5.0, 6.0]'), + (6, '[7.0, 8.0, 9.0]'); + +INSERT INTO vector_type_table(id, vector_data_max) +VALUES (7, CAST('[' + ( + SELECT STRING_AGG(CAST(value AS NVARCHAR(MAX)), ',') WITHIN GROUP (ORDER BY value) + FROM GENERATE_SERIES(1, 1998) +) + ']' AS vector(1998))); +SET IDENTITY_INSERT vector_type_table OFF + SET IDENTITY_INSERT sales ON INSERT INTO sales(id, item_name, subtotal, tax) VALUES (1, 'Watch', 249.00, 20.59), (2, 'Montior', 120.50, 11.12); SET IDENTITY_INSERT sales OFF From e562894c13b54f922aad952c7767409b143734b7 Mon Sep 17 00:00:00 2001 From: Ruben Cerna Date: Mon, 6 Jul 2026 14:22:36 -0700 Subject: [PATCH 2/5] Add vector table to schema --- src/Service.Tests/dab-config.MsSql.json | 54 ++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/src/Service.Tests/dab-config.MsSql.json b/src/Service.Tests/dab-config.MsSql.json index 6a41d8ee13..4de4f52b5f 100644 --- a/src/Service.Tests/dab-config.MsSql.json +++ b/src/Service.Tests/dab-config.MsSql.json @@ -1802,6 +1802,58 @@ } ] }, + "VectorType": { + "source": { + "object": "vector_type_table", + "type": "table" + }, + "graphql": { + "enabled": false, + "type": { + "singular": "VectorType", + "plural": "VectorTypes" + } + }, + "rest": { + "enabled": true + }, + "permissions": [ + { + "role": "anonymous", + "actions": [ + { + "action": "create" + }, + { + "action": "read" + }, + { + "action": "delete" + }, + { + "action": "update" + } + ] + }, + { + "role": "authenticated", + "actions": [ + { + "action": "create" + }, + { + "action": "read" + }, + { + "action": "delete" + }, + { + "action": "update" + } + ] + } + ] + }, "stocks_price": { "source": { "object": "stocks_price", @@ -4022,4 +4074,4 @@ ] } } -} \ No newline at end of file +} From 468b9575af3726cefa649cb82ad7350d478e264d Mon Sep 17 00:00:00 2001 From: Ruben Cerna Date: Mon, 6 Jul 2026 14:49:31 -0700 Subject: [PATCH 3/5] Remove vector table to schema --- src/Service.Tests/dab-config.MsSql.json | 52 ------------------------- 1 file changed, 52 deletions(-) diff --git a/src/Service.Tests/dab-config.MsSql.json b/src/Service.Tests/dab-config.MsSql.json index 4de4f52b5f..873d44eea7 100644 --- a/src/Service.Tests/dab-config.MsSql.json +++ b/src/Service.Tests/dab-config.MsSql.json @@ -1802,58 +1802,6 @@ } ] }, - "VectorType": { - "source": { - "object": "vector_type_table", - "type": "table" - }, - "graphql": { - "enabled": false, - "type": { - "singular": "VectorType", - "plural": "VectorTypes" - } - }, - "rest": { - "enabled": true - }, - "permissions": [ - { - "role": "anonymous", - "actions": [ - { - "action": "create" - }, - { - "action": "read" - }, - { - "action": "delete" - }, - { - "action": "update" - } - ] - }, - { - "role": "authenticated", - "actions": [ - { - "action": "create" - }, - { - "action": "read" - }, - { - "action": "delete" - }, - { - "action": "update" - } - ] - } - ] - }, "stocks_price": { "source": { "object": "stocks_price", From ab478c03099021d7e67e554b31301952a3225226 Mon Sep 17 00:00:00 2001 From: Ruben Cerna Date: Mon, 6 Jul 2026 15:24:14 -0700 Subject: [PATCH 4/5] Update version to 2025 --- .pipelines/dwsql-pipelines.yml | 6 +++--- .pipelines/mssql-pipelines.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pipelines/dwsql-pipelines.yml b/.pipelines/dwsql-pipelines.yml index d8fe8d0455..5f967ae815 100644 --- a/.pipelines/dwsql-pipelines.yml +++ b/.pipelines/dwsql-pipelines.yml @@ -2,7 +2,7 @@ # Licensed under the MIT License. # DwSql Integration Testing Pipeline config is split into two jobs: -# 1) LinuxTests -> Run SQL Server 2019 in Linux Docker Image +# 1) LinuxTests -> Run SQL Server 2025 in Linux Docker Image # 2) WindowsTests -> Run LocalDB preinstalled on machine trigger: @@ -159,8 +159,8 @@ jobs: # The variable setting on the pipeline UI sets the connection string # for the linux job above. data-source.connection-string: Server=(localdb)\MSSQLLocalDB;Persist Security Info=False;Integrated Security=True;MultipleActiveResultSets=False;Connection Timeout=30;TrustServerCertificate=True; - InstallerUrl: https://download.microsoft.com/download/7/c/1/7c14e92e-bdcb-4f89-b7cf-93543e7112d1/SqlLocalDB.msi - SqlVersionCode: '15.0' + InstallerUrl: https://download.microsoft.com/download/dea8c210-c44a-4a9d-9d80-0c81578860c5/ENU/SqlLocalDB.msi + SqlVersionCode: '17.0' steps: - task: CmdLine@2 diff --git a/.pipelines/mssql-pipelines.yml b/.pipelines/mssql-pipelines.yml index 9fbad293c2..69762f7915 100644 --- a/.pipelines/mssql-pipelines.yml +++ b/.pipelines/mssql-pipelines.yml @@ -2,7 +2,7 @@ # Licensed under the MIT License. # MsSql Integration Testing Pipeline config is split into parallel jobs: -# 1) linux (disabled) -> Run SQL Server 2019 in Linux Docker Image +# 1) linux (disabled) -> Run SQL Server 2025 in Linux Docker Image # 2) windows_combined -> GraphQL, REST, Unit, HotReload, OpenApi, Auth, Telemetry, Caching on LocalDB # 3) windows_configuration -> Configuration tests on LocalDB (with schema init) From 65ddcc9ef975498e022b9777d76ff35f8cb8267a Mon Sep 17 00:00:00 2001 From: Ruben Cerna Date: Tue, 7 Jul 2026 09:53:09 -0700 Subject: [PATCH 5/5] Remove commands --- config-generators/mssql-commands.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/config-generators/mssql-commands.txt b/config-generators/mssql-commands.txt index 99e138b846..e3f2541983 100644 --- a/config-generators/mssql-commands.txt +++ b/config-generators/mssql-commands.txt @@ -16,8 +16,6 @@ add Broker --config "dab-config.MsSql.json" --source brokers --permissions "anon add WebsiteUser --config "dab-config.MsSql.json" --source website_users --permissions "anonymous:create,read,delete,update" add WebsiteUser_MM --config "dab-config.MsSql.json" --source website_users_mm --graphql "websiteuser_mm:websiteusers_mm" --permissions "anonymous:*" add SupportedType --config "dab-config.MsSql.json" --source type_table --permissions "anonymous:create,read,delete,update" -add VectorType --config "dab-config.MsSql.json" --source vector_type_table --rest true --graphql false --permissions "anonymous:create,read,delete,update" -update VectorType --config "dab-config.MsSql.json" --permissions "authenticated:create,read,delete,update" add stocks_price --config "dab-config.MsSql.json" --source stocks_price --permissions "authenticated:create,read,update,delete" update stocks_price --config "dab-config.MsSql.json" --permissions "anonymous:read" update stocks_price --config "dab-config.MsSql.json" --permissions "TestNestedFilterFieldIsNull_ColumnForbidden:read" --fields.exclude "price"