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

package com.google.spanner.v1;

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

  /**
   *
   *
   * <pre>
   * [QueryPlan][google.spanner.v1.QueryPlan] for the query associated with this
   * result.
   * </pre>
   *
   * <code>.google.spanner.v1.QueryPlan query_plan = 1;</code>
   */
  boolean hasQueryPlan();
  /**
   *
   *
   * <pre>
   * [QueryPlan][google.spanner.v1.QueryPlan] for the query associated with this
   * result.
   * </pre>
   *
   * <code>.google.spanner.v1.QueryPlan query_plan = 1;</code>
   */
  com.google.spanner.v1.QueryPlan getQueryPlan();
  /**
   *
   *
   * <pre>
   * [QueryPlan][google.spanner.v1.QueryPlan] for the query associated with this
   * result.
   * </pre>
   *
   * <code>.google.spanner.v1.QueryPlan query_plan = 1;</code>
   */
  com.google.spanner.v1.QueryPlanOrBuilder getQueryPlanOrBuilder();

  /**
   *
   *
   * <pre>
   * Aggregated statistics from the execution of the query. Only present when
   * the query is profiled. For example, a query could return the statistics as
   * follows:
   *     {
   *       "rows_returned": "3",
   *       "elapsed_time": "1.22 secs",
   *       "cpu_time": "1.19 secs"
   *     }
   * </pre>
   *
   * <code>.google.protobuf.Struct query_stats = 2;</code>
   */
  boolean hasQueryStats();
  /**
   *
   *
   * <pre>
   * Aggregated statistics from the execution of the query. Only present when
   * the query is profiled. For example, a query could return the statistics as
   * follows:
   *     {
   *       "rows_returned": "3",
   *       "elapsed_time": "1.22 secs",
   *       "cpu_time": "1.19 secs"
   *     }
   * </pre>
   *
   * <code>.google.protobuf.Struct query_stats = 2;</code>
   */
  com.google.protobuf.Struct getQueryStats();
  /**
   *
   *
   * <pre>
   * Aggregated statistics from the execution of the query. Only present when
   * the query is profiled. For example, a query could return the statistics as
   * follows:
   *     {
   *       "rows_returned": "3",
   *       "elapsed_time": "1.22 secs",
   *       "cpu_time": "1.19 secs"
   *     }
   * </pre>
   *
   * <code>.google.protobuf.Struct query_stats = 2;</code>
   */
  com.google.protobuf.StructOrBuilder getQueryStatsOrBuilder();

  /**
   *
   *
   * <pre>
   * Standard DML returns an exact count of rows that were modified.
   * </pre>
   *
   * <code>int64 row_count_exact = 3;</code>
   */
  long getRowCountExact();

  /**
   *
   *
   * <pre>
   * Partitioned DML does not offer exactly-once semantics, so it
   * returns a lower bound of the rows modified.
   * </pre>
   *
   * <code>int64 row_count_lower_bound = 4;</code>
   */
  long getRowCountLowerBound();

  public com.google.spanner.v1.ResultSetStats.RowCountCase getRowCountCase();
}
