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:
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:
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:
(::Integer) — Standard DML returns an exact count of rows that were modified.
Note: The following fields are mutually exclusive: row_count_exact, row_count_lower_bound. If a field in that set is populated, all other fields in the set will automatically be cleared.
#row_count_exact=
defrow_count_exact=(value)->::Integer
Parameter
value (::Integer) — Standard DML returns an exact count of rows that were modified.
Note: The following fields are mutually exclusive: row_count_exact, row_count_lower_bound. If a field in that set is populated, all other fields in the set will automatically be cleared.
Returns
(::Integer) — Standard DML returns an exact count of rows that were modified.
Note: The following fields are mutually exclusive: row_count_exact, row_count_lower_bound. If a field in that set is populated, all other fields in the set will automatically be cleared.
#row_count_lower_bound
defrow_count_lower_bound()->::Integer
Returns
(::Integer) — Partitioned DML doesn't offer exactly-once semantics, so it
returns a lower bound of the rows modified.
Note: The following fields are mutually exclusive: row_count_lower_bound, row_count_exact. If a field in that set is populated, all other fields in the set will automatically be cleared.
#row_count_lower_bound=
defrow_count_lower_bound=(value)->::Integer
Parameter
value (::Integer) — Partitioned DML doesn't offer exactly-once semantics, so it
returns a lower bound of the rows modified.
Note: The following fields are mutually exclusive: row_count_lower_bound, row_count_exact. If a field in that set is populated, all other fields in the set will automatically be cleared.
Returns
(::Integer) — Partitioned DML doesn't offer exactly-once semantics, so it
returns a lower bound of the rows modified.
Note: The following fields are mutually exclusive: row_count_lower_bound, row_count_exact. If a field in that set is populated, all other fields in the set will automatically be cleared.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Cloud Spanner V1 API - Class Google::Cloud::Spanner::V1::ResultSetStats (v1.10.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.10.0 (latest)](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.9.1](/ruby/docs/reference/google-cloud-spanner-v1/1.9.1/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.8.0](/ruby/docs/reference/google-cloud-spanner-v1/1.8.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.7.1](/ruby/docs/reference/google-cloud-spanner-v1/1.7.1/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.6.0](/ruby/docs/reference/google-cloud-spanner-v1/1.6.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.5.0](/ruby/docs/reference/google-cloud-spanner-v1/1.5.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.4.0](/ruby/docs/reference/google-cloud-spanner-v1/1.4.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.3.0](/ruby/docs/reference/google-cloud-spanner-v1/1.3.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.2.0](/ruby/docs/reference/google-cloud-spanner-v1/1.2.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.1.0](/ruby/docs/reference/google-cloud-spanner-v1/1.1.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [1.0.2](/ruby/docs/reference/google-cloud-spanner-v1/1.0.2/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.27.0](/ruby/docs/reference/google-cloud-spanner-v1/0.27.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.26.0](/ruby/docs/reference/google-cloud-spanner-v1/0.26.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.25.0](/ruby/docs/reference/google-cloud-spanner-v1/0.25.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.24.0](/ruby/docs/reference/google-cloud-spanner-v1/0.24.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.23.0](/ruby/docs/reference/google-cloud-spanner-v1/0.23.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.22.2](/ruby/docs/reference/google-cloud-spanner-v1/0.22.2/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.21.0](/ruby/docs/reference/google-cloud-spanner-v1/0.21.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.20.1](/ruby/docs/reference/google-cloud-spanner-v1/0.20.1/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.19.0](/ruby/docs/reference/google-cloud-spanner-v1/0.19.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.18.0](/ruby/docs/reference/google-cloud-spanner-v1/0.18.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.17.0](/ruby/docs/reference/google-cloud-spanner-v1/0.17.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.16.0](/ruby/docs/reference/google-cloud-spanner-v1/0.16.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.15.1](/ruby/docs/reference/google-cloud-spanner-v1/0.15.1/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.14.1](/ruby/docs/reference/google-cloud-spanner-v1/0.14.1/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.13.0](/ruby/docs/reference/google-cloud-spanner-v1/0.13.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.12.0](/ruby/docs/reference/google-cloud-spanner-v1/0.12.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.11.0](/ruby/docs/reference/google-cloud-spanner-v1/0.11.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.10.0](/ruby/docs/reference/google-cloud-spanner-v1/0.10.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.9.0](/ruby/docs/reference/google-cloud-spanner-v1/0.9.0/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.8.1](/ruby/docs/reference/google-cloud-spanner-v1/0.8.1/Google-Cloud-Spanner-V1-ResultSetStats)\n- [0.7.4](/ruby/docs/reference/google-cloud-spanner-v1/0.7.4/Google-Cloud-Spanner-V1-ResultSetStats) \nReference documentation and code samples for the Cloud Spanner V1 API class Google::Cloud::Spanner::V1::ResultSetStats.\n\nAdditional statistics about a [ResultSet](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-ResultSet \"Google::Cloud::Spanner::V1::ResultSet (class)\") or\n[PartialResultSet](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-PartialResultSet \"Google::Cloud::Spanner::V1::PartialResultSet (class)\"). \n\nInherits\n--------\n\n- Object \n\nExtended By\n-----------\n\n- Google::Protobuf::MessageExts::ClassMethods \n\nIncludes\n--------\n\n- Google::Protobuf::MessageExts\n\nMethods\n-------\n\n### #query_plan\n\n def query_plan() -\u003e ::Google::Cloud::Spanner::V1::QueryPlan\n\n**Returns**\n\n- ([::Google::Cloud::Spanner::V1::QueryPlan](./Google-Cloud-Spanner-V1-QueryPlan)) --- [QueryPlan](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-QueryPlan \"Google::Cloud::Spanner::V1::QueryPlan (class)\") for the query associated with this result.\n\n### #query_plan=\n\n def query_plan=(value) -\u003e ::Google::Cloud::Spanner::V1::QueryPlan\n\n**Parameter**\n\n- **value** ([::Google::Cloud::Spanner::V1::QueryPlan](./Google-Cloud-Spanner-V1-QueryPlan)) --- [QueryPlan](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-QueryPlan \"Google::Cloud::Spanner::V1::QueryPlan (class)\") for the query associated with this result. \n**Returns**\n\n- ([::Google::Cloud::Spanner::V1::QueryPlan](./Google-Cloud-Spanner-V1-QueryPlan)) --- [QueryPlan](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-QueryPlan \"Google::Cloud::Spanner::V1::QueryPlan (class)\") for the query associated with this result.\n\n### #query_stats\n\n def query_stats() -\u003e ::Google::Protobuf::Struct\n\n**Returns**\n\n- ([::Google::Protobuf::Struct](./Google-Protobuf-Struct)) ---\n\n Aggregated statistics from the execution of the query. Only present when\n the query is profiled. For example, a query could return the statistics as\n follows: \n\n {\n \"rows_returned\": \"3\",\n \"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }\n\n### #query_stats=\n\n def query_stats=(value) -\u003e ::Google::Protobuf::Struct\n\n**Parameter**\n\n- **value** ([::Google::Protobuf::Struct](./Google-Protobuf-Struct)) ---\n\n Aggregated statistics from the execution of the query. Only present when\n the query is profiled. For example, a query could return the statistics as\n follows: \n\n {\n \"rows_returned\": \"3\",\n \"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }\n\n**Returns**\n\n- ([::Google::Protobuf::Struct](./Google-Protobuf-Struct)) ---\n\n Aggregated statistics from the execution of the query. Only present when\n the query is profiled. For example, a query could return the statistics as\n follows: \n\n {\n \"rows_returned\": \"3\",\n \"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }\n\n### #row_count_exact\n\n def row_count_exact() -\u003e ::Integer\n\n**Returns**\n\n- (::Integer) --- Standard DML returns an exact count of rows that were modified.\n\n Note: The following fields are mutually exclusive: `row_count_exact`, `row_count_lower_bound`. If a field in that set is populated, all other fields in the set will automatically be cleared.\n\n### #row_count_exact=\n\n def row_count_exact=(value) -\u003e ::Integer\n\n**Parameter**\n\n- **value** (::Integer) --- Standard DML returns an exact count of rows that were modified.\n\n\nNote: The following fields are mutually exclusive: `row_count_exact`, `row_count_lower_bound`. If a field in that set is populated, all other fields in the set will automatically be cleared. \n**Returns**\n\n- (::Integer) --- Standard DML returns an exact count of rows that were modified.\n\n Note: The following fields are mutually exclusive: `row_count_exact`, `row_count_lower_bound`. If a field in that set is populated, all other fields in the set will automatically be cleared.\n\n### #row_count_lower_bound\n\n def row_count_lower_bound() -\u003e ::Integer\n\n**Returns**\n\n- (::Integer) --- Partitioned DML doesn't offer exactly-once semantics, so it returns a lower bound of the rows modified.\n\n Note: The following fields are mutually exclusive: `row_count_lower_bound`, `row_count_exact`. If a field in that set is populated, all other fields in the set will automatically be cleared.\n\n### #row_count_lower_bound=\n\n def row_count_lower_bound=(value) -\u003e ::Integer\n\n**Parameter**\n\n- **value** (::Integer) --- Partitioned DML doesn't offer exactly-once semantics, so it returns a lower bound of the rows modified.\n\n\nNote: The following fields are mutually exclusive: `row_count_lower_bound`, `row_count_exact`. If a field in that set is populated, all other fields in the set will automatically be cleared. \n**Returns**\n\n- (::Integer) --- Partitioned DML doesn't offer exactly-once semantics, so it returns a lower bound of the rows modified.\n\n Note: The following fields are mutually exclusive: `row_count_lower_bound`, `row_count_exact`. If a field in that set is populated, all other fields in the set will automatically be cleared."]]