diff --git a/google-cloud-spanner/clirr-ignored-differences.xml b/google-cloud-spanner/clirr-ignored-differences.xml
index 0efd90a38d..d8d9e22be7 100644
--- a/google-cloud-spanner/clirr-ignored-differences.xml
+++ b/google-cloud-spanner/clirr-ignored-differences.xml
@@ -615,6 +615,21 @@
void setTransactionTag(java.lang.String)
+
+
+
+ 7012
+ com/google/cloud/spanner/connection/Connection
+ com.google.cloud.spanner.Options$RpcPriority getRPCPriority()
+
+
+ 7012
+ com/google/cloud/spanner/connection/Connection
+ void setRPCPriority(com.google.cloud.spanner.Options$RpcPriority)
+
+
+
+
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java
index 6fb5d01531..a21c4880ec 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java
@@ -22,6 +22,7 @@
import com.google.api.gax.longrunning.OperationFuture;
import com.google.api.gax.rpc.ApiCallContext;
import com.google.cloud.spanner.ErrorCode;
+import com.google.cloud.spanner.Options.RpcPriority;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.SpannerExceptionFactory;
import com.google.cloud.spanner.SpannerOptions;
@@ -52,6 +53,7 @@ abstract class AbstractBaseUnitOfWork implements UnitOfWork {
private final StatementExecutor statementExecutor;
private final StatementTimeout statementTimeout;
protected final String transactionTag;
+ protected final RpcPriority rpcPriority;
/** Class for keeping track of the stacktrace of the caller of an async statement. */
static final class SpannerAsyncExecutionException extends RuntimeException {
@@ -84,6 +86,7 @@ abstract static class Builder, T extends AbstractBaseUni
private StatementExecutor statementExecutor;
private StatementTimeout statementTimeout = new StatementTimeout();
private String transactionTag;
+ private RpcPriority rpcPriority;
Builder() {}
@@ -109,6 +112,11 @@ B setTransactionTag(@Nullable String tag) {
return self();
}
+ B setRpcPriority(@Nullable RpcPriority rpcPriority) {
+ this.rpcPriority = rpcPriority;
+ return self();
+ }
+
abstract T build();
}
@@ -117,6 +125,7 @@ B setTransactionTag(@Nullable String tag) {
this.statementExecutor = builder.statementExecutor;
this.statementTimeout = builder.statementTimeout;
this.transactionTag = builder.transactionTag;
+ this.rpcPriority = builder.rpcPriority;
}
StatementExecutor getStatementExecutor() {
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 fba857ead4..d0ff99de4b 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
@@ -17,6 +17,7 @@
package com.google.cloud.spanner.connection;
import com.google.cloud.spanner.ErrorCode;
+import com.google.cloud.spanner.Options.RpcPriority;
import com.google.cloud.spanner.SpannerExceptionFactory;
import com.google.cloud.spanner.TimestampBound;
import com.google.cloud.spanner.TimestampBound.Mode;
@@ -24,6 +25,7 @@
import com.google.common.base.Preconditions;
import com.google.protobuf.Duration;
import com.google.protobuf.util.Durations;
+import com.google.spanner.v1.RequestOptions.Priority;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
@@ -240,4 +242,34 @@ public TransactionMode convert(String value) {
return values.get(valueWithSingleSpaces);
}
}
+
+ /** Converter for converting strings to {@link RpcPriority} values. */
+ static class RpcPriorityConverter implements ClientSideStatementValueConverter {
+ private final CaseInsensitiveEnumMap values =
+ new CaseInsensitiveEnumMap<>(Priority.class);
+ private final Pattern allowedValues;
+
+ public RpcPriorityConverter(String allowedValues) {
+ // Remove the parentheses from the beginning and end.
+ this.allowedValues =
+ Pattern.compile(
+ "(?is)\\A" + allowedValues.substring(1, allowedValues.length() - 1) + "\\z");
+ }
+
+ @Override
+ public Class getParameterClass() {
+ return Priority.class;
+ }
+
+ @Override
+ public Priority convert(String value) {
+ Matcher matcher = allowedValues.matcher(value);
+ if (matcher.find()) {
+ if (matcher.group(0).equalsIgnoreCase("null")) {
+ return Priority.PRIORITY_UNSPECIFIED;
+ }
+ }
+ return values.get("PRIORITY_" + value);
+ }
+ }
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java
index 42b77a69d0..f7d8e18e91 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java
@@ -26,6 +26,7 @@
import com.google.cloud.spanner.ErrorCode;
import com.google.cloud.spanner.Mutation;
import com.google.cloud.spanner.Options.QueryOption;
+import com.google.cloud.spanner.Options.RpcPriority;
import com.google.cloud.spanner.ReadContext.QueryAnalyzeMode;
import com.google.cloud.spanner.ResultSet;
import com.google.cloud.spanner.SpannerBatchUpdateException;
@@ -532,6 +533,32 @@ default String getOptimizerStatisticsPackage() {
/** @return true if this connection requests commit statistics from Cloud Spanner */
boolean isReturnCommitStats();
+ /**
+ * Sets the priority to use for RPCs executed by this connection..
+ *
+ * @param rpcPriority The RPC priority to use.
+ *
+ * - {@link RpcPriority#HIGH} This specifies that the RPC's invocation will be of high
+ * priority.
+ *
- {@link RpcPriority#MEDIUM} This specifies that the RPC's invocation will be of medium
+ * priority.
+ *
- {@link RpcPriority#LOW} This specifies that the RPC's invocation will be of low
+ * priority.
+ *
+ */
+ default void setRPCPriority(RpcPriority rpcPriority) {
+ throw new UnsupportedOperationException("Unimplemented");
+ }
+
+ /**
+ * Gets the current RPC priority of this connection.
+ *
+ * @return The RPC priority that is currently used by this connection.
+ */
+ default RpcPriority getRPCPriority() {
+ throw new UnsupportedOperationException("Unimplemented");
+ }
+
/**
* Commits the current transaction of this connection. All mutations that have been buffered
* during the current transaction will be written to the database.
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java
index 6c3b50a973..df8caa0ff8 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java
@@ -28,6 +28,7 @@
import com.google.cloud.spanner.Mutation;
import com.google.cloud.spanner.Options;
import com.google.cloud.spanner.Options.QueryOption;
+import com.google.cloud.spanner.Options.RpcPriority;
import com.google.cloud.spanner.Options.UpdateOption;
import com.google.cloud.spanner.ReadContext.QueryAnalyzeMode;
import com.google.cloud.spanner.ResultSet;
@@ -208,6 +209,7 @@ static UnitOfWorkType of(TransactionMode transactionMode) {
private AutocommitDmlMode autocommitDmlMode = AutocommitDmlMode.TRANSACTIONAL;
private TimestampBound readOnlyStaleness = TimestampBound.strong();
private QueryOptions queryOptions = QueryOptions.getDefaultInstance();
+ private RpcPriority rpcPriority = null;
private String transactionTag;
private String statementTag;
@@ -227,6 +229,7 @@ static UnitOfWorkType of(TransactionMode transactionMode) {
this.readOnly = options.isReadOnly();
this.autocommit = options.isAutocommit();
this.queryOptions = this.queryOptions.toBuilder().mergeFrom(options.getQueryOptions()).build();
+ this.rpcPriority = options.getRPCPriority();
this.returnCommitStats = options.isReturnCommitStats();
this.ddlClient = createDdlClient();
setDefaultTransactionOptions();
@@ -453,6 +456,18 @@ public String getOptimizerStatisticsPackage() {
return this.queryOptions.getOptimizerStatisticsPackage();
}
+ @Override
+ public void setRPCPriority(RpcPriority rpcPriority) {
+ ConnectionPreconditions.checkState(!isClosed(), CLOSED_ERROR_MSG);
+ this.rpcPriority = rpcPriority;
+ }
+
+ @Override
+ public RpcPriority getRPCPriority() {
+ ConnectionPreconditions.checkState(!isClosed(), CLOSED_ERROR_MSG);
+ return this.rpcPriority;
+ }
+
@Override
public void setStatementTimeout(long timeout, TimeUnit unit) {
Preconditions.checkArgument(timeout > 0L, "Zero or negative timeout values are not allowed");
@@ -1018,6 +1033,19 @@ private QueryOption[] mergeQueryStatementTag(QueryOption... options) {
return options;
}
+ private QueryOption[] mergeQueryRequestOptions(QueryOption... options) {
+ if (this.rpcPriority != null) {
+ // Shortcut for the most common scenario.
+ if (options == null || options.length == 0) {
+ options = new QueryOption[] {Options.priority(this.rpcPriority)};
+ } else {
+ options = Arrays.copyOf(options, options.length + 1);
+ options[options.length - 1] = Options.priority(this.rpcPriority);
+ }
+ }
+ return options;
+ }
+
private UpdateOption[] mergeUpdateStatementTag(UpdateOption... options) {
if (this.statementTag != null) {
// Shortcut for the most common scenario.
@@ -1032,6 +1060,19 @@ private UpdateOption[] mergeUpdateStatementTag(UpdateOption... options) {
return options;
}
+ private UpdateOption[] mergeUpdateRequestOptions(UpdateOption... options) {
+ if (this.rpcPriority != null) {
+ // Shortcut for the most common scenario.
+ if (options == null || options.length == 0) {
+ options = new UpdateOption[] {Options.priority(this.rpcPriority)};
+ } else {
+ options = Arrays.copyOf(options, options.length + 1);
+ options[options.length - 1] = Options.priority(this.rpcPriority);
+ }
+ }
+ return options;
+ }
+
private ResultSet internalExecuteQuery(
final ParsedStatement statement,
final AnalyzeMode analyzeMode,
@@ -1040,7 +1081,8 @@ private ResultSet internalExecuteQuery(
statement.getType() == StatementType.QUERY, "Statement must be a query");
UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork();
return get(
- transaction.executeQueryAsync(statement, analyzeMode, mergeQueryStatementTag(options)));
+ transaction.executeQueryAsync(
+ statement, analyzeMode, mergeQueryRequestOptions(mergeQueryStatementTag(options))));
}
private AsyncResultSet internalExecuteQueryAsync(
@@ -1051,7 +1093,8 @@ private AsyncResultSet internalExecuteQueryAsync(
statement.getType() == StatementType.QUERY, "Statement must be a query");
UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork();
return ResultSets.toAsyncResultSet(
- transaction.executeQueryAsync(statement, analyzeMode, mergeQueryStatementTag(options)),
+ transaction.executeQueryAsync(
+ statement, analyzeMode, mergeQueryRequestOptions(mergeQueryStatementTag(options))),
spanner.getAsyncExecutorProvider(),
options);
}
@@ -1061,13 +1104,15 @@ private ApiFuture internalExecuteUpdateAsync(
Preconditions.checkArgument(
update.getType() == StatementType.UPDATE, "Statement must be an update");
UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork();
- return transaction.executeUpdateAsync(update, mergeUpdateStatementTag(options));
+ return transaction.executeUpdateAsync(
+ update, mergeUpdateRequestOptions(mergeUpdateStatementTag(options)));
}
private ApiFuture internalExecuteBatchUpdateAsync(
List updates, UpdateOption... options) {
UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork();
- return transaction.executeBatchUpdateAsync(updates, mergeUpdateStatementTag(options));
+ return transaction.executeBatchUpdateAsync(
+ updates, mergeUpdateRequestOptions(mergeUpdateStatementTag(options)));
}
/**
@@ -1104,6 +1149,7 @@ UnitOfWork createNewUnitOfWork() {
.setStatementTimeout(statementTimeout)
.withStatementExecutor(statementExecutor)
.setTransactionTag(transactionTag)
+ .setRpcPriority(rpcPriority)
.build();
case READ_WRITE_TRANSACTION:
return ReadWriteTransaction.newBuilder()
@@ -1114,6 +1160,7 @@ UnitOfWork createNewUnitOfWork() {
.setStatementTimeout(statementTimeout)
.withStatementExecutor(statementExecutor)
.setTransactionTag(transactionTag)
+ .setRpcPriority(rpcPriority)
.build();
case DML_BATCH:
// A DML batch can run inside the current transaction. It should therefore only
@@ -1124,6 +1171,7 @@ UnitOfWork createNewUnitOfWork() {
.setStatementTimeout(statementTimeout)
.withStatementExecutor(statementExecutor)
.setStatementTag(statementTag)
+ .setRpcPriority(rpcPriority)
.build();
case DDL_BATCH:
return DdlBatch.newBuilder()
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java
index 3a1f321d09..47c2bad978 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java
@@ -25,6 +25,7 @@
import com.google.cloud.ServiceOptions;
import com.google.cloud.spanner.DatabaseId;
import com.google.cloud.spanner.ErrorCode;
+import com.google.cloud.spanner.Options.RpcPriority;
import com.google.cloud.spanner.SessionPoolOptions;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerException;
@@ -158,6 +159,7 @@ public String[] getValidValues() {
private static final String DEFAULT_USER_AGENT = null;
private static final String DEFAULT_OPTIMIZER_VERSION = "";
private static final String DEFAULT_OPTIMIZER_STATISTICS_PACKAGE = "";
+ private static final RpcPriority DEFAULT_RPC_PRIORITY = null;
private static final boolean DEFAULT_RETURN_COMMIT_STATS = false;
private static final boolean DEFAULT_LENIENT = false;
@@ -196,6 +198,8 @@ public String[] getValidValues() {
"optimizerStatisticsPackage";
/** Name of the 'lenientMode' connection property. */
public static final String LENIENT_PROPERTY_NAME = "lenient";
+ /** Name of the 'rpcPriority' connection property. */
+ public static final String RPC_PRIORITY_NAME = "rpcPriority";
/** All valid connection properties. */
public static final Set VALID_PROPERTIES =
@@ -252,7 +256,10 @@ public String[] getValidValues() {
ConnectionProperty.createBooleanProperty(
LENIENT_PROPERTY_NAME,
"Silently ignore unknown properties in the connection string/properties (true/false)",
- DEFAULT_LENIENT))));
+ DEFAULT_LENIENT),
+ ConnectionProperty.createStringProperty(
+ RPC_PRIORITY_NAME,
+ "Sets the priority for all RPC invocations from this connection (HIGH/MEDIUM/LOW). The default is HIGH."))));
private static final Set INTERNAL_PROPERTIES =
Collections.unmodifiableSet(
@@ -490,6 +497,7 @@ public static Builder newBuilder() {
private final QueryOptions queryOptions;
private final boolean returnCommitStats;
private final boolean autoConfigEmulator;
+ private final RpcPriority rpcPriority;
private final boolean autocommit;
private final boolean readOnly;
@@ -533,6 +541,7 @@ private ConnectionOptions(Builder builder) {
this.autoConfigEmulator = parseAutoConfigEmulator(this.uri);
this.usePlainText = this.autoConfigEmulator || parseUsePlainText(this.uri);
this.host = determineHost(matcher, autoConfigEmulator, usePlainText);
+ this.rpcPriority = parseRPCPriority(this.uri);
this.instanceId = matcher.group(Builder.INSTANCE_GROUP);
this.databaseName = matcher.group(Builder.DATABASE_GROUP);
@@ -725,6 +734,12 @@ static boolean parseLenient(String uri) {
return value != null ? Boolean.parseBoolean(value) : DEFAULT_LENIENT;
}
+ @VisibleForTesting
+ static RpcPriority parseRPCPriority(String uri) {
+ String value = parseUriProperty(uri, RPC_PRIORITY_NAME);
+ return value != null ? RpcPriority.valueOf(value) : DEFAULT_RPC_PRIORITY;
+ }
+
@VisibleForTesting
static String parseUriProperty(String uri, String property) {
Pattern pattern = Pattern.compile(String.format("(?is)(?:;|\\?)%s=(.*?)(?:;|$)", property));
@@ -923,6 +938,11 @@ public boolean isAutoConfigEmulator() {
return autoConfigEmulator;
}
+ /** The {@link RpcPriority} to use for the connection. */
+ RpcPriority getRPCPriority() {
+ return rpcPriority;
+ }
+
/** Interceptors that should be executed after each statement */
List getStatementExecutionInterceptors() {
return statementExecutionInterceptors;
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 6ed72cf5f1..032ecfeac6 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
@@ -18,6 +18,7 @@
import com.google.cloud.spanner.TimestampBound;
import com.google.protobuf.Duration;
+import com.google.spanner.v1.RequestOptions.Priority;
/**
* The Cloud Spanner JDBC driver supports a number of client side statements that are interpreted by
@@ -97,4 +98,8 @@ interface ConnectionStatementExecutor {
StatementResult statementRunBatch();
StatementResult statementAbortBatch();
+
+ StatementResult statementSetRPCPriority(Priority priority);
+
+ StatementResult statementShowRPCPriority();
}
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 d85e34a874..0b87103be0 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
@@ -29,6 +29,7 @@
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_READ_ONLY_STALENESS;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_RETRY_ABORTS_INTERNALLY;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_RETURN_COMMIT_STATS;
+import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_RPC_PRIORITY;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_STATEMENT_TAG;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_STATEMENT_TIMEOUT;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_TRANSACTION_MODE;
@@ -44,6 +45,7 @@
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_READ_TIMESTAMP;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_RETRY_ABORTS_INTERNALLY;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_RETURN_COMMIT_STATS;
+import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_RPC_PRIORITY;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_STATEMENT_TAG;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_STATEMENT_TIMEOUT;
import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_TRANSACTION_TAG;
@@ -54,6 +56,7 @@
import com.google.cloud.spanner.CommitResponse;
import com.google.cloud.spanner.CommitStats;
+import com.google.cloud.spanner.Options.RpcPriority;
import com.google.cloud.spanner.ResultSet;
import com.google.cloud.spanner.ResultSets;
import com.google.cloud.spanner.Struct;
@@ -63,8 +66,12 @@
import com.google.cloud.spanner.connection.ReadOnlyStalenessUtil.DurationValueGetter;
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
import com.google.protobuf.Duration;
+import com.google.spanner.v1.RequestOptions;
+import com.google.spanner.v1.RequestOptions.Priority;
import java.util.Arrays;
+import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
@@ -90,6 +97,16 @@ public boolean hasDuration() {
}
}
+ private static final Map validRPCPriorityValues;
+
+ static {
+ ImmutableMap.Builder builder = ImmutableMap.builder();
+ builder.put(Priority.PRIORITY_HIGH, RpcPriority.HIGH);
+ builder.put(Priority.PRIORITY_MEDIUM, RpcPriority.MEDIUM);
+ builder.put(Priority.PRIORITY_LOW, RpcPriority.LOW);
+ validRPCPriorityValues = builder.build();
+ }
+
/** The connection to execute the statements on. */
private final ConnectionImpl connection;
@@ -338,4 +355,21 @@ public StatementResult statementAbortBatch() {
getConnection().abortBatch();
return noResult(ABORT_BATCH);
}
+
+ @Override
+ public StatementResult statementSetRPCPriority(Priority priority) {
+ RpcPriority value = validRPCPriorityValues.get(priority);
+ getConnection().setRPCPriority(value);
+ return noResult(SET_RPC_PRIORITY);
+ }
+
+ @Override
+ public StatementResult statementShowRPCPriority() {
+ return resultSet(
+ "RPC_PRIORITY",
+ getConnection().getRPCPriority() == null
+ ? RequestOptions.Priority.PRIORITY_UNSPECIFIED
+ : getConnection().getRPCPriority(),
+ SHOW_RPC_PRIORITY);
+ }
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java
index ee46d99763..d7bf730243 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java
@@ -189,8 +189,21 @@ public ApiFuture runBatchAsync() {
// executed AFTER a Future is done, which means that a user could read the state of the Batch
// before it has been changed.
final SettableApiFuture res = SettableApiFuture.create();
- UpdateOption[] options =
- statementTag == null ? new UpdateOption[0] : new UpdateOption[] {Options.tag(statementTag)};
+ int numOptions = 0;
+ if (statementTag != null) {
+ numOptions++;
+ }
+ if (this.rpcPriority != null) {
+ numOptions++;
+ }
+ UpdateOption[] options = new UpdateOption[numOptions];
+ int index = 0;
+ if (statementTag != null) {
+ options[index++] = Options.tag(statementTag);
+ }
+ if (this.rpcPriority != null) {
+ options[index++] = Options.priority(this.rpcPriority);
+ }
ApiFuture updateCounts = transaction.executeBatchUpdateAsync(statements, options);
ApiFutures.addCallback(
updateCounts,
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java
index a8956d44dc..45b49de19b 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java
@@ -150,6 +150,9 @@ private TransactionOption[] extractOptions(Builder builder) {
if (this.transactionTag != null) {
numOptions++;
}
+ if (this.rpcPriority != null) {
+ numOptions++;
+ }
TransactionOption[] options = new TransactionOption[numOptions];
int index = 0;
if (builder.returnCommitStats) {
@@ -158,6 +161,9 @@ private TransactionOption[] extractOptions(Builder builder) {
if (this.transactionTag != null) {
options[index++] = Options.tag(this.transactionTag);
}
+ if (this.rpcPriority != null) {
+ options[index++] = Options.priority(this.rpcPriority);
+ }
return options;
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java
index 4b3e0e6666..aca72d0968 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java
@@ -333,9 +333,25 @@ public ApiFuture executeBatchUpdateAsync(
}
private TransactionRunner createWriteTransaction() {
- return returnCommitStats
- ? dbClient.readWriteTransaction(Options.commitStats())
- : dbClient.readWriteTransaction();
+ int numOptions = 0;
+ if (this.rpcPriority != null) {
+ numOptions++;
+ }
+ if (returnCommitStats) {
+ numOptions++;
+ }
+ if (numOptions == 0) {
+ return dbClient.readWriteTransaction();
+ }
+ Options.TransactionOption[] options = new Options.TransactionOption[numOptions];
+ int index = 0;
+ if (this.rpcPriority != null) {
+ options[index++] = Options.priority(this.rpcPriority);
+ }
+ if (returnCommitStats) {
+ options[index++] = Options.commitStats();
+ }
+ return dbClient.readWriteTransaction(options);
}
private ApiFuture executeTransactionalUpdateAsync(
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 94c346fcf7..476ae80443 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
@@ -80,7 +80,9 @@ enum ClientSideStatementType {
START_BATCH_DDL,
START_BATCH_DML,
RUN_BATCH,
- ABORT_BATCH
+ ABORT_BATCH,
+ SET_RPC_PRIORITY,
+ SHOW_RPC_PRIORITY
}
/**
diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json
index dc23f983a7..e06732bf4e 100644
--- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json
+++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json
@@ -117,6 +117,14 @@
"method": "statementShowTransactionTag",
"exampleStatements": ["show variable transaction_tag"]
},
+ {
+ "name": "SHOW VARIABLE RPC_PRIORITY",
+ "executorName": "ClientSideStatementNoParamExecutor",
+ "resultType": "RESULT_SET",
+ "regex": "(?is)\\A\\s*show\\s+variable\\s+rpc_priority\\s*\\z",
+ "method": "statementShowRPCPriority",
+ "exampleStatements": ["show variable rpc_priority"]
+ },
{
"name": "BEGIN TRANSACTION",
"executorName": "ClientSideStatementNoParamExecutor",
@@ -361,6 +369,25 @@
"allowedValues": "'(([a-zA-Z][a-zA-Z0-9_\\-]{1,63})|())'",
"converterName": "ClientSideStatementValueConverters$StringValueConverter"
}
+ },
+ {
+ "name": "SET RPC_PRIORITY = 'HIGH'|'MEDIUM'|'LOW'|'NULL'",
+ "executorName": "ClientSideStatementSetExecutor",
+ "resultType": "NO_RESULT",
+ "regex": "(?is)\\A\\s*set\\s+rpc_priority\\s*(?:=)\\s*(.*)\\z",
+ "method": "statementSetRPCPriority",
+ "exampleStatements": [
+ "set rpc_priority='HIGH'",
+ "set rpc_priority='MEDIUM'",
+ "set rpc_priority='LOW'",
+ "set rpc_priority='NULL'"
+ ],
+ "setStatement": {
+ "propertyName": "RPC_PRIORITY",
+ "separator": "=",
+ "allowedValues": "'(HIGH|MEDIUM|LOW|NULL)'",
+ "converterName": "ClientSideStatementValueConverters$RpcPriorityConverter"
+ }
}
]
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionTest.java
index f21fbc7209..00f6213870 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionTest.java
@@ -17,6 +17,9 @@
package com.google.cloud.spanner.connection;
import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import com.google.api.core.ApiFuture;
@@ -29,9 +32,13 @@
import com.google.cloud.spanner.Statement;
import com.google.common.collect.ImmutableList;
import com.google.spanner.v1.BatchCreateSessionsRequest;
+import com.google.spanner.v1.CommitRequest;
+import com.google.spanner.v1.ExecuteBatchDmlRequest;
import com.google.spanner.v1.ExecuteSqlRequest;
import com.google.spanner.v1.ExecuteSqlRequest.QueryOptions;
+import com.google.spanner.v1.RequestOptions;
import java.util.Arrays;
+import java.util.Collections;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@@ -281,4 +288,181 @@ public void testMaxSessions()
assertThat(mockSpanner.numSessionsCreated()).isEqualTo(1);
}
}
+
+ public static class ConnectionRPCPriorityTest extends AbstractMockServerTest {
+
+ @AfterClass
+ public static void reset() {
+ mockSpanner.reset();
+ }
+
+ protected String getBaseUrl() {
+ return super.getBaseUrl() + ";rpcPriority=MEDIUM";
+ }
+
+ @Test
+ public void testQuery_RPCPriority() {
+ try (Connection connection = createConnection()) {
+ for (boolean autocommit : new boolean[] {true, false}) {
+ connection.setAutocommit(autocommit);
+ try (ResultSet rs = connection.executeQuery(SELECT_COUNT_STATEMENT)) {}
+
+ assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(ExecuteSqlRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ mockSpanner.clearRequests();
+ }
+ }
+ }
+
+ @Test
+ public void testUpdate_RPCPriority() {
+ try (Connection connection = createConnection()) {
+ for (boolean autocommit : new boolean[] {true, false}) {
+ connection.setAutocommit(autocommit);
+ connection.executeUpdate(INSERT_STATEMENT);
+
+ assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(ExecuteSqlRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ mockSpanner.clearRequests();
+ }
+ }
+ }
+
+ @Test
+ public void testPartitionedUpdate_RPCPriority() {
+ try (Connection connection = createConnection()) {
+ connection.setAutocommit(true);
+ connection.setAutocommitDmlMode(AutocommitDmlMode.PARTITIONED_NON_ATOMIC);
+ connection.executeUpdate(INSERT_STATEMENT);
+
+ assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(ExecuteSqlRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ mockSpanner.clearRequests();
+ }
+ }
+
+ @Test
+ public void testBatchUpdate_RPCPriority() {
+ try (Connection connection = createConnection()) {
+ connection.executeBatchUpdate(Collections.singleton(INSERT_STATEMENT));
+ connection.commit();
+
+ assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(ExecuteBatchDmlRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(CommitRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ mockSpanner.clearRequests();
+ }
+ }
+
+ @Test
+ public void testDmlBatch_RPCPriority() {
+ try (Connection connection = createConnection()) {
+ for (boolean autocommit : new boolean[] {true, false}) {
+ connection.setAutocommit(autocommit);
+
+ connection.startBatchDml();
+ connection.execute(INSERT_STATEMENT);
+ connection.execute(INSERT_STATEMENT);
+ connection.runBatch();
+
+ assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(ExecuteBatchDmlRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ mockSpanner.clearRequests();
+ }
+ }
+ }
+
+ @Test
+ public void testRunBatch_RPCPriority() {
+ try (Connection connection = createConnection()) {
+ connection.startBatchDml();
+ connection.execute(INSERT_STATEMENT);
+ connection.execute(INSERT_STATEMENT);
+ connection.runBatch();
+ connection.commit();
+
+ assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(ExecuteBatchDmlRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class));
+ assertEquals(
+ RequestOptions.Priority.PRIORITY_MEDIUM,
+ mockSpanner
+ .getRequestsOfType(CommitRequest.class)
+ .get(0)
+ .getRequestOptions()
+ .getPriority());
+ mockSpanner.clearRequests();
+ }
+ }
+
+ @Test
+ public void testShowSetRPCPriority() {
+ try (Connection connection = createConnection()) {
+ connection.setRPCPriority(null);
+ try (ResultSet rs =
+ connection.execute(Statement.of("SHOW VARIABLE RPC_PRIORITY")).getResultSet()) {
+ assertTrue(rs.next());
+ assertEquals("PRIORITY_UNSPECIFIED", rs.getString("RPC_PRIORITY"));
+ assertFalse(rs.next());
+ }
+ connection.execute(Statement.of("SET RPC_PRIORITY='LOW'"));
+ try (ResultSet rs =
+ connection.execute(Statement.of("SHOW VARIABLE RPC_PRIORITY")).getResultSet()) {
+ assertTrue(rs.next());
+ assertEquals("LOW", rs.getString("RPC_PRIORITY"));
+ assertFalse(rs.next());
+ }
+ connection.execute(Statement.of("SET RPC_PRIORITY='HIGH'"));
+ try (ResultSet rs =
+ connection.execute(Statement.of("SHOW VARIABLE RPC_PRIORITY")).getResultSet()) {
+ assertTrue(rs.next());
+ assertEquals("HIGH", rs.getString("RPC_PRIORITY"));
+ assertFalse(rs.next());
+ }
+ }
+ }
+ }
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/RpcPriorityConverterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/RpcPriorityConverterTest.java
new file mode 100644
index 0000000000..50436bc867
--- /dev/null
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/RpcPriorityConverterTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2021 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.cloud.spanner.connection;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException;
+import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.RpcPriorityConverter;
+import com.google.spanner.v1.RequestOptions.Priority;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class RpcPriorityConverterTest {
+
+ @Test
+ public void testConvert() throws CompileException {
+ String allowedValues = "'(HIGH|MEDIUM|LOW|NULL)'";
+ RpcPriorityConverter converter =
+ new ClientSideStatementValueConverters.RpcPriorityConverter(allowedValues);
+ assertEquals(Priority.PRIORITY_HIGH, converter.convert("high"));
+ assertEquals(Priority.PRIORITY_HIGH, converter.convert("HIGH"));
+ assertEquals(Priority.PRIORITY_HIGH, converter.convert("High"));
+
+ assertEquals(Priority.PRIORITY_MEDIUM, converter.convert("medium"));
+ assertEquals(Priority.PRIORITY_MEDIUM, converter.convert("Medium"));
+
+ assertEquals(Priority.PRIORITY_LOW, converter.convert("Low"));
+
+ assertNull(converter.convert(""));
+ assertNull(converter.convert(" "));
+ assertNull(converter.convert("random string"));
+ assertEquals(Priority.PRIORITY_UNSPECIFIED, converter.convert("NULL"));
+ }
+}
diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql
index c4b00f7fb4..0e87a357c4 100644
--- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql
+++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql
@@ -2130,6 +2130,205 @@ NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
show variable/-optimizer_version;
NEW_CONNECTION;
+show variable optimizer_statistics_package;
+NEW_CONNECTION;
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+show variable optimizer_statistics_package;
+NEW_CONNECTION;
+ show variable optimizer_statistics_package;
+NEW_CONNECTION;
+ show variable optimizer_statistics_package;
+NEW_CONNECTION;
+
+
+
+show variable optimizer_statistics_package;
+NEW_CONNECTION;
+show variable optimizer_statistics_package ;
+NEW_CONNECTION;
+show variable optimizer_statistics_package ;
+NEW_CONNECTION;
+show variable optimizer_statistics_package
+
+;
+NEW_CONNECTION;
+show variable optimizer_statistics_package;
+NEW_CONNECTION;
+show variable optimizer_statistics_package;
+NEW_CONNECTION;
+show
+variable
+optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package bar;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package%;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable%optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable_optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable&optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable$optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable@optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable!optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable*optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable(optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package);
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable)optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable-optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable+optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable-#optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable/optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable\optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable?optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable-/optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable/#optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-show variable optimizer_statistics_package;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable optimizer_statistics_package/-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+show variable/-optimizer_statistics_package;
+NEW_CONNECTION;
show variable return_commit_stats;
NEW_CONNECTION;
SHOW VARIABLE RETURN_COMMIT_STATS;
@@ -2994,279 +3193,478 @@ NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
show variable/-transaction_tag;
NEW_CONNECTION;
-begin;
+show variable rpc_priority;
NEW_CONNECTION;
-BEGIN;
+SHOW VARIABLE RPC_PRIORITY;
NEW_CONNECTION;
-begin;
+show variable rpc_priority;
NEW_CONNECTION;
- begin;
+ show variable rpc_priority;
NEW_CONNECTION;
- begin;
+ show variable rpc_priority;
NEW_CONNECTION;
-begin;
+show variable rpc_priority;
NEW_CONNECTION;
-begin ;
+show variable rpc_priority ;
NEW_CONNECTION;
-begin ;
+show variable rpc_priority ;
NEW_CONNECTION;
-begin
+show variable rpc_priority
;
NEW_CONNECTION;
-begin;
+show variable rpc_priority;
NEW_CONNECTION;
-begin;
+show variable rpc_priority;
NEW_CONNECTION;
-begin;
+show
+variable
+rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo begin;
+foo show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin bar;
+show variable rpc_priority bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%begin;
+%show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin%;
+show variable rpc_priority%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin%;
+show variable%rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_begin;
+_show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin_;
+show variable rpc_priority_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin_;
+show variable_rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&begin;
+&show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin&;
+show variable rpc_priority&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin&;
+show variable&rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$begin;
+$show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin$;
+show variable rpc_priority$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin$;
+show variable$rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@begin;
+@show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin@;
+show variable rpc_priority@;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin@;
+show variable@rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!begin;
+!show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin!;
+show variable rpc_priority!;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin!;
+show variable!rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*begin;
+*show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin*;
+show variable rpc_priority*;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin*;
+show variable*rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(begin;
+(show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin(;
+show variable rpc_priority(;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin(;
+show variable(rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)begin;
+)show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin);
+show variable rpc_priority);
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin);
+show variable)rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--begin;
+-show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin-;
+show variable rpc_priority-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin-;
+show variable-rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+begin;
++show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin+;
+show variable rpc_priority+;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin+;
+show variable+rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#begin;
+-#show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin-#;
+show variable rpc_priority-#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin-#;
+show variable-#rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/begin;
+/show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin/;
+show variable rpc_priority/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin/;
+show variable/rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\begin;
+\show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin\;
+show variable rpc_priority\;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin\;
+show variable\rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?begin;
+?show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin?;
+show variable rpc_priority?;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin?;
+show variable?rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/begin;
+-/show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin-/;
+show variable rpc_priority-/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin-/;
+show variable-/rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#begin;
+/#show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin/#;
+show variable rpc_priority/#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin/#;
+show variable/#rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-begin;
+/-show variable rpc_priority;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin/-;
+show variable rpc_priority/-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-begin/-;
+show variable/-rpc_priority;
NEW_CONNECTION;
-start;
+begin;
NEW_CONNECTION;
-START;
+BEGIN;
NEW_CONNECTION;
-start;
+begin;
NEW_CONNECTION;
- start;
+ begin;
NEW_CONNECTION;
- start;
+ begin;
NEW_CONNECTION;
-start;
+begin;
NEW_CONNECTION;
-start ;
+begin ;
NEW_CONNECTION;
-start ;
+begin ;
NEW_CONNECTION;
-start
+begin
;
NEW_CONNECTION;
-start;
+begin;
NEW_CONNECTION;
-start;
+begin;
NEW_CONNECTION;
-start;
+begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo start;
+foo begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start bar;
+begin bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%start;
+%begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start%;
+begin%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start%;
+begin%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_start;
+_begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start_;
+begin_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start_;
+begin_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&start;
+&begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start&;
+begin&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start&;
+begin&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$start;
+$begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start$;
+begin$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start$;
+begin$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@start;
+@begin;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-start@;
+begin@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin);
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin);
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-begin;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin/-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+begin/-;
+NEW_CONNECTION;
+start;
+NEW_CONNECTION;
+START;
+NEW_CONNECTION;
+start;
+NEW_CONNECTION;
+ start;
+NEW_CONNECTION;
+ start;
+NEW_CONNECTION;
+
+
+
+start;
+NEW_CONNECTION;
+start ;
+NEW_CONNECTION;
+start ;
+NEW_CONNECTION;
+start
+
+;
+NEW_CONNECTION;
+start;
+NEW_CONNECTION;
+start;
+NEW_CONNECTION;
+start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start bar;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start%;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start%;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@start;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+start@;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
start@;
@@ -12932,1794 +13330,2982 @@ NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
set/-optimizer_version='';
NEW_CONNECTION;
-set return_commit_stats = true;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
-SET RETURN_COMMIT_STATS = TRUE;
+SET OPTIMIZER_STATISTICS_PACKAGE='AUTO_20191128_14_47_22UTC';
NEW_CONNECTION;
-set return_commit_stats = true;
+set optimizer_statistics_package='auto_20191128_14_47_22utc';
NEW_CONNECTION;
- set return_commit_stats = true;
+ set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
- set return_commit_stats = true;
+ set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
-set return_commit_stats = true;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
-set return_commit_stats = true ;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC' ;
NEW_CONNECTION;
-set return_commit_stats = true ;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC' ;
NEW_CONNECTION;
-set return_commit_stats = true
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'
;
NEW_CONNECTION;
-set return_commit_stats = true;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
-set return_commit_stats = true;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
set
-return_commit_stats
-=
-true;
+optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set return_commit_stats = true;
+foo set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true bar;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC' bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set return_commit_stats = true;
+%set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true%;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =%true;
+set%optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set return_commit_stats = true;
+_set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true_;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =_true;
+set_optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set return_commit_stats = true;
+&set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true&;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =&true;
+set&optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set return_commit_stats = true;
+$set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true$;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =$true;
+set$optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set return_commit_stats = true;
+@set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true@;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'@;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =@true;
+set@optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set return_commit_stats = true;
+!set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true!;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'!;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =!true;
+set!optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set return_commit_stats = true;
+*set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true*;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'*;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =*true;
+set*optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set return_commit_stats = true;
+(set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true(;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'(;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =(true;
+set(optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set return_commit_stats = true;
+)set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true);
+set optimizer_statistics_package='auto_20191128_14_47_22UTC');
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =)true;
+set)optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set return_commit_stats = true;
+-set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true-;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =-true;
+set-optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set return_commit_stats = true;
++set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true+;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'+;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =+true;
+set+optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set return_commit_stats = true;
+-#set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true-#;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'-#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =-#true;
+set-#optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set return_commit_stats = true;
+/set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true/;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =/true;
+set/optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set return_commit_stats = true;
+\set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true\;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'\;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =\true;
+set\optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set return_commit_stats = true;
+?set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true?;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'?;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =?true;
+set?optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set return_commit_stats = true;
+-/set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true-/;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'-/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =-/true;
+set-/optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set return_commit_stats = true;
+/#set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true/#;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'/#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =/#true;
+set/#optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set return_commit_stats = true;
+/-set optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = true/-;
+set optimizer_statistics_package='auto_20191128_14_47_22UTC'/-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =/-true;
+set/-optimizer_statistics_package='auto_20191128_14_47_22UTC';
NEW_CONNECTION;
-set return_commit_stats = false;
+set optimizer_statistics_package='';
NEW_CONNECTION;
-SET RETURN_COMMIT_STATS = FALSE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
NEW_CONNECTION;
-set return_commit_stats = false;
+set optimizer_statistics_package='';
NEW_CONNECTION;
- set return_commit_stats = false;
+ set optimizer_statistics_package='';
NEW_CONNECTION;
- set return_commit_stats = false;
+ set optimizer_statistics_package='';
NEW_CONNECTION;
-set return_commit_stats = false;
+set optimizer_statistics_package='';
NEW_CONNECTION;
-set return_commit_stats = false ;
+set optimizer_statistics_package='' ;
NEW_CONNECTION;
-set return_commit_stats = false ;
+set optimizer_statistics_package='' ;
NEW_CONNECTION;
-set return_commit_stats = false
+set optimizer_statistics_package=''
;
NEW_CONNECTION;
-set return_commit_stats = false;
+set optimizer_statistics_package='';
NEW_CONNECTION;
-set return_commit_stats = false;
+set optimizer_statistics_package='';
NEW_CONNECTION;
set
-return_commit_stats
-=
-false;
+optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set return_commit_stats = false;
+foo set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false bar;
+set optimizer_statistics_package='' bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set return_commit_stats = false;
+%set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false%;
+set optimizer_statistics_package=''%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =%false;
+set%optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set return_commit_stats = false;
+_set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false_;
+set optimizer_statistics_package=''_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =_false;
+set_optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set return_commit_stats = false;
+&set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false&;
+set optimizer_statistics_package=''&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =&false;
+set&optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set return_commit_stats = false;
+$set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false$;
+set optimizer_statistics_package=''$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =$false;
+set$optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set return_commit_stats = false;
+@set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false@;
+set optimizer_statistics_package=''@;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =@false;
+set@optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set return_commit_stats = false;
+!set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false!;
+set optimizer_statistics_package=''!;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =!false;
+set!optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set return_commit_stats = false;
+*set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false*;
+set optimizer_statistics_package=''*;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =*false;
+set*optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set return_commit_stats = false;
+(set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false(;
+set optimizer_statistics_package=''(;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =(false;
+set(optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set return_commit_stats = false;
+)set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false);
+set optimizer_statistics_package='');
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =)false;
+set)optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set return_commit_stats = false;
+-set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false-;
+set optimizer_statistics_package=''-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =-false;
+set-optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set return_commit_stats = false;
++set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false+;
+set optimizer_statistics_package=''+;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =+false;
+set+optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set return_commit_stats = false;
+-#set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false-#;
+set optimizer_statistics_package=''-#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =-#false;
+set-#optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set return_commit_stats = false;
+/set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false/;
+set optimizer_statistics_package=''/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =/false;
+set/optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set return_commit_stats = false;
+\set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false\;
+set optimizer_statistics_package=''\;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =\false;
+set\optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set return_commit_stats = false;
+?set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false?;
+set optimizer_statistics_package=''?;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =?false;
+set?optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set return_commit_stats = false;
+-/set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false-/;
+set optimizer_statistics_package=''-/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =-/false;
+set-/optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set return_commit_stats = false;
+/#set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false/#;
+set optimizer_statistics_package=''/#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =/#false;
+set/#optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set return_commit_stats = false;
+/-set optimizer_statistics_package='';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats = false/-;
+set optimizer_statistics_package=''/-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set return_commit_stats =/-false;
+set/-optimizer_statistics_package='';
NEW_CONNECTION;
-set statement_tag='tag1';
+set return_commit_stats = true;
NEW_CONNECTION;
-SET STATEMENT_TAG='TAG1';
+SET RETURN_COMMIT_STATS = TRUE;
NEW_CONNECTION;
-set statement_tag='tag1';
+set return_commit_stats = true;
NEW_CONNECTION;
- set statement_tag='tag1';
+ set return_commit_stats = true;
NEW_CONNECTION;
- set statement_tag='tag1';
+ set return_commit_stats = true;
NEW_CONNECTION;
-set statement_tag='tag1';
+set return_commit_stats = true;
NEW_CONNECTION;
-set statement_tag='tag1' ;
+set return_commit_stats = true ;
NEW_CONNECTION;
-set statement_tag='tag1' ;
+set return_commit_stats = true ;
NEW_CONNECTION;
-set statement_tag='tag1'
+set return_commit_stats = true
;
NEW_CONNECTION;
-set statement_tag='tag1';
+set return_commit_stats = true;
NEW_CONNECTION;
-set statement_tag='tag1';
+set return_commit_stats = true;
NEW_CONNECTION;
set
-statement_tag='tag1';
+return_commit_stats
+=
+true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set statement_tag='tag1';
+foo set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1' bar;
+set return_commit_stats = true bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set statement_tag='tag1';
+%set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'%;
+set return_commit_stats = true%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set%statement_tag='tag1';
+set return_commit_stats =%true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set statement_tag='tag1';
+_set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'_;
+set return_commit_stats = true_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set_statement_tag='tag1';
+set return_commit_stats =_true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set statement_tag='tag1';
+&set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'&;
+set return_commit_stats = true&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set&statement_tag='tag1';
+set return_commit_stats =&true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set statement_tag='tag1';
+$set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'$;
+set return_commit_stats = true$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set$statement_tag='tag1';
+set return_commit_stats =$true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set statement_tag='tag1';
+@set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'@;
+set return_commit_stats = true@;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set@statement_tag='tag1';
+set return_commit_stats =@true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set statement_tag='tag1';
+!set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'!;
+set return_commit_stats = true!;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set!statement_tag='tag1';
+set return_commit_stats =!true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set statement_tag='tag1';
+*set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'*;
+set return_commit_stats = true*;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set*statement_tag='tag1';
+set return_commit_stats =*true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set statement_tag='tag1';
+(set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'(;
+set return_commit_stats = true(;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set(statement_tag='tag1';
+set return_commit_stats =(true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set statement_tag='tag1';
+)set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1');
+set return_commit_stats = true);
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set)statement_tag='tag1';
+set return_commit_stats =)true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set statement_tag='tag1';
+-set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'-;
+set return_commit_stats = true-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-statement_tag='tag1';
+set return_commit_stats =-true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set statement_tag='tag1';
++set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'+;
+set return_commit_stats = true+;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set+statement_tag='tag1';
+set return_commit_stats =+true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set statement_tag='tag1';
+-#set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'-#;
+set return_commit_stats = true-#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-#statement_tag='tag1';
+set return_commit_stats =-#true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set statement_tag='tag1';
+/set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'/;
+set return_commit_stats = true/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/statement_tag='tag1';
+set return_commit_stats =/true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set statement_tag='tag1';
+\set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'\;
+set return_commit_stats = true\;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set\statement_tag='tag1';
+set return_commit_stats =\true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set statement_tag='tag1';
+?set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'?;
+set return_commit_stats = true?;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set?statement_tag='tag1';
+set return_commit_stats =?true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set statement_tag='tag1';
+-/set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'-/;
+set return_commit_stats = true-/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-/statement_tag='tag1';
+set return_commit_stats =-/true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set statement_tag='tag1';
+/#set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'/#;
+set return_commit_stats = true/#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/#statement_tag='tag1';
+set return_commit_stats =/#true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set statement_tag='tag1';
+/-set return_commit_stats = true;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag1'/-;
+set return_commit_stats = true/-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/-statement_tag='tag1';
+set return_commit_stats =/-true;
NEW_CONNECTION;
-set statement_tag='tag2';
+set return_commit_stats = false;
NEW_CONNECTION;
-SET STATEMENT_TAG='TAG2';
+SET RETURN_COMMIT_STATS = FALSE;
NEW_CONNECTION;
-set statement_tag='tag2';
+set return_commit_stats = false;
NEW_CONNECTION;
- set statement_tag='tag2';
+ set return_commit_stats = false;
NEW_CONNECTION;
- set statement_tag='tag2';
+ set return_commit_stats = false;
NEW_CONNECTION;
-set statement_tag='tag2';
+set return_commit_stats = false;
NEW_CONNECTION;
-set statement_tag='tag2' ;
+set return_commit_stats = false ;
NEW_CONNECTION;
-set statement_tag='tag2' ;
+set return_commit_stats = false ;
NEW_CONNECTION;
-set statement_tag='tag2'
+set return_commit_stats = false
;
NEW_CONNECTION;
-set statement_tag='tag2';
+set return_commit_stats = false;
NEW_CONNECTION;
-set statement_tag='tag2';
+set return_commit_stats = false;
NEW_CONNECTION;
set
-statement_tag='tag2';
+return_commit_stats
+=
+false;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set statement_tag='tag2';
+foo set return_commit_stats = false;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2' bar;
+set return_commit_stats = false bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set statement_tag='tag2';
+%set return_commit_stats = false;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'%;
+set return_commit_stats = false%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set%statement_tag='tag2';
+set return_commit_stats =%false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =_false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =&false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =$false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =@false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =!false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =*false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =(false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false);
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =)false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =-false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =+false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =-#false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =/false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =\false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =?false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =-/false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =/#false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-set return_commit_stats = false;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats = false/-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set return_commit_stats =/-false;
+NEW_CONNECTION;
+set statement_tag='tag1';
+NEW_CONNECTION;
+SET STATEMENT_TAG='TAG1';
+NEW_CONNECTION;
+set statement_tag='tag1';
+NEW_CONNECTION;
+ set statement_tag='tag1';
+NEW_CONNECTION;
+ set statement_tag='tag1';
+NEW_CONNECTION;
+
+
+
+set statement_tag='tag1';
+NEW_CONNECTION;
+set statement_tag='tag1' ;
+NEW_CONNECTION;
+set statement_tag='tag1' ;
+NEW_CONNECTION;
+set statement_tag='tag1'
+
+;
+NEW_CONNECTION;
+set statement_tag='tag1';
+NEW_CONNECTION;
+set statement_tag='tag1';
+NEW_CONNECTION;
+set
+statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1' bar;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'%;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set%statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set_statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set&statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set$statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set@statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set!statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set*statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set(statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1');
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set)statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set+statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-#statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set\statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set?statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-/statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/#statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-set statement_tag='tag1';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag1'/-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/-statement_tag='tag1';
+NEW_CONNECTION;
+set statement_tag='tag2';
+NEW_CONNECTION;
+SET STATEMENT_TAG='TAG2';
+NEW_CONNECTION;
+set statement_tag='tag2';
+NEW_CONNECTION;
+ set statement_tag='tag2';
+NEW_CONNECTION;
+ set statement_tag='tag2';
+NEW_CONNECTION;
+
+
+
+set statement_tag='tag2';
+NEW_CONNECTION;
+set statement_tag='tag2' ;
+NEW_CONNECTION;
+set statement_tag='tag2' ;
+NEW_CONNECTION;
+set statement_tag='tag2'
+
+;
+NEW_CONNECTION;
+set statement_tag='tag2';
+NEW_CONNECTION;
+set statement_tag='tag2';
+NEW_CONNECTION;
+set
+statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2' bar;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'%;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set%statement_tag='tag2';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
_set statement_tag='tag2';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'_;
+set statement_tag='tag2'_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set_statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set&statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set$statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set@statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set!statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set*statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set(statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2');
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set)statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set+statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-#statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set\statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set?statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-/statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/#statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-set statement_tag='tag2';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='tag2'/-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/-statement_tag='tag2';
+NEW_CONNECTION;
+set statement_tag='';
+NEW_CONNECTION;
+SET STATEMENT_TAG='';
+NEW_CONNECTION;
+set statement_tag='';
+NEW_CONNECTION;
+ set statement_tag='';
+NEW_CONNECTION;
+ set statement_tag='';
+NEW_CONNECTION;
+
+
+
+set statement_tag='';
+NEW_CONNECTION;
+set statement_tag='' ;
+NEW_CONNECTION;
+set statement_tag='' ;
+NEW_CONNECTION;
+set statement_tag=''
+
+;
+NEW_CONNECTION;
+set statement_tag='';
+NEW_CONNECTION;
+set statement_tag='';
+NEW_CONNECTION;
+set
+statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='' bar;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''%;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set%statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''_;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set_statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''&;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set&statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''$;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set$statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''@;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set@statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''!;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set!statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''*;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set*statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''(;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set(statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag='');
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set)statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''+;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set+statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''-#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-#statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''\;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set\statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''?;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set?statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''-/;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-/statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''/#;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/#statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-set statement_tag='';
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set statement_tag=''/-;
+NEW_CONNECTION;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/-statement_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+SET TRANSACTION_TAG='TAG1';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+ set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+ set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+
+
+
+set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1' ;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1' ;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1'
+
+;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+set
+transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1' bar;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'%;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set%transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'_;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set_transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'&;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set&transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'$;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set$transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'@;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set@transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'!;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set!transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'*;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set*transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'(;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set(transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1');
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set)transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'-;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'+;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set+transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'-#;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-#transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'/;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'\;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set\transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+?set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'?;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set?transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-/set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'-/;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-/transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/#set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'/#;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/#transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/-set transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag1'/-;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/-transaction_tag='tag1';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+SET TRANSACTION_TAG='TAG2';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+ set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+ set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+
+
+
+set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2' ;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2' ;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2'
+
+;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+set
+transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+foo set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2' bar;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+%set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'%;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set%transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+_set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'_;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set_transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+&set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'&;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set&transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+$set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'$;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set$transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+@set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'@;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set@transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+!set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'!;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set!transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'*;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set*transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'(;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set(transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2');
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set)transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'-;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'+;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set+transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='tag2'-#;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-#transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set_statement_tag='tag2';
+/set transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set statement_tag='tag2';
+set transaction_tag='tag2'/;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'&;
+set/transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set&statement_tag='tag2';
+\set transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set statement_tag='tag2';
+set transaction_tag='tag2'\;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'$;
+set\transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set$statement_tag='tag2';
+?set transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set statement_tag='tag2';
+set transaction_tag='tag2'?;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'@;
+set?transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set@statement_tag='tag2';
+-/set transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set statement_tag='tag2';
+set transaction_tag='tag2'-/;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'!;
+set-/transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set!statement_tag='tag2';
+/#set transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set statement_tag='tag2';
+set transaction_tag='tag2'/#;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'*;
+set/#transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set*statement_tag='tag2';
+/-set transaction_tag='tag2';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set statement_tag='tag2';
+set transaction_tag='tag2'/-;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'(;
+set/-transaction_tag='tag2';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+SET TRANSACTION_TAG='';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+ set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+ set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+
+
+
+set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='' ;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='' ;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag=''
+
+;
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+set
+transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set(statement_tag='tag2';
+foo set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set statement_tag='tag2';
+set transaction_tag='' bar;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2');
+%set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set)statement_tag='tag2';
+set transaction_tag=''%;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set statement_tag='tag2';
+set%transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'-;
+_set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-statement_tag='tag2';
+set transaction_tag=''_;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set statement_tag='tag2';
+set_transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'+;
+&set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set+statement_tag='tag2';
+set transaction_tag=''&;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set statement_tag='tag2';
+set&transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'-#;
+$set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-#statement_tag='tag2';
+set transaction_tag=''$;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set statement_tag='tag2';
+set$transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'/;
+@set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/statement_tag='tag2';
+set transaction_tag=''@;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set statement_tag='tag2';
+set@transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'\;
+!set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set\statement_tag='tag2';
+set transaction_tag=''!;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set!transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+*set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''*;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set*transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+(set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''(;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set(transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+)set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag='');
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set)transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''-;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
++set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''+;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set+transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+-#set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''-#;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set-#transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+/set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''/;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set/transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+\set transaction_tag='';
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set transaction_tag=''\;
+NEW_CONNECTION;
+set autocommit = false;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+set\transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set statement_tag='tag2';
+?set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'?;
+set transaction_tag=''?;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set?statement_tag='tag2';
+set?transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set statement_tag='tag2';
+-/set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'-/;
+set transaction_tag=''-/;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-/statement_tag='tag2';
+set-/transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set statement_tag='tag2';
+/#set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'/#;
+set transaction_tag=''/#;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/#statement_tag='tag2';
+set/#transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set statement_tag='tag2';
+/-set transaction_tag='';
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='tag2'/-;
+set transaction_tag=''/-;
NEW_CONNECTION;
+set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/-statement_tag='tag2';
+set/-transaction_tag='';
NEW_CONNECTION;
-set statement_tag='';
+set rpc_priority='HIGH';
NEW_CONNECTION;
-SET STATEMENT_TAG='';
+SET RPC_PRIORITY='HIGH';
NEW_CONNECTION;
-set statement_tag='';
+set rpc_priority='high';
NEW_CONNECTION;
- set statement_tag='';
+ set rpc_priority='HIGH';
NEW_CONNECTION;
- set statement_tag='';
+ set rpc_priority='HIGH';
NEW_CONNECTION;
-set statement_tag='';
+set rpc_priority='HIGH';
NEW_CONNECTION;
-set statement_tag='' ;
+set rpc_priority='HIGH' ;
NEW_CONNECTION;
-set statement_tag='' ;
+set rpc_priority='HIGH' ;
NEW_CONNECTION;
-set statement_tag=''
+set rpc_priority='HIGH'
;
NEW_CONNECTION;
-set statement_tag='';
+set rpc_priority='HIGH';
NEW_CONNECTION;
-set statement_tag='';
+set rpc_priority='HIGH';
NEW_CONNECTION;
set
-statement_tag='';
+rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set statement_tag='';
+foo set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='' bar;
+set rpc_priority='HIGH' bar;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set statement_tag='';
+%set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''%;
+set rpc_priority='HIGH'%;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set%statement_tag='';
+set%rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set statement_tag='';
+_set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''_;
+set rpc_priority='HIGH'_;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set_statement_tag='';
+set_rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set statement_tag='';
+&set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''&;
+set rpc_priority='HIGH'&;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set&statement_tag='';
+set&rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set statement_tag='';
+$set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''$;
+set rpc_priority='HIGH'$;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set$statement_tag='';
+set$rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set statement_tag='';
+@set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''@;
+set rpc_priority='HIGH'@;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set@statement_tag='';
+set@rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set statement_tag='';
+!set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''!;
+set rpc_priority='HIGH'!;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set!statement_tag='';
+set!rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set statement_tag='';
+*set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''*;
+set rpc_priority='HIGH'*;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set*statement_tag='';
+set*rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set statement_tag='';
+(set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''(;
+set rpc_priority='HIGH'(;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set(statement_tag='';
+set(rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set statement_tag='';
+)set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag='');
+set rpc_priority='HIGH');
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set)statement_tag='';
+set)rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set statement_tag='';
+-set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''-;
+set rpc_priority='HIGH'-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-statement_tag='';
+set-rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set statement_tag='';
++set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''+;
+set rpc_priority='HIGH'+;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set+statement_tag='';
+set+rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set statement_tag='';
+-#set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''-#;
+set rpc_priority='HIGH'-#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-#statement_tag='';
+set-#rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set statement_tag='';
+/set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''/;
+set rpc_priority='HIGH'/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/statement_tag='';
+set/rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set statement_tag='';
+\set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''\;
+set rpc_priority='HIGH'\;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set\statement_tag='';
+set\rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set statement_tag='';
+?set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''?;
+set rpc_priority='HIGH'?;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set?statement_tag='';
+set?rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set statement_tag='';
+-/set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''-/;
+set rpc_priority='HIGH'-/;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-/statement_tag='';
+set-/rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set statement_tag='';
+/#set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''/#;
+set rpc_priority='HIGH'/#;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/#statement_tag='';
+set/#rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set statement_tag='';
+/-set rpc_priority='HIGH';
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set statement_tag=''/-;
+set rpc_priority='HIGH'/-;
NEW_CONNECTION;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/-statement_tag='';
+set/-rpc_priority='HIGH';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1';
+set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
-SET TRANSACTION_TAG='TAG1';
+SET RPC_PRIORITY='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1';
+set rpc_priority='medium';
NEW_CONNECTION;
-set autocommit = false;
- set transaction_tag='tag1';
+ set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
- set transaction_tag='tag1';
+ set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1';
+set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1' ;
+set rpc_priority='MEDIUM' ;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1' ;
+set rpc_priority='MEDIUM' ;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1'
+set rpc_priority='MEDIUM'
;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1';
+set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag1';
+set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
set
-transaction_tag='tag1';
+rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set transaction_tag='tag1';
+foo set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1' bar;
+set rpc_priority='MEDIUM' bar;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set transaction_tag='tag1';
+%set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'%;
+set rpc_priority='MEDIUM'%;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set%transaction_tag='tag1';
+set%rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set transaction_tag='tag1';
+_set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'_;
+set rpc_priority='MEDIUM'_;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set_transaction_tag='tag1';
+set_rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set transaction_tag='tag1';
+&set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'&;
+set rpc_priority='MEDIUM'&;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set&transaction_tag='tag1';
+set&rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set transaction_tag='tag1';
+$set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'$;
+set rpc_priority='MEDIUM'$;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set$transaction_tag='tag1';
+set$rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set transaction_tag='tag1';
+@set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'@;
+set rpc_priority='MEDIUM'@;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set@transaction_tag='tag1';
+set@rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set transaction_tag='tag1';
+!set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'!;
+set rpc_priority='MEDIUM'!;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set!transaction_tag='tag1';
+set!rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set transaction_tag='tag1';
+*set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'*;
+set rpc_priority='MEDIUM'*;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set*transaction_tag='tag1';
+set*rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set transaction_tag='tag1';
+(set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'(;
+set rpc_priority='MEDIUM'(;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set(transaction_tag='tag1';
+set(rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set transaction_tag='tag1';
+)set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1');
+set rpc_priority='MEDIUM');
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set)transaction_tag='tag1';
+set)rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set transaction_tag='tag1';
+-set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'-;
+set rpc_priority='MEDIUM'-;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-transaction_tag='tag1';
+set-rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set transaction_tag='tag1';
++set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'+;
+set rpc_priority='MEDIUM'+;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set+transaction_tag='tag1';
+set+rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set transaction_tag='tag1';
+-#set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'-#;
+set rpc_priority='MEDIUM'-#;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-#transaction_tag='tag1';
+set-#rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set transaction_tag='tag1';
+/set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'/;
+set rpc_priority='MEDIUM'/;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/transaction_tag='tag1';
+set/rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set transaction_tag='tag1';
+\set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'\;
+set rpc_priority='MEDIUM'\;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set\transaction_tag='tag1';
+set\rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set transaction_tag='tag1';
+?set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'?;
+set rpc_priority='MEDIUM'?;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set?transaction_tag='tag1';
+set?rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set transaction_tag='tag1';
+-/set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'-/;
+set rpc_priority='MEDIUM'-/;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-/transaction_tag='tag1';
+set-/rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set transaction_tag='tag1';
+/#set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'/#;
+set rpc_priority='MEDIUM'/#;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/#transaction_tag='tag1';
+set/#rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set transaction_tag='tag1';
+/-set rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag1'/-;
+set rpc_priority='MEDIUM'/-;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/-transaction_tag='tag1';
+set/-rpc_priority='MEDIUM';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2';
+set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
-SET TRANSACTION_TAG='TAG2';
+SET RPC_PRIORITY='LOW';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2';
+set rpc_priority='low';
NEW_CONNECTION;
-set autocommit = false;
- set transaction_tag='tag2';
+ set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
- set transaction_tag='tag2';
+ set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2';
+set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2' ;
+set rpc_priority='LOW' ;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2' ;
+set rpc_priority='LOW' ;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2'
+set rpc_priority='LOW'
;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2';
+set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='tag2';
+set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
set
-transaction_tag='tag2';
+rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set transaction_tag='tag2';
+foo set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2' bar;
+set rpc_priority='LOW' bar;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set transaction_tag='tag2';
+%set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'%;
+set rpc_priority='LOW'%;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set%transaction_tag='tag2';
+set%rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set transaction_tag='tag2';
+_set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'_;
+set rpc_priority='LOW'_;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set_transaction_tag='tag2';
+set_rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set transaction_tag='tag2';
+&set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'&;
+set rpc_priority='LOW'&;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set&transaction_tag='tag2';
+set&rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set transaction_tag='tag2';
+$set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'$;
+set rpc_priority='LOW'$;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set$transaction_tag='tag2';
+set$rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set transaction_tag='tag2';
+@set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'@;
+set rpc_priority='LOW'@;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set@transaction_tag='tag2';
+set@rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set transaction_tag='tag2';
+!set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'!;
+set rpc_priority='LOW'!;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set!transaction_tag='tag2';
+set!rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set transaction_tag='tag2';
+*set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'*;
+set rpc_priority='LOW'*;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set*transaction_tag='tag2';
+set*rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set transaction_tag='tag2';
+(set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'(;
+set rpc_priority='LOW'(;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set(transaction_tag='tag2';
+set(rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set transaction_tag='tag2';
+)set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2');
+set rpc_priority='LOW');
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set)transaction_tag='tag2';
+set)rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set transaction_tag='tag2';
+-set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'-;
+set rpc_priority='LOW'-;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-transaction_tag='tag2';
+set-rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set transaction_tag='tag2';
++set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'+;
+set rpc_priority='LOW'+;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set+transaction_tag='tag2';
+set+rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set transaction_tag='tag2';
+-#set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'-#;
+set rpc_priority='LOW'-#;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-#transaction_tag='tag2';
+set-#rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set transaction_tag='tag2';
+/set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'/;
+set rpc_priority='LOW'/;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/transaction_tag='tag2';
+set/rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set transaction_tag='tag2';
+\set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'\;
+set rpc_priority='LOW'\;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set\transaction_tag='tag2';
+set\rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set transaction_tag='tag2';
+?set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'?;
+set rpc_priority='LOW'?;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set?transaction_tag='tag2';
+set?rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set transaction_tag='tag2';
+-/set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'-/;
+set rpc_priority='LOW'-/;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-/transaction_tag='tag2';
+set-/rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set transaction_tag='tag2';
+/#set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'/#;
+set rpc_priority='LOW'/#;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/#transaction_tag='tag2';
+set/#rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set transaction_tag='tag2';
+/-set rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='tag2'/-;
+set rpc_priority='LOW'/-;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/-transaction_tag='tag2';
+set/-rpc_priority='LOW';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='';
+set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
-SET TRANSACTION_TAG='';
+SET RPC_PRIORITY='NULL';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='';
+set rpc_priority='null';
NEW_CONNECTION;
-set autocommit = false;
- set transaction_tag='';
+ set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
- set transaction_tag='';
+ set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='';
+set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='' ;
+set rpc_priority='NULL' ;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='' ;
+set rpc_priority='NULL' ;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag=''
+set rpc_priority='NULL'
;
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='';
+set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
-set transaction_tag='';
+set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
set
-transaction_tag='';
+rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-foo set transaction_tag='';
+foo set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='' bar;
+set rpc_priority='NULL' bar;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-%set transaction_tag='';
+%set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''%;
+set rpc_priority='NULL'%;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set%transaction_tag='';
+set%rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-_set transaction_tag='';
+_set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''_;
+set rpc_priority='NULL'_;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set_transaction_tag='';
+set_rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-&set transaction_tag='';
+&set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''&;
+set rpc_priority='NULL'&;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set&transaction_tag='';
+set&rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-$set transaction_tag='';
+$set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''$;
+set rpc_priority='NULL'$;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set$transaction_tag='';
+set$rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-@set transaction_tag='';
+@set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''@;
+set rpc_priority='NULL'@;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set@transaction_tag='';
+set@rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-!set transaction_tag='';
+!set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''!;
+set rpc_priority='NULL'!;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set!transaction_tag='';
+set!rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-*set transaction_tag='';
+*set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''*;
+set rpc_priority='NULL'*;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set*transaction_tag='';
+set*rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-(set transaction_tag='';
+(set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''(;
+set rpc_priority='NULL'(;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set(transaction_tag='';
+set(rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-)set transaction_tag='';
+)set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag='');
+set rpc_priority='NULL');
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set)transaction_tag='';
+set)rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--set transaction_tag='';
+-set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''-;
+set rpc_priority='NULL'-;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-transaction_tag='';
+set-rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-+set transaction_tag='';
++set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''+;
+set rpc_priority='NULL'+;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set+transaction_tag='';
+set+rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--#set transaction_tag='';
+-#set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''-#;
+set rpc_priority='NULL'-#;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-#transaction_tag='';
+set-#rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/set transaction_tag='';
+/set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''/;
+set rpc_priority='NULL'/;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/transaction_tag='';
+set/rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-\set transaction_tag='';
+\set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''\;
+set rpc_priority='NULL'\;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set\transaction_tag='';
+set\rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-?set transaction_tag='';
+?set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''?;
+set rpc_priority='NULL'?;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set?transaction_tag='';
+set?rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
--/set transaction_tag='';
+-/set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''-/;
+set rpc_priority='NULL'-/;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set-/transaction_tag='';
+set-/rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/#set transaction_tag='';
+/#set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''/#;
+set rpc_priority='NULL'/#;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/#transaction_tag='';
+set/#rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-/-set transaction_tag='';
+/-set rpc_priority='NULL';
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set transaction_tag=''/-;
+set rpc_priority='NULL'/-;
NEW_CONNECTION;
-set autocommit = false;
@EXPECT EXCEPTION INVALID_ARGUMENT
-set/-transaction_tag='';
+set/-rpc_priority='NULL';
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 e94bb6da31..4091717231 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=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -26,125 +26,123 @@ SET AUTOCOMMIT=TRUE;
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+COMMIT;
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -153,60 +151,58 @@ SET READONLY=TRUE;
SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z'
+SET AUTOCOMMIT=FALSE;
+COMMIT;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:24.004000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:24.004000000Z'
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 2021-04-13T18:14:20.237000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+COMMIT;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:24.004000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -221,30 +217,44 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+COMMIT;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+COMMIT;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -287,36 +297,45 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@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 AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+COMMIT;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+COMMIT;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
@@ -327,36 +346,28 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET AUTOCOMMIT=FALSE;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -365,173 +376,123 @@ SET AUTOCOMMIT=TRUE;
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
-@EXPECT RESULT_SET 'READ_TIMESTAMP'
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -540,78 +501,58 @@ SET READONLY=TRUE;
SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z'
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:24.184000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:24.184000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z'
-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 2021-11-12T19:08:24.184000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -626,42 +567,44 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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 STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -704,48 +647,45 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+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=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
BEGIN TRANSACTION;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
@@ -756,207 +696,324 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SELECT 1 AS TEST;
-COMMIT;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
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=TRUE;
+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 AUTOCOMMIT=FALSE;
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=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
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=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
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=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
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=TRUE;
+SET AUTOCOMMIT=FALSE;
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=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
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=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.443000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.443000000Z'
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:24.391000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:24.391000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 2021-04-13T18:14:20.443000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:24.391000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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;
@@ -971,30 +1028,68 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+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
+SELECT 1 AS TEST;
+ROLLBACK;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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
+SELECT 1 AS TEST;
+ROLLBACK;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1037,61 +1132,116 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+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
+SELECT 1 AS TEST;
+ROLLBACK;
+@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
+SELECT 1 AS TEST;
+ROLLBACK;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
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=TRUE;
+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 AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -1100,125 +1250,195 @@ SET AUTOCOMMIT=TRUE;
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+COMMIT;
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+COMMIT;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -1227,60 +1447,85 @@ SET READONLY=TRUE;
SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z'
+COMMIT;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:24.603000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:24.603000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+COMMIT;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:24.603000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 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 AUTOCOMMIT=FALSE;
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+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;
@@ -1295,30 +1540,68 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+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=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+COMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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
SELECT 1 AS TEST;
+COMMIT;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1361,36 +1644,69 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+COMMIT;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+COMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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=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 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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
@@ -1401,217 +1717,208 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
+COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
-SHOW VARIABLE AUTOCOMMIT;
+BEGIN TRANSACTION;
+@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT=TRUE;
-@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE
-SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+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;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE'
SHOW VARIABLE AUTOCOMMIT_DML_MODE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
-@EXPECT RESULT_SET 'READ_TIMESTAMP'
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'READ_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
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;
+BEGIN TRANSACTION;
+@EXPECT EXCEPTION FAILED_PRECONDITION
SET READONLY=TRUE;
-@EXPECT RESULT_SET 'READONLY',TRUE
-SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+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;
-SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z'
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:24.746000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:24.746000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:24.746000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+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;
-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;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MAX_STALENESS 100ms';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+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;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_RESPONSE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -1626,30 +1933,44 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1692,220 +2013,282 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT RESULT_SET 'READ_ONLY_STALENESS'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
+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;
-SELECT 1 AS TEST;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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;
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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-@EXPECT RESULT_SET 'READ_TIMESTAMP',null
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+@EXPECT RESULT_SET 'READ_TIMESTAMP'
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-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 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 READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:24.942000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:24.942000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 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 READ_ONLY_STALENESS='EXACT_STALENESS 100us';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='EXACT_STALENESS 100us';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -1920,24 +2303,52 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@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 OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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 STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1980,235 +2391,254 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
+@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;
+@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;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN 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
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
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 AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+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
+SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
-NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=TRUE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+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=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
+@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
-@EXPECT RESULT_SET 'READ_TIMESTAMP',null
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
+@EXPECT RESULT_SET 'READ_TIMESTAMP'
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
ROLLBACK;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READONLY=FALSE;
+SET READONLY=TRUE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='STRONG';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.755000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:25.174000000Z';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.755000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:25.174000000Z';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='EXACT_STALENESS 1s';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='MAX_STALENESS 100ms';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='EXACT_STALENESS 100us';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -2222,31 +2652,45 @@ SET OPTIMIZER_VERSION='';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION',''
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2288,275 +2732,220 @@ SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
COMMIT;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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=FALSE;
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
BEGIN TRANSACTION;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-START BATCH DDL;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@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 READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
-NEW_CONNECTION;
-SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
+SHOW VARIABLE AUTOCOMMIT;
SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE
+SHOW VARIABLE AUTOCOMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'READ_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
ROLLBACK;
NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
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 READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
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 2021-04-13T18:14:20.807000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.807000000Z'
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:25.357000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:25.357000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.807000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:25.357000000Z';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+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=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='MAX_STALENESS 100ms';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+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=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_RESPONSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -2570,37 +2959,37 @@ SET OPTIMIZER_VERSION='';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION',''
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2642,76 +3031,68 @@ SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@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;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
COMMIT;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
-SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+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 AUTOCOMMIT=TRUE;
-BEGIN TRANSACTION;
-SET TRANSACTION READ ONLY;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=FALSE;
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
@@ -2721,150 +3102,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
@@ -2876,9 +3210,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
@@ -2890,17 +3222,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
@@ -2910,77 +3237,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 2021-04-13T18:14:20.903000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.903000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:25.549000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:25.549000000Z'
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 2021-04-13T18:14:20.903000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.903000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:25.549000000Z';
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'
@@ -2996,41 +3303,43 @@ 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=FALSE;
+COMMIT;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
COMMIT;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
@@ -3074,47 +3383,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=FALSE;
+COMMIT;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
@@ -3125,138 +3430,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;
@@ -3267,69 +3632,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 2021-04-13T18:14:20.957000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.957000000Z'
+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 2021-11-12T19:08:25.723000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:25.723000000Z'
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 2021-04-13T18:14:20.957000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:25.723000000Z';
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;
@@ -3344,44 +3735,74 @@ 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 STATEMENT_TIMEOUT='1s';
-@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
-SHOW VARIABLE STATEMENT_TIMEOUT;
-SET STATEMENT_TIMEOUT=null;
-@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
-SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
-SET STATEMENT_TIMEOUT='0s';
-@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
-SHOW VARIABLE STATEMENT_TIMEOUT;
-SET STATEMENT_TIMEOUT='1ms';
-@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1ms'
-SHOW VARIABLE STATEMENT_TIMEOUT;
-SET STATEMENT_TIMEOUT=null;
+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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
+SET STATEMENT_TIMEOUT=null;
+@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
+SHOW VARIABLE STATEMENT_TIMEOUT;
+@EXPECT EXCEPTION INVALID_ARGUMENT
+SET STATEMENT_TIMEOUT='0s';
+@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
+SHOW VARIABLE STATEMENT_TIMEOUT;
+SET STATEMENT_TIMEOUT='1ms';
+@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1ms'
+SHOW VARIABLE STATEMENT_TIMEOUT;
+SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@EXPECT EXCEPTION INVALID_ARGUMENT
@@ -3410,262 +3831,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=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=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 2021-04-13T18:14:21.041000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.041000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:25.858000000Z';
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 2021-04-13T18:14:21.041000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.041000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:25.858000000Z';
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'
@@ -3681,29 +4143,51 @@ 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;
-CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
+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=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'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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'
@@ -3747,270 +4231,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=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=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 2021-04-13T18:14:21.115000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+START BATCH DDL;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.003000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-UPDATE foo SET bar=1;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+START BATCH DDL;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:26.003000000Z';
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'
-SHOW VARIABLE COMMIT_RESPONSE;
-NEW_CONNECTION;
+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;
@@ -4025,30 +4493,44 @@ 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=FALSE;
+START BATCH DDL;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+START BATCH DDL;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4091,71 +4573,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;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=FALSE;
+START BATCH DDL;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+START BATCH DDL;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
@@ -4164,130 +4658,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;
@@ -4298,9 +4829,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;
@@ -4311,16 +4844,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;
@@ -4329,69 +4865,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 2021-04-13T18:14:21.186000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.186000000Z'
+COMMIT;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.155000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:26.155000000Z'
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 2021-04-13T18:14:21.186000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.186000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+COMMIT;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:26.155000000Z';
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;
@@ -4406,36 +4958,68 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-@EXPECT RESULT_SET 'TEST',1
+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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
@@ -4478,42 +5062,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=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=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;
@@ -4523,232 +5133,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 2021-04-13T18:14:21.257000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z'
+SET AUTOCOMMIT=FALSE;
+SET TRANSACTION READ ONLY;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.311000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:26.311000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=FALSE;
+SET TRANSACTION READ ONLY;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:26.311000000Z';
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;
@@ -4763,30 +5348,44 @@ 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=FALSE;
+SET TRANSACTION READ ONLY;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+SET TRANSACTION READ ONLY;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4829,63 +5428,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=FALSE;
+SET TRANSACTION READ ONLY;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
@@ -4894,88 +5501,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;
@@ -4986,7 +5609,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;
@@ -4997,12 +5621,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;
@@ -5011,51 +5636,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 2021-04-13T18:14:21.313000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z'
+SET AUTOCOMMIT=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.437000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:26.437000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
-SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z'
-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 2021-11-12T19:08:26.437000000Z';
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;
@@ -5070,24 +5702,44 @@ 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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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';
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5130,30 +5782,44 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
-SET AUTOCOMMIT=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=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;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-RUN BATCH;
-NEW_CONNECTION;
+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=FALSE;
+SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
+RUN BATCH;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
@@ -5163,27 +5829,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=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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;
@@ -5193,103 +5872,166 @@ SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+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=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
SELECT 1 AS TEST;
@@ -5301,7 +6043,10 @@ START BATCH DDL;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
START BATCH DML;
@EXPECT EXCEPTION FAILED_PRECONDITION
SELECT 1 AS TEST;
@@ -5313,12 +6058,18 @@ START BATCH DML;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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;
@@ -5328,57 +6079,84 @@ SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.357000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.357000000Z'
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.614000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:26.614000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
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 2021-04-13T18:14:21.357000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:26.614000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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;
@@ -5394,29 +6172,67 @@ SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
+NEW_CONNECTION;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+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;
@@ -5460,33 +6276,67 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
+NEW_CONNECTION;
+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=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=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
UPDATE foo SET bar=1;
@@ -5497,35 +6347,42 @@ BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-COMMIT;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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;
@@ -5535,145 +6392,166 @@ SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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;
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 UPDATE_COUNT 1
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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 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 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 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 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 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 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 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 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 WRITE;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=FALSE;
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;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
SELECT 1 AS TEST;
@@ -5685,9 +6563,10 @@ START BATCH DDL;
NEW_CONNECTION;
SET READONLY=FALSE;
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;
START BATCH DML;
@EXPECT EXCEPTION FAILED_PRECONDITION
SELECT 1 AS TEST;
@@ -5699,16 +6578,18 @@ START BATCH DML;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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;
@@ -5718,75 +6599,84 @@ SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 2021-04-13T18:14:21.419000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.419000000Z'
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+COMMIT;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.803000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:26.803000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
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 2021-04-13T18:14:21.419000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:26.803000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+COMMIT;
+@EXPECT RESULT_SET 'COMMIT_TIMESTAMP'
SHOW VARIABLE COMMIT_RESPONSE;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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;
@@ -5802,41 +6692,67 @@ SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+COMMIT;
+@EXPECT RESULT_SET 'COMMIT_TIMESTAMP'
SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+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;
@@ -5880,45 +6796,67 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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=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=FALSE;
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_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=FALSE;
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;
UPDATE foo SET bar=1;
@@ -5929,240 +6867,211 @@ BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
-CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
-@EXPECT EXCEPTION FAILED_PRECONDITION
+BEGIN TRANSACTION;
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 UPDATE_COUNT 1
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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 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 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 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 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 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 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 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 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 WRITE;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+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=FALSE;
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 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 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 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 2021-04-13T18:14:21.477000000Z';
+BEGIN TRANSACTION;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:26.930000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:26.930000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
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 2021-04-13T18:14:21.477000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:26.930000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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 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;
@@ -6178,35 +7087,43 @@ SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 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 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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6250,241 +7167,285 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
-CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
-RUN BATCH;
+BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
+RUN BATCH;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+BEGIN TRANSACTION;
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+@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;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
@EXPECT RESULT_SET 'READ_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@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=FALSE;
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 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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.520000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.097000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 2021-04-13T18:14:21.520000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.097000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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;
@@ -6500,29 +7461,51 @@ SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@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 OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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 STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6566,256 +7549,189 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@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;
+@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;
+@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 AUTOCOMMIT=FALSE;
-START BATCH DDL;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=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=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 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=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=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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@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=FALSE;
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 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;
@@ -6827,105 +7743,64 @@ START BATCH DML;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.566000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.566000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.270000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 2021-04-13T18:14:21.566000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.270000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 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 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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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;
@@ -6941,47 +7816,43 @@ SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7025,261 +7896,228 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
+NEW_CONNECTION;
+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=FALSE;
+SET AUTOCOMMIT=FALSE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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 AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=FALSE;
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 AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+@EXPECT UPDATE_COUNT 1
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET TRANSACTION READ ONLY;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'READ_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-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=FALSE;
-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=FALSE;
-SET TRANSACTION READ ONLY;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=FALSE;
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 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=FALSE;
-SET TRANSACTION READ ONLY;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.620000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.620000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.406000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:27.406000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.620000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.406000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='MAX_STALENESS 100ms';
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_RESPONSE;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -7295,29 +8133,35 @@ SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
+NEW_CONNECTION;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7361,255 +8205,239 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=FALSE;
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=FALSE;
-SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
COMMIT;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
-@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET TRANSACTION READ ONLY;
+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;
-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 2021-04-13T18:14:21.679000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.679000000Z'
-SHOW VARIABLE READ_ONLY_STALENESS;
+SET AUTOCOMMIT=TRUE;
+START BATCH DDL;
+@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.519000000Z';
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 2021-04-13T18:14:21.679000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.519000000Z';
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;
@@ -7624,30 +8452,44 @@ 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=TRUE;
+START BATCH DDL;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+START BATCH DDL;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7690,371 +8532,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';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET AUTOCOMMIT=TRUE;
+START BATCH DDL;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+START BATCH DDL;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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 2021-04-13T18:14:21.778000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.778000000Z'
+SET TRANSACTION READ ONLY;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.620000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:27.620000000Z'
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 2021-04-13T18:14:21.778000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.620000000Z';
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;
@@ -8069,48 +8824,52 @@ 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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8153,97 +8912,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=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=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
@@ -8253,166 +9002,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
@@ -8424,10 +9157,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
@@ -8439,18 +9171,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
@@ -8460,84 +9191,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 2021-04-13T18:14:21.885000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.885000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.738000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:27.738000000Z'
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 2021-04-13T18:14:21.885000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.738000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:27.738000000Z'
+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'
@@ -8553,47 +9277,59 @@ 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=TRUE;
+BEGIN TRANSACTION;
+UPDATE foo SET bar=1;
+COMMIT;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@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;
COMMIT;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
@@ -8637,51 +9373,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=TRUE;
+BEGIN TRANSACTION;
+UPDATE foo SET bar=1;
+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;
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;
@@ -8692,138 +9438,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
@@ -8835,68 +9580,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 2021-04-13T18:14:21.950000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.950000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:27.876000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:27.876000000Z'
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 2021-04-13T18:14:21.950000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:27.876000000Z';
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'
@@ -8912,29 +9657,43 @@ 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=TRUE;
+BEGIN TRANSACTION;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
@@ -8978,196 +9737,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=TRUE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=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;
@@ -9178,76 +9934,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 2021-04-13T18:14:22.004000000Z';
+SET AUTOCOMMIT=TRUE;
+CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.014000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.014000000Z'
+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 2021-04-13T18:14:22.004000000Z';
+SET AUTOCOMMIT=TRUE;
+CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.014000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.014000000Z'
+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;
@@ -9262,36 +10018,44 @@ 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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
@@ -9334,178 +10098,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=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=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;
@@ -9516,65 +10302,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 2021-04-13T18:14:22.065000000Z';
+SET AUTOCOMMIT=TRUE;
+UPDATE foo SET bar=1;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.150000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.150000000Z'
+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 2021-04-13T18:14:22.065000000Z';
+SET AUTOCOMMIT=TRUE;
+UPDATE foo SET bar=1;
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.150000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.150000000Z'
+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;
@@ -9589,30 +10386,44 @@ 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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+UPDATE foo SET bar=1;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9655,57 +10466,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=TRUE;
+UPDATE foo SET bar=1;
+@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
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
+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;
@@ -9714,83 +10549,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 TRANSACTION READ WRITE;
-NEW_CONNECTION;
+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;
@@ -9801,7 +10683,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;
@@ -9812,11 +10696,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;
@@ -9825,49 +10714,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 2021-04-13T18:14:22.116000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.116000000Z'
+SET AUTOCOMMIT=TRUE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.249000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.249000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.116000000Z';
+SET AUTOCOMMIT=TRUE;
+@EXPECT RESULT_SET 'TEST',1
+SELECT 1 AS TEST;
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.249000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.249000000Z'
+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;
@@ -9882,24 +10791,52 @@ 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=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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=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;
@@ -9942,28 +10879,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=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=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;
@@ -9973,27 +10936,29 @@ 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=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -10001,124 +10966,140 @@ SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+@EXPECT UPDATE_COUNT 1
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+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_DML_MODE='PARTITIONED_NON_ATOMIC';
+@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC'
+SHOW VARIABLE AUTOCOMMIT_DML_MODE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
-@EXPECT RESULT_SET 'READ_TIMESTAMP',null
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+@EXPECT RESULT_SET 'READ_TIMESTAMP'
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+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=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+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;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -10126,59 +11107,61 @@ SET READONLY=TRUE;
@EXPECT RESULT_SET 'READONLY',TRUE
SHOW VARIABLE READONLY;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.181000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.181000000Z'
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.377000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.377000000Z'
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 2021-04-13T18:14:22.181000000Z';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.377000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.377000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+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;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -10192,31 +11175,45 @@ SET OPTIMIZER_VERSION='';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION',''
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10258,68 +11255,74 @@ SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+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;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-COMMIT;
+SET READONLY=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;
-COMMIT;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -10327,124 +11330,116 @@ SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT UPDATE_COUNT 1
UPDATE foo SET bar=1;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+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_DML_MODE='PARTITIONED_NON_ATOMIC';
+@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC'
+SHOW VARIABLE AUTOCOMMIT_DML_MODE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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';
+SET READONLY=FALSE;
+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=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+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=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -10452,59 +11447,52 @@ SET READONLY=TRUE;
@EXPECT RESULT_SET 'READONLY',TRUE
SHOW VARIABLE READONLY;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+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;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.221000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.221000000Z'
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.469000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.469000000Z'
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 2021-04-13T18:14:22.221000000Z';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.469000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.469000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+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;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-@EXPECT EXCEPTION FAILED_PRECONDITION
+SET READONLY=FALSE;
+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;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+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;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -10518,31 +11506,37 @@ SET OPTIMIZER_VERSION='';
@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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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 READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10584,80 +11578,69 @@ SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
@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 READONLY=FALSE;
+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 READ_ONLY_STALENESS='EXACT_STALENESS 10s';
+SET READONLY=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -10666,195 +11649,125 @@ SET AUTOCOMMIT=TRUE;
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
-SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET READONLY=TRUE;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -10863,85 +11776,60 @@ SET READONLY=TRUE;
SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.271000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.271000000Z'
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.552000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.552000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-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 2021-04-13T18:14:22.271000000Z';
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.552000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.552000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
-@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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -10956,48 +11844,44 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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;
+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 STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11040,53 +11924,46 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+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;
-BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
BEGIN TRANSACTION;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
@@ -11097,41 +11974,34 @@ 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
-SELECT 1 AS TEST;
-ROLLBACK;
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
@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;
COMMIT;
@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;
COMMIT;
SET AUTOCOMMIT=FALSE;
@@ -11142,193 +12012,171 @@ 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;
COMMIT;
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;
COMMIT;
@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;
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 AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
@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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
@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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
+@EXPECT EXCEPTION FAILED_PRECONDITION
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;
COMMIT;
@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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
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=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
@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;
COMMIT;
@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;
COMMIT;
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
SET READONLY=FALSE;
@@ -11339,9 +12187,8 @@ 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;
COMMIT;
SET READ_ONLY_STALENESS='STRONG';
@@ -11349,28 +12196,26 @@ 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;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.325000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.325000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.668000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.668000000Z'
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;
COMMIT;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.325000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.668000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.668000000Z'
+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;
COMMIT;
SET READ_ONLY_STALENESS='EXACT_STALENESS 1s';
@@ -11378,18 +12223,17 @@ 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;
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;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
SET READ_ONLY_STALENESS='EXACT_STALENESS 100us';
@@ -11397,25 +12241,22 @@ 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;
COMMIT;
@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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
SET OPTIMIZER_VERSION='1';
@@ -11432,46 +12273,58 @@ 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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
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;
COMMIT;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+BEGIN TRANSACTION;
+SELECT 1 AS TEST;
+COMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
SET STATEMENT_TIMEOUT='1s';
@@ -11516,51 +12369,60 @@ 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;
COMMIT;
@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;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+BEGIN TRANSACTION;
+SELECT 1 AS TEST;
+COMMIT;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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=TRUE;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
BEGIN TRANSACTION;
@@ -11573,207 +12435,206 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET AUTOCOMMIT=TRUE;
+SET AUTOCOMMIT=FALSE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-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=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE'
SHOW VARIABLE AUTOCOMMIT_DML_MODE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT RESULT_SET 'READ_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READONLY=TRUE;
+SET READONLY=FALSE;
NEW_CONNECTION;
SET READONLY=TRUE;
-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=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.371000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.371000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.767000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.767000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.371000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.767000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
-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=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET READ_ONLY_STALENESS='MAX_STALENESS 100ms';
NEW_CONNECTION;
SET READONLY=TRUE;
-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=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_RESPONSE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
@@ -11789,29 +12650,43 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+BEGIN TRANSACTION;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
+BEGIN TRANSACTION;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
+SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
-SHOW VARIABLE COMMIT_TIMESTAMP;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
@@ -11855,271 +12730,259 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT RESULT_SET 'READ_ONLY_STALENESS'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+BEGIN TRANSACTION;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
+BEGIN TRANSACTION;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT RESULT_SET 'READ_TIMESTAMP'
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
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=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.416000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.862000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.862000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.416000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.862000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.862000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
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=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
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=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
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=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
@@ -12135,35 +12998,43 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
@@ -12207,241 +13078,266 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@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;
+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;
-@EXPECT RESULT_SET 'TEST',1
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@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;
SELECT 1 AS TEST;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT RESULT_SET 'READ_TIMESTAMP'
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@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;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.473000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:28.959000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:28.959000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.473000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:28.959000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:28.959000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
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=FALSE;
+SET AUTOCOMMIT=TRUE;
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=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
@@ -12457,29 +13353,43 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
@@ -12523,57 +13433,74 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+SELECT 1 AS TEST;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+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=TRUE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'OPTIMIZER_VERSION'
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
ABORT BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE
SHOW VARIABLE AUTOCOMMIT;
@@ -12582,99 +13509,101 @@ SET AUTOCOMMIT=TRUE;
SHOW VARIABLE AUTOCOMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
UPDATE foo SET bar=1;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE'
SHOW VARIABLE AUTOCOMMIT_DML_MODE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ ONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION READ WRITE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'READ_TIMESTAMP',null
SHOW VARIABLE READ_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DDL;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
START BATCH DML;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
ROLLBACK;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SET READONLY=FALSE;
@EXPECT RESULT_SET 'READONLY',FALSE
SHOW VARIABLE READONLY;
@@ -12683,49 +13612,51 @@ SET READONLY=TRUE;
SHOW VARIABLE READONLY;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.517000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.517000000Z'
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-11-12T19:08:29.047000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-11-12T19:08:29.047000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
-@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.517000000Z';
+SET AUTOCOMMIT=TRUE;
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-11-12T19:08:29.047000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-11-12T19:08:29.047000000Z'
+SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+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 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;
+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;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_RESPONSE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
SET OPTIMIZER_VERSION='1';
@EXPECT RESULT_SET 'OPTIMIZER_VERSION','1'
SHOW VARIABLE OPTIMIZER_VERSION;
@@ -12740,24 +13671,36 @@ SET OPTIMIZER_VERSION='';
SHOW VARIABLE OPTIMIZER_VERSION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null
SHOW VARIABLE COMMIT_TIMESTAMP;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
+SET OPTIMIZER_STATISTICS_PACKAGE='custom-package';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+SET OPTIMIZER_STATISTICS_PACKAGE='';
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE',''
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
SET STATEMENT_TIMEOUT='1s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12800,29 +13743,38 @@ SET STATEMENT_TIMEOUT='0ns';
SHOW VARIABLE STATEMENT_TIMEOUT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'READ_ONLY_STALENESS'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT EXCEPTION FAILED_PRECONDITION
COMMIT;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
+@EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE'
+SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE;
+NEW_CONNECTION;
+SET READONLY=TRUE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
RUN BATCH;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
@EXPECT EXCEPTION FAILED_PRECONDITION
SET TRANSACTION_TAG = 'some-tag';
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
@@ -12833,4 +13785,4 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
BEGIN TRANSACTION;
NEW_CONNECTION;
SET READONLY=TRUE;
-SET AUTOCOMMIT=FALSE;
+SET AUTOCOMMIT=TRUE;
diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ITSqlScriptTest_TestQueryOptions.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ITSqlScriptTest_TestQueryOptions.sql
index 7b1449cdf9..d1abbce747 100644
--- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ITSqlScriptTest_TestQueryOptions.sql
+++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ITSqlScriptTest_TestQueryOptions.sql
@@ -70,3 +70,16 @@ SET OPTIMIZER_VERSION = 'v1';
-- Optimizer statistics package
@EXPECT EXCEPTION INVALID_ARGUMENT 'INVALID_ARGUMENT: Unknown value for OPTIMIZER_STATISTICS_PACKAGE: ' ''
SET OPTIMIZER_STATISTICS_PACKAGE = ' ';
+
+-- RPC Priority
+@EXPECT NO_RESULT
+SET RPC_PRIORITY = 'MEDIUM';
+
+@EXPECT RESULT_SET 'RPC_PRIORITY','MEDIUM'
+SHOW VARIABLE RPC_PRIORITY;
+
+@EXPECT EXCEPTION INVALID_ARGUMENT
+SET RPC_PRIORITY = '';
+
+@EXPECT RESULT_SET 'RPC_PRIORITY','MEDIUM'
+SHOW VARIABLE RPC_PRIORITY;