Skip to content

Commit caaae4b

Browse files
aparajonsvc-squareup-copybara
authored andcommitted
Port transactionIsolationLevel to the Vitess database gradle plugin
GitOrigin-RevId: c9df6f520823f4263385f00f05b7cdcc3277ff8d
1 parent 639fe1c commit caaae4b

File tree

6 files changed

+18
-3
lines changed

6 files changed

+18
-3
lines changed

misk-vitess-database-gradle-plugin/api/misk-vitess-database-gradle-plugin.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public abstract class misk/vitess/gradle/StartVitessDatabaseTask : org/gradle/ap
1111
public abstract fun getPort ()Lorg/gradle/api/provider/Property;
1212
public abstract fun getSchemaDir ()Lorg/gradle/api/provider/Property;
1313
public abstract fun getSqlMode ()Lorg/gradle/api/provider/Property;
14+
public abstract fun getTransactionIsolationLevel ()Lorg/gradle/api/provider/Property;
1415
public abstract fun getTransactionTimeoutSeconds ()Lorg/gradle/api/provider/Property;
1516
public abstract fun getVitessImage ()Lorg/gradle/api/provider/Property;
1617
public abstract fun getVitessVersion ()Lorg/gradle/api/provider/Property;

misk-vitess-database-gradle-plugin/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ gradlePlugin {
1717
}
1818

1919
dependencies {
20-
implementation(testFixtures(project(":misk-vitess")))
20+
api(testFixtures(project(":misk-vitess")))
21+
2122
testImplementation(gradleTestKit())
2223
testImplementation(libs.assertj)
2324
testImplementation(libs.junitApi)

misk-vitess-database-gradle-plugin/src/main/kotlin/misk/vitess/gradle/StartVitessDatabaseTask.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package misk.vitess.gradle
22

3+
import misk.vitess.testing.TransactionIsolationLevel
34
import misk.vitess.testing.VitessTestDb
45
import org.gradle.api.DefaultTask
56
import org.gradle.api.provider.Property
@@ -44,6 +45,9 @@ abstract class StartVitessDatabaseTask: DefaultTask() {
4445
@get:Input
4546
abstract val sqlMode: Property<String>
4647

48+
@get:Input
49+
abstract val transactionIsolationLevel: Property<TransactionIsolationLevel>
50+
4751
@get:Input
4852
abstract val transactionTimeoutSeconds: Property<Duration>
4953

@@ -67,6 +71,7 @@ abstract class StartVitessDatabaseTask: DefaultTask() {
6771
port = port.get(),
6872
schemaDir = schemaDir.get(),
6973
sqlMode = sqlMode.get(),
74+
transactionIsolationLevel = transactionIsolationLevel.get(),
7075
transactionTimeoutSeconds = transactionTimeoutSeconds.get(),
7176
vitessImage = vitessImage.get(),
7277
vitessVersion = vitessVersion.get()

misk-vitess-database-gradle-plugin/src/main/kotlin/misk/vitess/gradle/VitessDatabasePlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class VitessDatabasePlugin: Plugin<Project> {
1818
it.port.convention(DefaultSettings.PORT)
1919
it.schemaDir.convention("filesystem:${project.layout.projectDirectory.dir("src/main/resources/vitess/schema").asFile.absolutePath}")
2020
it.sqlMode.convention(DefaultSettings.SQL_MODE)
21+
it.transactionIsolationLevel.convention(DefaultSettings.TRANSACTION_ISOLATION_LEVEL)
2122
it.transactionTimeoutSeconds.convention(DefaultSettings.TRANSACTION_TIMEOUT_SECONDS)
2223
it.vitessImage.convention(DefaultSettings.VITESS_IMAGE)
2324
it.vitessVersion.convention(DefaultSettings.VITESS_VERSION)

misk-vitess-database-gradle-plugin/src/test/kotlin/misk/vitess/gradle/VitessDatabasePluginTest.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,18 @@ class VitessDatabasePluginTest {
2525

2626
assertThat(result.task(":startVitessDatabase")!!.outcome).isEqualTo(TaskOutcome.SUCCESS)
2727

28-
val resultSet: ResultSet = executeQuery("SHOW KEYSPACES;")
28+
val keyspaceResults: ResultSet = executeQuery("SHOW KEYSPACES;")
2929
var rowCount = 0
30-
while (resultSet.next()) {
30+
while (keyspaceResults.next()) {
3131
rowCount++
3232
}
3333

3434
assertEquals(2, rowCount)
35+
36+
val txnIsoLevelResults = executeQuery("SELECT @@global.transaction_ISOLATION;")
37+
txnIsoLevelResults.next()
38+
val actualTransactionIsolationLevel = txnIsoLevelResults.getString(1)
39+
assertEquals("READ-COMMITTED", actualTransactionIsolationLevel)
3540
}
3641

3742
private fun executeQuery(query: String): ResultSet {

misk-vitess-database-gradle-plugin/src/test/resources/vitess-database-plugin-test/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import misk.vitess.gradle.StartVitessDatabaseTask
2+
import misk.vitess.testing.TransactionIsolationLevel
23

34
plugins {
45
id("com.squareup.misk.vitess.vitess-database")
@@ -9,4 +10,5 @@ val startVitessDatabase = tasks.named("startVitessDatabase", StartVitessDatabase
910
lintSchema.set(true)
1011
port.set(31503)
1112
schemaDir.set("filesystem:${layout.projectDirectory.dir("src/main/resources/vitess/schema")}")
13+
transactionIsolationLevel.set(TransactionIsolationLevel.READ_COMMITTED)
1214
}

0 commit comments

Comments
 (0)