Skip to content

Commit fc7d97a

Browse files
authored
test: run tests against a mariadb instance (#5627)
[TML-1445](https://linear.app/prisma-company/issue/TML-1445/fix-queryrawunsafe-with-json-values-on-mysqlmariadb-with-driver) /prisma-branch fix/fix-mariadb-json
1 parent c93d14b commit fc7d97a

24 files changed

Lines changed: 86 additions & 33 deletions

File tree

.github/workflows/test-driver-adapters-template.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,26 @@ on:
55
setup_task:
66
type: string
77
required: true
8+
relation_load_strategy:
9+
type: string
10+
default: '["join", "query"]'
811

912
jobs:
1013
select_prisma_branch:
1114
name: Select the Prisma branch to use
1215
uses: ./.github/workflows/select-prisma-branch.yml
1316

1417
rust-query-engine-tests:
15-
name: '${{ matrix.partition }}'
18+
name: ${{ matrix.relation_load_strategy }} ${{ matrix.partition }}
1619
needs: select_prisma_branch
1720

1821
strategy:
1922
fail-fast: false
2023
matrix:
2124
node_version: ['20']
2225
partition: ['1/4', '2/4', '3/4', '4/4']
26+
relation_load_strategy: ${{ fromJson(inputs.relation_load_strategy) }}
27+
2328
env:
2429
LOG_LEVEL: 'info' # Set to "debug" to trace the query engine and node process running the driver adapter
2530
LOG_QUERIES: 'y'
@@ -32,6 +37,7 @@ jobs:
3237
QUERY_BATCH_SIZE: '10'
3338
WASM_BUILD_PROFILE: 'profiling' # Include debug info for proper backtraces
3439
WORKSPACE_ROOT: ${{ github.workspace }}
40+
PRISMA_RELATION_LOAD_STRATEGY: ${{ matrix.relation_load_strategy }}
3541

3642
runs-on: ubuntu-latest
3743
steps:

.github/workflows/test-query-compiler.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ jobs:
5555

5656
- name: mariadb
5757
setup_task: dev-mariadb-qc
58+
relation_load_strategy: '["query"]'
59+
60+
- name: mariadb-mysql
61+
setup_task: dev-mariadb-mysql-qc
5862
relation_load_strategy: '["join", "query"]'
5963

6064
- name: pg-cockroachdb

.github/workflows/test-query-engine.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,17 +229,25 @@ jobs:
229229
setup_task: 'dev-neon-wasm'
230230
- name: 'libsql (wasm)'
231231
setup_task: 'dev-libsql-wasm'
232+
relation_load_strategy: '["query"]'
232233
- name: 'd1 (wasm)'
233234
setup_task: 'dev-d1'
235+
relation_load_strategy: '["query"]'
234236
- name: 'better-sqlite3 (wasm)'
235237
setup_task: 'dev-better-sqlite3-wasm'
238+
relation_load_strategy: '["query"]'
236239
- name: 'mssql (wasm)'
237240
setup_task: 'dev-mssql-wasm'
241+
relation_load_strategy: '["query"]'
238242
- name: 'mariadb (wasm)'
239243
setup_task: 'dev-mariadb-wasm'
244+
relation_load_strategy: '["query"]'
245+
- name: 'mariadb-mysql (wasm)'
246+
setup_task: 'dev-mariadb-mysql-wasm'
240247
- name: 'pg-cockroachdb (wasm)'
241248
setup_task: 'dev-pg-cockroachdb-wasm'
242249
name: ${{ matrix.adapter.name }}
243250
uses: ./.github/workflows/test-driver-adapters-template.yml
244251
with:
245252
setup_task: ${{ matrix.adapter.setup_task }}
253+
relation_load_strategy: ${{ matrix.adapter.relation_load_strategy }}

Makefile

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,12 +496,25 @@ test-planetscale-qc: dev-planetscale-qc test-qe-st
496496
test-driver-adapter-planetscale: test-planetscale-js
497497
test-driver-adapter-planetscale-wasm: test-planetscale-wasm
498498

499-
dev-mariadb-wasm: start-mysql_8 build-qe-wasm build-driver-adapters-kit-qe
499+
dev-mariadb-mysql-wasm: start-mysql_8 build-qe-wasm build-driver-adapters-kit-qe
500+
cp $(CONFIG_PATH)/mariadb-mysql-wasm $(CONFIG_FILE)
501+
502+
test-mariadb-mysql-wasm: dev-mariadb-mysql-wasm test-qe-st
503+
504+
dev-mariadb-mysql-qc: start-mysql_8 build-qc-wasm build-driver-adapters-kit-qc
505+
cp $(CONFIG_PATH)/mariadb-mysql-qc $(CONFIG_FILE)
506+
507+
test-mariadb-mysql-qc: dev-mariadb-mysql-qc test-qe-st
508+
509+
test-driver-adapter-mariadb-mysql: test-mariadb-mysql-js
510+
test-driver-adapter-mariadb-mysql-wasm: test-mariadb-mysql-wasm
511+
512+
dev-mariadb-wasm: start-mysql_mariadb build-qe-wasm build-driver-adapters-kit-qe
500513
cp $(CONFIG_PATH)/mariadb-wasm $(CONFIG_FILE)
501514

502515
test-mariadb-wasm: dev-mariadb-wasm test-qe-st
503516

504-
dev-mariadb-qc: start-mysql_8 build-qc-wasm build-driver-adapters-kit-qc
517+
dev-mariadb-qc: start-mysql_mariadb build-qc-wasm build-driver-adapters-kit-qc
505518
cp $(CONFIG_PATH)/mariadb-qc $(CONFIG_FILE)
506519

507520
test-mariadb-qc: dev-mariadb-qc test-qe-st

libs/driver-adapters/executor/src/driver-adapters-manager/better-sqlite3.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ export class BetterSQLite3Manager implements DriverAdaptersManager {
3434
}
3535

3636
async connect() {
37-
this.#adapter = await this.#factory.connect()
38-
return this.#adapter
37+
return (this.#adapter ??= await this.#factory.connect())
3938
}
4039

4140
async teardown() {

libs/driver-adapters/executor/src/driver-adapters-manager/d1.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ export class D1Manager implements DriverAdaptersManager {
6363
}
6464

6565
async connect() {
66-
this.#adapter = await this.#factory.connect()
67-
return this.#adapter
66+
return (this.#adapter ??= await this.#factory.connect())
6867
}
6968

7069
async teardown() {

libs/driver-adapters/executor/src/driver-adapters-manager/libsql.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ export class LibSQLManager implements DriverAdaptersManager {
3535
}
3636

3737
async connect() {
38-
this.#adapter = await this.#factory.connect()
39-
return this.#adapter
38+
return (this.#adapter ??= await this.#factory.connect())
4039
}
4140

4241
async teardown() {

libs/driver-adapters/executor/src/driver-adapters-manager/mariadb.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ export class MariaDbManager implements DriverAdaptersManager {
3232
}
3333

3434
async connect() {
35-
this.#adapter = await this.#factory.connect()
36-
return this.#adapter
35+
return (this.#adapter ??= await this.#factory.connect())
3736
}
3837

3938
async teardown() {
@@ -56,6 +55,6 @@ function mariadbOptions(urlStr: string) {
5655
database,
5756
host,
5857
port: Number(port),
59-
connectionLimit: 4,
58+
connectionLimit: 2,
6059
}
6160
}

libs/driver-adapters/executor/src/driver-adapters-manager/mssql.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ export class MssqlManager implements DriverAdaptersManager {
3333
}
3434

3535
async connect() {
36-
this.#adapter = await this.#factory.connect()
37-
return this.#adapter
36+
return (this.#adapter ??= await this.#factory.connect())
3837
}
3938

4039
async teardown() {

libs/driver-adapters/executor/src/driver-adapters-manager/neon.ws.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ export class NeonWsManager implements DriverAdaptersManager {
4646
neonConfig.useSecureWebSocket = false
4747
neonConfig.pipelineConnect = false
4848

49-
this.#adapter = await this.#factory.connect()
50-
51-
return this.#adapter
49+
return (this.#adapter ??= await this.#factory.connect())
5250
}
5351

5452
async teardown() {

0 commit comments

Comments
 (0)