mirror of
https://github.com/microsoft/dbt-fabric.git
synced 2026-11-04 12:02:15 +00:00
add support and automated testing for case sensitive collations
This commit is contained in:
1 parent
d2c9444bcb
commit
7c162533b4
7 files changed
+25
-7
No files matched your search
@@ -19,6 +19,7 @@ jobs:
|
||||
python_version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
||||
msodbc_version: ["17", "18"]
|
||||
sqlserver_version: ["2017", "2019", "2022"]
|
||||
collation: ["SQL_Latin1_General_CP1_CS_AS", "SQL_Latin1_General_CP1_CI_AS"]
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/${{ github.repository }}:CI-${{ matrix.python_version }}-msodbc${{ matrix.msodbc_version }}
|
||||
@@ -31,6 +32,7 @@ jobs:
|
||||
DBT_TEST_USER_1: DBT_TEST_USER_1
|
||||
DBT_TEST_USER_2: DBT_TEST_USER_2
|
||||
DBT_TEST_USER_3: DBT_TEST_USER_3
|
||||
COLLATION: ${{ matrix.collation }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
|
||||
@@ -2,13 +2,26 @@
|
||||
|
||||
for i in {1..50};
|
||||
do
|
||||
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "${SA_PASSWORD}" -d msdb -I -i init.sql
|
||||
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "${SA_PASSWORD}" -d master -I -Q "CREATE DATABASE TestDB COLLATE ${COLLATION}"
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "init.sql completed"
|
||||
echo "database creation completed"
|
||||
break
|
||||
else
|
||||
echo "not ready yet..."
|
||||
echo "creating database..."
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
|
||||
for i in {1..50};
|
||||
do
|
||||
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "${SA_PASSWORD}" -d TestDB -I -i init.sql
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "user creation completed"
|
||||
break
|
||||
else
|
||||
echo "configuring users..."
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
@@ -1,6 +1,8 @@
|
||||
ARG MSSQL_VERSION="2022"
|
||||
FROM mcr.microsoft.com/mssql/server:${MSSQL_VERSION}-latest
|
||||
|
||||
ENV COLLATION="SQL_Latin1_General_CP1_CI_AS"
|
||||
|
||||
RUN mkdir -p /opt/init_scripts
|
||||
WORKDIR /opt/init_scripts
|
||||
COPY scripts/* /opt/init_scripts/
|
||||
|
||||
@@ -8,6 +8,7 @@ services:
|
||||
environment:
|
||||
SA_PASSWORD: "L0calTesting!"
|
||||
ACCEPT_EULA: "Y"
|
||||
COLLATION: "SQL_Latin1_General_CP1_CS_AS"
|
||||
env_file:
|
||||
- test.env
|
||||
ports:
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
SQLSERVER_TEST_DRIVER=ODBC Driver 18 for SQL Server
|
||||
SQLSERVER_TEST_HOST=127.0.0.1
|
||||
SQLSERVER_TEST_USER=sa
|
||||
SQLSERVER_TEST_USER=SA
|
||||
SQLSERVER_TEST_PASS=L0calTesting!
|
||||
SQLSERVER_TEST_PORT=1433
|
||||
SQLSERVER_TEST_DBNAME=msdb
|
||||
SQLSERVER_TEST_DBNAME=TestDB
|
||||
SQLSERVER_TEST_ENCRYPT=True
|
||||
SQLSERVER_TEST_TRUST_CERT=True
|
||||
DBT_TEST_USER_1=DBT_TEST_USER_1
|
||||
|
||||
+1
-1
@@ -113,7 +113,7 @@ def _profile_ci_sql_server():
|
||||
"host": "sqlserver",
|
||||
"user": "SA",
|
||||
"pass": "5atyaNadella",
|
||||
"database": "msdb",
|
||||
"database": "TestDB",
|
||||
"encrypt": True,
|
||||
"trust_cert": True,
|
||||
},
|
||||
|
||||
@@ -22,7 +22,7 @@ select 1 as id
|
||||
@staticmethod
|
||||
def _verify_schema_owner(schema_name, owner, project):
|
||||
get_schema_owner = f"""
|
||||
select schema_owner from information_schema.schemata where schema_name = '{schema_name}'
|
||||
select SCHEMA_OWNER from INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = '{schema_name}'
|
||||
"""
|
||||
result = project.run_sql(get_schema_owner, fetch="one")[0]
|
||||
assert result == owner
|
||||
|
||||
Reference in new issue
Block a user