// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/spanner/v1/result_set.proto

package com.google.spanner.v1;

public interface ResultSetMetadataOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.spanner.v1.ResultSetMetadata)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * Indicates the field names and types for the rows in the result
   * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
   * Users"` could return a `row_type` value like:
   *     "fields": [
   *       { "name": "UserId", "type": { "code": "INT64" } },
   *       { "name": "UserName", "type": { "code": "STRING" } },
   *     ]
   * </pre>
   *
   * <code>.google.spanner.v1.StructType row_type = 1;</code>
   */
  boolean hasRowType();
  /**
   * <pre>
   * Indicates the field names and types for the rows in the result
   * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
   * Users"` could return a `row_type` value like:
   *     "fields": [
   *       { "name": "UserId", "type": { "code": "INT64" } },
   *       { "name": "UserName", "type": { "code": "STRING" } },
   *     ]
   * </pre>
   *
   * <code>.google.spanner.v1.StructType row_type = 1;</code>
   */
  com.google.spanner.v1.StructType getRowType();
  /**
   * <pre>
   * Indicates the field names and types for the rows in the result
   * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
   * Users"` could return a `row_type` value like:
   *     "fields": [
   *       { "name": "UserId", "type": { "code": "INT64" } },
   *       { "name": "UserName", "type": { "code": "STRING" } },
   *     ]
   * </pre>
   *
   * <code>.google.spanner.v1.StructType row_type = 1;</code>
   */
  com.google.spanner.v1.StructTypeOrBuilder getRowTypeOrBuilder();

  /**
   * <pre>
   * If the read or SQL query began a transaction as a side-effect, the
   * information about the new transaction is yielded here.
   * </pre>
   *
   * <code>.google.spanner.v1.Transaction transaction = 2;</code>
   */
  boolean hasTransaction();
  /**
   * <pre>
   * If the read or SQL query began a transaction as a side-effect, the
   * information about the new transaction is yielded here.
   * </pre>
   *
   * <code>.google.spanner.v1.Transaction transaction = 2;</code>
   */
  com.google.spanner.v1.Transaction getTransaction();
  /**
   * <pre>
   * If the read or SQL query began a transaction as a side-effect, the
   * information about the new transaction is yielded here.
   * </pre>
   *
   * <code>.google.spanner.v1.Transaction transaction = 2;</code>
   */
  com.google.spanner.v1.TransactionOrBuilder getTransactionOrBuilder();
}
