diff --git a/README.md b/README.md index 62e0b317c72..30f8b87ecf9 100644 --- a/README.md +++ b/README.md @@ -56,13 +56,13 @@ implementation 'com.google.cloud:google-cloud-spanner' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-spanner:6.26.0' +implementation 'com.google.cloud:google-cloud-spanner:6.27.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.26.0" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.27.0" ``` ## Authentication diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java index a2b011eac6f..818039bc788 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java @@ -21,6 +21,8 @@ import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.TimestampBound; import com.google.cloud.spanner.TimestampBound.Mode; +import com.google.cloud.spanner.connection.PgTransactionMode.AccessMode; +import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.protobuf.Duration; @@ -28,6 +30,7 @@ import com.google.spanner.v1.RequestOptions.Priority; import java.util.EnumSet; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; @@ -85,6 +88,53 @@ public Boolean convert(String value) { } } + /** Converter from string to {@link Boolean} */ + static class PgBooleanConverter implements ClientSideStatementValueConverter { + + public PgBooleanConverter(String allowedValues) {} + + @Override + public Class getParameterClass() { + return Boolean.class; + } + + @Override + public Boolean convert(String value) { + if (value == null) { + return null; + } + if (value.length() > 1 + && ((value.startsWith("'") && value.endsWith("'")) + || (value.startsWith("\"") && value.endsWith("\"")))) { + value = value.substring(1, value.length() - 1); + } + if ("true".equalsIgnoreCase(value) + || "tru".equalsIgnoreCase(value) + || "tr".equalsIgnoreCase(value) + || "t".equalsIgnoreCase(value) + || "on".equalsIgnoreCase(value) + || "1".equalsIgnoreCase(value) + || "yes".equalsIgnoreCase(value) + || "ye".equalsIgnoreCase(value) + || "y".equalsIgnoreCase(value)) { + return Boolean.TRUE; + } + if ("false".equalsIgnoreCase(value) + || "fals".equalsIgnoreCase(value) + || "fal".equalsIgnoreCase(value) + || "fa".equalsIgnoreCase(value) + || "f".equalsIgnoreCase(value) + || "off".equalsIgnoreCase(value) + || "of".equalsIgnoreCase(value) + || "0".equalsIgnoreCase(value) + || "no".equalsIgnoreCase(value) + || "n".equalsIgnoreCase(value)) { + return Boolean.FALSE; + } + return null; + } + } + /** Converter from string to {@link Duration}. */ static class DurationConverter implements ClientSideStatementValueConverter { private final Pattern allowedValues; @@ -286,16 +336,39 @@ public TransactionMode convert(String value) { } } + static class PgTransactionIsolationConverter + implements ClientSideStatementValueConverter { + private final CaseInsensitiveEnumMap values = + new CaseInsensitiveEnumMap<>(IsolationLevel.class, IsolationLevel::getShortStatementString); + + public PgTransactionIsolationConverter(String allowedValues) {} + + @Override + public Class getParameterClass() { + return IsolationLevel.class; + } + + @Override + public IsolationLevel convert(String value) { + // Isolation level may contain multiple spaces. + String valueWithSingleSpaces = value.replaceAll("\\s+", " "); + if (valueWithSingleSpaces.length() > 1 + && ((valueWithSingleSpaces.startsWith("'") && valueWithSingleSpaces.endsWith("'")) + || (valueWithSingleSpaces.startsWith("\"") + && valueWithSingleSpaces.endsWith("\"")))) { + valueWithSingleSpaces = + valueWithSingleSpaces.substring(1, valueWithSingleSpaces.length() - 1); + } + return values.get(valueWithSingleSpaces); + } + } + /** * Converter for converting string values to {@link PgTransactionMode} values. Includes no-op * handling of setting the isolation level of the transaction to default or serializable. */ static class PgTransactionModeConverter implements ClientSideStatementValueConverter { - private final CaseInsensitiveEnumMap values = - new CaseInsensitiveEnumMap<>( - PgTransactionMode.class, PgTransactionMode::getStatementString); - PgTransactionModeConverter() {} public PgTransactionModeConverter(String allowedValues) {} @@ -307,9 +380,49 @@ public Class getParameterClass() { @Override public PgTransactionMode convert(String value) { + PgTransactionMode mode = new PgTransactionMode(); // Transaction mode may contain multiple spaces. - String valueWithSingleSpaces = value.replaceAll("\\s+", " "); - return values.get(valueWithSingleSpaces); + String valueWithSingleSpaces = + value.replaceAll("\\s+", " ").toLowerCase(Locale.ENGLISH).trim(); + int currentIndex = 0; + while (currentIndex < valueWithSingleSpaces.length()) { + // This will use the last access mode and isolation level that is encountered in the string. + // This is consistent with the behavior of PostgreSQL, which also allows multiple modes to + // be specified in one string, and will use the last one that is encountered. + if (valueWithSingleSpaces.substring(currentIndex).startsWith("read only")) { + currentIndex += "read only".length(); + mode.setAccessMode(AccessMode.READ_ONLY_TRANSACTION); + } else if (valueWithSingleSpaces.substring(currentIndex).startsWith("read write")) { + currentIndex += "read write".length(); + mode.setAccessMode(AccessMode.READ_WRITE_TRANSACTION); + } else if (valueWithSingleSpaces + .substring(currentIndex) + .startsWith("isolation level serializable")) { + currentIndex += "isolation level serializable".length(); + mode.setIsolationLevel(IsolationLevel.ISOLATION_LEVEL_SERIALIZABLE); + } else if (valueWithSingleSpaces + .substring(currentIndex) + .startsWith("isolation level default")) { + currentIndex += "isolation level default".length(); + mode.setIsolationLevel(IsolationLevel.ISOLATION_LEVEL_DEFAULT); + } else { + return null; + } + // Skip space and/or comma that may separate multiple transaction modes. + if (currentIndex < valueWithSingleSpaces.length() + && valueWithSingleSpaces.charAt(currentIndex) == ' ') { + currentIndex++; + } + if (currentIndex < valueWithSingleSpaces.length() + && valueWithSingleSpaces.charAt(currentIndex) == ',') { + currentIndex++; + } + if (currentIndex < valueWithSingleSpaces.length() + && valueWithSingleSpaces.charAt(currentIndex) == ' ') { + currentIndex++; + } + } + return mode; } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java index 25809823f03..c076ea702ab 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.TimestampBound; +import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import com.google.protobuf.Duration; import com.google.spanner.v1.RequestOptions.Priority; @@ -98,6 +99,8 @@ interface ConnectionStatementExecutor { StatementResult statementSetPgSessionCharacteristicsTransactionMode( PgTransactionMode transactionMode); + StatementResult statementSetPgDefaultTransactionIsolation(IsolationLevel isolationLevel); + StatementResult statementStartBatchDdl(); StatementResult statementStartBatchDml(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java index 18aee5e98f6..2c1084ec4c0 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java @@ -24,6 +24,7 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.RUN_BATCH; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT_DML_MODE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DEFAULT_TRANSACTION_ISOLATION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_OPTIMIZER_STATISTICS_PACKAGE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_OPTIMIZER_VERSION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_READONLY; @@ -70,6 +71,7 @@ import com.google.cloud.spanner.TimestampBound; import com.google.cloud.spanner.Type; import com.google.cloud.spanner.Type.StructField; +import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import com.google.cloud.spanner.connection.ReadOnlyStalenessUtil.DurationValueGetter; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; @@ -372,17 +374,17 @@ public StatementResult statementSetTransactionMode(TransactionMode mode) { @Override public StatementResult statementSetPgTransactionMode(PgTransactionMode transactionMode) { - switch (transactionMode) { - case READ_ONLY_TRANSACTION: - getConnection().setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); - break; - case READ_WRITE_TRANSACTION: - getConnection().setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); - break; - case ISOLATION_LEVEL_DEFAULT: - case ISOLATION_LEVEL_SERIALIZABLE: - default: - // no-op + if (transactionMode.getAccessMode() != null) { + switch (transactionMode.getAccessMode()) { + case READ_ONLY_TRANSACTION: + getConnection().setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); + break; + case READ_WRITE_TRANSACTION: + getConnection().setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); + break; + default: + // no-op + } } return noResult(SET_TRANSACTION_MODE); } @@ -390,21 +392,27 @@ public StatementResult statementSetPgTransactionMode(PgTransactionMode transacti @Override public StatementResult statementSetPgSessionCharacteristicsTransactionMode( PgTransactionMode transactionMode) { - switch (transactionMode) { - case READ_ONLY_TRANSACTION: - getConnection().setReadOnly(true); - break; - case READ_WRITE_TRANSACTION: - getConnection().setReadOnly(false); - break; - case ISOLATION_LEVEL_DEFAULT: - case ISOLATION_LEVEL_SERIALIZABLE: - default: - // no-op + if (transactionMode.getAccessMode() != null) { + switch (transactionMode.getAccessMode()) { + case READ_ONLY_TRANSACTION: + getConnection().setReadOnly(true); + break; + case READ_WRITE_TRANSACTION: + getConnection().setReadOnly(false); + break; + default: + // no-op + } } return noResult(SET_TRANSACTION_MODE); } + @Override + public StatementResult statementSetPgDefaultTransactionIsolation(IsolationLevel isolationLevel) { + // no-op + return noResult(SET_DEFAULT_TRANSACTION_ISOLATION); + } + @Override public StatementResult statementStartBatchDdl() { getConnection().startBatchDdl(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PgTransactionMode.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PgTransactionMode.java index 363914ccdfb..8881d2191df 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PgTransactionMode.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PgTransactionMode.java @@ -16,36 +16,111 @@ package com.google.cloud.spanner.connection; +import java.util.Objects; + /** * Enum for the possible PostgreSQL transaction modes. We need a separate class for PG transaction * modes to handle setting the isolation level. */ -enum PgTransactionMode { - READ_ONLY_TRANSACTION("READ ONLY"), - READ_WRITE_TRANSACTION("READ WRITE"), - ISOLATION_LEVEL_DEFAULT("ISOLATION LEVEL DEFAULT"), - ISOLATION_LEVEL_SERIALIZABLE("ISOLATION LEVEL SERIALIZABLE"); +class PgTransactionMode { + enum AccessMode { + READ_ONLY_TRANSACTION("READ ONLY"), + READ_WRITE_TRANSACTION("READ WRITE"); + + private final String statementString; + + AccessMode(String statement) { + this.statementString = statement; + } + + @Override + public String toString() { + return statementString; + } + } + + enum IsolationLevel { + ISOLATION_LEVEL_DEFAULT("ISOLATION LEVEL DEFAULT", "DEFAULT"), + ISOLATION_LEVEL_SERIALIZABLE("ISOLATION LEVEL SERIALIZABLE", "SERIALIZABLE"); - private final String statementString; + private final String statementString; + private final String shortStatementString; - PgTransactionMode(String statement) { - this.statementString = statement; + IsolationLevel(String statement, String shortStatementString) { + this.statementString = statement; + this.shortStatementString = shortStatementString; + } + + /** + * Use this method to get the correct format for use in a SQL statement. The SQL statement for + * setting the mode to read-only should for example be without the underscore: + * SET TRANSACTION READ ONLY + * + * @return a string representation of this {@link TransactionMode} that can be used in a SQL + * statement to set the transaction mode. + */ + public String getStatementString() { + return statementString; + } + + public String getShortStatementString() { + return shortStatementString; + } + + @Override + public String toString() { + return statementString; + } } - /** - * Use this method to get the correct format for use in a SQL statement. The SQL statement for - * setting the mode to read-only should for example be without the underscore: - * SET TRANSACTION READ ONLY - * - * @return a string representation of this {@link TransactionMode} that can be used in a SQL - * statement to set the transaction mode. - */ - public String getStatementString() { - return statementString; + private AccessMode accessMode; + private IsolationLevel isolationLevel; + + PgTransactionMode() {} + + AccessMode getAccessMode() { + return this.accessMode; + } + + void setAccessMode(AccessMode accessMode) { + this.accessMode = accessMode; + } + + IsolationLevel getIsolationLevel() { + return this.isolationLevel; + } + + void setIsolationLevel(IsolationLevel isolationLevel) { + this.isolationLevel = isolationLevel; + } + + @Override + public int hashCode() { + return Objects.hash(this.accessMode, this.isolationLevel); + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof PgTransactionMode)) { + return false; + } + PgTransactionMode other = (PgTransactionMode) o; + return Objects.equals(this.accessMode, other.accessMode) + && Objects.equals(this.isolationLevel, other.isolationLevel); } @Override public String toString() { - return statementString; + StringBuilder result = new StringBuilder(); + if (accessMode != null) { + result.append(accessMode.statementString); + } + if (isolationLevel != null) { + if (accessMode != null) { + result.append(' '); + } + result.append(isolationLevel.statementString); + } + return result.toString(); } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java index dea97b2b1f6..a489f3f1993 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java @@ -77,6 +77,7 @@ enum ClientSideStatementType { COMMIT, ROLLBACK, SET_TRANSACTION_MODE, + SET_DEFAULT_TRANSACTION_ISOLATION, START_BATCH_DDL, START_BATCH_DML, RUN_BATCH, diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json index 9e9ce15998f..cd1e7362ea5 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json @@ -159,18 +159,21 @@ "exampleStatements": [] }, { - "name": "{START | BEGIN} [TRANSACTION | WORK] [{ (READ ONLY|READ WRITE) | (ISOLATION LEVEL (DEFAULT|SERIALIZABLE)) }]", + "name": "{START | BEGIN} [TRANSACTION | WORK] [{ (READ ONLY|READ WRITE) [[,] (ISOLATION LEVEL (DEFAULT|SERIALIZABLE))] }]", "executorName": "ClientSideStatementPgBeginExecutor", "resultType": "NO_RESULT", "statementType": "BEGIN", - "regex": "(?is)\\A\\s*(?:begin|start)(?:\\s+transaction|\\s+work)?(\\s+read\\s+only|\\s+read\\s+write|\\s+isolation\\s+level\\s+default|\\s+isolation\\s+level\\s+serializable)?\\s*\\z", + "regex": "(?is)\\A\\s*(?:begin|start)(?:\\s+transaction|\\s+work)?((?:(?:\\s+|\\s*,\\s*)read\\s+only|(?:\\s+|\\s*,\\s*)read\\s+write|(?:\\s+|\\s*,\\s*)isolation\\s+level\\s+default|(?:\\s+|\\s*,\\s*)isolation\\s+level\\s+serializable)*)?\\s*\\z", "method": "statementBeginPgTransaction", "exampleStatements": [ "begin", "start", "begin transaction", "start transaction", "begin work", "start work", "begin read only", "start read only", "begin transaction read only", "start transaction read only", "begin work read only", "start work read only", "begin read write", "start read write", "begin transaction read write", "start transaction read write", "begin work read write", "start work read write", "begin isolation level default", "start isolation level default", "begin transaction isolation level default", "start transaction isolation level default", "begin work isolation level default", "start work isolation level default", - "begin isolation level serializable", "start isolation level serializable", "begin transaction isolation level serializable", "start transaction isolation level serializable", "begin work isolation level serializable", "start work isolation level serializable" + "begin isolation level serializable", "start isolation level serializable", "begin transaction isolation level serializable", "start transaction isolation level serializable", "begin work isolation level serializable", "start work isolation level serializable", + "begin isolation level default read write", "start isolation level default read only", "begin transaction isolation level default read only", "start transaction isolation level default read write", "begin work isolation level default read write", "start work isolation level default read only", + "begin isolation level serializable read write", "start isolation level serializable read write", "begin transaction isolation level serializable read only", "start transaction isolation level serializable read write", "begin work isolation level serializable read write", "start work isolation level serializable read only", + "begin isolation level serializable, read write", "start isolation level serializable, read write", "begin transaction isolation level serializable, read only", "start transaction isolation level serializable, read write", "begin work isolation level serializable, read write", "start work isolation level serializable, read only" ] }, { @@ -326,7 +329,7 @@ } }, { - "name": "SET TRANSACTION { (READ ONLY|READ WRITE) | (ISOLATION LEVEL (DEFAULT|SERIALIZABLE)) }", + "name": "SET TRANSACTION { (READ ONLY|READ WRITE) [[,] (ISOLATION LEVEL (DEFAULT|SERIALIZABLE))] }", "executorName": "ClientSideStatementSetExecutor", "resultType": "NO_RESULT", "statementType": "SET_TRANSACTION_MODE", @@ -337,12 +340,12 @@ "setStatement": { "propertyName": "TRANSACTION", "separator": "\\s+", - "allowedValues": "(READ\\s+ONLY|READ\\s+WRITE|ISOLATION\\s+LEVEL\\s+DEFAULT|ISOLATION\\s+LEVEL\\s+SERIALIZABLE)", + "allowedValues": "(((?:\\s*|\\s*,\\s*)READ\\s+ONLY|(?:\\s*|\\s*,\\s*)READ\\s+WRITE|(?:\\s*|\\s*,\\s*)ISOLATION\\s+LEVEL\\s+DEFAULT|(?:\\s*|\\s*,\\s*)ISOLATION\\s+LEVEL\\s+SERIALIZABLE)+)", "converterName": "ClientSideStatementValueConverters$PgTransactionModeConverter" } }, { - "name": "SET SESSION CHARACTERISTICS AS TRANSACTION { (READ ONLY|READ WRITE) | (ISOLATION LEVEL (DEFAULT|SERIALIZABLE)) }", + "name": "SET SESSION CHARACTERISTICS AS TRANSACTION { (READ ONLY|READ WRITE) [[,] (ISOLATION LEVEL (DEFAULT|SERIALIZABLE))] }", "executorName": "ClientSideStatementSetExecutor", "resultType": "NO_RESULT", "statementType": "SET_READONLY", @@ -352,10 +355,61 @@ "setStatement": { "propertyName": "SESSION\\s+CHARACTERISTICS\\s+AS\\s+TRANSACTION", "separator": "\\s+", - "allowedValues": "(READ\\s+ONLY|READ\\s+WRITE|ISOLATION\\s+LEVEL\\s+DEFAULT|ISOLATION\\s+LEVEL\\s+SERIALIZABLE)", + "allowedValues": "(((?:\\s*|\\s*,\\s*)READ\\s+ONLY|(?:\\s*|\\s*,\\s*)READ\\s+WRITE|(?:\\s*|\\s*,\\s*)ISOLATION\\s+LEVEL\\s+DEFAULT|(?:\\s*|\\s*,\\s*)ISOLATION\\s+LEVEL\\s+SERIALIZABLE)+)", "converterName": "ClientSideStatementValueConverters$PgTransactionModeConverter" } }, + { + "name": "SET DEFAULT_TRANSACTION_ISOLATION =|TO 'SERIALIZABLE'|SERIALIZABLE", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_READONLY", + "regex": "(?is)\\A\\s*set\\s+default_transaction_isolation(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetPgDefaultTransactionIsolation", + "exampleStatements": [ + "set default_transaction_isolation=serializable", + "set default_transaction_isolation to serializable", + "set default_transaction_isolation to 'serializable'", + "set default_transaction_isolation = 'serializable'", + "set default_transaction_isolation = \"SERIALIZABLE\"" + ], + "setStatement": { + "propertyName": "default_transaction_isolation", + "separator": "(?:=|\\s+TO\\s+)", + "allowedValues": "(SERIALIZABLE|'SERIALIZABLE'|\"SERIALIZABLE\")", + "converterName": "ClientSideStatementValueConverters$PgTransactionIsolationConverter" + } + }, + { + "name": "SET DEFAULT_TRANSACTION_READ_ONLY =|TO TRUE|FALSE", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_READONLY", + "regex": "(?is)\\A\\s*set\\s+default_transaction_read_only(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetReadOnly", + "exampleStatements": [ + "set default_transaction_read_only = true", + "set default_transaction_read_only = false", + "set default_transaction_read_only = t", + "set default_transaction_read_only = f", + "set default_transaction_read_only to 't'", + "set default_transaction_read_only to \"f\"", + "set default_transaction_read_only = on", + "set default_transaction_read_only = off", + "set default_transaction_read_only = 1", + "set default_transaction_read_only = 0", + "set default_transaction_read_only = yes", + "set default_transaction_read_only = no", + "set default_transaction_read_only = y", + "set default_transaction_read_only = n" + ], + "setStatement": { + "propertyName": "DEFAULT_TRANSACTION_READ_ONLY", + "separator": "(?:=|\\s+TO\\s+)", + "allowedValues": "(.+)", + "converterName": "ClientSideStatementValueConverters$PgBooleanConverter" + } + }, { "name": "SET SPANNER.READ_ONLY_STALENESS =|TO 'STRONG' | 'MIN_READ_TIMESTAMP ' | 'READ_TIMESTAMP ' | 'MAX_STALENESS s|ms|us|ns' | 'EXACT_STALENESS (s|ms|us|ns)'", "executorName": "ClientSideStatementSetExecutor", diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java index 3f36043f164..af65ffde847 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java @@ -122,4 +122,30 @@ public void testBeginReadWrite() { index++; } } + + @Test + public void testBeginReadOnlyWithIsolationLevel() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + + int index = 1; + for (String sql : + ImmutableList.of( + "begin read only isolation level serializable", + "begin read only isolation level default", + "begin isolation level serializable read only", + "begin isolation level default read only", + "begin read write isolation level default read only", + "begin read write, isolation level default, read only", + "begin read write , \nisolation level default\n\t,read only")) { + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + + verify(connection, times(index)).beginTransaction(); + verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); + verify(connection, never()).setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); + index++; + } + } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorTest.java index acb2e76f7ce..bf7822e3285 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorTest.java @@ -29,6 +29,8 @@ import com.google.cloud.Timestamp; import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.TimestampBound; +import com.google.cloud.spanner.connection.PgTransactionMode.AccessMode; +import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import com.google.protobuf.Duration; import java.util.concurrent.TimeUnit; import org.junit.Before; @@ -224,16 +226,29 @@ public void testStatementSetTransactionMode() { @Test public void testStatementSetPgTransactionMode() { - subject.statementSetPgTransactionMode(PgTransactionMode.READ_ONLY_TRANSACTION); + PgTransactionMode readOnlyMode = new PgTransactionMode(); + readOnlyMode.setAccessMode(AccessMode.READ_ONLY_TRANSACTION); + subject.statementSetPgTransactionMode(readOnlyMode); verify(connection).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); - subject.statementSetPgTransactionMode(PgTransactionMode.READ_WRITE_TRANSACTION); + + PgTransactionMode readWriteMode = new PgTransactionMode(); + readWriteMode.setAccessMode(AccessMode.READ_WRITE_TRANSACTION); + subject.statementSetPgTransactionMode(readWriteMode); verify(connection).setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); } @Test public void testStatementSetPgTransactionModeNoOp() { - subject.statementSetPgTransactionMode(PgTransactionMode.ISOLATION_LEVEL_DEFAULT); - subject.statementSetPgTransactionMode(PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE); + PgTransactionMode noMode = new PgTransactionMode(); + PgTransactionMode defaultMode = new PgTransactionMode(); + defaultMode.setIsolationLevel(IsolationLevel.ISOLATION_LEVEL_DEFAULT); + PgTransactionMode serializableMode = new PgTransactionMode(); + serializableMode.setIsolationLevel(IsolationLevel.ISOLATION_LEVEL_SERIALIZABLE); + + subject.statementSetPgTransactionMode(noMode); + subject.statementSetPgTransactionMode(defaultMode); + subject.statementSetPgTransactionMode(serializableMode); + verify(connection, never()).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); verify(connection, never()).setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgTransactionModeConverterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgTransactionModeConverterTest.java index c8a2a97e709..8fbe0d85867 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgTransactionModeConverterTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgTransactionModeConverterTest.java @@ -16,6 +16,10 @@ package com.google.cloud.spanner.connection; +import static com.google.cloud.spanner.connection.PgTransactionMode.AccessMode.READ_ONLY_TRANSACTION; +import static com.google.cloud.spanner.connection.PgTransactionMode.AccessMode.READ_WRITE_TRANSACTION; +import static com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel.ISOLATION_LEVEL_DEFAULT; +import static com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel.ISOLATION_LEVEL_SERIALIZABLE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -23,12 +27,30 @@ import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.PgTransactionModeConverter; +import com.google.cloud.spanner.connection.PgTransactionMode.AccessMode; +import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class PgTransactionModeConverterTest { + + static PgTransactionMode create(AccessMode accessMode) { + return create(accessMode, null); + } + + static PgTransactionMode create(IsolationLevel isolationLevel) { + return create(null, isolationLevel); + } + + static PgTransactionMode create(AccessMode accessMode, IsolationLevel isolationLevel) { + PgTransactionMode mode = new PgTransactionMode(); + mode.setAccessMode(accessMode); + mode.setIsolationLevel(isolationLevel); + return mode; + } + @Test public void testConvert() throws CompileException { String allowedValues = @@ -38,55 +60,43 @@ public void testConvert() throws CompileException { assertNotNull(allowedValues); PgTransactionModeConverter converter = new PgTransactionModeConverter(allowedValues); - assertEquals(PgTransactionMode.READ_WRITE_TRANSACTION, converter.convert("read write")); - assertEquals(PgTransactionMode.READ_WRITE_TRANSACTION, converter.convert("READ WRITE")); - assertEquals(PgTransactionMode.READ_WRITE_TRANSACTION, converter.convert("Read Write")); - assertEquals(PgTransactionMode.READ_WRITE_TRANSACTION, converter.convert("read write")); - assertEquals(PgTransactionMode.READ_WRITE_TRANSACTION, converter.convert("READ\nWRITE")); - assertEquals(PgTransactionMode.READ_WRITE_TRANSACTION, converter.convert("Read\tWrite")); + assertEquals(create(READ_WRITE_TRANSACTION), converter.convert("read write")); + assertEquals(create(READ_WRITE_TRANSACTION), converter.convert("READ WRITE")); + assertEquals(create(READ_WRITE_TRANSACTION), converter.convert("Read Write")); + assertEquals(create(READ_WRITE_TRANSACTION), converter.convert("read write")); + assertEquals(create(READ_WRITE_TRANSACTION), converter.convert("READ\nWRITE")); + assertEquals(create(READ_WRITE_TRANSACTION), converter.convert("Read\tWrite")); - assertEquals(PgTransactionMode.READ_ONLY_TRANSACTION, converter.convert("read only")); - assertEquals(PgTransactionMode.READ_ONLY_TRANSACTION, converter.convert("READ ONLY")); - assertEquals(PgTransactionMode.READ_ONLY_TRANSACTION, converter.convert("Read Only")); - assertEquals(PgTransactionMode.READ_ONLY_TRANSACTION, converter.convert("read only")); - assertEquals(PgTransactionMode.READ_ONLY_TRANSACTION, converter.convert("READ\nONLY")); - assertEquals(PgTransactionMode.READ_ONLY_TRANSACTION, converter.convert("Read\tOnly")); + assertEquals(create(READ_ONLY_TRANSACTION), converter.convert("read only")); + assertEquals(create(READ_ONLY_TRANSACTION), converter.convert("READ ONLY")); + assertEquals(create(READ_ONLY_TRANSACTION), converter.convert("Read Only")); + assertEquals(create(READ_ONLY_TRANSACTION), converter.convert("read only")); + assertEquals(create(READ_ONLY_TRANSACTION), converter.convert("READ\nONLY")); + assertEquals(create(READ_ONLY_TRANSACTION), converter.convert("Read\tOnly")); - assertEquals( - PgTransactionMode.ISOLATION_LEVEL_DEFAULT, converter.convert("isolation level default")); - assertEquals( - PgTransactionMode.ISOLATION_LEVEL_DEFAULT, converter.convert("ISOLATION LEVEL DEFAULT")); - assertEquals( - PgTransactionMode.ISOLATION_LEVEL_DEFAULT, converter.convert("Isolation Level Default")); - assertEquals( - PgTransactionMode.ISOLATION_LEVEL_DEFAULT, - converter.convert("isolation level default")); - assertEquals( - PgTransactionMode.ISOLATION_LEVEL_DEFAULT, converter.convert("ISOLATION\nLEVEL\nDEFAULT")); - assertEquals( - PgTransactionMode.ISOLATION_LEVEL_DEFAULT, converter.convert("Isolation\tLevel\tDefault")); + assertEquals(create(ISOLATION_LEVEL_DEFAULT), converter.convert("isolation level default")); + assertEquals(create(ISOLATION_LEVEL_DEFAULT), converter.convert("ISOLATION LEVEL DEFAULT")); + assertEquals(create(ISOLATION_LEVEL_DEFAULT), converter.convert("Isolation Level Default")); + assertEquals(create(ISOLATION_LEVEL_DEFAULT), converter.convert("isolation level default")); + assertEquals(create(ISOLATION_LEVEL_DEFAULT), converter.convert("ISOLATION\nLEVEL\nDEFAULT")); + assertEquals(create(ISOLATION_LEVEL_DEFAULT), converter.convert("Isolation\tLevel\tDefault")); assertEquals( - PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE, - converter.convert("isolation level serializable")); + create(ISOLATION_LEVEL_SERIALIZABLE), converter.convert("isolation level serializable")); assertEquals( - PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE, - converter.convert("ISOLATION LEVEL SERIALIZABLE")); + create(ISOLATION_LEVEL_SERIALIZABLE), converter.convert("ISOLATION LEVEL SERIALIZABLE")); assertEquals( - PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE, - converter.convert("Isolation Level Serializable")); + create(ISOLATION_LEVEL_SERIALIZABLE), converter.convert("Isolation Level Serializable")); assertEquals( - PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE, + create(ISOLATION_LEVEL_SERIALIZABLE), converter.convert("isolation level serializable")); assertEquals( - PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE, - converter.convert("ISOLATION\nLEVEL\nSERIALIZABLE")); + create(ISOLATION_LEVEL_SERIALIZABLE), converter.convert("ISOLATION\nLEVEL\nSERIALIZABLE")); assertEquals( - PgTransactionMode.ISOLATION_LEVEL_SERIALIZABLE, - converter.convert("Isolation\tLevel\tSerializable")); + create(ISOLATION_LEVEL_SERIALIZABLE), converter.convert("Isolation\tLevel\tSerializable")); - assertNull(converter.convert("")); - assertNull(converter.convert(" ")); + assertEquals(new PgTransactionMode(), converter.convert("")); + assertEquals(new PgTransactionMode(), converter.convert(" ")); assertNull(converter.convert("random string")); assertNull(converter.convert("read_write")); assertNull(converter.convert("READ_WRITE")); @@ -99,5 +109,55 @@ public void testConvert() throws CompileException { assertNull(converter.convert("isolation level read committed")); assertNull(converter.convert("isolation level ")); assertNull(converter.convert("isolation level_default")); + + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read write isolation level default")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert(" read write isolation level default ")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read write, isolation level default")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read write,isolation level default")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read write , isolation level default")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read write\nisolation level default")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("isolation level default read write ")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("isolation level default, read write")); + assertEquals( + create(READ_WRITE_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("isolation level default\nread write")); + assertEquals( + create(READ_ONLY_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read only isolation level default")); + assertEquals( + create(READ_ONLY_TRANSACTION, ISOLATION_LEVEL_SERIALIZABLE), + converter.convert("read only isolation level serializable")); + + assertNull(converter.convert("isolation level default, read-only")); + assertNull(converter.convert("isolation level default, read")); + + // This is consistent with the behavior of PostgreSQL. Specifying multiple access modes or + // isolation levels in the same string will return the last mode that is specified. + assertEquals( + create(READ_ONLY_TRANSACTION, ISOLATION_LEVEL_DEFAULT), + converter.convert("read write, isolation level default, read only")); + assertEquals( + create(READ_ONLY_TRANSACTION, ISOLATION_LEVEL_SERIALIZABLE), + converter.convert("isolation level default, read only, isolation level serializable")); + assertEquals( + create(READ_ONLY_TRANSACTION, ISOLATION_LEVEL_SERIALIZABLE), + converter.convert( + "read write, isolation level default, read only isolation level serializable")); } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java index 019aa745df5..5c10afaefc7 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java @@ -20,6 +20,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import com.google.cloud.spanner.Dialect; @@ -88,4 +89,139 @@ public void testSetIsolationLevelReadWrite() { verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); } + + @Test + public void testSetIsolationLevelSerializableReadWrite() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + + String sql = + "set session characteristics as transaction isolation level serializable read write"; + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + + verify(connection).setReadOnly(false); + verify(connection, never()).setReadOnly(true); + } + + @Test + public void testSetIsolationLevelSerializableReadOnly() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + + String sql = + "set session characteristics as transaction isolation level serializable read only"; + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + + verify(connection).setReadOnly(true); + } + + @Test + public void testSetMultipleTransactionModes() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + + String sql = + "set session characteristics as transaction isolation level default, read only, isolation level serializable, read write"; + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + + verify(connection).setReadOnly(false); + verify(connection, never()).setReadOnly(true); + } + + @Test + public void testDefaultTransactionIsolation() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + + for (String sql : + new String[] { + "set default_transaction_isolation = serializable", + "set default_transaction_isolation = 'serializable'", + "set default_transaction_isolation to serializable", + "set default_transaction_isolation to 'serializable'", + "set default_transaction_isolation to 'SERIALIZABLE'", + "set default_transaction_isolation to \"SERIALIZABLE\"", + }) { + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + } + + // Setting the isolation level is a no-op. + verify(connection, never()).setReadOnly(anyBoolean()); + } + + @Test + public void testDefaultTransactionReadOnlyTrue() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + String[] statements = + new String[] { + "set default_transaction_read_only = true", + "set default_transaction_read_only = 'true'", + "set default_transaction_read_only = \"true\"", + "set default_transaction_read_only to true", + "set default_transaction_read_only to 'true'", + "set default_transaction_read_only to \"true\"", + "set default_transaction_read_only = t", + "set default_transaction_read_only = 'tr'", + "set default_transaction_read_only = \"tru\"", + "set default_transaction_read_only to tru", + "set default_transaction_read_only to 'tr'", + "set default_transaction_read_only to \"t\"", + "set default_transaction_read_only = on", + "set default_transaction_read_only = 1", + "set default_transaction_read_only = yes", + "set default_transaction_read_only = ye", + "set default_transaction_read_only = y", + }; + + for (String sql : statements) { + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + } + + verify(connection, times(statements.length)).setReadOnly(true); + } + + @Test + public void testDefaultTransactionReadOnlyFalse() { + ConnectionImpl connection = mock(ConnectionImpl.class); + ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); + String[] statements = + new String[] { + "set default_transaction_read_only = false", + "set default_transaction_read_only = 'false'", + "set default_transaction_read_only = \"false\"", + "set default_transaction_read_only to false", + "set default_transaction_read_only to 'false'", + "set default_transaction_read_only to \"false\"", + "set default_transaction_read_only = f", + "set default_transaction_read_only = 'fa'", + "set default_transaction_read_only = \"fal\"", + "set default_transaction_read_only to fal", + "set default_transaction_read_only to 'fa'", + "set default_transaction_read_only to \"f\"", + "set default_transaction_read_only = off", + "set default_transaction_read_only = of", + "set default_transaction_read_only = 0", + "set default_transaction_read_only = no", + "set default_transaction_read_only = n", + }; + + for (String sql : statements) { + ParsedStatement statement = parser.parse(Statement.of(sql)); + assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); + statement.getClientSideStatement().execute(executor, sql); + } + + verify(connection, times(statements.length)).setReadOnly(false); + } } diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql index e0908afcc5c..77ecb4a3876 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql @@ -1,23 +1,23 @@ NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -26,123 +26,125 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -151,58 +153,60 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:00.730000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:00.730000000Z' +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:46.345000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:46.345000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:00.730000000Z'; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:46.345000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:46.345000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -217,34 +221,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -253,8 +257,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -297,45 +301,46 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -346,28 +351,36 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -376,123 +389,173 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -501,58 +564,78 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:01.057000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:01.057000000Z' +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:46.771000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:46.771000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:01.057000000Z'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:46.771000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:46.771000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -567,34 +650,48 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -603,8 +700,10 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -647,45 +746,62 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -NEW_CONNECTION; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -696,324 +812,207 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; -SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:01.385000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:01.385000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:47.161000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:47.161000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:01.385000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:47.161000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1028,55 +1027,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -1085,11 +1063,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1132,116 +1107,71 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -1250,195 +1180,125 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -1447,85 +1307,60 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:01.738000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:01.738000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:47.460000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:47.460000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:01.738000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:47.460000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:47.460000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1540,55 +1375,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -1597,11 +1411,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1644,69 +1455,46 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1717,208 +1505,217 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.043000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:02.043000000Z' +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:47.788000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:47.788000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.043000000Z'; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:47.788000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:47.788000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1933,34 +1730,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -1969,8 +1766,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2013,282 +1810,230 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.308000000Z'; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.061000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.061000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.308000000Z'; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.061000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:48.061000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2303,41 +2048,27 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -2346,9 +2077,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2391,254 +2120,254 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +COMMIT; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.608000000Z'; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.291000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.291000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.608000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.291000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2654,33 +2383,33 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -2690,7 +2419,7 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2734,66 +2463,76 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +COMMIT; +BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2803,98 +2542,122 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -2904,48 +2667,57 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.880000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:02.880000000Z' +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.528000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.528000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.880000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.528000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2961,26 +2733,33 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -2990,6 +2769,7 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3033,36 +2813,44 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -3074,26 +2862,39 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3101,134 +2902,196 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT UPDATE_COUNT 1 +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -3236,59 +3099,86 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.154000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:03.154000000Z' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.795000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.795000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.154000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.795000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -3302,35 +3192,56 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -3338,9 +3249,12 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3382,84 +3296,117 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3467,182 +3414,196 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -@EXPECT UPDATE_COUNT 1 +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -3650,77 +3611,86 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.457000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:03.457000000Z' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.073000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:49.073000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.457000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.073000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -3734,49 +3704,56 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -3784,11 +3761,12 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3830,305 +3808,282 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.755000000Z'; +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.320000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:49.320000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.755000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.320000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4142,42 +4097,35 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -4185,10 +4133,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4230,255 +4177,283 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.963000000Z'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.529000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.963000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.529000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4492,35 +4467,42 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -4528,9 +4510,10 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4572,378 +4555,255 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.163000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.163000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.777000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.163000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.777000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4957,56 +4817,35 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -5014,12 +4853,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5061,279 +4897,220 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -BEGIN TRANSACTION; SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.403000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.403000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.996000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:49.996000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.403000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.996000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5347,35 +5124,28 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -5383,9 +5153,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5427,267 +5196,243 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; +SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT UPDATE_COUNT 1 +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; -SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.591000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.591000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.167000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.591000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.167000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5702,34 +5447,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -5738,8 +5483,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5782,381 +5527,284 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT UPDATE_COUNT 1 +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; -SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.802000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.802000000Z' +SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.334000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.334000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.802000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.334000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -6171,55 +5819,41 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -6228,11 +5862,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -6275,113 +5907,87 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -6391,166 +5997,150 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6562,10 +6152,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6577,18 +6166,17 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE @@ -6598,84 +6186,77 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.094000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:05.094000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.587000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.587000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.094000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.587000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:50.587000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -6691,54 +6272,47 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -6748,10 +6322,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -6795,67 +6368,61 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -6866,138 +6433,137 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -7009,68 +6575,68 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READONLY=TRUE; +SET READONLY=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.339000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:05.339000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.849000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.849000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.339000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.849000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -7086,33 +6652,33 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -7122,7 +6688,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -7166,206 +6732,193 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7376,76 +6929,76 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.555000000Z'; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.074000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.074000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.555000000Z'; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.074000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.074000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7460,41 +7013,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -7503,9 +7049,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7548,190 +7093,200 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7742,65 +7297,76 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.798000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.318000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.318000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.798000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.318000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.318000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7815,34 +7381,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -7851,8 +7417,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7895,67 +7461,81 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +BEGIN TRANSACTION; SELECT 1 AS TEST; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION -BEGIN TRANSACTION; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -7964,83 +7544,130 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -8051,7 +7678,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -8062,11 +7691,16 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -8075,49 +7709,69 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.040000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.040000000Z' +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.540000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.540000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.040000000Z'; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.540000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.540000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8132,27 +7786,41 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -8161,7 +7829,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8204,36 +7874,54 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -8243,201 +7931,232 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -NEW_CONNECTION; -SET READONLY=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; +SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.222000000Z'; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.746000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.746000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.222000000Z'; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.746000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.746000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8453,33 +8172,33 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -8489,7 +8208,7 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8533,283 +8252,242 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; +SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.418000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.418000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.977000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.977000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.418000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.977000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.977000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8825,40 +8503,26 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -8868,8 +8532,6 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8913,86 +8575,66 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -9002,150 +8644,103 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -9157,9 +8752,7 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -9171,17 +8764,12 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE @@ -9191,77 +8779,57 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.625000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.625000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.155000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:52.155000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.625000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:06.625000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.155000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -9277,47 +8845,33 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -9327,9 +8881,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -9373,61 +8925,43 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -9438,138 +8972,198 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -9580,69 +9174,95 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; +SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.864000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.864000000Z' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.345000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:52.345000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.864000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.345000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -9657,34 +9277,48 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -9693,8 +9327,10 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -9737,272 +9373,303 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'TEST',1 +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.090000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.090000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.580000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.090000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.090000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.580000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -10018,33 +9685,40 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -10054,7 +9728,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -10098,280 +9773,254 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT UPDATE_COUNT 1 +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.439000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.439000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.774000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.439000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.439000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.774000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -10386,34 +10035,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -10422,8 +10071,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10466,81 +10115,83 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -10549,130 +10200,167 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10683,9 +10371,11 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10696,16 +10386,19 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -10714,69 +10407,85 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.678000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.678000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.962000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:52.962000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.678000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.678000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.962000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -10791,41 +10500,55 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -10834,9 +10557,11 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10879,54 +10604,68 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -10936,232 +10675,207 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.914000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.914000000Z' +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.184000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.184000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.914000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.914000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.184000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11176,34 +10890,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -11212,8 +10926,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11256,73 +10970,71 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11331,88 +11043,104 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11423,7 +11151,8 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11434,12 +11163,13 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -11448,51 +11178,58 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.126000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.126000000Z' +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.371000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.371000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.126000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.126000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.371000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11507,27 +11244,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -11536,7 +11280,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11579,38 +11324,44 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -11620,27 +11371,40 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11648,126 +11412,206 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -11775,61 +11619,86 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.309000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.309000000Z' +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.597000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.597000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.309000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.309000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.597000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11843,35 +11712,56 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -11879,9 +11769,12 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11923,85 +11816,113 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET AUTOCOMMIT=FALSE; @@ -12011,172 +11932,204 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READONLY=FALSE; @@ -12186,77 +12139,84 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.515000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.515000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.915000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.915000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.515000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.515000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.915000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET OPTIMIZER_VERSION='1'; @@ -12272,47 +12232,54 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @@ -12322,9 +12289,10 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET STATEMENT_TIMEOUT='1s'; @@ -12368,273 +12336,283 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=FALSE; -NEW_CONNECTION; -SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READONLY=FALSE; -NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.747000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.747000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.171000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:54.171000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.747000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.171000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -12649,34 +12627,34 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -12685,8 +12663,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -12729,260 +12707,286 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.943000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.943000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.357000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.943000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.943000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.357000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -12997,34 +13001,41 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13033,8 +13044,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13077,267 +13089,259 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:09.155000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:09.155000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.615000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:09.155000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:09.155000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.615000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -13352,34 +13356,34 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13388,8 +13392,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13432,75 +13436,68 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -13508,102 +13505,110 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -13611,52 +13616,50 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:09.352000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:09.352000000Z' +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.834000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:54.834000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:09.352000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:09.352000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.834000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -13670,28 +13673,28 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -13699,8 +13702,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -13742,47 +13745,44 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql index 9bf0d64dbe8..1703cc58eb6 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql @@ -13161,12157 +13161,19603 @@ NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT start work isolation level/-serializable; NEW_CONNECTION; -begin transaction; -commit; +begin isolation level default read write; NEW_CONNECTION; -begin transaction; -COMMIT; +BEGIN ISOLATION LEVEL DEFAULT READ WRITE; NEW_CONNECTION; -begin transaction; -commit; +begin isolation level default read write; NEW_CONNECTION; -begin transaction; - commit; + begin isolation level default read write; NEW_CONNECTION; -begin transaction; - commit; + begin isolation level default read write; NEW_CONNECTION; -begin transaction; -commit; +begin isolation level default read write; NEW_CONNECTION; -begin transaction; -commit ; +begin isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit ; +begin isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit +begin isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit; +begin isolation level default read write; NEW_CONNECTION; -begin transaction; -commit; +begin isolation level default read write; NEW_CONNECTION; -begin transaction; -commit; +begin +isolation +level +default +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit; +foo begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit bar; +begin isolation level default read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit; +%begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%; +begin isolation level default read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%; +begin isolation level default read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit; +_begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_; +begin isolation level default read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_; +begin isolation level default read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit; +&begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&; +begin isolation level default read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&; +begin isolation level default read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit; +$begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$; +begin isolation level default read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$; +begin isolation level default read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit; +@begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@; +begin isolation level default read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@; +begin isolation level default read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit; +!begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!; +begin isolation level default read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!; +begin isolation level default read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit; +*begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*; +begin isolation level default read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*; +begin isolation level default read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit; +(begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(; +begin isolation level default read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(; +begin isolation level default read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit; +)begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit); +begin isolation level default read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit); +begin isolation level default read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit; +-begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-; +begin isolation level default read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-; +begin isolation level default read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit; ++begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+; +begin isolation level default read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+; +begin isolation level default read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit; +-#begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#; +begin isolation level default read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#; +begin isolation level default read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit; +/begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/; +begin isolation level default read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/; +begin isolation level default read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit; +\begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\; +begin isolation level default read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\; +begin isolation level default read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit; +?begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?; +begin isolation level default read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?; +begin isolation level default read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit; +-/begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/; +begin isolation level default read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/; +begin isolation level default read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit; +/#begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#; +begin isolation level default read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#; +begin isolation level default read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit; +/-begin isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-; +begin isolation level default read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-; +begin isolation level default read/-write; NEW_CONNECTION; -begin transaction; -commit transaction; +start isolation level default read only; NEW_CONNECTION; -begin transaction; -COMMIT TRANSACTION; +START ISOLATION LEVEL DEFAULT READ ONLY; NEW_CONNECTION; -begin transaction; -commit transaction; +start isolation level default read only; NEW_CONNECTION; -begin transaction; - commit transaction; + start isolation level default read only; NEW_CONNECTION; -begin transaction; - commit transaction; + start isolation level default read only; NEW_CONNECTION; -begin transaction; -commit transaction; +start isolation level default read only; NEW_CONNECTION; -begin transaction; -commit transaction ; +start isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit transaction ; +start isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit transaction +start isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit transaction; +start isolation level default read only; NEW_CONNECTION; -begin transaction; -commit transaction; +start isolation level default read only; NEW_CONNECTION; -begin transaction; -commit -transaction; +start +isolation +level +default +read +only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit transaction; +foo start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction bar; +start isolation level default read only bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit transaction; +%start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction%; +start isolation level default read only%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%transaction; +start isolation level default read%only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit transaction; +_start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction_; +start isolation level default read only_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_transaction; +start isolation level default read_only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit transaction; +&start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction&; +start isolation level default read only&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&transaction; +start isolation level default read&only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit transaction; +$start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction$; +start isolation level default read only$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$transaction; +start isolation level default read$only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit transaction; +@start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction@; +start isolation level default read only@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@transaction; +start isolation level default read@only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit transaction; +!start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction!; +start isolation level default read only!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!transaction; +start isolation level default read!only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit transaction; +*start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction*; +start isolation level default read only*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*transaction; +start isolation level default read*only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit transaction; +(start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction(; +start isolation level default read only(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(transaction; +start isolation level default read(only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit transaction; +)start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction); +start isolation level default read only); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit)transaction; +start isolation level default read)only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit transaction; +-start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-; +start isolation level default read only-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-transaction; +start isolation level default read-only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit transaction; ++start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction+; +start isolation level default read only+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+transaction; +start isolation level default read+only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit transaction; +-#start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-#; +start isolation level default read only-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#transaction; +start isolation level default read-#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit transaction; +/start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/; +start isolation level default read only/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/transaction; +start isolation level default read/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit transaction; +\start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction\; +start isolation level default read only\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\transaction; +start isolation level default read\only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit transaction; +?start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction?; +start isolation level default read only?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?transaction; +start isolation level default read?only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit transaction; +-/start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-/; +start isolation level default read only-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/transaction; +start isolation level default read-/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit transaction; +/#start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/#; +start isolation level default read only/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#transaction; +start isolation level default read/#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit transaction; +/-start isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/-; +start isolation level default read only/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-transaction; +start isolation level default read/-only; NEW_CONNECTION; -begin transaction; -commit work; +begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; -COMMIT WORK; +BEGIN TRANSACTION ISOLATION LEVEL DEFAULT READ ONLY; NEW_CONNECTION; -begin transaction; -commit work; +begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; - commit work; + begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; - commit work; + begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; -commit work; +begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; -commit work ; +begin transaction isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit work ; +begin transaction isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit work +begin transaction isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit work; +begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; -commit work; +begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; -commit -work; +begin +transaction +isolation +level +default +read +only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit work; +foo begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work bar; +begin transaction isolation level default read only bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit work; +%begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work%; +begin transaction isolation level default read only%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%work; +begin transaction isolation level default read%only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit work; +_begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work_; +begin transaction isolation level default read only_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_work; +begin transaction isolation level default read_only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit work; +&begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work&; +begin transaction isolation level default read only&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&work; +begin transaction isolation level default read&only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit work; +$begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work$; +begin transaction isolation level default read only$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$work; +begin transaction isolation level default read$only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit work; +@begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work@; +begin transaction isolation level default read only@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@work; +begin transaction isolation level default read@only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit work; +!begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work!; +begin transaction isolation level default read only!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!work; +begin transaction isolation level default read!only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit work; +*begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work*; +begin transaction isolation level default read only*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*work; +begin transaction isolation level default read*only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit work; +(begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work(; +begin transaction isolation level default read only(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(work; +begin transaction isolation level default read(only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit work; +)begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work); +begin transaction isolation level default read only); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit)work; +begin transaction isolation level default read)only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit work; +-begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work-; +begin transaction isolation level default read only-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-work; +begin transaction isolation level default read-only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit work; ++begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work+; +begin transaction isolation level default read only+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+work; +begin transaction isolation level default read+only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit work; +-#begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work-#; +begin transaction isolation level default read only-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#work; +begin transaction isolation level default read-#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit work; +/begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work/; +begin transaction isolation level default read only/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/work; +begin transaction isolation level default read/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit work; +\begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work\; +begin transaction isolation level default read only\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\work; +begin transaction isolation level default read\only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit work; +?begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work?; +begin transaction isolation level default read only?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?work; +begin transaction isolation level default read?only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit work; +-/begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work-/; +begin transaction isolation level default read only-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/work; +begin transaction isolation level default read-/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit work; +/#begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work/#; +begin transaction isolation level default read only/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#work; +begin transaction isolation level default read/#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit work; +/-begin transaction isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work/-; +begin transaction isolation level default read only/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-work; +begin transaction isolation level default read/-only; NEW_CONNECTION; -begin transaction; -commit and no chain; +start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; -COMMIT AND NO CHAIN; +START TRANSACTION ISOLATION LEVEL DEFAULT READ WRITE; NEW_CONNECTION; -begin transaction; -commit and no chain; +start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; - commit and no chain; + start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; - commit and no chain; + start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; -commit and no chain; +start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; -commit and no chain ; +start transaction isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit and no chain ; +start transaction isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit and no chain +start transaction isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit and no chain; +start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; -commit and no chain; +start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; -commit -and -no -chain; +start +transaction +isolation +level +default +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit and no chain; +foo start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain bar; +start transaction isolation level default read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit and no chain; +%start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain%; +start transaction isolation level default read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no%chain; +start transaction isolation level default read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit and no chain; +_start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain_; +start transaction isolation level default read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no_chain; +start transaction isolation level default read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit and no chain; +&start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain&; +start transaction isolation level default read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no&chain; +start transaction isolation level default read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit and no chain; +$start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain$; +start transaction isolation level default read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no$chain; +start transaction isolation level default read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit and no chain; +@start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain@; +start transaction isolation level default read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no@chain; +start transaction isolation level default read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit and no chain; +!start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain!; +start transaction isolation level default read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no!chain; +start transaction isolation level default read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit and no chain; +*start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain*; +start transaction isolation level default read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no*chain; +start transaction isolation level default read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit and no chain; +(start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain(; +start transaction isolation level default read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no(chain; +start transaction isolation level default read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit and no chain; +)start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain); +start transaction isolation level default read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no)chain; +start transaction isolation level default read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit and no chain; +-start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain-; +start transaction isolation level default read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no-chain; +start transaction isolation level default read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit and no chain; ++start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain+; +start transaction isolation level default read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no+chain; +start transaction isolation level default read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit and no chain; +-#start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain-#; +start transaction isolation level default read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no-#chain; +start transaction isolation level default read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit and no chain; +/start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain/; +start transaction isolation level default read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no/chain; +start transaction isolation level default read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit and no chain; +\start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain\; +start transaction isolation level default read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no\chain; +start transaction isolation level default read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit and no chain; +?start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain?; +start transaction isolation level default read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no?chain; +start transaction isolation level default read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit and no chain; +-/start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain-/; +start transaction isolation level default read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no-/chain; +start transaction isolation level default read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit and no chain; +/#start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain/#; +start transaction isolation level default read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no/#chain; +start transaction isolation level default read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit and no chain; +/-start transaction isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no chain/-; +start transaction isolation level default read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit and no/-chain; +start transaction isolation level default read/-write; NEW_CONNECTION; -begin transaction; -commit transaction and no chain; +begin work isolation level default read write; NEW_CONNECTION; -begin transaction; -COMMIT TRANSACTION AND NO CHAIN; +BEGIN WORK ISOLATION LEVEL DEFAULT READ WRITE; NEW_CONNECTION; -begin transaction; -commit transaction and no chain; +begin work isolation level default read write; NEW_CONNECTION; -begin transaction; - commit transaction and no chain; + begin work isolation level default read write; NEW_CONNECTION; -begin transaction; - commit transaction and no chain; + begin work isolation level default read write; NEW_CONNECTION; -begin transaction; -commit transaction and no chain; +begin work isolation level default read write; NEW_CONNECTION; -begin transaction; -commit transaction and no chain ; +begin work isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit transaction and no chain ; +begin work isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit transaction and no chain +begin work isolation level default read write ; NEW_CONNECTION; -begin transaction; -commit transaction and no chain; +begin work isolation level default read write; NEW_CONNECTION; -begin transaction; -commit transaction and no chain; +begin work isolation level default read write; NEW_CONNECTION; -begin transaction; -commit -transaction -and -no -chain; +begin +work +isolation +level +default +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit transaction and no chain; +foo begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain bar; +begin work isolation level default read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit transaction and no chain; +%begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain%; +begin work isolation level default read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no%chain; +begin work isolation level default read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit transaction and no chain; +_begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain_; +begin work isolation level default read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no_chain; +begin work isolation level default read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit transaction and no chain; +&begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain&; +begin work isolation level default read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no&chain; +begin work isolation level default read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit transaction and no chain; +$begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain$; +begin work isolation level default read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no$chain; +begin work isolation level default read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit transaction and no chain; +@begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain@; +begin work isolation level default read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no@chain; +begin work isolation level default read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit transaction and no chain; +!begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain!; +begin work isolation level default read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no!chain; +begin work isolation level default read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit transaction and no chain; +*begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain*; +begin work isolation level default read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no*chain; +begin work isolation level default read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit transaction and no chain; +(begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain(; +begin work isolation level default read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no(chain; +begin work isolation level default read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit transaction and no chain; +)begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain); +begin work isolation level default read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no)chain; +begin work isolation level default read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit transaction and no chain; +-begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain-; +begin work isolation level default read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no-chain; +begin work isolation level default read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit transaction and no chain; ++begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain+; +begin work isolation level default read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no+chain; +begin work isolation level default read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit transaction and no chain; +-#begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain-#; +begin work isolation level default read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no-#chain; +begin work isolation level default read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit transaction and no chain; +/begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain/; +begin work isolation level default read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no/chain; +begin work isolation level default read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit transaction and no chain; +\begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain\; +begin work isolation level default read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no\chain; +begin work isolation level default read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit transaction and no chain; +?begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain?; +begin work isolation level default read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no?chain; +begin work isolation level default read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit transaction and no chain; +-/begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain-/; +begin work isolation level default read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no-/chain; +begin work isolation level default read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit transaction and no chain; +/#begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain/#; +begin work isolation level default read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no/#chain; +begin work isolation level default read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit transaction and no chain; +/-begin work isolation level default read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no chain/-; +begin work isolation level default read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction and no/-chain; +begin work isolation level default read/-write; NEW_CONNECTION; -begin transaction; -commit work and no chain; +start work isolation level default read only; NEW_CONNECTION; -begin transaction; -COMMIT WORK AND NO CHAIN; +START WORK ISOLATION LEVEL DEFAULT READ ONLY; NEW_CONNECTION; -begin transaction; -commit work and no chain; +start work isolation level default read only; NEW_CONNECTION; -begin transaction; - commit work and no chain; + start work isolation level default read only; NEW_CONNECTION; -begin transaction; - commit work and no chain; + start work isolation level default read only; NEW_CONNECTION; -begin transaction; -commit work and no chain; +start work isolation level default read only; NEW_CONNECTION; -begin transaction; -commit work and no chain ; +start work isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit work and no chain ; +start work isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit work and no chain +start work isolation level default read only ; NEW_CONNECTION; -begin transaction; -commit work and no chain; +start work isolation level default read only; NEW_CONNECTION; -begin transaction; -commit work and no chain; +start work isolation level default read only; NEW_CONNECTION; -begin transaction; -commit +start work -and -no -chain; +isolation +level +default +read +only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit work and no chain; +foo start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain bar; +start work isolation level default read only bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit work and no chain; +%start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain%; +start work isolation level default read only%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no%chain; +start work isolation level default read%only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit work and no chain; +_start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain_; +start work isolation level default read only_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no_chain; +start work isolation level default read_only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit work and no chain; +&start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain&; +start work isolation level default read only&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no&chain; +start work isolation level default read&only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit work and no chain; +$start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain$; +start work isolation level default read only$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no$chain; +start work isolation level default read$only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit work and no chain; +@start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain@; +start work isolation level default read only@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no@chain; +start work isolation level default read@only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit work and no chain; +!start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain!; +start work isolation level default read only!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no!chain; +start work isolation level default read!only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit work and no chain; +*start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain*; +start work isolation level default read only*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no*chain; +start work isolation level default read*only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit work and no chain; +(start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain(; +start work isolation level default read only(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no(chain; +start work isolation level default read(only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit work and no chain; +)start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain); +start work isolation level default read only); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no)chain; +start work isolation level default read)only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit work and no chain; +-start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain-; +start work isolation level default read only-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no-chain; +start work isolation level default read-only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit work and no chain; ++start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain+; +start work isolation level default read only+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no+chain; +start work isolation level default read+only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit work and no chain; +-#start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain-#; +start work isolation level default read only-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no-#chain; +start work isolation level default read-#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit work and no chain; +/start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain/; +start work isolation level default read only/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no/chain; +start work isolation level default read/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit work and no chain; +\start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain\; +start work isolation level default read only\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no\chain; +start work isolation level default read\only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit work and no chain; +?start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain?; +start work isolation level default read only?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no?chain; +start work isolation level default read?only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit work and no chain; +-/start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain-/; +start work isolation level default read only-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no-/chain; +start work isolation level default read-/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit work and no chain; +/#start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain/#; +start work isolation level default read only/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no/#chain; +start work isolation level default read/#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit work and no chain; +/-start work isolation level default read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no chain/-; +start work isolation level default read only/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit work and no/-chain; +start work isolation level default read/-only; NEW_CONNECTION; -begin transaction; -rollback; +begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; -ROLLBACK; +BEGIN ISOLATION LEVEL SERIALIZABLE READ WRITE; NEW_CONNECTION; -begin transaction; -rollback; +begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback; + begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback; + begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback; +begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback ; +begin isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback ; +begin isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback +begin isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback; +begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback; +begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback; +begin +isolation +level +serializable +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback; +foo begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback bar; +begin isolation level serializable read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback; +%begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%; +begin isolation level serializable read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%; +begin isolation level serializable read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback; +_begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_; +begin isolation level serializable read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_; +begin isolation level serializable read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback; +&begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&; +begin isolation level serializable read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&; +begin isolation level serializable read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback; +$begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$; +begin isolation level serializable read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$; +begin isolation level serializable read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback; +@begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@; +begin isolation level serializable read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@; +begin isolation level serializable read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback; +!begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!; +begin isolation level serializable read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!; +begin isolation level serializable read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback; +*begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*; +begin isolation level serializable read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*; +begin isolation level serializable read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback; +(begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(; +begin isolation level serializable read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(; +begin isolation level serializable read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback; +)begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback); +begin isolation level serializable read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback); +begin isolation level serializable read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback; +-begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-; +begin isolation level serializable read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-; +begin isolation level serializable read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback; ++begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+; +begin isolation level serializable read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+; +begin isolation level serializable read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback; +-#begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#; +begin isolation level serializable read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#; +begin isolation level serializable read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback; +/begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/; +begin isolation level serializable read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/; +begin isolation level serializable read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback; +\begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\; +begin isolation level serializable read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\; +begin isolation level serializable read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback; +?begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?; +begin isolation level serializable read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?; +begin isolation level serializable read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback; +-/begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/; +begin isolation level serializable read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/; +begin isolation level serializable read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback; +/#begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#; +begin isolation level serializable read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#; +begin isolation level serializable read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback; +/-begin isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-; +begin isolation level serializable read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-; +begin isolation level serializable read/-write; NEW_CONNECTION; -begin transaction; -rollback transaction; +start isolation level serializable read write; NEW_CONNECTION; -begin transaction; -ROLLBACK TRANSACTION; +START ISOLATION LEVEL SERIALIZABLE READ WRITE; NEW_CONNECTION; -begin transaction; -rollback transaction; +start isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback transaction; + start isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback transaction; + start isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback transaction; +start isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback transaction ; +start isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback transaction ; +start isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback transaction +start isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback transaction; +start isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback transaction; +start isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback -transaction; +start +isolation +level +serializable +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback transaction; +foo start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction bar; +start isolation level serializable read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback transaction; +%start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction%; +start isolation level serializable read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%transaction; +start isolation level serializable read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback transaction; +_start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction_; +start isolation level serializable read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_transaction; +start isolation level serializable read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback transaction; +&start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction&; +start isolation level serializable read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&transaction; +start isolation level serializable read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback transaction; +$start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction$; +start isolation level serializable read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$transaction; +start isolation level serializable read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback transaction; +@start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction@; +start isolation level serializable read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@transaction; +start isolation level serializable read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback transaction; +!start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction!; +start isolation level serializable read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!transaction; +start isolation level serializable read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback transaction; +*start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction*; +start isolation level serializable read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*transaction; +start isolation level serializable read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback transaction; +(start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction(; +start isolation level serializable read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(transaction; +start isolation level serializable read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback transaction; +)start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction); +start isolation level serializable read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback)transaction; +start isolation level serializable read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback transaction; +-start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-; +start isolation level serializable read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-transaction; +start isolation level serializable read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback transaction; ++start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction+; +start isolation level serializable read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+transaction; +start isolation level serializable read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback transaction; +-#start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-#; +start isolation level serializable read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#transaction; +start isolation level serializable read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback transaction; +/start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/; +start isolation level serializable read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/transaction; +start isolation level serializable read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback transaction; +\start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction\; +start isolation level serializable read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\transaction; +start isolation level serializable read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback transaction; +?start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction?; +start isolation level serializable read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?transaction; +start isolation level serializable read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback transaction; +-/start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-/; +start isolation level serializable read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/transaction; +start isolation level serializable read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback transaction; +/#start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/#; +start isolation level serializable read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#transaction; +start isolation level serializable read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback transaction; +/-start isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/-; +start isolation level serializable read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-transaction; +start isolation level serializable read/-write; NEW_CONNECTION; -begin transaction; -rollback work; +begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; -ROLLBACK WORK; +BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY; NEW_CONNECTION; -begin transaction; -rollback work; +begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; - rollback work; + begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; - rollback work; + begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback work; +begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback work ; +begin transaction isolation level serializable read only ; NEW_CONNECTION; -begin transaction; -rollback work ; +begin transaction isolation level serializable read only ; NEW_CONNECTION; -begin transaction; -rollback work +begin transaction isolation level serializable read only ; NEW_CONNECTION; -begin transaction; -rollback work; +begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback work; +begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback -work; +begin +transaction +isolation +level +serializable +read +only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback work; +foo begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work bar; +begin transaction isolation level serializable read only bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback work; +%begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work%; +begin transaction isolation level serializable read only%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%work; +begin transaction isolation level serializable read%only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback work; +_begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work_; +begin transaction isolation level serializable read only_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_work; +begin transaction isolation level serializable read_only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback work; +&begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work&; +begin transaction isolation level serializable read only&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&work; +begin transaction isolation level serializable read&only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback work; +$begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work$; +begin transaction isolation level serializable read only$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$work; +begin transaction isolation level serializable read$only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback work; +@begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work@; +begin transaction isolation level serializable read only@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@work; +begin transaction isolation level serializable read@only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback work; +!begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work!; +begin transaction isolation level serializable read only!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!work; +begin transaction isolation level serializable read!only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback work; +*begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work*; +begin transaction isolation level serializable read only*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*work; +begin transaction isolation level serializable read*only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback work; +(begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work(; +begin transaction isolation level serializable read only(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(work; +begin transaction isolation level serializable read(only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback work; +)begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work); +begin transaction isolation level serializable read only); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback)work; +begin transaction isolation level serializable read)only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback work; +-begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work-; +begin transaction isolation level serializable read only-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-work; +begin transaction isolation level serializable read-only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback work; ++begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work+; +begin transaction isolation level serializable read only+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+work; +begin transaction isolation level serializable read+only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback work; +-#begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work-#; +begin transaction isolation level serializable read only-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#work; +begin transaction isolation level serializable read-#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback work; +/begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work/; +begin transaction isolation level serializable read only/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/work; +begin transaction isolation level serializable read/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback work; +\begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work\; +begin transaction isolation level serializable read only\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\work; +begin transaction isolation level serializable read\only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback work; +?begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work?; +begin transaction isolation level serializable read only?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?work; +begin transaction isolation level serializable read?only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback work; +-/begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work-/; +begin transaction isolation level serializable read only-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/work; +begin transaction isolation level serializable read-/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback work; +/#begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work/#; +begin transaction isolation level serializable read only/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#work; +begin transaction isolation level serializable read/#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback work; +/-begin transaction isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work/-; +begin transaction isolation level serializable read only/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-work; +begin transaction isolation level serializable read/-only; NEW_CONNECTION; -begin transaction; -rollback and no chain; +start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; -ROLLBACK AND NO CHAIN; +START TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE; NEW_CONNECTION; -begin transaction; -rollback and no chain; +start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback and no chain; + start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback and no chain; + start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback and no chain; +start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback and no chain ; +start transaction isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback and no chain ; +start transaction isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback and no chain +start transaction isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback and no chain; +start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback and no chain; +start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback -and -no -chain; +start +transaction +isolation +level +serializable +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback and no chain; +foo start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain bar; +start transaction isolation level serializable read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback and no chain; +%start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain%; +start transaction isolation level serializable read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no%chain; +start transaction isolation level serializable read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback and no chain; +_start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain_; +start transaction isolation level serializable read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no_chain; +start transaction isolation level serializable read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback and no chain; +&start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain&; +start transaction isolation level serializable read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no&chain; +start transaction isolation level serializable read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback and no chain; +$start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain$; +start transaction isolation level serializable read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no$chain; +start transaction isolation level serializable read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback and no chain; +@start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain@; +start transaction isolation level serializable read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no@chain; +start transaction isolation level serializable read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback and no chain; +!start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain!; +start transaction isolation level serializable read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no!chain; +start transaction isolation level serializable read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback and no chain; +*start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain*; +start transaction isolation level serializable read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no*chain; +start transaction isolation level serializable read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback and no chain; +(start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain(; +start transaction isolation level serializable read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no(chain; +start transaction isolation level serializable read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback and no chain; +)start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain); +start transaction isolation level serializable read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no)chain; +start transaction isolation level serializable read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback and no chain; +-start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain-; +start transaction isolation level serializable read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no-chain; +start transaction isolation level serializable read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback and no chain; ++start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain+; +start transaction isolation level serializable read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no+chain; +start transaction isolation level serializable read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback and no chain; +-#start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain-#; +start transaction isolation level serializable read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no-#chain; +start transaction isolation level serializable read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback and no chain; +/start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain/; +start transaction isolation level serializable read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no/chain; +start transaction isolation level serializable read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback and no chain; +\start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain\; +start transaction isolation level serializable read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no\chain; +start transaction isolation level serializable read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback and no chain; +?start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain?; +start transaction isolation level serializable read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no?chain; +start transaction isolation level serializable read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback and no chain; +-/start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain-/; +start transaction isolation level serializable read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no-/chain; +start transaction isolation level serializable read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback and no chain; +/#start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain/#; +start transaction isolation level serializable read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no/#chain; +start transaction isolation level serializable read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback and no chain; +/-start transaction isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no chain/-; +start transaction isolation level serializable read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback and no/-chain; +start transaction isolation level serializable read/-write; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain; +begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; -ROLLBACK TRANSACTION AND NO CHAIN; +BEGIN WORK ISOLATION LEVEL SERIALIZABLE READ WRITE; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain; +begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback transaction and no chain; + begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; - rollback transaction and no chain; + begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain; +begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain ; +begin work isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain ; +begin work isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain +begin work isolation level serializable read write ; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain; +begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback transaction and no chain; +begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; -rollback -transaction -and -no -chain; +begin +work +isolation +level +serializable +read +write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback transaction and no chain; +foo begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain bar; +begin work isolation level serializable read write bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback transaction and no chain; +%begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain%; +begin work isolation level serializable read write%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no%chain; +begin work isolation level serializable read%write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback transaction and no chain; +_begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain_; +begin work isolation level serializable read write_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no_chain; +begin work isolation level serializable read_write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback transaction and no chain; +&begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain&; +begin work isolation level serializable read write&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no&chain; +begin work isolation level serializable read&write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback transaction and no chain; +$begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain$; +begin work isolation level serializable read write$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no$chain; +begin work isolation level serializable read$write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback transaction and no chain; +@begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain@; +begin work isolation level serializable read write@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no@chain; +begin work isolation level serializable read@write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback transaction and no chain; +!begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain!; +begin work isolation level serializable read write!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no!chain; +begin work isolation level serializable read!write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback transaction and no chain; +*begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain*; +begin work isolation level serializable read write*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no*chain; +begin work isolation level serializable read*write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback transaction and no chain; +(begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain(; +begin work isolation level serializable read write(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no(chain; +begin work isolation level serializable read(write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback transaction and no chain; +)begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain); +begin work isolation level serializable read write); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no)chain; +begin work isolation level serializable read)write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback transaction and no chain; +-begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain-; +begin work isolation level serializable read write-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no-chain; +begin work isolation level serializable read-write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback transaction and no chain; ++begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain+; +begin work isolation level serializable read write+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no+chain; +begin work isolation level serializable read+write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback transaction and no chain; +-#begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain-#; +begin work isolation level serializable read write-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no-#chain; +begin work isolation level serializable read-#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback transaction and no chain; +/begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain/; +begin work isolation level serializable read write/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no/chain; +begin work isolation level serializable read/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback transaction and no chain; +\begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain\; +begin work isolation level serializable read write\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no\chain; +begin work isolation level serializable read\write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback transaction and no chain; +?begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain?; +begin work isolation level serializable read write?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no?chain; +begin work isolation level serializable read?write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback transaction and no chain; +-/begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain-/; +begin work isolation level serializable read write-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no-/chain; +begin work isolation level serializable read-/write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback transaction and no chain; +/#begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain/#; +begin work isolation level serializable read write/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no/#chain; +begin work isolation level serializable read/#write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback transaction and no chain; +/-begin work isolation level serializable read write; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no chain/-; +begin work isolation level serializable read write/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction and no/-chain; +begin work isolation level serializable read/-write; NEW_CONNECTION; -begin transaction; -rollback work and no chain; +start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; -ROLLBACK WORK AND NO CHAIN; +START WORK ISOLATION LEVEL SERIALIZABLE READ ONLY; NEW_CONNECTION; -begin transaction; -rollback work and no chain; +start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; - rollback work and no chain; + start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; - rollback work and no chain; + start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback work and no chain; +start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback work and no chain ; +start work isolation level serializable read only ; NEW_CONNECTION; -begin transaction; -rollback work and no chain ; +start work isolation level serializable read only ; NEW_CONNECTION; -begin transaction; -rollback work and no chain +start work isolation level serializable read only ; NEW_CONNECTION; -begin transaction; -rollback work and no chain; +start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback work and no chain; +start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; -rollback +start work -and -no -chain; +isolation +level +serializable +read +only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback work and no chain; +foo start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain bar; +start work isolation level serializable read only bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback work and no chain; +%start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain%; +start work isolation level serializable read only%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no%chain; +start work isolation level serializable read%only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback work and no chain; +_start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain_; +start work isolation level serializable read only_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no_chain; +start work isolation level serializable read_only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback work and no chain; +&start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain&; +start work isolation level serializable read only&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no&chain; +start work isolation level serializable read&only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback work and no chain; +$start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain$; +start work isolation level serializable read only$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no$chain; +start work isolation level serializable read$only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback work and no chain; +@start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain@; +start work isolation level serializable read only@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no@chain; +start work isolation level serializable read@only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback work and no chain; +!start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain!; +start work isolation level serializable read only!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no!chain; +start work isolation level serializable read!only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback work and no chain; +*start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain*; +start work isolation level serializable read only*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no*chain; +start work isolation level serializable read*only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback work and no chain; +(start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain(; +start work isolation level serializable read only(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no(chain; +start work isolation level serializable read(only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback work and no chain; +)start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain); +start work isolation level serializable read only); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no)chain; +start work isolation level serializable read)only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback work and no chain; +-start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain-; +start work isolation level serializable read only-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no-chain; +start work isolation level serializable read-only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback work and no chain; ++start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain+; +start work isolation level serializable read only+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no+chain; +start work isolation level serializable read+only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback work and no chain; +-#start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain-#; +start work isolation level serializable read only-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no-#chain; +start work isolation level serializable read-#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback work and no chain; +/start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain/; +start work isolation level serializable read only/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no/chain; +start work isolation level serializable read/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback work and no chain; +\start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain\; +start work isolation level serializable read only\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no\chain; +start work isolation level serializable read\only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback work and no chain; +?start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain?; +start work isolation level serializable read only?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no?chain; +start work isolation level serializable read?only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback work and no chain; +-/start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain-/; +start work isolation level serializable read only-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no-/chain; +start work isolation level serializable read-/only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback work and no chain; +/#start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain/#; +start work isolation level serializable read only/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no/#chain; +start work isolation level serializable read/#only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback work and no chain; +/-start work isolation level serializable read only; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no chain/-; +start work isolation level serializable read only/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback work and no/-chain; +start work isolation level serializable read/-only; NEW_CONNECTION; -start batch ddl; +begin isolation level serializable, read write; NEW_CONNECTION; -START BATCH DDL; +BEGIN ISOLATION LEVEL SERIALIZABLE, READ WRITE; NEW_CONNECTION; -start batch ddl; +begin isolation level serializable, read write; NEW_CONNECTION; - start batch ddl; + begin isolation level serializable, read write; NEW_CONNECTION; - start batch ddl; + begin isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; +begin isolation level serializable, read write; NEW_CONNECTION; -start batch ddl ; +begin isolation level serializable, read write ; NEW_CONNECTION; -start batch ddl ; +begin isolation level serializable, read write ; NEW_CONNECTION; -start batch ddl +begin isolation level serializable, read write ; NEW_CONNECTION; -start batch ddl; +begin isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; +begin isolation level serializable, read write; NEW_CONNECTION; -start -batch -ddl; +begin +isolation +level +serializable, +read +write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch ddl; +foo begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl bar; +begin isolation level serializable, read write bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch ddl; +%begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl%; +begin isolation level serializable, read write%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%ddl; +begin isolation level serializable, read%write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch ddl; +_begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl_; +begin isolation level serializable, read write_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_ddl; +begin isolation level serializable, read_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch ddl; +&begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl&; +begin isolation level serializable, read write&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&ddl; +begin isolation level serializable, read&write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch ddl; +$begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl$; +begin isolation level serializable, read write$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$ddl; +begin isolation level serializable, read$write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch ddl; +@begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl@; +begin isolation level serializable, read write@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@ddl; +begin isolation level serializable, read@write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch ddl; +!begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl!; +begin isolation level serializable, read write!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!ddl; +begin isolation level serializable, read!write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch ddl; +*begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl*; +begin isolation level serializable, read write*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*ddl; +begin isolation level serializable, read*write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch ddl; +(begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl(; +begin isolation level serializable, read write(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(ddl; +begin isolation level serializable, read(write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch ddl; +)begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl); +begin isolation level serializable, read write); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)ddl; +begin isolation level serializable, read)write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch ddl; +-begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-; +begin isolation level serializable, read write-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-ddl; +begin isolation level serializable, read-write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch ddl; ++begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl+; +begin isolation level serializable, read write+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+ddl; +begin isolation level serializable, read+write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch ddl; +-#begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-#; +begin isolation level serializable, read write-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#ddl; +begin isolation level serializable, read-#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch ddl; +/begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/; +begin isolation level serializable, read write/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/ddl; +begin isolation level serializable, read/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch ddl; +\begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl\; +begin isolation level serializable, read write\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\ddl; +begin isolation level serializable, read\write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch ddl; +?begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl?; +begin isolation level serializable, read write?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?ddl; +begin isolation level serializable, read?write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch ddl; +-/begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-/; +begin isolation level serializable, read write-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/ddl; +begin isolation level serializable, read-/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch ddl; +/#begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/#; +begin isolation level serializable, read write/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#ddl; +begin isolation level serializable, read/#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch ddl; +/-begin isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/-; +begin isolation level serializable, read write/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-ddl; +begin isolation level serializable, read/-write; NEW_CONNECTION; -start batch dml; +start isolation level serializable, read write; NEW_CONNECTION; -START BATCH DML; +START ISOLATION LEVEL SERIALIZABLE, READ WRITE; NEW_CONNECTION; -start batch dml; +start isolation level serializable, read write; NEW_CONNECTION; - start batch dml; + start isolation level serializable, read write; NEW_CONNECTION; - start batch dml; + start isolation level serializable, read write; NEW_CONNECTION; -start batch dml; +start isolation level serializable, read write; NEW_CONNECTION; -start batch dml ; +start isolation level serializable, read write ; NEW_CONNECTION; -start batch dml ; +start isolation level serializable, read write ; NEW_CONNECTION; -start batch dml +start isolation level serializable, read write ; NEW_CONNECTION; -start batch dml; +start isolation level serializable, read write; NEW_CONNECTION; -start batch dml; +start isolation level serializable, read write; NEW_CONNECTION; start -batch -dml; +isolation +level +serializable, +read +write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch dml; +foo start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml bar; +start isolation level serializable, read write bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch dml; +%start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml%; +start isolation level serializable, read write%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%dml; +start isolation level serializable, read%write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch dml; +_start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml_; +start isolation level serializable, read write_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_dml; +start isolation level serializable, read_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch dml; +&start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml&; +start isolation level serializable, read write&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&dml; +start isolation level serializable, read&write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch dml; +$start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml$; +start isolation level serializable, read write$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$dml; +start isolation level serializable, read$write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch dml; +@start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml@; +start isolation level serializable, read write@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@dml; +start isolation level serializable, read@write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch dml; +!start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml!; +start isolation level serializable, read write!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!dml; +start isolation level serializable, read!write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch dml; +*start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml*; +start isolation level serializable, read write*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*dml; +start isolation level serializable, read*write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch dml; +(start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml(; +start isolation level serializable, read write(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(dml; +start isolation level serializable, read(write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch dml; +)start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml); +start isolation level serializable, read write); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)dml; +start isolation level serializable, read)write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch dml; +-start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-; +start isolation level serializable, read write-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-dml; +start isolation level serializable, read-write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch dml; ++start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml+; +start isolation level serializable, read write+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+dml; +start isolation level serializable, read+write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch dml; +-#start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-#; +start isolation level serializable, read write-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#dml; +start isolation level serializable, read-#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch dml; +/start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/; +start isolation level serializable, read write/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/dml; +start isolation level serializable, read/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch dml; +\start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml\; +start isolation level serializable, read write\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\dml; +start isolation level serializable, read\write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch dml; +?start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml?; +start isolation level serializable, read write?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?dml; +start isolation level serializable, read?write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch dml; +-/start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-/; +start isolation level serializable, read write-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/dml; +start isolation level serializable, read-/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch dml; +/#start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/#; +start isolation level serializable, read write/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#dml; +start isolation level serializable, read/#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch dml; +/-start isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/-; +start isolation level serializable, read write/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-dml; +start isolation level serializable, read/-write; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; -RUN BATCH; +BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE, READ ONLY; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; - run batch; + begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; - run batch; + begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; -run batch ; +begin transaction isolation level serializable, read only ; NEW_CONNECTION; -start batch ddl; -run batch ; +begin transaction isolation level serializable, read only ; NEW_CONNECTION; -start batch ddl; -run batch +begin transaction isolation level serializable, read only ; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; -run -batch; +begin +transaction +isolation +level +serializable, +read +only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo run batch; +foo begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch bar; +begin transaction isolation level serializable, read only bar; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%run batch; +%begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch%; +begin transaction isolation level serializable, read only%; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run%batch; +begin transaction isolation level serializable, read%only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_run batch; +_begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch_; +begin transaction isolation level serializable, read only_; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run_batch; +begin transaction isolation level serializable, read_only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&run batch; +&begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch&; +begin transaction isolation level serializable, read only&; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run&batch; +begin transaction isolation level serializable, read&only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$run batch; +$begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch$; +begin transaction isolation level serializable, read only$; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run$batch; +begin transaction isolation level serializable, read$only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@run batch; +@begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch@; +begin transaction isolation level serializable, read only@; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run@batch; +begin transaction isolation level serializable, read@only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!run batch; +!begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch!; +begin transaction isolation level serializable, read only!; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run!batch; +begin transaction isolation level serializable, read!only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*run batch; +*begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch*; +begin transaction isolation level serializable, read only*; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run*batch; +begin transaction isolation level serializable, read*only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(run batch; +(begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch(; +begin transaction isolation level serializable, read only(; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run(batch; +begin transaction isolation level serializable, read(only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)run batch; +)begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch); +begin transaction isolation level serializable, read only); NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run)batch; +begin transaction isolation level serializable, read)only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --run batch; +-begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-; +begin transaction isolation level serializable, read only-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run-batch; +begin transaction isolation level serializable, read-only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+run batch; ++begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch+; +begin transaction isolation level serializable, read only+; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run+batch; +begin transaction isolation level serializable, read+only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#run batch; +-#begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-#; +begin transaction isolation level serializable, read only-#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run-#batch; +begin transaction isolation level serializable, read-#only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/run batch; +/begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/; +begin transaction isolation level serializable, read only/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run/batch; +begin transaction isolation level serializable, read/only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\run batch; +\begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch\; +begin transaction isolation level serializable, read only\; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run\batch; +begin transaction isolation level serializable, read\only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?run batch; +?begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch?; +begin transaction isolation level serializable, read only?; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run?batch; +begin transaction isolation level serializable, read?only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/run batch; +-/begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-/; +begin transaction isolation level serializable, read only-/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run-/batch; +begin transaction isolation level serializable, read-/only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#run batch; +/#begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/#; +begin transaction isolation level serializable, read only/#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run/#batch; +begin transaction isolation level serializable, read/#only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-run batch; +/-begin transaction isolation level serializable, read only; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/-; +begin transaction isolation level serializable, read only/-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run/-batch; +begin transaction isolation level serializable, read/-only; NEW_CONNECTION; -start batch ddl; -abort batch; +start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; -ABORT BATCH; +START TRANSACTION ISOLATION LEVEL SERIALIZABLE, READ WRITE; NEW_CONNECTION; -start batch ddl; -abort batch; +start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; - abort batch; + start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; - abort batch; + start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; -abort batch; +start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; -abort batch ; +start transaction isolation level serializable, read write ; NEW_CONNECTION; -start batch ddl; -abort batch ; +start transaction isolation level serializable, read write ; NEW_CONNECTION; -start batch ddl; -abort batch +start transaction isolation level serializable, read write ; NEW_CONNECTION; -start batch ddl; -abort batch; +start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; -abort batch; +start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; -abort -batch; +start +transaction +isolation +level +serializable, +read +write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo abort batch; +foo start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch bar; +start transaction isolation level serializable, read write bar; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%abort batch; +%start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch%; +start transaction isolation level serializable, read write%; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort%batch; +start transaction isolation level serializable, read%write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_abort batch; +_start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch_; +start transaction isolation level serializable, read write_; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort_batch; +start transaction isolation level serializable, read_write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&abort batch; +&start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch&; +start transaction isolation level serializable, read write&; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort&batch; +start transaction isolation level serializable, read&write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$abort batch; +$start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch$; +start transaction isolation level serializable, read write$; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort$batch; +start transaction isolation level serializable, read$write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@abort batch; +@start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch@; +start transaction isolation level serializable, read write@; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort@batch; +start transaction isolation level serializable, read@write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!abort batch; +!start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch!; +start transaction isolation level serializable, read write!; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort!batch; +start transaction isolation level serializable, read!write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*abort batch; +*start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch*; +start transaction isolation level serializable, read write*; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort*batch; +start transaction isolation level serializable, read*write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(abort batch; +(start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch(; +start transaction isolation level serializable, read write(; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort(batch; +start transaction isolation level serializable, read(write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)abort batch; +)start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch); +start transaction isolation level serializable, read write); NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort)batch; +start transaction isolation level serializable, read)write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --abort batch; +-start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-; +start transaction isolation level serializable, read write-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-batch; +start transaction isolation level serializable, read-write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+abort batch; ++start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch+; +start transaction isolation level serializable, read write+; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort+batch; +start transaction isolation level serializable, read+write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#abort batch; +-#start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-#; +start transaction isolation level serializable, read write-#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-#batch; +start transaction isolation level serializable, read-#write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/abort batch; +/start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/; +start transaction isolation level serializable, read write/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/batch; +start transaction isolation level serializable, read/write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\abort batch; +\start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch\; +start transaction isolation level serializable, read write\; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort\batch; +start transaction isolation level serializable, read\write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?abort batch; +?start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch?; +start transaction isolation level serializable, read write?; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort?batch; +start transaction isolation level serializable, read?write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/abort batch; +-/start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-/; +start transaction isolation level serializable, read write-/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-/batch; +start transaction isolation level serializable, read-/write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#abort batch; +/#start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/#; +start transaction isolation level serializable, read write/#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/#batch; +start transaction isolation level serializable, read/#write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-abort batch; +/-start transaction isolation level serializable, read write; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/-; +start transaction isolation level serializable, read write/-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/-batch; +start transaction isolation level serializable, read/-write; NEW_CONNECTION; -set autocommit = true; +begin work isolation level serializable, read write; NEW_CONNECTION; -SET AUTOCOMMIT = TRUE; +BEGIN WORK ISOLATION LEVEL SERIALIZABLE, READ WRITE; NEW_CONNECTION; -set autocommit = true; +begin work isolation level serializable, read write; NEW_CONNECTION; - set autocommit = true; + begin work isolation level serializable, read write; NEW_CONNECTION; - set autocommit = true; + begin work isolation level serializable, read write; NEW_CONNECTION; -set autocommit = true; +begin work isolation level serializable, read write; NEW_CONNECTION; -set autocommit = true ; +begin work isolation level serializable, read write ; NEW_CONNECTION; -set autocommit = true ; +begin work isolation level serializable, read write ; NEW_CONNECTION; -set autocommit = true +begin work isolation level serializable, read write ; NEW_CONNECTION; -set autocommit = true; +begin work isolation level serializable, read write; NEW_CONNECTION; -set autocommit = true; +begin work isolation level serializable, read write; NEW_CONNECTION; -set -autocommit -= -true; +begin +work +isolation +level +serializable, +read +write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = true; +foo begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true bar; +begin work isolation level serializable, read write bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = true; +%begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true%; +begin work isolation level serializable, read write%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%true; +begin work isolation level serializable, read%write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = true; +_begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true_; +begin work isolation level serializable, read write_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_true; +begin work isolation level serializable, read_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = true; +&begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true&; +begin work isolation level serializable, read write&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&true; +begin work isolation level serializable, read&write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = true; +$begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true$; +begin work isolation level serializable, read write$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$true; +begin work isolation level serializable, read$write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = true; +@begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true@; +begin work isolation level serializable, read write@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@true; +begin work isolation level serializable, read@write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = true; +!begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true!; +begin work isolation level serializable, read write!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!true; +begin work isolation level serializable, read!write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = true; +*begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true*; +begin work isolation level serializable, read write*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*true; +begin work isolation level serializable, read*write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = true; +(begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true(; +begin work isolation level serializable, read write(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(true; +begin work isolation level serializable, read(write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = true; +)begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true); +begin work isolation level serializable, read write); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)true; +begin work isolation level serializable, read)write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = true; +-begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-; +begin work isolation level serializable, read write-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-true; +begin work isolation level serializable, read-write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = true; ++begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true+; +begin work isolation level serializable, read write+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+true; +begin work isolation level serializable, read+write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = true; +-#begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-#; +begin work isolation level serializable, read write-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#true; +begin work isolation level serializable, read-#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = true; +/begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/; +begin work isolation level serializable, read write/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/true; +begin work isolation level serializable, read/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = true; +\begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true\; +begin work isolation level serializable, read write\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\true; +begin work isolation level serializable, read\write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = true; +?begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true?; +begin work isolation level serializable, read write?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?true; +begin work isolation level serializable, read?write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = true; +-/begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-/; +begin work isolation level serializable, read write-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/true; +begin work isolation level serializable, read-/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = true; +/#begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/#; +begin work isolation level serializable, read write/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#true; +begin work isolation level serializable, read/#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = true; +/-begin work isolation level serializable, read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/-; +begin work isolation level serializable, read write/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-true; +begin work isolation level serializable, read/-write; NEW_CONNECTION; -set autocommit = false; +start work isolation level serializable, read only; NEW_CONNECTION; -SET AUTOCOMMIT = FALSE; +START WORK ISOLATION LEVEL SERIALIZABLE, READ ONLY; NEW_CONNECTION; -set autocommit = false; +start work isolation level serializable, read only; NEW_CONNECTION; - set autocommit = false; + start work isolation level serializable, read only; NEW_CONNECTION; - set autocommit = false; + start work isolation level serializable, read only; NEW_CONNECTION; -set autocommit = false; +start work isolation level serializable, read only; NEW_CONNECTION; -set autocommit = false ; +start work isolation level serializable, read only ; NEW_CONNECTION; -set autocommit = false ; +start work isolation level serializable, read only ; NEW_CONNECTION; -set autocommit = false +start work isolation level serializable, read only ; NEW_CONNECTION; -set autocommit = false; +start work isolation level serializable, read only; NEW_CONNECTION; -set autocommit = false; +start work isolation level serializable, read only; NEW_CONNECTION; -set -autocommit -= -false; +start +work +isolation +level +serializable, +read +only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = false; +foo start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false bar; +start work isolation level serializable, read only bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = false; +%start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false%; +start work isolation level serializable, read only%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%false; +start work isolation level serializable, read%only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = false; +_start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false_; +start work isolation level serializable, read only_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_false; +start work isolation level serializable, read_only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = false; +&start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false&; +start work isolation level serializable, read only&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&false; +start work isolation level serializable, read&only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = false; +$start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false$; +start work isolation level serializable, read only$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$false; +start work isolation level serializable, read$only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = false; +@start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false@; +start work isolation level serializable, read only@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@false; +start work isolation level serializable, read@only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = false; +!start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false!; +start work isolation level serializable, read only!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!false; +start work isolation level serializable, read!only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = false; +*start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false*; +start work isolation level serializable, read only*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*false; +start work isolation level serializable, read*only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = false; +(start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false(; +start work isolation level serializable, read only(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(false; +start work isolation level serializable, read(only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = false; +)start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false); +start work isolation level serializable, read only); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)false; +start work isolation level serializable, read)only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = false; +-start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-; +start work isolation level serializable, read only-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-false; +start work isolation level serializable, read-only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = false; ++start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false+; +start work isolation level serializable, read only+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+false; +start work isolation level serializable, read+only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = false; +-#start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-#; +start work isolation level serializable, read only-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#false; +start work isolation level serializable, read-#only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = false; +/start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/; +start work isolation level serializable, read only/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/false; +start work isolation level serializable, read/only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = false; +\start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false\; +start work isolation level serializable, read only\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\false; +start work isolation level serializable, read\only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = false; +?start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false?; +start work isolation level serializable, read only?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?false; +start work isolation level serializable, read?only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = false; +-/start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-/; +start work isolation level serializable, read only-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/false; +start work isolation level serializable, read-/only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = false; +/#start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/#; +start work isolation level serializable, read only/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#false; +start work isolation level serializable, read/#only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = false; +/-start work isolation level serializable, read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/-; +start work isolation level serializable, read only/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-false; +start work isolation level serializable, read/-only; NEW_CONNECTION; -set autocommit to true; +begin transaction; +commit; NEW_CONNECTION; -SET AUTOCOMMIT TO TRUE; +begin transaction; +COMMIT; NEW_CONNECTION; -set autocommit to true; +begin transaction; +commit; NEW_CONNECTION; - set autocommit to true; +begin transaction; + commit; NEW_CONNECTION; - set autocommit to true; +begin transaction; + commit; NEW_CONNECTION; +begin transaction; -set autocommit to true; +commit; NEW_CONNECTION; -set autocommit to true ; +begin transaction; +commit ; NEW_CONNECTION; -set autocommit to true ; +begin transaction; +commit ; NEW_CONNECTION; -set autocommit to true +begin transaction; +commit ; NEW_CONNECTION; -set autocommit to true; +begin transaction; +commit; NEW_CONNECTION; -set autocommit to true; +begin transaction; +commit; NEW_CONNECTION; -set -autocommit -to -true; +begin transaction; +commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit to true; +foo commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true bar; +commit bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit to true; +%commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true%; +commit%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to%true; +commit%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit to true; +_commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true_; +commit_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to_true; +commit_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit to true; +&commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true&; +commit&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to&true; +commit&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit to true; +$commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true$; +commit$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to$true; +commit$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit to true; +@commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true@; +commit@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to@true; +commit@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit to true; +!commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true!; +commit!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to!true; +commit!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit to true; +*commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true*; +commit*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to*true; +commit*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit to true; +(commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true(; +commit(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to(true; +commit(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit to true; +)commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true); +commit); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to)true; +commit); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit to true; +-commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true-; +commit-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-true; +commit-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit to true; ++commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true+; +commit+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to+true; +commit+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit to true; +-#commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true-#; +commit-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-#true; +commit-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit to true; +/commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true/; +commit/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/true; +commit/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit to true; +\commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true\; +commit\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to\true; +commit\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit to true; +?commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true?; +commit?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to?true; +commit?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit to true; +-/commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true-/; +commit-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-/true; +commit-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit to true; +/#commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true/#; +commit/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/#true; +commit/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit to true; +/-commit; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true/-; +commit/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/-true; +commit/-; NEW_CONNECTION; -set autocommit to false; +begin transaction; +commit transaction; NEW_CONNECTION; -SET AUTOCOMMIT TO FALSE; +begin transaction; +COMMIT TRANSACTION; NEW_CONNECTION; -set autocommit to false; +begin transaction; +commit transaction; NEW_CONNECTION; - set autocommit to false; +begin transaction; + commit transaction; NEW_CONNECTION; - set autocommit to false; +begin transaction; + commit transaction; NEW_CONNECTION; +begin transaction; -set autocommit to false; +commit transaction; NEW_CONNECTION; -set autocommit to false ; +begin transaction; +commit transaction ; NEW_CONNECTION; -set autocommit to false ; +begin transaction; +commit transaction ; NEW_CONNECTION; -set autocommit to false +begin transaction; +commit transaction ; NEW_CONNECTION; -set autocommit to false; +begin transaction; +commit transaction; NEW_CONNECTION; -set autocommit to false; +begin transaction; +commit transaction; NEW_CONNECTION; -set -autocommit -to -false; +begin transaction; +commit +transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit to false; +foo commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false bar; +commit transaction bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit to false; +%commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false%; +commit transaction%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to%false; +commit%transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit to false; +_commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false_; +commit transaction_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to_false; +commit_transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit to false; +&commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false&; +commit transaction&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to&false; +commit&transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit to false; +$commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false$; +commit transaction$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to$false; +commit$transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit to false; +@commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false@; +commit transaction@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to@false; +commit@transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit to false; +!commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false!; +commit transaction!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to!false; +commit!transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit to false; +*commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false*; +commit transaction*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to*false; +commit*transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit to false; +(commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false(; +commit transaction(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to(false; +commit(transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit to false; +)commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false); +commit transaction); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to)false; +commit)transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit to false; +-commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false-; +commit transaction-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-false; +commit-transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit to false; ++commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false+; +commit transaction+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to+false; +commit+transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit to false; +-#commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false-#; +commit transaction-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-#false; +commit-#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit to false; +/commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false/; +commit transaction/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/false; +commit/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit to false; +\commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false\; +commit transaction\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to\false; +commit\transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit to false; +?commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false?; +commit transaction?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to?false; +commit?transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit to false; +-/commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false-/; +commit transaction-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-/false; +commit-/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit to false; +/#commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false/#; +commit transaction/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/#false; +commit/#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit to false; +/-commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false/-; +commit transaction/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/-false; +commit/-transaction; NEW_CONNECTION; -set spanner.readonly = true; +begin transaction; +commit work; NEW_CONNECTION; -SET SPANNER.READONLY = TRUE; +begin transaction; +COMMIT WORK; NEW_CONNECTION; -set spanner.readonly = true; +begin transaction; +commit work; NEW_CONNECTION; - set spanner.readonly = true; +begin transaction; + commit work; NEW_CONNECTION; - set spanner.readonly = true; +begin transaction; + commit work; NEW_CONNECTION; +begin transaction; -set spanner.readonly = true; +commit work; NEW_CONNECTION; -set spanner.readonly = true ; +begin transaction; +commit work ; NEW_CONNECTION; -set spanner.readonly = true ; +begin transaction; +commit work ; NEW_CONNECTION; -set spanner.readonly = true +begin transaction; +commit work ; NEW_CONNECTION; -set spanner.readonly = true; +begin transaction; +commit work; NEW_CONNECTION; -set spanner.readonly = true; +begin transaction; +commit work; NEW_CONNECTION; -set -spanner.readonly -= -true; +begin transaction; +commit +work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly = true; +foo commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true bar; +commit work bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly = true; +%commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true%; +commit work%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =%true; +commit%work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly = true; +_commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true_; +commit work_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =_true; +commit_work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly = true; +&commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true&; +commit work&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =&true; +commit&work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly = true; +$commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true$; +commit work$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =$true; +commit$work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly = true; +@commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true@; +commit work@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =@true; +commit@work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly = true; +!commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true!; +commit work!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =!true; +commit!work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly = true; +*commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true*; +commit work*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =*true; +commit*work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly = true; +(commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true(; +commit work(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =(true; +commit(work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly = true; +)commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true); +commit work); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =)true; +commit)work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly = true; +-commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true-; +commit work-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-true; +commit-work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly = true; ++commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true+; +commit work+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =+true; +commit+work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly = true; +-#commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true-#; +commit work-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-#true; +commit-#work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly = true; +/commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true/; +commit work/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/true; +commit/work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly = true; +\commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true\; +commit work\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =\true; +commit\work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly = true; +?commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true?; +commit work?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =?true; +commit?work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly = true; +-/commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true-/; +commit work-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-/true; +commit-/work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly = true; +/#commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true/#; +commit work/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/#true; +commit/#work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly = true; +/-commit work; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true/-; +commit work/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/-true; +commit/-work; NEW_CONNECTION; -set spanner.readonly = false; +begin transaction; +commit and no chain; NEW_CONNECTION; -SET SPANNER.READONLY = FALSE; +begin transaction; +COMMIT AND NO CHAIN; NEW_CONNECTION; -set spanner.readonly = false; +begin transaction; +commit and no chain; NEW_CONNECTION; - set spanner.readonly = false; +begin transaction; + commit and no chain; NEW_CONNECTION; - set spanner.readonly = false; +begin transaction; + commit and no chain; NEW_CONNECTION; +begin transaction; -set spanner.readonly = false; +commit and no chain; NEW_CONNECTION; -set spanner.readonly = false ; +begin transaction; +commit and no chain ; NEW_CONNECTION; -set spanner.readonly = false ; +begin transaction; +commit and no chain ; NEW_CONNECTION; -set spanner.readonly = false +begin transaction; +commit and no chain ; NEW_CONNECTION; -set spanner.readonly = false; +begin transaction; +commit and no chain; NEW_CONNECTION; -set spanner.readonly = false; +begin transaction; +commit and no chain; NEW_CONNECTION; -set -spanner.readonly -= -false; +begin transaction; +commit +and +no +chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly = false; +foo commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false bar; +commit and no chain bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly = false; +%commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false%; +commit and no chain%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =%false; +commit and no%chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly = false; +_commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false_; +commit and no chain_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =_false; +commit and no_chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly = false; +&commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false&; +commit and no chain&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =&false; +commit and no&chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly = false; +$commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false$; +commit and no chain$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =$false; +commit and no$chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly = false; +@commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false@; +commit and no chain@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =@false; +commit and no@chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly = false; +!commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false!; +commit and no chain!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =!false; +commit and no!chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly = false; +*commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false*; +commit and no chain*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =*false; +commit and no*chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly = false; +(commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false(; +commit and no chain(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =(false; +commit and no(chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly = false; +)commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false); +commit and no chain); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =)false; +commit and no)chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly = false; +-commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false-; +commit and no chain-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-false; +commit and no-chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly = false; ++commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false+; +commit and no chain+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =+false; +commit and no+chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly = false; +-#commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false-#; +commit and no chain-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-#false; +commit and no-#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly = false; +/commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false/; +commit and no chain/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/false; +commit and no/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly = false; +\commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false\; +commit and no chain\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =\false; +commit and no\chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly = false; +?commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false?; +commit and no chain?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =?false; +commit and no?chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly = false; +-/commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false-/; +commit and no chain-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-/false; +commit and no-/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly = false; +/#commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false/#; +commit and no chain/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/#false; +commit and no/#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly = false; +/-commit and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false/-; +commit and no chain/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/-false; +commit and no/-chain; NEW_CONNECTION; -set spanner.readonly to true; +begin transaction; +commit transaction and no chain; NEW_CONNECTION; -SET SPANNER.READONLY TO TRUE; +begin transaction; +COMMIT TRANSACTION AND NO CHAIN; NEW_CONNECTION; -set spanner.readonly to true; +begin transaction; +commit transaction and no chain; NEW_CONNECTION; - set spanner.readonly to true; +begin transaction; + commit transaction and no chain; NEW_CONNECTION; - set spanner.readonly to true; +begin transaction; + commit transaction and no chain; NEW_CONNECTION; +begin transaction; -set spanner.readonly to true; +commit transaction and no chain; NEW_CONNECTION; -set spanner.readonly to true ; +begin transaction; +commit transaction and no chain ; NEW_CONNECTION; -set spanner.readonly to true ; +begin transaction; +commit transaction and no chain ; NEW_CONNECTION; -set spanner.readonly to true +begin transaction; +commit transaction and no chain ; NEW_CONNECTION; -set spanner.readonly to true; +begin transaction; +commit transaction and no chain; NEW_CONNECTION; -set spanner.readonly to true; +begin transaction; +commit transaction and no chain; NEW_CONNECTION; -set -spanner.readonly -to -true; +begin transaction; +commit +transaction +and +no +chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly to true; +foo commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true bar; +commit transaction and no chain bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly to true; +%commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true%; +commit transaction and no chain%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to%true; +commit transaction and no%chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly to true; +_commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true_; +commit transaction and no chain_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to_true; +commit transaction and no_chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly to true; +&commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true&; +commit transaction and no chain&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to&true; +commit transaction and no&chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly to true; +$commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true$; +commit transaction and no chain$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to$true; +commit transaction and no$chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly to true; +@commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true@; +commit transaction and no chain@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to@true; +commit transaction and no@chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly to true; +!commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true!; +commit transaction and no chain!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to!true; +commit transaction and no!chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly to true; +*commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true*; +commit transaction and no chain*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to*true; +commit transaction and no*chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly to true; +(commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true(; +commit transaction and no chain(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to(true; +commit transaction and no(chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly to true; +)commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true); +commit transaction and no chain); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to)true; +commit transaction and no)chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly to true; +-commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true-; +commit transaction and no chain-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-true; +commit transaction and no-chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly to true; ++commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true+; +commit transaction and no chain+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to+true; +commit transaction and no+chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly to true; +-#commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true-#; +commit transaction and no chain-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-#true; +commit transaction and no-#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly to true; +/commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true/; +commit transaction and no chain/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/true; +commit transaction and no/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly to true; +\commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true\; +commit transaction and no chain\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to\true; +commit transaction and no\chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly to true; +?commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true?; +commit transaction and no chain?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to?true; +commit transaction and no?chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly to true; +-/commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true-/; +commit transaction and no chain-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-/true; +commit transaction and no-/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly to true; +/#commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true/#; +commit transaction and no chain/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/#true; +commit transaction and no/#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly to true; +/-commit transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true/-; +commit transaction and no chain/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/-true; +commit transaction and no/-chain; NEW_CONNECTION; -set spanner.readonly to false; +begin transaction; +commit work and no chain; NEW_CONNECTION; -SET SPANNER.READONLY TO FALSE; +begin transaction; +COMMIT WORK AND NO CHAIN; NEW_CONNECTION; -set spanner.readonly to false; +begin transaction; +commit work and no chain; NEW_CONNECTION; - set spanner.readonly to false; +begin transaction; + commit work and no chain; NEW_CONNECTION; - set spanner.readonly to false; +begin transaction; + commit work and no chain; NEW_CONNECTION; +begin transaction; -set spanner.readonly to false; +commit work and no chain; NEW_CONNECTION; -set spanner.readonly to false ; +begin transaction; +commit work and no chain ; NEW_CONNECTION; -set spanner.readonly to false ; +begin transaction; +commit work and no chain ; NEW_CONNECTION; -set spanner.readonly to false +begin transaction; +commit work and no chain ; NEW_CONNECTION; -set spanner.readonly to false; +begin transaction; +commit work and no chain; NEW_CONNECTION; -set spanner.readonly to false; +begin transaction; +commit work and no chain; NEW_CONNECTION; -set -spanner.readonly -to -false; +begin transaction; +commit +work +and +no +chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly to false; +foo commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false bar; +commit work and no chain bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly to false; +%commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false%; +commit work and no chain%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to%false; +commit work and no%chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly to false; +_commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false_; +commit work and no chain_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to_false; +commit work and no_chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly to false; +&commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false&; +commit work and no chain&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to&false; +commit work and no&chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly to false; +$commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false$; +commit work and no chain$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to$false; +commit work and no$chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly to false; +@commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false@; +commit work and no chain@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to@false; +commit work and no@chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly to false; +!commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false!; +commit work and no chain!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to!false; +commit work and no!chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly to false; +*commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false*; +commit work and no chain*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to*false; +commit work and no*chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly to false; +(commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false(; +commit work and no chain(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to(false; +commit work and no(chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly to false; +)commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false); +commit work and no chain); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to)false; +commit work and no)chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly to false; +-commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false-; +commit work and no chain-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-false; +commit work and no-chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly to false; ++commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false+; +commit work and no chain+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to+false; +commit work and no+chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly to false; +-#commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false-#; +commit work and no chain-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-#false; +commit work and no-#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly to false; +/commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false/; +commit work and no chain/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/false; +commit work and no/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly to false; +\commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false\; +commit work and no chain\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to\false; +commit work and no\chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly to false; +?commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false?; +commit work and no chain?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to?false; +commit work and no?chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly to false; +-/commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false-/; +commit work and no chain-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-/false; +commit work and no-/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly to false; +/#commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false/#; +commit work and no chain/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/#false; +commit work and no/#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly to false; +/-commit work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false/-; +commit work and no chain/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/-false; -NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +commit work and no/-chain; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY = TRUE; +begin transaction; +rollback; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +begin transaction; +ROLLBACK; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally = true; +begin transaction; +rollback; +NEW_CONNECTION; +begin transaction; + rollback; +NEW_CONNECTION; +begin transaction; + rollback; +NEW_CONNECTION; +begin transaction; + + + +rollback; +NEW_CONNECTION; +begin transaction; +rollback ; +NEW_CONNECTION; +begin transaction; +rollback ; +NEW_CONNECTION; +begin transaction; +rollback + +; +NEW_CONNECTION; +begin transaction; +rollback; +NEW_CONNECTION; +begin transaction; +rollback; +NEW_CONNECTION; +begin transaction; +rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback bar; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +%rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +_rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +&rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +$rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +@rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +!rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +*rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +(rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +)rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT ++rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +\rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +?rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-rollback; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/-; +NEW_CONNECTION; +begin transaction; +rollback transaction; +NEW_CONNECTION; +begin transaction; +ROLLBACK TRANSACTION; +NEW_CONNECTION; +begin transaction; +rollback transaction; +NEW_CONNECTION; +begin transaction; + rollback transaction; +NEW_CONNECTION; +begin transaction; + rollback transaction; +NEW_CONNECTION; +begin transaction; + + + +rollback transaction; +NEW_CONNECTION; +begin transaction; +rollback transaction ; +NEW_CONNECTION; +begin transaction; +rollback transaction ; +NEW_CONNECTION; +begin transaction; +rollback transaction + +; +NEW_CONNECTION; +begin transaction; +rollback transaction; +NEW_CONNECTION; +begin transaction; +rollback transaction; +NEW_CONNECTION; +begin transaction; +rollback +transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction bar; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +%rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback%transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +_rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback_transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +&rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback&transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +$rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback$transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +@rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback@transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +!rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback!transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +*rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback*transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +(rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback(transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +)rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback)transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT ++rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback+transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-#transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +\rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback\transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +?rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback?transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-/transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/#transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-rollback transaction; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction/-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/-transaction; +NEW_CONNECTION; +begin transaction; +rollback work; +NEW_CONNECTION; +begin transaction; +ROLLBACK WORK; +NEW_CONNECTION; +begin transaction; +rollback work; +NEW_CONNECTION; +begin transaction; + rollback work; +NEW_CONNECTION; +begin transaction; + rollback work; +NEW_CONNECTION; +begin transaction; + + + +rollback work; +NEW_CONNECTION; +begin transaction; +rollback work ; +NEW_CONNECTION; +begin transaction; +rollback work ; +NEW_CONNECTION; +begin transaction; +rollback work + +; +NEW_CONNECTION; +begin transaction; +rollback work; +NEW_CONNECTION; +begin transaction; +rollback work; +NEW_CONNECTION; +begin transaction; +rollback +work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work bar; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +%rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback%work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +_rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback_work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +&rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback&work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +$rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback$work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +@rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback@work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +!rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback!work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +*rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback*work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +(rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback(work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +)rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback)work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT ++rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback+work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-#work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +\rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback\work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +?rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback?work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback-/work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/#work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-rollback work; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work/-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback/-work; +NEW_CONNECTION; +begin transaction; +rollback and no chain; +NEW_CONNECTION; +begin transaction; +ROLLBACK AND NO CHAIN; +NEW_CONNECTION; +begin transaction; +rollback and no chain; +NEW_CONNECTION; +begin transaction; + rollback and no chain; +NEW_CONNECTION; +begin transaction; + rollback and no chain; +NEW_CONNECTION; +begin transaction; + + + +rollback and no chain; +NEW_CONNECTION; +begin transaction; +rollback and no chain ; +NEW_CONNECTION; +begin transaction; +rollback and no chain ; +NEW_CONNECTION; +begin transaction; +rollback and no chain + +; +NEW_CONNECTION; +begin transaction; +rollback and no chain; +NEW_CONNECTION; +begin transaction; +rollback and no chain; +NEW_CONNECTION; +begin transaction; +rollback +and +no +chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain bar; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +%rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no%chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +_rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no_chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +&rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no&chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +$rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no$chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +@rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no@chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +!rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no!chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +*rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no*chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +(rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no(chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +)rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no)chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no-chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT ++rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no+chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no-#chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no/chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +\rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no\chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +?rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no?chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no-/chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no/#chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-rollback and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no chain/-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback and no/-chain; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +ROLLBACK TRANSACTION AND NO CHAIN; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; + rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; + rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; + + + +rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain ; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain ; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain + +; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +rollback +transaction +and +no +chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain bar; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +%rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no%chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +_rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no_chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +&rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no&chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +$rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no$chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +@rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no@chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +!rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no!chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +*rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no*chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +(rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no(chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +)rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no)chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no-chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT ++rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no+chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no-#chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no/chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +\rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no\chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +?rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no?chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no-/chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no/#chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-rollback transaction and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no chain/-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback transaction and no/-chain; +NEW_CONNECTION; +begin transaction; +rollback work and no chain; +NEW_CONNECTION; +begin transaction; +ROLLBACK WORK AND NO CHAIN; +NEW_CONNECTION; +begin transaction; +rollback work and no chain; +NEW_CONNECTION; +begin transaction; + rollback work and no chain; +NEW_CONNECTION; +begin transaction; + rollback work and no chain; +NEW_CONNECTION; +begin transaction; + + + +rollback work and no chain; +NEW_CONNECTION; +begin transaction; +rollback work and no chain ; +NEW_CONNECTION; +begin transaction; +rollback work and no chain ; +NEW_CONNECTION; +begin transaction; +rollback work and no chain + +; +NEW_CONNECTION; +begin transaction; +rollback work and no chain; +NEW_CONNECTION; +begin transaction; +rollback work and no chain; +NEW_CONNECTION; +begin transaction; +rollback +work +and +no +chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain bar; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +%rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain%; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no%chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +_rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain_; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no_chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +&rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain&; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no&chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +$rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain$; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no$chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +@rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain@; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no@chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +!rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain!; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no!chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +*rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain*; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no*chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +(rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain(; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no(chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +)rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain); +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no)chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no-chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT ++rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain+; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no+chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain-#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no-#chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no/chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +\rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain\; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no\chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +?rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain?; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no?chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain-/; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no-/chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain/#; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no/#chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-rollback work and no chain; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no chain/-; +NEW_CONNECTION; +begin transaction; +@EXPECT EXCEPTION INVALID_ARGUMENT +rollback work and no/-chain; +NEW_CONNECTION; +start batch ddl; +NEW_CONNECTION; +START BATCH DDL; +NEW_CONNECTION; +start batch ddl; +NEW_CONNECTION; + start batch ddl; +NEW_CONNECTION; + start batch ddl; +NEW_CONNECTION; + + + +start batch ddl; +NEW_CONNECTION; +start batch ddl ; +NEW_CONNECTION; +start batch ddl ; +NEW_CONNECTION; +start batch ddl + +; +NEW_CONNECTION; +start batch ddl; +NEW_CONNECTION; +start batch ddl; +NEW_CONNECTION; +start +batch +ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch%ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch_ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch&ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch$ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch@ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch!ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch*ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch(ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch)ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch-ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch+ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch-#ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch/ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch\ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch?ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch-/ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch/#ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-start batch ddl; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch ddl/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch/-ddl; +NEW_CONNECTION; +start batch dml; +NEW_CONNECTION; +START BATCH DML; +NEW_CONNECTION; +start batch dml; +NEW_CONNECTION; + start batch dml; +NEW_CONNECTION; + start batch dml; +NEW_CONNECTION; + + + +start batch dml; +NEW_CONNECTION; +start batch dml ; +NEW_CONNECTION; +start batch dml ; +NEW_CONNECTION; +start batch dml + +; +NEW_CONNECTION; +start batch dml; +NEW_CONNECTION; +start batch dml; +NEW_CONNECTION; +start +batch +dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch%dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch_dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch&dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch$dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch@dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch!dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch*dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch(dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch)dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch-dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch+dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch-#dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch/dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch\dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch?dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch-/dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch/#dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-start batch dml; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch dml/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +start batch/-dml; +NEW_CONNECTION; +start batch ddl; +run batch; +NEW_CONNECTION; +start batch ddl; +RUN BATCH; +NEW_CONNECTION; +start batch ddl; +run batch; +NEW_CONNECTION; +start batch ddl; + run batch; +NEW_CONNECTION; +start batch ddl; + run batch; +NEW_CONNECTION; +start batch ddl; + + + +run batch; +NEW_CONNECTION; +start batch ddl; +run batch ; +NEW_CONNECTION; +start batch ddl; +run batch ; +NEW_CONNECTION; +start batch ddl; +run batch + +; +NEW_CONNECTION; +start batch ddl; +run batch; +NEW_CONNECTION; +start batch ddl; +run batch; +NEW_CONNECTION; +start batch ddl; +run +batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch bar; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +%run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch%; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run%batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +_run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch_; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run_batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +&run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch&; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run&batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +$run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch$; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run$batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +@run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch@; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run@batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +!run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch!; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run!batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +*run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch*; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run*batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +(run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch(; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run(batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +)run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch); +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run)batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +-run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch-; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run-batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT ++run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch+; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run+batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch-#; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run-#batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +/run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch/; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run/batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +\run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch\; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run\batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +?run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch?; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run?batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch-/; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run-/batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch/#; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run/#batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-run batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run batch/-; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +run/-batch; +NEW_CONNECTION; +start batch ddl; +abort batch; +NEW_CONNECTION; +start batch ddl; +ABORT BATCH; +NEW_CONNECTION; +start batch ddl; +abort batch; +NEW_CONNECTION; +start batch ddl; + abort batch; +NEW_CONNECTION; +start batch ddl; + abort batch; +NEW_CONNECTION; +start batch ddl; + + + +abort batch; +NEW_CONNECTION; +start batch ddl; +abort batch ; +NEW_CONNECTION; +start batch ddl; +abort batch ; +NEW_CONNECTION; +start batch ddl; +abort batch + +; +NEW_CONNECTION; +start batch ddl; +abort batch; +NEW_CONNECTION; +start batch ddl; +abort batch; +NEW_CONNECTION; +start batch ddl; +abort +batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch bar; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +%abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch%; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort%batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +_abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch_; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort_batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +&abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch&; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort&batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +$abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch$; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort$batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +@abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch@; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort@batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +!abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch!; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort!batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +*abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch*; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort*batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +(abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch(; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort(batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +)abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch); +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort)batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +-abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch-; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort-batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT ++abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch+; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort+batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch-#; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort-#batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +/abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch/; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort/batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +\abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch\; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort\batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +?abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch?; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort?batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch-/; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort-/batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch/#; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort/#batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-abort batch; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort batch/-; +NEW_CONNECTION; +start batch ddl; +@EXPECT EXCEPTION INVALID_ARGUMENT +abort/-batch; +NEW_CONNECTION; +set autocommit = true; +NEW_CONNECTION; +SET AUTOCOMMIT = TRUE; +NEW_CONNECTION; +set autocommit = true; +NEW_CONNECTION; + set autocommit = true; +NEW_CONNECTION; + set autocommit = true; +NEW_CONNECTION; + + + +set autocommit = true; +NEW_CONNECTION; +set autocommit = true ; +NEW_CONNECTION; +set autocommit = true ; +NEW_CONNECTION; +set autocommit = true + +; +NEW_CONNECTION; +set autocommit = true; +NEW_CONNECTION; +set autocommit = true; +NEW_CONNECTION; +set +autocommit += +true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =%true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =_true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =&true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =$true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =@true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =!true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =*true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =(true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =)true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =-true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =+true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =-#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =\true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =?true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =-/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =/#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set autocommit = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = true/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =/-true; +NEW_CONNECTION; +set autocommit = false; +NEW_CONNECTION; +SET AUTOCOMMIT = FALSE; +NEW_CONNECTION; +set autocommit = false; +NEW_CONNECTION; + set autocommit = false; +NEW_CONNECTION; + set autocommit = false; +NEW_CONNECTION; + + + +set autocommit = false; +NEW_CONNECTION; +set autocommit = false ; +NEW_CONNECTION; +set autocommit = false ; +NEW_CONNECTION; +set autocommit = false + +; +NEW_CONNECTION; +set autocommit = false; +NEW_CONNECTION; +set autocommit = false; +NEW_CONNECTION; +set +autocommit += +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set autocommit = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit = false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit =/-false; +NEW_CONNECTION; +set autocommit to true; +NEW_CONNECTION; +SET AUTOCOMMIT TO TRUE; +NEW_CONNECTION; +set autocommit to true; +NEW_CONNECTION; + set autocommit to true; +NEW_CONNECTION; + set autocommit to true; +NEW_CONNECTION; + + + +set autocommit to true; +NEW_CONNECTION; +set autocommit to true ; +NEW_CONNECTION; +set autocommit to true ; +NEW_CONNECTION; +set autocommit to true + +; +NEW_CONNECTION; +set autocommit to true; +NEW_CONNECTION; +set autocommit to true; +NEW_CONNECTION; +set +autocommit +to +true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to%true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to_true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to&true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to$true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to@true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to!true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to*true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to(true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to)true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to-true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to+true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to-#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to\true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to?true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to-/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to/#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set autocommit to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to true/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to/-true; +NEW_CONNECTION; +set autocommit to false; +NEW_CONNECTION; +SET AUTOCOMMIT TO FALSE; +NEW_CONNECTION; +set autocommit to false; +NEW_CONNECTION; + set autocommit to false; +NEW_CONNECTION; + set autocommit to false; +NEW_CONNECTION; + + + +set autocommit to false; +NEW_CONNECTION; +set autocommit to false ; +NEW_CONNECTION; +set autocommit to false ; +NEW_CONNECTION; +set autocommit to false + +; +NEW_CONNECTION; +set autocommit to false; +NEW_CONNECTION; +set autocommit to false; +NEW_CONNECTION; +set +autocommit +to +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set autocommit to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit to/-false; +NEW_CONNECTION; +set spanner.readonly = true; +NEW_CONNECTION; +SET SPANNER.READONLY = TRUE; +NEW_CONNECTION; +set spanner.readonly = true; +NEW_CONNECTION; + set spanner.readonly = true; +NEW_CONNECTION; + set spanner.readonly = true; +NEW_CONNECTION; + + + +set spanner.readonly = true; +NEW_CONNECTION; +set spanner.readonly = true ; +NEW_CONNECTION; +set spanner.readonly = true ; +NEW_CONNECTION; +set spanner.readonly = true + +; +NEW_CONNECTION; +set spanner.readonly = true; +NEW_CONNECTION; +set spanner.readonly = true; +NEW_CONNECTION; +set +spanner.readonly += +true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =%true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =_true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =&true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =$true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =@true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =!true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =*true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =(true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =)true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =+true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =\true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =?true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = true/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/-true; +NEW_CONNECTION; +set spanner.readonly = false; +NEW_CONNECTION; +SET SPANNER.READONLY = FALSE; +NEW_CONNECTION; +set spanner.readonly = false; +NEW_CONNECTION; + set spanner.readonly = false; +NEW_CONNECTION; + set spanner.readonly = false; +NEW_CONNECTION; + + + +set spanner.readonly = false; +NEW_CONNECTION; +set spanner.readonly = false ; +NEW_CONNECTION; +set spanner.readonly = false ; +NEW_CONNECTION; +set spanner.readonly = false + +; +NEW_CONNECTION; +set spanner.readonly = false; +NEW_CONNECTION; +set spanner.readonly = false; +NEW_CONNECTION; +set +spanner.readonly += +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/-false; +NEW_CONNECTION; +set spanner.readonly to true; +NEW_CONNECTION; +SET SPANNER.READONLY TO TRUE; +NEW_CONNECTION; +set spanner.readonly to true; +NEW_CONNECTION; + set spanner.readonly to true; +NEW_CONNECTION; + set spanner.readonly to true; +NEW_CONNECTION; + + + +set spanner.readonly to true; +NEW_CONNECTION; +set spanner.readonly to true ; +NEW_CONNECTION; +set spanner.readonly to true ; +NEW_CONNECTION; +set spanner.readonly to true + +; +NEW_CONNECTION; +set spanner.readonly to true; +NEW_CONNECTION; +set spanner.readonly to true; +NEW_CONNECTION; +set +spanner.readonly +to +true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to%true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to_true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to&true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to$true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to@true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to!true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to*true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to(true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to)true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to+true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to\true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to?true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/-true; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; +SET SPANNER.READONLY TO FALSE; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; + set spanner.readonly to false; +NEW_CONNECTION; + set spanner.readonly to false; +NEW_CONNECTION; + + + +set spanner.readonly to false; +NEW_CONNECTION; +set spanner.readonly to false ; +NEW_CONNECTION; +set spanner.readonly to false ; +NEW_CONNECTION; +set spanner.readonly to false + +; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; +set +spanner.readonly +to +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY = TRUE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally += +true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =%true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =_true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =&true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =$true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =@true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =!true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =*true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =(true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =)true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =+true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =\true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =?true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY = FALSE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally += +false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =%false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =_false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =&false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =$false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =@false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =!false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =*false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =(false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =)false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =+false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =\false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =?false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY TO TRUE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally +to +true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to%true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to_true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to&true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to$true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to@true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to!true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to*true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to(true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to)true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to+true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to\true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to?true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY TO FALSE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally +to +false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to%false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to_false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to&false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to$false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to@false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to!false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to*false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to(false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to)false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false-; NEW_CONNECTION; set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally = true; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to+false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to\false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to?false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/-false; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='partitioned_non_atomic'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='transactional'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE TO 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'partitioned_non_atomic'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode +to +'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to%'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to_'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to&'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to$'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to@'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to!'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to*'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to('PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to)'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to+'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-#'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to\'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to?'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-/'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/#'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/-'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE TO 'TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'transactional'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode +to +'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to%'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to_'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to&'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to$'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to@'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to!'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to*'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to('TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to)'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to+'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-#'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to\'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to?'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-/'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/#'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/-'TRANSACTIONAL'; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT=DEFAULT; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; + set statement_timeout=default; +NEW_CONNECTION; + set statement_timeout=default; +NEW_CONNECTION; + + + +set statement_timeout=default; +NEW_CONNECTION; +set statement_timeout=default ; +NEW_CONNECTION; +set statement_timeout=default ; +NEW_CONNECTION; +set statement_timeout=default + +; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; +set +statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout=default; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='1S'; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; + set statement_timeout='1s'; +NEW_CONNECTION; + set statement_timeout='1s'; +NEW_CONNECTION; + + + +set statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='1s' ; +NEW_CONNECTION; +set statement_timeout='1s' ; +NEW_CONNECTION; +set statement_timeout='1s' + +; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +set +statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='100MS'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; + set statement_timeout='100ms'; +NEW_CONNECTION; + set statement_timeout='100ms'; +NEW_CONNECTION; + + + +set statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='100ms' ; +NEW_CONNECTION; +set statement_timeout='100ms' ; +NEW_CONNECTION; +set statement_timeout='100ms' + +; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +set +statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT=100; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; + set statement_timeout=100; +NEW_CONNECTION; + set statement_timeout=100; +NEW_CONNECTION; + + + +set statement_timeout=100; +NEW_CONNECTION; +set statement_timeout=100 ; +NEW_CONNECTION; +set statement_timeout=100 ; +NEW_CONNECTION; +set statement_timeout=100 + +; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; +set +statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100 bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout=100; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='10000US'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; + set statement_timeout='10000us'; +NEW_CONNECTION; + set statement_timeout='10000us'; +NEW_CONNECTION; + + + +set statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='10000us' ; +NEW_CONNECTION; +set statement_timeout='10000us' ; +NEW_CONNECTION; +set statement_timeout='10000us' + +; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +set +statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='9223372036854775807NS'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + + + +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' + +; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set +statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO DEFAULT; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; + set statement_timeout to default; +NEW_CONNECTION; + set statement_timeout to default; +NEW_CONNECTION; + + + +set statement_timeout to default; +NEW_CONNECTION; +set statement_timeout to default ; +NEW_CONNECTION; +set statement_timeout to default ; +NEW_CONNECTION; +set statement_timeout to default + +; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; +set +statement_timeout +to +default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to(default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-default; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '1S'; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; + set statement_timeout to '1s'; +NEW_CONNECTION; + set statement_timeout to '1s'; +NEW_CONNECTION; + + + +set statement_timeout to '1s'; +NEW_CONNECTION; +set statement_timeout to '1s' ; +NEW_CONNECTION; +set statement_timeout to '1s' ; +NEW_CONNECTION; +set statement_timeout to '1s' + +; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; +set +statement_timeout +to +'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'1s'; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '100MS'; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; + set statement_timeout to '100ms'; +NEW_CONNECTION; + set statement_timeout to '100ms'; +NEW_CONNECTION; + + + +set statement_timeout to '100ms'; +NEW_CONNECTION; +set statement_timeout to '100ms' ; +NEW_CONNECTION; +set statement_timeout to '100ms' ; +NEW_CONNECTION; +set statement_timeout to '100ms' + +; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; +set +statement_timeout +to +'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'100ms'; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO 100; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; + set statement_timeout to 100; +NEW_CONNECTION; + set statement_timeout to 100; +NEW_CONNECTION; + + + +set statement_timeout to 100; +NEW_CONNECTION; +set statement_timeout to 100 ; +NEW_CONNECTION; +set statement_timeout to 100 ; +NEW_CONNECTION; +set statement_timeout to 100 + +; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; +set +statement_timeout +to +100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100 bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to(100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-100; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '10000US'; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; + set statement_timeout to '10000us'; +NEW_CONNECTION; + set statement_timeout to '10000us'; +NEW_CONNECTION; + + + +set statement_timeout to '10000us'; +NEW_CONNECTION; +set statement_timeout to '10000us' ; +NEW_CONNECTION; +set statement_timeout to '10000us' ; +NEW_CONNECTION; +set statement_timeout to '10000us' + +; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; +set +statement_timeout +to +'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'10000us'; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '9223372036854775807NS'; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true ; +set statement_timeout to '9223372036854775807ns' ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true ; +set statement_timeout to '9223372036854775807ns' ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true +set statement_timeout to '9223372036854775807ns' ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; set -spanner.retry_aborts_internally -= -true; +statement_timeout +to +'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally = true; +foo set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true bar; +set statement_timeout to '9223372036854775807ns' bar; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally = true; +%set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true%; +set statement_timeout to '9223372036854775807ns'%; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =%true; +set statement_timeout to%'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally = true; +_set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true_; +set statement_timeout to '9223372036854775807ns'_; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =_true; +set statement_timeout to_'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally = true; +&set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true&; +set statement_timeout to '9223372036854775807ns'&; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =&true; +set statement_timeout to&'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally = true; +$set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true$; +set statement_timeout to '9223372036854775807ns'$; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =$true; +set statement_timeout to$'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally = true; +@set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true@; +set statement_timeout to '9223372036854775807ns'@; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =@true; +set statement_timeout to@'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally = true; +!set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true!; +set statement_timeout to '9223372036854775807ns'!; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =!true; +set statement_timeout to!'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally = true; +*set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true*; +set statement_timeout to '9223372036854775807ns'*; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =*true; +set statement_timeout to*'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally = true; +(set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true(; +set statement_timeout to '9223372036854775807ns'(; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =(true; +set statement_timeout to('9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally = true; +)set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true); +set statement_timeout to '9223372036854775807ns'); NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =)true; +set statement_timeout to)'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally = true; +-set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true-; +set statement_timeout to '9223372036854775807ns'-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-true; +set statement_timeout to-'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally = true; ++set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true+; +set statement_timeout to '9223372036854775807ns'+; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =+true; +set statement_timeout to+'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally = true; +-#set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true-#; +set statement_timeout to '9223372036854775807ns'-#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-#true; +set statement_timeout to-#'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally = true; +/set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true/; +set statement_timeout to '9223372036854775807ns'/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/true; +set statement_timeout to/'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally = true; +\set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true\; +set statement_timeout to '9223372036854775807ns'\; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =\true; +set statement_timeout to\'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally = true; +?set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true?; +set statement_timeout to '9223372036854775807ns'?; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =?true; +set statement_timeout to?'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally = true; +-/set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true-/; +set statement_timeout to '9223372036854775807ns'-/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-/true; +set statement_timeout to-/'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally = true; +/#set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true/#; +set statement_timeout to '9223372036854775807ns'/#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/#true; +set statement_timeout to/#'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally = true; +/-set statement_timeout to '9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true/-; +set statement_timeout to '9223372036854775807ns'/-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/-true; +set statement_timeout to/-'9223372036854775807ns'; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false; +set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY = FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false; +set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally = false; + set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally = false; + set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false; +set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false ; +set transaction read only ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false ; +set transaction read only ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false +set transaction read only ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false; +set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally = false; +set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; set -spanner.retry_aborts_internally -= -false; +transaction +read +only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally = false; +foo set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false bar; +set transaction read only bar; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally = false; +%set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false%; +set transaction read only%; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =%false; +set transaction read%only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally = false; +_set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false_; +set transaction read only_; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =_false; +set transaction read_only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally = false; +&set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false&; +set transaction read only&; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =&false; +set transaction read&only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally = false; +$set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false$; +set transaction read only$; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =$false; +set transaction read$only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally = false; +@set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false@; +set transaction read only@; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =@false; +set transaction read@only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally = false; +!set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false!; +set transaction read only!; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =!false; +set transaction read!only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally = false; +*set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false*; +set transaction read only*; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =*false; +set transaction read*only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally = false; +(set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false(; +set transaction read only(; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =(false; +set transaction read(only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally = false; +)set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false); +set transaction read only); NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =)false; +set transaction read)only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally = false; +-set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false-; +set transaction read only-; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-false; +set transaction read-only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally = false; ++set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false+; +set transaction read only+; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =+false; +set transaction read+only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally = false; +-#set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false-#; +set transaction read only-#; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-#false; +set transaction read-#only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally = false; +/set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false/; +set transaction read only/; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/false; +set transaction read/only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally = false; +\set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false\; +set transaction read only\; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =\false; +set transaction read\only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally = false; +?set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false?; +set transaction read only?; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =?false; +set transaction read?only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally = false; +-/set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false-/; +set transaction read only-/; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-/false; +set transaction read-/only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally = false; +/#set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false/#; +set transaction read only/#; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/#false; +set transaction read/#only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally = false; +/-set transaction read only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false/-; +set transaction read only/-; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/-false; +set transaction read/-only; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true; +set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY TO TRUE; +SET TRANSACTION READ WRITE; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true; +set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally to true; + set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally to true; + set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true; +set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true ; +set transaction read write ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true ; +set transaction read write ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true +set transaction read write ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true; +set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to true; +set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; set -spanner.retry_aborts_internally -to -true; +transaction +read +write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally to true; +foo set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true bar; +set transaction read write bar; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally to true; +%set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true%; +set transaction read write%; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to%true; +set transaction read%write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally to true; +_set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true_; +set transaction read write_; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to_true; +set transaction read_write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally to true; +&set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true&; +set transaction read write&; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to&true; +set transaction read&write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally to true; +$set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true$; +set transaction read write$; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to$true; +set transaction read$write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally to true; +@set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true@; +set transaction read write@; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to@true; +set transaction read@write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally to true; +!set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true!; +set transaction read write!; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to!true; +set transaction read!write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally to true; +*set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true*; +set transaction read write*; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to*true; +set transaction read*write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally to true; +(set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true(; +set transaction read write(; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to(true; +set transaction read(write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally to true; +)set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true); +set transaction read write); NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to)true; +set transaction read)write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally to true; +-set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true-; +set transaction read write-; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-true; +set transaction read-write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally to true; ++set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true+; +set transaction read write+; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to+true; +set transaction read+write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally to true; +-#set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true-#; +set transaction read write-#; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-#true; +set transaction read-#write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally to true; +/set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true/; +set transaction read write/; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/true; +set transaction read/write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally to true; +\set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true\; +set transaction read write\; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to\true; +set transaction read\write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally to true; +?set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true?; +set transaction read write?; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to?true; +set transaction read?write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally to true; +-/set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true-/; +set transaction read write-/; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-/true; +set transaction read-/write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally to true; +/#set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true/#; +set transaction read write/#; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/#true; +set transaction read/#write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally to true; +/-set transaction read write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true/-; +set transaction read write/-; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/-true; +set transaction read/-write; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false; +set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY TO FALSE; +SET TRANSACTION ISOLATION LEVEL DEFAULT; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false; +set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally to false; + set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; - set spanner.retry_aborts_internally to false; + set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false; +set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false ; +set transaction isolation level default ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false ; +set transaction isolation level default ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false +set transaction isolation level default ; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false; +set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; -set spanner.retry_aborts_internally to false; +set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; set -spanner.retry_aborts_internally -to -false; +transaction +isolation +level +default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally to false; +foo set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false bar; +set transaction isolation level default bar; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally to false; +%set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false%; +set transaction isolation level default%; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to%false; +set transaction isolation level%default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally to false; +_set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false_; +set transaction isolation level default_; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to_false; +set transaction isolation level_default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally to false; +&set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false&; +set transaction isolation level default&; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to&false; +set transaction isolation level&default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally to false; +$set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false$; +set transaction isolation level default$; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to$false; +set transaction isolation level$default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally to false; +@set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false@; +set transaction isolation level default@; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to@false; +set transaction isolation level@default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally to false; +!set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false!; +set transaction isolation level default!; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to!false; +set transaction isolation level!default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally to false; +*set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false*; +set transaction isolation level default*; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to*false; +set transaction isolation level*default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally to false; +(set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false(; +set transaction isolation level default(; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to(false; +set transaction isolation level(default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally to false; +)set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false); +set transaction isolation level default); NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to)false; +set transaction isolation level)default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally to false; +-set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false-; +set transaction isolation level default-; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-false; +set transaction isolation level-default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally to false; ++set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false+; +set transaction isolation level default+; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to+false; +set transaction isolation level+default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally to false; +-#set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false-#; +set transaction isolation level default-#; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-#false; +set transaction isolation level-#default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally to false; +/set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false/; +set transaction isolation level default/; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/false; +set transaction isolation level/default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally to false; +\set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false\; +set transaction isolation level default\; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to\false; +set transaction isolation level\default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally to false; +?set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false?; +set transaction isolation level default?; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to?false; +set transaction isolation level?default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally to false; +-/set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false-/; +set transaction isolation level default-/; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-/false; +set transaction isolation level-/default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally to false; +/#set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false/#; +set transaction isolation level default/#; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/#false; +set transaction isolation level/#default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally to false; +/-set transaction isolation level default; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false/-; +set transaction isolation level default/-; NEW_CONNECTION; -set spanner.readonly = false; set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/-false; +set transaction isolation level/-default; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set autocommit = false; +set transaction isolation level serializable; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +set autocommit = false; +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; NEW_CONNECTION; -set spanner.autocommit_dml_mode='partitioned_non_atomic'; +set autocommit = false; +set transaction isolation level serializable; NEW_CONNECTION; - set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set autocommit = false; + set transaction isolation level serializable; NEW_CONNECTION; - set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set autocommit = false; + set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set autocommit = false; +set transaction isolation level serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set autocommit = false; +set transaction isolation level serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' +set autocommit = false; +set transaction isolation level serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set autocommit = false; +set transaction isolation level serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set autocommit = false; +set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; set -spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +transaction +isolation +level +serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +foo set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +set transaction isolation level serializable bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +%set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +set transaction isolation level serializable%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level%serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +_set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +set transaction isolation level serializable_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level_serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +&set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +set transaction isolation level serializable&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level&serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +$set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +set transaction isolation level serializable$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level$serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +@set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +set transaction isolation level serializable@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level@serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +!set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +set transaction isolation level serializable!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level!serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +*set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +set transaction isolation level serializable*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level*serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +(set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +set transaction isolation level serializable(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level(serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +)set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +set transaction isolation level serializable); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level)serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +set transaction isolation level serializable-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level-serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; ++set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +set transaction isolation level serializable+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level+serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-#set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +set transaction isolation level serializable-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level-#serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +set transaction isolation level serializable/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level/serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +\set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +set transaction isolation level serializable\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level\serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +?set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +set transaction isolation level serializable?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level?serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-/set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +set transaction isolation level serializable-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level-/serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/#set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +set transaction isolation level serializable/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level/#serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/-set transaction isolation level serializable; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +set transaction isolation level serializable/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set transaction isolation level/-serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read only; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY; NEW_CONNECTION; -set spanner.autocommit_dml_mode='transactional'; +set session characteristics as transaction read only; NEW_CONNECTION; - set spanner.autocommit_dml_mode='TRANSACTIONAL'; + set session characteristics as transaction read only; NEW_CONNECTION; - set spanner.autocommit_dml_mode='TRANSACTIONAL'; + set session characteristics as transaction read only; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read only; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +set session characteristics as transaction read only ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +set session characteristics as transaction read only ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL' +set session characteristics as transaction read only ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read only; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read only; NEW_CONNECTION; set -spanner.autocommit_dml_mode='TRANSACTIONAL'; +session +characteristics +as +transaction +read +only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode='TRANSACTIONAL'; +foo set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL' bar; +set session characteristics as transaction read only bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode='TRANSACTIONAL'; +%set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'%; +set session characteristics as transaction read only%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read%only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode='TRANSACTIONAL'; +_set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'_; +set session characteristics as transaction read only_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read_only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode='TRANSACTIONAL'; +&set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'&; +set session characteristics as transaction read only&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read&only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode='TRANSACTIONAL'; +$set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'$; +set session characteristics as transaction read only$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read$only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode='TRANSACTIONAL'; +@set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'@; +set session characteristics as transaction read only@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read@only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode='TRANSACTIONAL'; +!set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'!; +set session characteristics as transaction read only!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read!only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode='TRANSACTIONAL'; +*set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'*; +set session characteristics as transaction read only*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read*only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode='TRANSACTIONAL'; +(set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'(; +set session characteristics as transaction read only(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read(only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode='TRANSACTIONAL'; +)set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'); +set session characteristics as transaction read only); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read)only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode='TRANSACTIONAL'; +-set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'-; +set session characteristics as transaction read only-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read-only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode='TRANSACTIONAL'; ++set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'+; +set session characteristics as transaction read only+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read+only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +-#set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'-#; +set session characteristics as transaction read only-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read-#only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +/set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'/; +set session characteristics as transaction read only/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read/only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode='TRANSACTIONAL'; +\set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'\; +set session characteristics as transaction read only\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read\only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode='TRANSACTIONAL'; +?set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'?; +set session characteristics as transaction read only?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read?only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +-/set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'-/; +set session characteristics as transaction read only-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read-/only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +/#set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'/#; +set session characteristics as transaction read only/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read/#only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode='TRANSACTIONAL'; +/-set session characteristics as transaction read only; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'/-; +set session characteristics as transaction read only/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.autocommit_dml_mode='TRANSACTIONAL'; +set session characteristics as transaction read/-only; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read write; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE TO 'PARTITIONED_NON_ATOMIC'; +SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'partitioned_non_atomic'; +set session characteristics as transaction read write; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; + set session characteristics as transaction read write; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; + set session characteristics as transaction read write; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read write; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +set session characteristics as transaction read write ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +set session characteristics as transaction read write ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' +set session characteristics as transaction read write ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read write; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read write; NEW_CONNECTION; set -spanner.autocommit_dml_mode -to -'PARTITIONED_NON_ATOMIC'; +session +characteristics +as +transaction +read +write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +foo set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' bar; +set session characteristics as transaction read write bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +%set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'%; +set session characteristics as transaction read write%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to%'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read%write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +_set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'_; +set session characteristics as transaction read write_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to_'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +&set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'&; +set session characteristics as transaction read write&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to&'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read&write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +$set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'$; +set session characteristics as transaction read write$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to$'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read$write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +@set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'@; +set session characteristics as transaction read write@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to@'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read@write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +!set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'!; +set session characteristics as transaction read write!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to!'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read!write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +*set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'*; +set session characteristics as transaction read write*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to*'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read*write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +(set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'(; +set session characteristics as transaction read write(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to('PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read(write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +)set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'); +set session characteristics as transaction read write); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to)'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read)write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +-set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-; +set session characteristics as transaction read write-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read-write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; ++set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'+; +set session characteristics as transaction read write+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to+'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read+write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +-#set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-#; +set session characteristics as transaction read write-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-#'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read-#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +/set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/; +set session characteristics as transaction read write/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +\set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'\; +set session characteristics as transaction read write\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to\'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read\write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +?set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'?; +set session characteristics as transaction read write?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to?'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read?write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +-/set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-/; +set session characteristics as transaction read write-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-/'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read-/write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +/#set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/#; +set session characteristics as transaction read write/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/#'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read/#write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +/-set session characteristics as transaction read write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/-; +set session characteristics as transaction read write/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/-'PARTITIONED_NON_ATOMIC'; +set session characteristics as transaction read/-write; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set session characteristics as transaction isolation level default; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE TO 'TRANSACTIONAL'; +SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL DEFAULT; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'transactional'; +set session characteristics as transaction isolation level default; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; + set session characteristics as transaction isolation level default; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; + set session characteristics as transaction isolation level default; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set session characteristics as transaction isolation level default; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +set session characteristics as transaction isolation level default ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +set session characteristics as transaction isolation level default ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' +set session characteristics as transaction isolation level default ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set session characteristics as transaction isolation level default; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set session characteristics as transaction isolation level default; NEW_CONNECTION; set -spanner.autocommit_dml_mode -to -'TRANSACTIONAL'; +session +characteristics +as +transaction +isolation +level +default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +foo set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' bar; +set session characteristics as transaction isolation level default bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +%set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'%; +set session characteristics as transaction isolation level default%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to%'TRANSACTIONAL'; +set session characteristics as transaction isolation level%default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +_set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'_; +set session characteristics as transaction isolation level default_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to_'TRANSACTIONAL'; +set session characteristics as transaction isolation level_default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +&set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'&; +set session characteristics as transaction isolation level default&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to&'TRANSACTIONAL'; +set session characteristics as transaction isolation level&default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +$set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'$; +set session characteristics as transaction isolation level default$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to$'TRANSACTIONAL'; +set session characteristics as transaction isolation level$default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +@set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'@; +set session characteristics as transaction isolation level default@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to@'TRANSACTIONAL'; +set session characteristics as transaction isolation level@default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +!set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'!; +set session characteristics as transaction isolation level default!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to!'TRANSACTIONAL'; +set session characteristics as transaction isolation level!default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +*set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'*; +set session characteristics as transaction isolation level default*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to*'TRANSACTIONAL'; +set session characteristics as transaction isolation level*default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +(set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'(; +set session characteristics as transaction isolation level default(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to('TRANSACTIONAL'; +set session characteristics as transaction isolation level(default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +)set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'); +set session characteristics as transaction isolation level default); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to)'TRANSACTIONAL'; +set session characteristics as transaction isolation level)default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +-set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-; +set session characteristics as transaction isolation level default-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-'TRANSACTIONAL'; +set session characteristics as transaction isolation level-default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; ++set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'+; +set session characteristics as transaction isolation level default+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to+'TRANSACTIONAL'; +set session characteristics as transaction isolation level+default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +-#set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-#; +set session characteristics as transaction isolation level default-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-#'TRANSACTIONAL'; +set session characteristics as transaction isolation level-#default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +/set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/; +set session characteristics as transaction isolation level default/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/'TRANSACTIONAL'; +set session characteristics as transaction isolation level/default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +\set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'\; +set session characteristics as transaction isolation level default\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to\'TRANSACTIONAL'; +set session characteristics as transaction isolation level\default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +?set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'?; +set session characteristics as transaction isolation level default?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to?'TRANSACTIONAL'; +set session characteristics as transaction isolation level?default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +-/set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-/; +set session characteristics as transaction isolation level default-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-/'TRANSACTIONAL'; +set session characteristics as transaction isolation level-/default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +/#set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/#; +set session characteristics as transaction isolation level default/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/#'TRANSACTIONAL'; +set session characteristics as transaction isolation level/#default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +/-set session characteristics as transaction isolation level default; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/-; +set session characteristics as transaction isolation level default/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/-'TRANSACTIONAL'; +set session characteristics as transaction isolation level/-default; NEW_CONNECTION; -set statement_timeout=default; +set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -SET STATEMENT_TIMEOUT=DEFAULT; +SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE; NEW_CONNECTION; -set statement_timeout=default; +set session characteristics as transaction isolation level serializable; NEW_CONNECTION; - set statement_timeout=default; + set session characteristics as transaction isolation level serializable; NEW_CONNECTION; - set statement_timeout=default; + set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set statement_timeout=default; +set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set statement_timeout=default ; +set session characteristics as transaction isolation level serializable ; NEW_CONNECTION; -set statement_timeout=default ; +set session characteristics as transaction isolation level serializable ; NEW_CONNECTION; -set statement_timeout=default +set session characteristics as transaction isolation level serializable ; NEW_CONNECTION; -set statement_timeout=default; +set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set statement_timeout=default; +set session characteristics as transaction isolation level serializable; NEW_CONNECTION; set -statement_timeout=default; +session +characteristics +as +transaction +isolation +level +serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout=default; +foo set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default bar; +set session characteristics as transaction isolation level serializable bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout=default; +%set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default%; +set session characteristics as transaction isolation level serializable%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout=default; +set session characteristics as transaction isolation level%serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout=default; +_set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default_; +set session characteristics as transaction isolation level serializable_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout=default; +set session characteristics as transaction isolation level_serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout=default; +&set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default&; +set session characteristics as transaction isolation level serializable&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout=default; +set session characteristics as transaction isolation level&serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout=default; +$set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default$; +set session characteristics as transaction isolation level serializable$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout=default; +set session characteristics as transaction isolation level$serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout=default; +@set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default@; +set session characteristics as transaction isolation level serializable@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout=default; +set session characteristics as transaction isolation level@serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout=default; +!set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default!; +set session characteristics as transaction isolation level serializable!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout=default; +set session characteristics as transaction isolation level!serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout=default; +*set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default*; +set session characteristics as transaction isolation level serializable*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout=default; +set session characteristics as transaction isolation level*serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout=default; +(set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default(; +set session characteristics as transaction isolation level serializable(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout=default; +set session characteristics as transaction isolation level(serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout=default; +)set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default); +set session characteristics as transaction isolation level serializable); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout=default; +set session characteristics as transaction isolation level)serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout=default; +-set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default-; +set session characteristics as transaction isolation level serializable-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout=default; +set session characteristics as transaction isolation level-serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout=default; ++set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default+; +set session characteristics as transaction isolation level serializable+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout=default; +set session characteristics as transaction isolation level+serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout=default; +-#set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default-#; +set session characteristics as transaction isolation level serializable-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout=default; +set session characteristics as transaction isolation level-#serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout=default; +/set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default/; +set session characteristics as transaction isolation level serializable/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout=default; +set session characteristics as transaction isolation level/serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout=default; +\set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default\; +set session characteristics as transaction isolation level serializable\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout=default; +set session characteristics as transaction isolation level\serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout=default; +?set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default?; +set session characteristics as transaction isolation level serializable?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout=default; +set session characteristics as transaction isolation level?serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout=default; +-/set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default-/; +set session characteristics as transaction isolation level serializable-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout=default; +set session characteristics as transaction isolation level-/serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout=default; +/#set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default/#; +set session characteristics as transaction isolation level serializable/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout=default; +set session characteristics as transaction isolation level/#serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout=default; +/-set session characteristics as transaction isolation level serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default/-; +set session characteristics as transaction isolation level serializable/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout=default; +set session characteristics as transaction isolation level/-serializable; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation=serializable; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='1S'; +SET DEFAULT_TRANSACTION_ISOLATION=SERIALIZABLE; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation=serializable; NEW_CONNECTION; - set statement_timeout='1s'; + set default_transaction_isolation=serializable; NEW_CONNECTION; - set statement_timeout='1s'; + set default_transaction_isolation=serializable; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation=serializable; NEW_CONNECTION; -set statement_timeout='1s' ; +set default_transaction_isolation=serializable ; NEW_CONNECTION; -set statement_timeout='1s' ; +set default_transaction_isolation=serializable ; NEW_CONNECTION; -set statement_timeout='1s' +set default_transaction_isolation=serializable ; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation=serializable; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation=serializable; NEW_CONNECTION; set -statement_timeout='1s'; +default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='1s'; +foo set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s' bar; +set default_transaction_isolation=serializable bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='1s'; +%set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'%; +set default_transaction_isolation=serializable%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='1s'; +set%default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='1s'; +_set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'_; +set default_transaction_isolation=serializable_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='1s'; +set_default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='1s'; +&set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'&; +set default_transaction_isolation=serializable&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='1s'; +set&default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='1s'; +$set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'$; +set default_transaction_isolation=serializable$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='1s'; +set$default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='1s'; +@set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'@; +set default_transaction_isolation=serializable@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='1s'; +set@default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='1s'; +!set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'!; +set default_transaction_isolation=serializable!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='1s'; +set!default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='1s'; +*set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'*; +set default_transaction_isolation=serializable*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='1s'; +set*default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='1s'; +(set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'(; +set default_transaction_isolation=serializable(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='1s'; +set(default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='1s'; +)set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'); +set default_transaction_isolation=serializable); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='1s'; +set)default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='1s'; +-set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-; +set default_transaction_isolation=serializable-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='1s'; +set-default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='1s'; ++set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'+; +set default_transaction_isolation=serializable+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='1s'; +set+default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='1s'; +-#set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-#; +set default_transaction_isolation=serializable-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='1s'; +set-#default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='1s'; +/set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/; +set default_transaction_isolation=serializable/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='1s'; +set/default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='1s'; +\set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'\; +set default_transaction_isolation=serializable\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='1s'; +set\default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='1s'; +?set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'?; +set default_transaction_isolation=serializable?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='1s'; +set?default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='1s'; +-/set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-/; +set default_transaction_isolation=serializable-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='1s'; +set-/default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='1s'; +/#set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/#; +set default_transaction_isolation=serializable/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='1s'; +set/#default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='1s'; +/-set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/-; +set default_transaction_isolation=serializable/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='1s'; +set/-default_transaction_isolation=serializable; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to serializable; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='100MS'; +SET DEFAULT_TRANSACTION_ISOLATION TO SERIALIZABLE; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to serializable; NEW_CONNECTION; - set statement_timeout='100ms'; + set default_transaction_isolation to serializable; NEW_CONNECTION; - set statement_timeout='100ms'; + set default_transaction_isolation to serializable; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to serializable; NEW_CONNECTION; -set statement_timeout='100ms' ; +set default_transaction_isolation to serializable ; NEW_CONNECTION; -set statement_timeout='100ms' ; +set default_transaction_isolation to serializable ; NEW_CONNECTION; -set statement_timeout='100ms' +set default_transaction_isolation to serializable ; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to serializable; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to serializable; NEW_CONNECTION; set -statement_timeout='100ms'; +default_transaction_isolation +to +serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='100ms'; +foo set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms' bar; +set default_transaction_isolation to serializable bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='100ms'; +%set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'%; +set default_transaction_isolation to serializable%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='100ms'; +set default_transaction_isolation to%serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='100ms'; +_set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'_; +set default_transaction_isolation to serializable_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='100ms'; +set default_transaction_isolation to_serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='100ms'; +&set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'&; +set default_transaction_isolation to serializable&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='100ms'; +set default_transaction_isolation to&serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='100ms'; +$set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'$; +set default_transaction_isolation to serializable$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='100ms'; +set default_transaction_isolation to$serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='100ms'; +@set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'@; +set default_transaction_isolation to serializable@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='100ms'; +set default_transaction_isolation to@serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='100ms'; +!set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'!; +set default_transaction_isolation to serializable!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='100ms'; +set default_transaction_isolation to!serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='100ms'; +*set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'*; +set default_transaction_isolation to serializable*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='100ms'; +set default_transaction_isolation to*serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='100ms'; +(set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'(; +set default_transaction_isolation to serializable(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='100ms'; +set default_transaction_isolation to(serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='100ms'; +)set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'); +set default_transaction_isolation to serializable); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='100ms'; +set default_transaction_isolation to)serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='100ms'; +-set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-; +set default_transaction_isolation to serializable-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='100ms'; +set default_transaction_isolation to-serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='100ms'; ++set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'+; +set default_transaction_isolation to serializable+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='100ms'; +set default_transaction_isolation to+serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='100ms'; +-#set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-#; +set default_transaction_isolation to serializable-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='100ms'; +set default_transaction_isolation to-#serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='100ms'; +/set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/; +set default_transaction_isolation to serializable/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='100ms'; +set default_transaction_isolation to/serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='100ms'; +\set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'\; +set default_transaction_isolation to serializable\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='100ms'; +set default_transaction_isolation to\serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='100ms'; +?set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'?; +set default_transaction_isolation to serializable?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='100ms'; +set default_transaction_isolation to?serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='100ms'; +-/set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-/; +set default_transaction_isolation to serializable-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='100ms'; +set default_transaction_isolation to-/serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='100ms'; +/#set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/#; +set default_transaction_isolation to serializable/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='100ms'; +set default_transaction_isolation to/#serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='100ms'; +/-set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/-; +set default_transaction_isolation to serializable/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='100ms'; +set default_transaction_isolation to/-serializable; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT=100; +SET DEFAULT_TRANSACTION_ISOLATION TO 'SERIALIZABLE'; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; - set statement_timeout=100; + set default_transaction_isolation to 'serializable'; NEW_CONNECTION; - set statement_timeout=100; + set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -set statement_timeout=100 ; +set default_transaction_isolation to 'serializable' ; NEW_CONNECTION; -set statement_timeout=100 ; +set default_transaction_isolation to 'serializable' ; NEW_CONNECTION; -set statement_timeout=100 +set default_transaction_isolation to 'serializable' ; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; set -statement_timeout=100; +default_transaction_isolation +to +'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout=100; +foo set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100 bar; +set default_transaction_isolation to 'serializable' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout=100; +%set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100%; +set default_transaction_isolation to 'serializable'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout=100; +set default_transaction_isolation to%'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout=100; +_set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100_; +set default_transaction_isolation to 'serializable'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout=100; +set default_transaction_isolation to_'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout=100; +&set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100&; +set default_transaction_isolation to 'serializable'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout=100; +set default_transaction_isolation to&'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout=100; +$set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100$; +set default_transaction_isolation to 'serializable'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout=100; +set default_transaction_isolation to$'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout=100; +@set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100@; +set default_transaction_isolation to 'serializable'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout=100; +set default_transaction_isolation to@'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout=100; +!set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100!; +set default_transaction_isolation to 'serializable'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout=100; +set default_transaction_isolation to!'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout=100; +*set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100*; +set default_transaction_isolation to 'serializable'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout=100; +set default_transaction_isolation to*'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout=100; +(set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100(; +set default_transaction_isolation to 'serializable'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout=100; +set default_transaction_isolation to('serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout=100; +)set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100); +set default_transaction_isolation to 'serializable'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout=100; +set default_transaction_isolation to)'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout=100; +-set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100-; +set default_transaction_isolation to 'serializable'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout=100; +set default_transaction_isolation to-'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout=100; ++set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100+; +set default_transaction_isolation to 'serializable'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout=100; +set default_transaction_isolation to+'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout=100; +-#set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100-#; +set default_transaction_isolation to 'serializable'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout=100; +set default_transaction_isolation to-#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout=100; +/set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100/; +set default_transaction_isolation to 'serializable'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout=100; +set default_transaction_isolation to/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout=100; +\set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100\; +set default_transaction_isolation to 'serializable'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout=100; +set default_transaction_isolation to\'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout=100; +?set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100?; +set default_transaction_isolation to 'serializable'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout=100; +set default_transaction_isolation to?'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout=100; +-/set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100-/; +set default_transaction_isolation to 'serializable'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout=100; +set default_transaction_isolation to-/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout=100; +/#set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100/#; +set default_transaction_isolation to 'serializable'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout=100; +set default_transaction_isolation to/#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout=100; +/-set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100/-; +set default_transaction_isolation to 'serializable'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout=100; +set default_transaction_isolation to/-'serializable'; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='10000US'; +SET DEFAULT_TRANSACTION_ISOLATION = 'SERIALIZABLE'; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; - set statement_timeout='10000us'; + set default_transaction_isolation = 'serializable'; NEW_CONNECTION; - set statement_timeout='10000us'; + set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -set statement_timeout='10000us' ; +set default_transaction_isolation = 'serializable' ; NEW_CONNECTION; -set statement_timeout='10000us' ; +set default_transaction_isolation = 'serializable' ; NEW_CONNECTION; -set statement_timeout='10000us' +set default_transaction_isolation = 'serializable' ; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; set -statement_timeout='10000us'; +default_transaction_isolation += +'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='10000us'; +foo set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us' bar; +set default_transaction_isolation = 'serializable' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='10000us'; +%set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'%; +set default_transaction_isolation = 'serializable'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='10000us'; +set default_transaction_isolation =%'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='10000us'; +_set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'_; +set default_transaction_isolation = 'serializable'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='10000us'; +set default_transaction_isolation =_'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='10000us'; +&set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'&; +set default_transaction_isolation = 'serializable'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='10000us'; +set default_transaction_isolation =&'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='10000us'; +$set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'$; +set default_transaction_isolation = 'serializable'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='10000us'; +set default_transaction_isolation =$'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='10000us'; +@set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'@; +set default_transaction_isolation = 'serializable'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='10000us'; +set default_transaction_isolation =@'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='10000us'; +!set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'!; +set default_transaction_isolation = 'serializable'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='10000us'; +set default_transaction_isolation =!'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='10000us'; +*set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'*; +set default_transaction_isolation = 'serializable'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='10000us'; +set default_transaction_isolation =*'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='10000us'; +(set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'(; +set default_transaction_isolation = 'serializable'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='10000us'; +set default_transaction_isolation =('serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='10000us'; +)set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'); +set default_transaction_isolation = 'serializable'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='10000us'; +set default_transaction_isolation =)'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='10000us'; +-set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-; +set default_transaction_isolation = 'serializable'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='10000us'; +set default_transaction_isolation =-'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='10000us'; ++set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'+; +set default_transaction_isolation = 'serializable'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='10000us'; +set default_transaction_isolation =+'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='10000us'; +-#set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-#; +set default_transaction_isolation = 'serializable'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='10000us'; +set default_transaction_isolation =-#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='10000us'; +/set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/; +set default_transaction_isolation = 'serializable'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='10000us'; +set default_transaction_isolation =/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='10000us'; +\set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'\; +set default_transaction_isolation = 'serializable'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='10000us'; +set default_transaction_isolation =\'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='10000us'; +?set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'?; +set default_transaction_isolation = 'serializable'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='10000us'; +set default_transaction_isolation =?'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='10000us'; +-/set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-/; +set default_transaction_isolation = 'serializable'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='10000us'; +set default_transaction_isolation =-/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='10000us'; +/#set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/#; +set default_transaction_isolation = 'serializable'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='10000us'; +set default_transaction_isolation =/#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='10000us'; +/-set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/-; +set default_transaction_isolation = 'serializable'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='10000us'; +set default_transaction_isolation =/-'serializable'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='9223372036854775807NS'; +SET DEFAULT_TRANSACTION_ISOLATION = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_isolation = "serializable"; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set default_transaction_isolation = "SERIALIZABLE" ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set default_transaction_isolation = "SERIALIZABLE" ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' +set default_transaction_isolation = "SERIALIZABLE" ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; set -statement_timeout='9223372036854775807ns'; +default_transaction_isolation += +"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='9223372036854775807ns'; +foo set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns' bar; +set default_transaction_isolation = "SERIALIZABLE" bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='9223372036854775807ns'; +%set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'%; +set default_transaction_isolation = "SERIALIZABLE"%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =%"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='9223372036854775807ns'; +_set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'_; +set default_transaction_isolation = "SERIALIZABLE"_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =_"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='9223372036854775807ns'; +&set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'&; +set default_transaction_isolation = "SERIALIZABLE"&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =&"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='9223372036854775807ns'; +$set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'$; +set default_transaction_isolation = "SERIALIZABLE"$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =$"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='9223372036854775807ns'; +@set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'@; +set default_transaction_isolation = "SERIALIZABLE"@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =@"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='9223372036854775807ns'; +!set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'!; +set default_transaction_isolation = "SERIALIZABLE"!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =!"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='9223372036854775807ns'; +*set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'*; +set default_transaction_isolation = "SERIALIZABLE"*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =*"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='9223372036854775807ns'; +(set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'(; +set default_transaction_isolation = "SERIALIZABLE"(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =("SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='9223372036854775807ns'; +)set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'); +set default_transaction_isolation = "SERIALIZABLE"); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =)"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='9223372036854775807ns'; +-set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-; +set default_transaction_isolation = "SERIALIZABLE"-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =-"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='9223372036854775807ns'; ++set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'+; +set default_transaction_isolation = "SERIALIZABLE"+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =+"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='9223372036854775807ns'; +-#set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-#; +set default_transaction_isolation = "SERIALIZABLE"-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =-#"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='9223372036854775807ns'; +/set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/; +set default_transaction_isolation = "SERIALIZABLE"/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =/"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='9223372036854775807ns'; +\set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'\; +set default_transaction_isolation = "SERIALIZABLE"\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =\"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='9223372036854775807ns'; +?set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'?; +set default_transaction_isolation = "SERIALIZABLE"?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =?"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='9223372036854775807ns'; +-/set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-/; +set default_transaction_isolation = "SERIALIZABLE"-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =-/"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='9223372036854775807ns'; +/#set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/#; +set default_transaction_isolation = "SERIALIZABLE"/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =/#"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='9223372036854775807ns'; +/-set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/-; +set default_transaction_isolation = "SERIALIZABLE"/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='9223372036854775807ns'; +set default_transaction_isolation =/-"SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = true; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO DEFAULT; +SET DEFAULT_TRANSACTION_READ_ONLY = TRUE; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = true; NEW_CONNECTION; - set statement_timeout to default; + set default_transaction_read_only = true; NEW_CONNECTION; - set statement_timeout to default; + set default_transaction_read_only = true; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = true; NEW_CONNECTION; -set statement_timeout to default ; +set default_transaction_read_only = true ; NEW_CONNECTION; -set statement_timeout to default ; +set default_transaction_read_only = true ; NEW_CONNECTION; -set statement_timeout to default +set default_transaction_read_only = true ; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = true; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = true; NEW_CONNECTION; set -statement_timeout -to -default; +default_transaction_read_only += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to default; +foo set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default bar; +set default_transaction_read_only = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to default; +%set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default%; +set default_transaction_read_only = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%default; +set default_transaction_read_only =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to default; +_set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default_; +set default_transaction_read_only = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_default; +set default_transaction_read_only =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to default; +&set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default&; +set default_transaction_read_only = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&default; +set default_transaction_read_only =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to default; +$set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default$; +set default_transaction_read_only = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$default; +set default_transaction_read_only =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to default; +@set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default@; +set default_transaction_read_only = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@default; +set default_transaction_read_only =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to default; +!set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default!; +set default_transaction_read_only = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!default; +set default_transaction_read_only =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to default; +*set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default*; +set default_transaction_read_only = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*default; +set default_transaction_read_only =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to default; +(set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default(; +set default_transaction_read_only = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to(default; +set default_transaction_read_only =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to default; +)set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default); +set default_transaction_read_only = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)default; +set default_transaction_read_only =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to default; +-set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default-; +set default_transaction_read_only = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-default; +set default_transaction_read_only =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to default; ++set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default+; +set default_transaction_read_only = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+default; +set default_transaction_read_only =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to default; +-#set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default-#; +set default_transaction_read_only = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#default; +set default_transaction_read_only =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to default; +/set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default/; +set default_transaction_read_only = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/default; +set default_transaction_read_only =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to default; +\set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default\; +set default_transaction_read_only = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\default; +set default_transaction_read_only =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to default; +?set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default?; +set default_transaction_read_only = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?default; +set default_transaction_read_only =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to default; +-/set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default-/; +set default_transaction_read_only = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/default; +set default_transaction_read_only =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to default; +/#set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default/#; +set default_transaction_read_only = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#default; +set default_transaction_read_only =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to default; +/-set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default/-; +set default_transaction_read_only = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-default; +set default_transaction_read_only =/-true; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only = false; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '1S'; +SET DEFAULT_TRANSACTION_READ_ONLY = FALSE; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only = false; NEW_CONNECTION; - set statement_timeout to '1s'; + set default_transaction_read_only = false; NEW_CONNECTION; - set statement_timeout to '1s'; + set default_transaction_read_only = false; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only = false; NEW_CONNECTION; -set statement_timeout to '1s' ; +set default_transaction_read_only = false ; NEW_CONNECTION; -set statement_timeout to '1s' ; +set default_transaction_read_only = false ; NEW_CONNECTION; -set statement_timeout to '1s' +set default_transaction_read_only = false ; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only = false; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only = false; NEW_CONNECTION; set -statement_timeout -to -'1s'; +default_transaction_read_only += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '1s'; +foo set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s' bar; +set default_transaction_read_only = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '1s'; +%set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'%; +set default_transaction_read_only = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'1s'; +set default_transaction_read_only =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '1s'; +_set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'_; +set default_transaction_read_only = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'1s'; +set default_transaction_read_only =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '1s'; +&set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'&; +set default_transaction_read_only = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'1s'; +set default_transaction_read_only =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '1s'; +$set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'$; +set default_transaction_read_only = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'1s'; +set default_transaction_read_only =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '1s'; +@set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'@; +set default_transaction_read_only = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'1s'; +set default_transaction_read_only =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '1s'; +!set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'!; +set default_transaction_read_only = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'1s'; +set default_transaction_read_only =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '1s'; +*set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'*; +set default_transaction_read_only = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'1s'; +set default_transaction_read_only =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '1s'; +(set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'(; +set default_transaction_read_only = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('1s'; +set default_transaction_read_only =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '1s'; +)set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'); +set default_transaction_read_only = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'1s'; +set default_transaction_read_only =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '1s'; +-set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'-; +set default_transaction_read_only = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'1s'; +set default_transaction_read_only =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '1s'; ++set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'+; +set default_transaction_read_only = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'1s'; +set default_transaction_read_only =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '1s'; +-#set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'-#; +set default_transaction_read_only = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'1s'; +set default_transaction_read_only =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '1s'; +/set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'/; +set default_transaction_read_only = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'1s'; +set default_transaction_read_only =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '1s'; +\set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'\; +set default_transaction_read_only = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'1s'; +set default_transaction_read_only =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '1s'; +?set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'?; +set default_transaction_read_only = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'1s'; +set default_transaction_read_only =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '1s'; +-/set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'-/; +set default_transaction_read_only = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'1s'; +set default_transaction_read_only =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '1s'; +/#set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'/#; +set default_transaction_read_only = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'1s'; +set default_transaction_read_only =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '1s'; +/-set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'/-; +set default_transaction_read_only = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'1s'; +set default_transaction_read_only =/-false; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only = t; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '100MS'; +SET DEFAULT_TRANSACTION_READ_ONLY = T; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only = t; NEW_CONNECTION; - set statement_timeout to '100ms'; + set default_transaction_read_only = t; NEW_CONNECTION; - set statement_timeout to '100ms'; + set default_transaction_read_only = t; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only = t; NEW_CONNECTION; -set statement_timeout to '100ms' ; +set default_transaction_read_only = t ; NEW_CONNECTION; -set statement_timeout to '100ms' ; +set default_transaction_read_only = t ; NEW_CONNECTION; -set statement_timeout to '100ms' +set default_transaction_read_only = t ; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only = t; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only = t; NEW_CONNECTION; set -statement_timeout -to -'100ms'; +default_transaction_read_only += +t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '100ms'; +foo set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms' bar; +set default_transaction_read_only = t bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '100ms'; +%set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'%; +set default_transaction_read_only = t%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'100ms'; +set default_transaction_read_only =%t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '100ms'; +_set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'_; +set default_transaction_read_only = t_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'100ms'; +set default_transaction_read_only =_t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '100ms'; +&set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'&; +set default_transaction_read_only = t&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'100ms'; +set default_transaction_read_only =&t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '100ms'; +$set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'$; +set default_transaction_read_only = t$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'100ms'; +set default_transaction_read_only =$t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '100ms'; +@set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'@; +set default_transaction_read_only = t@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'100ms'; +set default_transaction_read_only =@t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '100ms'; +!set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'!; +set default_transaction_read_only = t!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'100ms'; +set default_transaction_read_only =!t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '100ms'; +*set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'*; +set default_transaction_read_only = t*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'100ms'; +set default_transaction_read_only =*t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '100ms'; +(set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'(; +set default_transaction_read_only = t(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('100ms'; +set default_transaction_read_only =(t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '100ms'; +)set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'); +set default_transaction_read_only = t); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'100ms'; +set default_transaction_read_only =)t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '100ms'; +-set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'-; +set default_transaction_read_only = t-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'100ms'; +set default_transaction_read_only =-t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '100ms'; ++set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'+; +set default_transaction_read_only = t+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'100ms'; +set default_transaction_read_only =+t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '100ms'; +-#set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'-#; +set default_transaction_read_only = t-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'100ms'; +set default_transaction_read_only =-#t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '100ms'; +/set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'/; +set default_transaction_read_only = t/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'100ms'; +set default_transaction_read_only =/t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '100ms'; +\set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'\; +set default_transaction_read_only = t\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'100ms'; +set default_transaction_read_only =\t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '100ms'; +?set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'?; +set default_transaction_read_only = t?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'100ms'; +set default_transaction_read_only =?t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '100ms'; +-/set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'-/; +set default_transaction_read_only = t-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'100ms'; +set default_transaction_read_only =-/t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '100ms'; +/#set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'/#; +set default_transaction_read_only = t/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'100ms'; +set default_transaction_read_only =/#t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '100ms'; +/-set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'/-; +set default_transaction_read_only = t/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'100ms'; +set default_transaction_read_only =/-t; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = f; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO 100; +SET DEFAULT_TRANSACTION_READ_ONLY = F; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = f; NEW_CONNECTION; - set statement_timeout to 100; + set default_transaction_read_only = f; NEW_CONNECTION; - set statement_timeout to 100; + set default_transaction_read_only = f; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = f; NEW_CONNECTION; -set statement_timeout to 100 ; +set default_transaction_read_only = f ; NEW_CONNECTION; -set statement_timeout to 100 ; +set default_transaction_read_only = f ; NEW_CONNECTION; -set statement_timeout to 100 +set default_transaction_read_only = f ; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = f; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = f; NEW_CONNECTION; set -statement_timeout -to -100; +default_transaction_read_only += +f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to 100; +foo set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100 bar; +set default_transaction_read_only = f bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to 100; +%set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100%; +set default_transaction_read_only = f%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%100; +set default_transaction_read_only =%f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to 100; +_set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100_; +set default_transaction_read_only = f_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_100; +set default_transaction_read_only =_f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to 100; +&set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100&; +set default_transaction_read_only = f&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&100; +set default_transaction_read_only =&f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to 100; +$set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100$; +set default_transaction_read_only = f$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$100; +set default_transaction_read_only =$f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to 100; +@set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100@; +set default_transaction_read_only = f@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@100; +set default_transaction_read_only =@f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to 100; +!set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100!; +set default_transaction_read_only = f!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!100; +set default_transaction_read_only =!f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to 100; +*set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100*; +set default_transaction_read_only = f*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*100; +set default_transaction_read_only =*f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to 100; +(set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100(; +set default_transaction_read_only = f(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to(100; +set default_transaction_read_only =(f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to 100; +)set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100); +set default_transaction_read_only = f); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)100; +set default_transaction_read_only =)f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to 100; +-set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100-; +set default_transaction_read_only = f-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-100; +set default_transaction_read_only =-f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to 100; ++set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100+; +set default_transaction_read_only = f+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+100; +set default_transaction_read_only =+f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to 100; +-#set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100-#; +set default_transaction_read_only = f-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#100; +set default_transaction_read_only =-#f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to 100; +/set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100/; +set default_transaction_read_only = f/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/100; +set default_transaction_read_only =/f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to 100; +\set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100\; +set default_transaction_read_only = f\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\100; +set default_transaction_read_only =\f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to 100; +?set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100?; +set default_transaction_read_only = f?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?100; +set default_transaction_read_only =?f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to 100; +-/set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100-/; +set default_transaction_read_only = f-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/100; +set default_transaction_read_only =-/f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to 100; +/#set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100/#; +set default_transaction_read_only = f/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#100; +set default_transaction_read_only =/#f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to 100; +/-set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100/-; +set default_transaction_read_only = f/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-100; +set default_transaction_read_only =/-f; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only to 't'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '10000US'; +SET DEFAULT_TRANSACTION_READ_ONLY TO 'T'; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only to 't'; NEW_CONNECTION; - set statement_timeout to '10000us'; + set default_transaction_read_only to 't'; NEW_CONNECTION; - set statement_timeout to '10000us'; + set default_transaction_read_only to 't'; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only to 't'; NEW_CONNECTION; -set statement_timeout to '10000us' ; +set default_transaction_read_only to 't' ; NEW_CONNECTION; -set statement_timeout to '10000us' ; +set default_transaction_read_only to 't' ; NEW_CONNECTION; -set statement_timeout to '10000us' +set default_transaction_read_only to 't' ; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only to 't'; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only to 't'; NEW_CONNECTION; set -statement_timeout +default_transaction_read_only to -'10000us'; +'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '10000us'; +foo set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us' bar; +set default_transaction_read_only to 't' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '10000us'; +%set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'%; +set default_transaction_read_only to 't'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'10000us'; +set default_transaction_read_only to%'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '10000us'; +_set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'_; +set default_transaction_read_only to 't'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'10000us'; +set default_transaction_read_only to_'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '10000us'; +&set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'&; +set default_transaction_read_only to 't'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'10000us'; +set default_transaction_read_only to&'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '10000us'; +$set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'$; +set default_transaction_read_only to 't'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'10000us'; +set default_transaction_read_only to$'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '10000us'; +@set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'@; +set default_transaction_read_only to 't'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'10000us'; +set default_transaction_read_only to@'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '10000us'; +!set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'!; +set default_transaction_read_only to 't'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'10000us'; +set default_transaction_read_only to!'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '10000us'; +*set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'*; +set default_transaction_read_only to 't'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'10000us'; +set default_transaction_read_only to*'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '10000us'; +(set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'(; +set default_transaction_read_only to 't'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('10000us'; +set default_transaction_read_only to('t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '10000us'; +)set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'); +set default_transaction_read_only to 't'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'10000us'; +set default_transaction_read_only to)'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '10000us'; +-set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'-; +set default_transaction_read_only to 't'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'10000us'; +set default_transaction_read_only to-'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '10000us'; ++set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'+; +set default_transaction_read_only to 't'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'10000us'; +set default_transaction_read_only to+'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '10000us'; +-#set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'-#; +set default_transaction_read_only to 't'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'10000us'; +set default_transaction_read_only to-#'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '10000us'; +/set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'/; +set default_transaction_read_only to 't'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'10000us'; +set default_transaction_read_only to/'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '10000us'; +\set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'\; +set default_transaction_read_only to 't'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'10000us'; +set default_transaction_read_only to\'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '10000us'; +?set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'?; +set default_transaction_read_only to 't'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'10000us'; +set default_transaction_read_only to?'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '10000us'; +-/set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'-/; +set default_transaction_read_only to 't'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'10000us'; +set default_transaction_read_only to-/'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '10000us'; +/#set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'/#; +set default_transaction_read_only to 't'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'10000us'; +set default_transaction_read_only to/#'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '10000us'; +/-set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'/-; +set default_transaction_read_only to 't'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'10000us'; +set default_transaction_read_only to/-'t'; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only to "f"; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '9223372036854775807NS'; +SET DEFAULT_TRANSACTION_READ_ONLY TO "F"; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only to "f"; NEW_CONNECTION; - set statement_timeout to '9223372036854775807ns'; + set default_transaction_read_only to "f"; NEW_CONNECTION; - set statement_timeout to '9223372036854775807ns'; + set default_transaction_read_only to "f"; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only to "f"; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns' ; +set default_transaction_read_only to "f" ; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns' ; +set default_transaction_read_only to "f" ; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns' +set default_transaction_read_only to "f" ; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only to "f"; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only to "f"; NEW_CONNECTION; set -statement_timeout +default_transaction_read_only to -'9223372036854775807ns'; +"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '9223372036854775807ns'; +foo set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns' bar; +set default_transaction_read_only to "f" bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '9223372036854775807ns'; +%set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'%; +set default_transaction_read_only to "f"%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'9223372036854775807ns'; +set default_transaction_read_only to%"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '9223372036854775807ns'; +_set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'_; +set default_transaction_read_only to "f"_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'9223372036854775807ns'; +set default_transaction_read_only to_"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '9223372036854775807ns'; +&set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'&; +set default_transaction_read_only to "f"&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'9223372036854775807ns'; +set default_transaction_read_only to&"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '9223372036854775807ns'; +$set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'$; +set default_transaction_read_only to "f"$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'9223372036854775807ns'; +set default_transaction_read_only to$"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '9223372036854775807ns'; +@set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'@; +set default_transaction_read_only to "f"@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'9223372036854775807ns'; +set default_transaction_read_only to@"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '9223372036854775807ns'; +!set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'!; +set default_transaction_read_only to "f"!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'9223372036854775807ns'; +set default_transaction_read_only to!"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '9223372036854775807ns'; +*set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'*; +set default_transaction_read_only to "f"*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'9223372036854775807ns'; +set default_transaction_read_only to*"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '9223372036854775807ns'; +(set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'(; +set default_transaction_read_only to "f"(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('9223372036854775807ns'; +set default_transaction_read_only to("f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '9223372036854775807ns'; +)set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'); +set default_transaction_read_only to "f"); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'9223372036854775807ns'; +set default_transaction_read_only to)"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '9223372036854775807ns'; +-set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'-; +set default_transaction_read_only to "f"-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'9223372036854775807ns'; +set default_transaction_read_only to-"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '9223372036854775807ns'; ++set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'+; +set default_transaction_read_only to "f"+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'9223372036854775807ns'; +set default_transaction_read_only to+"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '9223372036854775807ns'; +-#set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'-#; +set default_transaction_read_only to "f"-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'9223372036854775807ns'; +set default_transaction_read_only to-#"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '9223372036854775807ns'; +/set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'/; +set default_transaction_read_only to "f"/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'9223372036854775807ns'; +set default_transaction_read_only to/"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '9223372036854775807ns'; +\set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'\; +set default_transaction_read_only to "f"\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'9223372036854775807ns'; +set default_transaction_read_only to\"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '9223372036854775807ns'; +?set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'?; +set default_transaction_read_only to "f"?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'9223372036854775807ns'; +set default_transaction_read_only to?"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '9223372036854775807ns'; +-/set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'-/; +set default_transaction_read_only to "f"-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'9223372036854775807ns'; +set default_transaction_read_only to-/"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '9223372036854775807ns'; +/#set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'/#; +set default_transaction_read_only to "f"/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'9223372036854775807ns'; +set default_transaction_read_only to/#"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '9223372036854775807ns'; +/-set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'/-; +set default_transaction_read_only to "f"/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'9223372036854775807ns'; +set default_transaction_read_only to/-"f"; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ ONLY; +SET DEFAULT_TRANSACTION_READ_ONLY = ON; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set default_transaction_read_only = on ; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set default_transaction_read_only = on ; NEW_CONNECTION; -set autocommit = false; -set transaction read only +set default_transaction_read_only = on ; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; set -transaction -read -only; +default_transaction_read_only += +on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read only; +foo set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only bar; +set default_transaction_read_only = on bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read only; +%set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only%; +set default_transaction_read_only = on%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%only; +set default_transaction_read_only =%on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read only; +_set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only_; +set default_transaction_read_only = on_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_only; +set default_transaction_read_only =_on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read only; +&set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only&; +set default_transaction_read_only = on&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&only; +set default_transaction_read_only =&on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read only; +$set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only$; +set default_transaction_read_only = on$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$only; +set default_transaction_read_only =$on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read only; +@set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only@; +set default_transaction_read_only = on@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@only; +set default_transaction_read_only =@on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read only; +!set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only!; +set default_transaction_read_only = on!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!only; +set default_transaction_read_only =!on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read only; +*set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only*; +set default_transaction_read_only = on*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*only; +set default_transaction_read_only =*on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read only; +(set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only(; +set default_transaction_read_only = on(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(only; +set default_transaction_read_only =(on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read only; +)set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only); +set default_transaction_read_only = on); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)only; +set default_transaction_read_only =)on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read only; +-set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-; +set default_transaction_read_only = on-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-only; +set default_transaction_read_only =-on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read only; ++set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only+; +set default_transaction_read_only = on+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+only; +set default_transaction_read_only =+on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read only; +-#set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-#; +set default_transaction_read_only = on-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#only; +set default_transaction_read_only =-#on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read only; +/set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/; +set default_transaction_read_only = on/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/only; +set default_transaction_read_only =/on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read only; +\set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only\; +set default_transaction_read_only = on\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\only; +set default_transaction_read_only =\on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read only; +?set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only?; +set default_transaction_read_only = on?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?only; +set default_transaction_read_only =?on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read only; +-/set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-/; +set default_transaction_read_only = on-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/only; +set default_transaction_read_only =-/on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read only; +/#set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/#; +set default_transaction_read_only = on/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#only; +set default_transaction_read_only =/#on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read only; +/-set default_transaction_read_only = on; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/-; +set default_transaction_read_only = on/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-only; +set default_transaction_read_only =/-on; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ WRITE; +SET DEFAULT_TRANSACTION_READ_ONLY = OFF; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set default_transaction_read_only = off ; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set default_transaction_read_only = off ; NEW_CONNECTION; -set autocommit = false; -set transaction read write +set default_transaction_read_only = off ; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; set -transaction -read -write; +default_transaction_read_only += +off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read write; +foo set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write bar; +set default_transaction_read_only = off bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read write; +%set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write%; +set default_transaction_read_only = off%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%write; +set default_transaction_read_only =%off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read write; +_set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write_; +set default_transaction_read_only = off_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_write; +set default_transaction_read_only =_off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read write; +&set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write&; +set default_transaction_read_only = off&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&write; +set default_transaction_read_only =&off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read write; +$set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write$; +set default_transaction_read_only = off$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$write; +set default_transaction_read_only =$off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read write; +@set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write@; +set default_transaction_read_only = off@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@write; +set default_transaction_read_only =@off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read write; +!set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write!; +set default_transaction_read_only = off!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!write; +set default_transaction_read_only =!off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read write; +*set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write*; +set default_transaction_read_only = off*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*write; +set default_transaction_read_only =*off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read write; +(set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write(; +set default_transaction_read_only = off(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(write; +set default_transaction_read_only =(off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read write; +)set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write); +set default_transaction_read_only = off); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)write; +set default_transaction_read_only =)off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read write; +-set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-; +set default_transaction_read_only = off-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-write; +set default_transaction_read_only =-off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read write; ++set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write+; +set default_transaction_read_only = off+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+write; +set default_transaction_read_only =+off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read write; +-#set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-#; +set default_transaction_read_only = off-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#write; +set default_transaction_read_only =-#off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read write; +/set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/; +set default_transaction_read_only = off/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/write; +set default_transaction_read_only =/off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read write; +\set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write\; +set default_transaction_read_only = off\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\write; +set default_transaction_read_only =\off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read write; +?set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write?; +set default_transaction_read_only = off?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?write; +set default_transaction_read_only =?off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read write; +-/set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-/; +set default_transaction_read_only = off-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/write; +set default_transaction_read_only =-/off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read write; +/#set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/#; +set default_transaction_read_only = off/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#write; +set default_transaction_read_only =/#off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read write; +/-set default_transaction_read_only = off; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/-; +set default_transaction_read_only = off/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-write; +set default_transaction_read_only =/-off; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION ISOLATION LEVEL DEFAULT; +SET DEFAULT_TRANSACTION_READ_ONLY = 1; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level default; + set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level default; + set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default ; +set default_transaction_read_only = 1 ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default ; +set default_transaction_read_only = 1 ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default +set default_transaction_read_only = 1 ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; set -transaction -isolation -level -default; +default_transaction_read_only += +1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction isolation level default; +foo set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default bar; +set default_transaction_read_only = 1 bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction isolation level default; +%set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default%; +set default_transaction_read_only = 1%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level%default; +set default_transaction_read_only =%1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction isolation level default; +_set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default_; +set default_transaction_read_only = 1_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level_default; +set default_transaction_read_only =_1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction isolation level default; +&set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default&; +set default_transaction_read_only = 1&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level&default; +set default_transaction_read_only =&1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction isolation level default; +$set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default$; +set default_transaction_read_only = 1$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level$default; +set default_transaction_read_only =$1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction isolation level default; +@set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default@; +set default_transaction_read_only = 1@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level@default; +set default_transaction_read_only =@1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction isolation level default; +!set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default!; +set default_transaction_read_only = 1!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level!default; +set default_transaction_read_only =!1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction isolation level default; +*set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default*; +set default_transaction_read_only = 1*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level*default; +set default_transaction_read_only =*1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction isolation level default; +(set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default(; +set default_transaction_read_only = 1(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level(default; +set default_transaction_read_only =(1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction isolation level default; +)set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default); +set default_transaction_read_only = 1); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level)default; +set default_transaction_read_only =)1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction isolation level default; +-set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default-; +set default_transaction_read_only = 1-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-default; +set default_transaction_read_only =-1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction isolation level default; ++set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default+; +set default_transaction_read_only = 1+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level+default; +set default_transaction_read_only =+1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction isolation level default; +-#set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default-#; +set default_transaction_read_only = 1-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-#default; +set default_transaction_read_only =-#1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction isolation level default; +/set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default/; +set default_transaction_read_only = 1/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/default; +set default_transaction_read_only =/1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction isolation level default; +\set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default\; +set default_transaction_read_only = 1\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level\default; +set default_transaction_read_only =\1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction isolation level default; +?set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default?; +set default_transaction_read_only = 1?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level?default; +set default_transaction_read_only =?1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction isolation level default; +-/set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default-/; +set default_transaction_read_only = 1-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-/default; +set default_transaction_read_only =-/1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction isolation level default; +/#set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default/#; +set default_transaction_read_only = 1/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/#default; +set default_transaction_read_only =/#1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction isolation level default; +/-set default_transaction_read_only = 1; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default/-; +set default_transaction_read_only = 1/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/-default; +set default_transaction_read_only =/-1; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +SET DEFAULT_TRANSACTION_READ_ONLY = 0; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level serializable; + set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level serializable; + set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable ; +set default_transaction_read_only = 0 ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable ; +set default_transaction_read_only = 0 ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable +set default_transaction_read_only = 0 ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; set -transaction -isolation -level -serializable; +default_transaction_read_only += +0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction isolation level serializable; +foo set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable bar; +set default_transaction_read_only = 0 bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction isolation level serializable; +%set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable%; +set default_transaction_read_only = 0%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level%serializable; +set default_transaction_read_only =%0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction isolation level serializable; +_set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable_; +set default_transaction_read_only = 0_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level_serializable; +set default_transaction_read_only =_0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction isolation level serializable; +&set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable&; +set default_transaction_read_only = 0&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level&serializable; +set default_transaction_read_only =&0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction isolation level serializable; +$set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable$; +set default_transaction_read_only = 0$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level$serializable; +set default_transaction_read_only =$0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction isolation level serializable; +@set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable@; +set default_transaction_read_only = 0@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level@serializable; +set default_transaction_read_only =@0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction isolation level serializable; +!set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable!; +set default_transaction_read_only = 0!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level!serializable; +set default_transaction_read_only =!0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction isolation level serializable; +*set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable*; +set default_transaction_read_only = 0*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level*serializable; +set default_transaction_read_only =*0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction isolation level serializable; +(set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable(; +set default_transaction_read_only = 0(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level(serializable; +set default_transaction_read_only =(0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction isolation level serializable; +)set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable); +set default_transaction_read_only = 0); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level)serializable; +set default_transaction_read_only =)0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction isolation level serializable; +-set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable-; +set default_transaction_read_only = 0-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-serializable; +set default_transaction_read_only =-0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction isolation level serializable; ++set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable+; +set default_transaction_read_only = 0+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level+serializable; +set default_transaction_read_only =+0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction isolation level serializable; +-#set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable-#; +set default_transaction_read_only = 0-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-#serializable; +set default_transaction_read_only =-#0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction isolation level serializable; +/set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable/; +set default_transaction_read_only = 0/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/serializable; +set default_transaction_read_only =/0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction isolation level serializable; +\set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable\; +set default_transaction_read_only = 0\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level\serializable; +set default_transaction_read_only =\0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction isolation level serializable; +?set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable?; +set default_transaction_read_only = 0?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level?serializable; +set default_transaction_read_only =?0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction isolation level serializable; +-/set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable-/; +set default_transaction_read_only = 0-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-/serializable; +set default_transaction_read_only =-/0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction isolation level serializable; +/#set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable/#; +set default_transaction_read_only = 0/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/#serializable; +set default_transaction_read_only =/#0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction isolation level serializable; +/-set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable/-; +set default_transaction_read_only = 0/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/-serializable; +set default_transaction_read_only =/-0; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = yes; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY; +SET DEFAULT_TRANSACTION_READ_ONLY = YES; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = yes; NEW_CONNECTION; - set session characteristics as transaction read only; + set default_transaction_read_only = yes; NEW_CONNECTION; - set session characteristics as transaction read only; + set default_transaction_read_only = yes; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = yes; NEW_CONNECTION; -set session characteristics as transaction read only ; +set default_transaction_read_only = yes ; NEW_CONNECTION; -set session characteristics as transaction read only ; +set default_transaction_read_only = yes ; NEW_CONNECTION; -set session characteristics as transaction read only +set default_transaction_read_only = yes ; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = yes; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = yes; NEW_CONNECTION; set -session -characteristics -as -transaction -read -only; +default_transaction_read_only += +yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction read only; +foo set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only bar; +set default_transaction_read_only = yes bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction read only; +%set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only%; +set default_transaction_read_only = yes%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read%only; +set default_transaction_read_only =%yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction read only; +_set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only_; +set default_transaction_read_only = yes_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read_only; +set default_transaction_read_only =_yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction read only; +&set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only&; +set default_transaction_read_only = yes&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read&only; +set default_transaction_read_only =&yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction read only; +$set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only$; +set default_transaction_read_only = yes$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read$only; +set default_transaction_read_only =$yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction read only; +@set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only@; +set default_transaction_read_only = yes@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read@only; +set default_transaction_read_only =@yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction read only; +!set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only!; +set default_transaction_read_only = yes!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read!only; +set default_transaction_read_only =!yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction read only; +*set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only*; +set default_transaction_read_only = yes*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read*only; +set default_transaction_read_only =*yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction read only; +(set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only(; +set default_transaction_read_only = yes(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read(only; +set default_transaction_read_only =(yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction read only; +)set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only); +set default_transaction_read_only = yes); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read)only; +set default_transaction_read_only =)yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction read only; +-set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only-; +set default_transaction_read_only = yes-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-only; +set default_transaction_read_only =-yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction read only; ++set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only+; +set default_transaction_read_only = yes+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read+only; +set default_transaction_read_only =+yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction read only; +-#set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only-#; +set default_transaction_read_only = yes-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-#only; +set default_transaction_read_only =-#yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction read only; +/set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only/; +set default_transaction_read_only = yes/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/only; +set default_transaction_read_only =/yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction read only; +\set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only\; +set default_transaction_read_only = yes\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read\only; +set default_transaction_read_only =\yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction read only; +?set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only?; +set default_transaction_read_only = yes?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read?only; +set default_transaction_read_only =?yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction read only; +-/set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only-/; +set default_transaction_read_only = yes-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-/only; +set default_transaction_read_only =-/yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction read only; +/#set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only/#; +set default_transaction_read_only = yes/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/#only; +set default_transaction_read_only =/#yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction read only; +/-set default_transaction_read_only = yes; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only/-; +set default_transaction_read_only = yes/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/-only; +set default_transaction_read_only =/-yes; NEW_CONNECTION; -set session characteristics as transaction read write; +set default_transaction_read_only = no; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE; +SET DEFAULT_TRANSACTION_READ_ONLY = NO; NEW_CONNECTION; -set session characteristics as transaction read write; +set default_transaction_read_only = no; NEW_CONNECTION; - set session characteristics as transaction read write; + set default_transaction_read_only = no; NEW_CONNECTION; - set session characteristics as transaction read write; + set default_transaction_read_only = no; NEW_CONNECTION; -set session characteristics as transaction read write; +set default_transaction_read_only = no; NEW_CONNECTION; -set session characteristics as transaction read write ; +set default_transaction_read_only = no ; NEW_CONNECTION; -set session characteristics as transaction read write ; +set default_transaction_read_only = no ; NEW_CONNECTION; -set session characteristics as transaction read write +set default_transaction_read_only = no ; NEW_CONNECTION; -set session characteristics as transaction read write; +set default_transaction_read_only = no; NEW_CONNECTION; -set session characteristics as transaction read write; +set default_transaction_read_only = no; NEW_CONNECTION; set -session -characteristics -as -transaction -read -write; +default_transaction_read_only += +no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction read write; +foo set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write bar; +set default_transaction_read_only = no bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction read write; +%set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write%; +set default_transaction_read_only = no%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read%write; +set default_transaction_read_only =%no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction read write; +_set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write_; +set default_transaction_read_only = no_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read_write; +set default_transaction_read_only =_no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction read write; +&set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write&; +set default_transaction_read_only = no&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read&write; +set default_transaction_read_only =&no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction read write; +$set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write$; +set default_transaction_read_only = no$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read$write; +set default_transaction_read_only =$no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction read write; +@set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write@; +set default_transaction_read_only = no@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read@write; +set default_transaction_read_only =@no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction read write; +!set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write!; +set default_transaction_read_only = no!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read!write; +set default_transaction_read_only =!no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction read write; +*set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write*; +set default_transaction_read_only = no*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read*write; +set default_transaction_read_only =*no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction read write; +(set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write(; +set default_transaction_read_only = no(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read(write; +set default_transaction_read_only =(no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction read write; +)set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write); +set default_transaction_read_only = no); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read)write; +set default_transaction_read_only =)no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction read write; +-set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write-; +set default_transaction_read_only = no-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-write; +set default_transaction_read_only =-no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction read write; ++set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write+; +set default_transaction_read_only = no+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read+write; +set default_transaction_read_only =+no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction read write; +-#set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write-#; +set default_transaction_read_only = no-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-#write; +set default_transaction_read_only =-#no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction read write; +/set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write/; +set default_transaction_read_only = no/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/write; +set default_transaction_read_only =/no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction read write; +\set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write\; +set default_transaction_read_only = no\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read\write; +set default_transaction_read_only =\no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction read write; +?set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write?; +set default_transaction_read_only = no?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read?write; +set default_transaction_read_only =?no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction read write; +-/set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write-/; +set default_transaction_read_only = no-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-/write; +set default_transaction_read_only =-/no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction read write; +/#set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write/#; +set default_transaction_read_only = no/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/#write; +set default_transaction_read_only =/#no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction read write; +/-set default_transaction_read_only = no; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write/-; +set default_transaction_read_only = no/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/-write; +set default_transaction_read_only =/-no; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set default_transaction_read_only = y; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL DEFAULT; +SET DEFAULT_TRANSACTION_READ_ONLY = Y; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set default_transaction_read_only = y; NEW_CONNECTION; - set session characteristics as transaction isolation level default; + set default_transaction_read_only = y; NEW_CONNECTION; - set session characteristics as transaction isolation level default; + set default_transaction_read_only = y; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set default_transaction_read_only = y; NEW_CONNECTION; -set session characteristics as transaction isolation level default ; +set default_transaction_read_only = y ; NEW_CONNECTION; -set session characteristics as transaction isolation level default ; +set default_transaction_read_only = y ; NEW_CONNECTION; -set session characteristics as transaction isolation level default +set default_transaction_read_only = y ; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set default_transaction_read_only = y; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set default_transaction_read_only = y; NEW_CONNECTION; set -session -characteristics -as -transaction -isolation -level -default; +default_transaction_read_only += +y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction isolation level default; +foo set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default bar; +set default_transaction_read_only = y bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction isolation level default; +%set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default%; +set default_transaction_read_only = y%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level%default; +set default_transaction_read_only =%y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction isolation level default; +_set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default_; +set default_transaction_read_only = y_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level_default; +set default_transaction_read_only =_y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction isolation level default; +&set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default&; +set default_transaction_read_only = y&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level&default; +set default_transaction_read_only =&y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction isolation level default; +$set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default$; +set default_transaction_read_only = y$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level$default; +set default_transaction_read_only =$y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction isolation level default; +@set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default@; +set default_transaction_read_only = y@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level@default; +set default_transaction_read_only =@y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction isolation level default; +!set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default!; +set default_transaction_read_only = y!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level!default; +set default_transaction_read_only =!y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction isolation level default; +*set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default*; +set default_transaction_read_only = y*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level*default; +set default_transaction_read_only =*y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction isolation level default; +(set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default(; +set default_transaction_read_only = y(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level(default; +set default_transaction_read_only =(y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction isolation level default; +)set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default); +set default_transaction_read_only = y); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level)default; +set default_transaction_read_only =)y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction isolation level default; +-set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default-; +set default_transaction_read_only = y-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-default; +set default_transaction_read_only =-y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction isolation level default; ++set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default+; +set default_transaction_read_only = y+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level+default; +set default_transaction_read_only =+y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction isolation level default; +-#set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default-#; +set default_transaction_read_only = y-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-#default; +set default_transaction_read_only =-#y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction isolation level default; +/set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default/; +set default_transaction_read_only = y/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/default; +set default_transaction_read_only =/y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction isolation level default; +\set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default\; +set default_transaction_read_only = y\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level\default; +set default_transaction_read_only =\y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction isolation level default; +?set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default?; +set default_transaction_read_only = y?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level?default; +set default_transaction_read_only =?y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction isolation level default; +-/set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default-/; +set default_transaction_read_only = y-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-/default; +set default_transaction_read_only =-/y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction isolation level default; +/#set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default/#; +set default_transaction_read_only = y/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/#default; +set default_transaction_read_only =/#y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction isolation level default; +/-set default_transaction_read_only = y; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default/-; +set default_transaction_read_only = y/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/-default; +set default_transaction_read_only =/-y; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set default_transaction_read_only = n; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE; +SET DEFAULT_TRANSACTION_READ_ONLY = N; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set default_transaction_read_only = n; NEW_CONNECTION; - set session characteristics as transaction isolation level serializable; + set default_transaction_read_only = n; NEW_CONNECTION; - set session characteristics as transaction isolation level serializable; + set default_transaction_read_only = n; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set default_transaction_read_only = n; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable ; +set default_transaction_read_only = n ; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable ; +set default_transaction_read_only = n ; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable +set default_transaction_read_only = n ; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set default_transaction_read_only = n; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set default_transaction_read_only = n; NEW_CONNECTION; set -session -characteristics -as -transaction -isolation -level -serializable; +default_transaction_read_only += +n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction isolation level serializable; +foo set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable bar; +set default_transaction_read_only = n bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction isolation level serializable; +%set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable%; +set default_transaction_read_only = n%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level%serializable; +set default_transaction_read_only =%n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction isolation level serializable; +_set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable_; +set default_transaction_read_only = n_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level_serializable; +set default_transaction_read_only =_n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction isolation level serializable; +&set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable&; +set default_transaction_read_only = n&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level&serializable; +set default_transaction_read_only =&n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction isolation level serializable; +$set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable$; +set default_transaction_read_only = n$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level$serializable; +set default_transaction_read_only =$n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction isolation level serializable; +@set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable@; +set default_transaction_read_only = n@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level@serializable; +set default_transaction_read_only =@n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction isolation level serializable; +!set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable!; +set default_transaction_read_only = n!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level!serializable; +set default_transaction_read_only =!n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction isolation level serializable; +*set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable*; +set default_transaction_read_only = n*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level*serializable; +set default_transaction_read_only =*n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction isolation level serializable; +(set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable(; +set default_transaction_read_only = n(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level(serializable; +set default_transaction_read_only =(n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction isolation level serializable; +)set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable); +set default_transaction_read_only = n); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level)serializable; +set default_transaction_read_only =)n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction isolation level serializable; +-set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable-; +set default_transaction_read_only = n-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-serializable; +set default_transaction_read_only =-n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction isolation level serializable; ++set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable+; +set default_transaction_read_only = n+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level+serializable; +set default_transaction_read_only =+n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction isolation level serializable; +-#set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable-#; +set default_transaction_read_only = n-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-#serializable; +set default_transaction_read_only =-#n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction isolation level serializable; +/set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable/; +set default_transaction_read_only = n/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/serializable; +set default_transaction_read_only =/n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction isolation level serializable; +\set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable\; +set default_transaction_read_only = n\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level\serializable; +set default_transaction_read_only =\n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction isolation level serializable; +?set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable?; +set default_transaction_read_only = n?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level?serializable; +set default_transaction_read_only =?n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction isolation level serializable; +-/set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable-/; +set default_transaction_read_only = n-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-/serializable; +set default_transaction_read_only =-/n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction isolation level serializable; +/#set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable/#; +set default_transaction_read_only = n/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/#serializable; +set default_transaction_read_only =/#n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction isolation level serializable; +/-set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable/-; +set default_transaction_read_only = n/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/-serializable; +set default_transaction_read_only =/-n; NEW_CONNECTION; set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql index a71bc2443c9..aecf671f7b5 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql @@ -1,23 +1,23 @@ NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -26,123 +26,125 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -151,58 +153,60 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:00.893000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:00.893000000Z' +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:46.571000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:46.571000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:00.893000000Z'; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:46.571000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:46.571000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -217,34 +221,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -253,8 +257,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -297,45 +301,46 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -346,28 +351,36 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -COMMIT; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -376,123 +389,173 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -501,58 +564,78 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:01.224000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:01.224000000Z' +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:46.990000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:46.990000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:01.224000000Z'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:46.990000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:46.990000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -567,34 +650,48 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -603,8 +700,10 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -647,45 +746,62 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -NEW_CONNECTION; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -696,324 +812,207 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; -SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:01.578000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:01.578000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:47.304000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:47.304000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:01.578000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:47.304000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -1028,55 +1027,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -1085,11 +1063,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1132,116 +1107,71 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -1250,195 +1180,125 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -1447,85 +1307,60 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:01.911000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:01.911000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:47.632000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:47.632000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:01.911000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:47.632000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:47.632000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -1540,55 +1375,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -1597,11 +1411,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1644,69 +1455,46 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1717,208 +1505,217 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.161000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:02.161000000Z' +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:47.939000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:47.939000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.161000000Z'; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:47.939000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:47.939000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -1933,34 +1730,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -1969,8 +1766,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2013,282 +1810,230 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.469000000Z'; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.166000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.166000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.469000000Z'; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.166000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:48.166000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -2303,41 +2048,27 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -2346,9 +2077,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2391,254 +2120,254 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +COMMIT; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:02.742000000Z'; +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.428000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.428000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:02.742000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.428000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -2654,33 +2383,33 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -2690,7 +2419,7 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2734,66 +2463,76 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +COMMIT; +BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2803,98 +2542,122 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -2904,48 +2667,57 @@ SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.002000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:03.002000000Z' +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.652000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.652000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.002000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.652000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -2961,26 +2733,33 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -2990,6 +2769,7 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3033,36 +2813,44 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -3074,26 +2862,39 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3101,134 +2902,196 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT UPDATE_COUNT 1 +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -3236,59 +3099,86 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.330000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:03.330000000Z' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:48.942000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:48.942000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.330000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:48.942000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -3302,35 +3192,56 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -3338,9 +3249,12 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3382,84 +3296,117 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3467,182 +3414,196 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -@EXPECT UPDATE_COUNT 1 +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -3650,77 +3611,86 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.636000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:03.636000000Z' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.199000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:49.199000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.636000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.199000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -3734,49 +3704,56 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -3784,11 +3761,12 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3830,305 +3808,282 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:03.861000000Z'; +BEGIN TRANSACTION; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.406000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:49.406000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:03.861000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.406000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -4142,42 +4097,35 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -4185,10 +4133,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4230,255 +4177,283 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.052000000Z'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.654000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.052000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.654000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -4492,35 +4467,42 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -4528,9 +4510,10 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4572,378 +4555,255 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.288000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.288000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:49.887000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.288000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:49.887000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -4957,56 +4817,35 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -5014,12 +4853,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5061,279 +4897,220 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -BEGIN TRANSACTION; SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.498000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.498000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.078000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.078000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.498000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.078000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -5347,35 +5124,28 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -5383,9 +5153,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5427,267 +5196,243 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT UPDATE_COUNT 1 +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; -SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.687000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.687000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.254000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.687000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.254000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -5702,34 +5447,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -5738,8 +5483,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5782,381 +5527,284 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=TRUE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT UPDATE_COUNT 1 +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; -SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:04.945000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:04.945000000Z' +SET TRANSACTION READ ONLY; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.414000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.414000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:04.945000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.414000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -6171,55 +5819,41 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -6228,11 +5862,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -6275,113 +5907,87 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -6391,166 +5997,150 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6562,10 +6152,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6577,18 +6166,17 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE @@ -6598,84 +6186,77 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.224000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:05.224000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.739000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.739000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.224000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.739000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:50.739000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -6691,54 +6272,47 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -6748,10 +6322,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -6795,67 +6368,61 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -6866,138 +6433,137 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -7009,68 +6575,68 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.442000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:05.442000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:50.947000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:50.947000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.442000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:50.947000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -7086,33 +6652,33 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -7122,7 +6688,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -7166,206 +6732,193 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7376,76 +6929,76 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.677000000Z'; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.211000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.211000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.677000000Z'; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.211000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.211000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -7460,41 +7013,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -7503,9 +7049,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7548,190 +7093,200 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7742,65 +7297,76 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:05.933000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.427000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.427000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:05.933000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.427000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.427000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -7815,34 +7381,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -7851,8 +7417,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7895,67 +7461,81 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +BEGIN TRANSACTION; SELECT 1 AS TEST; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION -BEGIN TRANSACTION; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -7964,83 +7544,130 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -8051,7 +7678,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -8062,11 +7691,16 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -8075,49 +7709,69 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.132000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.132000000Z' +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.648000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.648000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.132000000Z'; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.648000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.648000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -8132,27 +7786,41 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -8161,7 +7829,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8204,36 +7874,54 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -8243,201 +7931,232 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; +NEW_CONNECTION; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; +SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.314000000Z'; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:51.862000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:51.862000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.314000000Z'; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:51.862000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:51.862000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -8453,33 +8172,33 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -8489,7 +8208,7 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8533,283 +8252,242 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; +SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.511000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.511000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.065000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:52.065000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.511000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.065000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-07-21T11:15:52.065000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -8825,40 +8503,26 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -8868,8 +8532,6 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8913,86 +8575,66 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -9002,150 +8644,103 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -9157,9 +8752,7 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -9171,17 +8764,12 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE @@ -9191,77 +8779,57 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.750000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.750000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.247000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:52.247000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.750000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:06.750000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.247000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -9277,47 +8845,33 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -9327,9 +8881,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -9373,61 +8925,43 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -9438,138 +8972,198 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -9580,69 +9174,95 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; +SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:06.962000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:06.962000000Z' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.461000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:52.461000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:06.962000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.461000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -9657,34 +9277,48 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -9693,8 +9327,10 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -9737,272 +9373,303 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'TEST',1 +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.312000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.312000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.686000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.312000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.312000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.686000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -10018,33 +9685,40 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -10054,7 +9728,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -10098,280 +9773,254 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT UPDATE_COUNT 1 +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'TEST',1 +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.554000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.554000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:52.855000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.554000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.554000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:52.855000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -10386,34 +10035,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -10422,8 +10071,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10466,81 +10115,83 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -10549,130 +10200,167 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10683,9 +10371,11 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10696,16 +10386,19 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -10714,69 +10407,85 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:07.791000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:07.791000000Z' +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.078000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.078000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:07.791000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:07.791000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.078000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -10791,41 +10500,55 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -10834,9 +10557,11 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10879,54 +10604,68 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -10936,232 +10675,207 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.029000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.029000000Z' +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.269000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.269000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.029000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.029000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.269000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -11176,34 +10890,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -11212,8 +10926,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11256,73 +10970,71 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11331,88 +11043,104 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11423,7 +11151,8 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11434,12 +11163,13 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -11448,51 +11178,58 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.217000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.217000000Z' +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.483000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.483000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.217000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.217000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.483000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -11507,27 +11244,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -11536,7 +11280,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11579,38 +11324,44 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -11620,27 +11371,40 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11648,126 +11412,206 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -11775,61 +11619,86 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.398000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.398000000Z' +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:53.759000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:53.759000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.398000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.398000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:53.759000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -11843,35 +11712,56 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -11879,9 +11769,12 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11923,85 +11816,113 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET AUTOCOMMIT=FALSE; @@ -12011,172 +11932,204 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READONLY=FALSE; @@ -12186,77 +12139,84 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.638000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.638000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.058000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:54.058000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.638000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:08.638000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.058000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @@ -12272,47 +12232,54 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @@ -12322,9 +12289,10 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET STATEMENT_TIMEOUT='1s'; @@ -12368,273 +12336,283 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=FALSE; -NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=TRUE; +NEW_CONNECTION; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READONLY=FALSE; -NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +NEW_CONNECTION; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:08.836000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:08.836000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.257000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:54.257000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:08.836000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.257000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -12649,34 +12627,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -12685,8 +12663,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -12729,260 +12707,286 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:09.051000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:09.051000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.489000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:09.051000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:09.051000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.489000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -12997,34 +13001,41 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13033,8 +13044,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13077,267 +13089,259 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:09.257000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:09.257000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.733000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:09.257000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:09.257000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.733000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -13352,34 +13356,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13388,8 +13392,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13432,75 +13436,68 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -13508,102 +13505,110 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -13611,52 +13616,50 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-05-12T17:20:09.444000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-05-12T17:20:09.444000000Z' +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2022-07-21T11:15:54.922000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2022-07-21T11:15:54.922000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-05-12T17:20:09.444000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2022-05-12T17:20:09.444000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2022-07-21T11:15:54.922000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -13670,28 +13673,28 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -13699,8 +13702,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -13742,47 +13745,44 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=FALSE;