From 7c3979f9178424f51d180399fbf77d606adea53b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 1 Jan 2024 01:21:40 +0000 Subject: [PATCH] Fix test-mssql bug (#2391) Reviewed-on: https://gitea.com/xorm/xorm/pulls/2391 --- .gitea/workflows/test-mssql-collation.yml | 58 +++++++++++++++++++++++ .gitea/workflows/test-mssql.yml | 8 ---- dialects/mssql.go | 4 +- 3 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 .gitea/workflows/test-mssql-collation.yml diff --git a/.gitea/workflows/test-mssql-collation.yml b/.gitea/workflows/test-mssql-collation.yml new file mode 100644 index 00000000..552f43a1 --- /dev/null +++ b/.gitea/workflows/test-mssql-collation.yml @@ -0,0 +1,58 @@ +name: test mssql +on: + push: + branches: + - master + pull_request: + +env: + GOPROXY: https://goproxy.io,direct + GOPATH: /go_path + GOCACHE: /go_cache + RUNNER_TOOL_CACHE: /toolcache # specify with your cache path + +jobs: + test-mssql-collation: + name: test mssql with collation + runs-on: ubuntu-latest + steps: + # - name: cache go path + # id: cache-go-path + # uses: https://github.com/actions/cache@v3 + # with: + # path: /go_path + # key: go_path-${{ github.repository }}-${{ github.ref_name }} + # restore-keys: | + # go_path-${{ github.repository }}- + # go_path- + # - name: cache go cache + # id: cache-go-cache + # uses: https://github.com/actions/cache@v3 + # with: + # path: /go_cache + # key: go_cache-${{ github.repository }}-${{ github.ref_name }} + # restore-keys: | + # go_cache-${{ github.repository }}- + # go_cache- + - uses: actions/setup-go@v3 + with: + go-version: 1.20 + - uses: actions/checkout@v3 + - name: test mssql with collation + env: + TEST_MSSQL_HOST: mssql2 + TEST_MSSQL_DBNAME: xorm_test + TEST_MSSQL_USERNAME: sa + TEST_MSSQL_PASSWORD: "yourStrong(!)Password" + TEST_MSSQL_COLLATION: SQL_Latin1_General_CP1_CS_AS + run: TEST_MSSQL_DEFAULT_VARCHAR=NVARCHAR TEST_MSSQL_DEFAULT_CHAR=NCHAR make test-mssql + + services: + mssql2: + image: mcr.microsoft.com/mssql/server:latest + env: + ACCEPT_EULA: Y + SA_PASSWORD: yourStrong(!)Password + MSSQL_PID: Standard + ports: + - 1433:1433 \ No newline at end of file diff --git a/.gitea/workflows/test-mssql.yml b/.gitea/workflows/test-mssql.yml index ca2b27a3..676df6a1 100644 --- a/.gitea/workflows/test-mssql.yml +++ b/.gitea/workflows/test-mssql.yml @@ -44,14 +44,6 @@ jobs: TEST_MSSQL_USERNAME: sa TEST_MSSQL_PASSWORD: "yourStrong(!)Password" run: TEST_MSSQL_DEFAULT_VARCHAR=NVARCHAR TEST_MSSQL_DEFAULT_CHAR=NCHAR make test-mssql - - name: test mssql with collation - env: - TEST_MSSQL_HOST: mssql - TEST_MSSQL_DBNAME: xorm_test - TEST_MSSQL_USERNAME: sa - TEST_MSSQL_PASSWORD: "yourStrong(!)Password" - TEST_MSSQL_COLLATION: SQL_Latin1_General_CP1_CS_AS - run: TEST_MSSQL_DEFAULT_VARCHAR=NVARCHAR TEST_MSSQL_DEFAULT_CHAR=NCHAR make test-mssql services: mssql: diff --git a/dialects/mssql.go b/dialects/mssql.go index d5af6c77..13399ed2 100644 --- a/dialects/mssql.go +++ b/dialects/mssql.go @@ -587,9 +587,9 @@ IXS.NAME AS [INDEX_NAME], C.NAME AS [COLUMN_NAME], IXS.is_unique AS [IS_UNIQUE] FROM sys.indexes IXS -INNER JOIN SYS.INDEX_COLUMNS IXCS +INNER JOIN sys.index_columns IXCS ON IXS.OBJECT_ID=IXCS.OBJECT_ID AND IXS.INDEX_ID = IXCS.INDEX_ID -INNER JOIN SYS.COLUMNS C ON IXS.OBJECT_ID=C.OBJECT_ID +INNER JOIN sys.columns C ON IXS.OBJECT_ID=C.OBJECT_ID AND IXCS.COLUMN_ID=C.COLUMN_ID WHERE IXS.TYPE_DESC='NONCLUSTERED' and OBJECT_NAME(IXS.OBJECT_ID) =? `