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:
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:
A SQL query can be parameterized. In PLAN mode, these parameters can be
undeclared. This indicates the field names and types for those undeclared
parameters in the SQL query. For example, a SQL query like "SELECT * FROM
Users where UserId = @userId and UserName = @userName " could return a
undeclared_parameters value like:
A SQL query can be parameterized. In PLAN mode, these parameters can be
undeclared. This indicates the field names and types for those undeclared
parameters in the SQL query. For example, a SQL query like "SELECT * FROM
Users where UserId = @userId and UserName = @userName " could return a
undeclared_parameters value like:
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:
A SQL query can be parameterized. In PLAN mode, these parameters can be
undeclared. This indicates the field names and types for those undeclared
parameters in the SQL query. For example, a SQL query like "SELECT * FROM
Users where UserId = @userId and UserName = @userName " could return a
undeclared_parameters value like:
[[["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,["# Interface ResultSetMetadataOrBuilder (6.98.1)\n\nVersion latestkeyboard_arrow_down\n\n- [6.98.1 (latest)](/java/docs/reference/google-cloud-spanner/latest/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.98.0](/java/docs/reference/google-cloud-spanner/6.98.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.97.1](/java/docs/reference/google-cloud-spanner/6.97.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.96.1](/java/docs/reference/google-cloud-spanner/6.96.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.95.1](/java/docs/reference/google-cloud-spanner/6.95.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.94.0](/java/docs/reference/google-cloud-spanner/6.94.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.93.0](/java/docs/reference/google-cloud-spanner/6.93.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.89.0](/java/docs/reference/google-cloud-spanner/6.89.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.88.0](/java/docs/reference/google-cloud-spanner/6.88.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.87.0](/java/docs/reference/google-cloud-spanner/6.87.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.86.0](/java/docs/reference/google-cloud-spanner/6.86.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.85.0](/java/docs/reference/google-cloud-spanner/6.85.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.83.0](/java/docs/reference/google-cloud-spanner/6.83.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.82.0](/java/docs/reference/google-cloud-spanner/6.82.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.80.1](/java/docs/reference/google-cloud-spanner/6.80.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.79.0](/java/docs/reference/google-cloud-spanner/6.79.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.77.0](/java/docs/reference/google-cloud-spanner/6.77.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.74.1](/java/docs/reference/google-cloud-spanner/6.74.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.72.0](/java/docs/reference/google-cloud-spanner/6.72.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.71.0](/java/docs/reference/google-cloud-spanner/6.71.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.69.0](/java/docs/reference/google-cloud-spanner/6.69.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.68.0](/java/docs/reference/google-cloud-spanner/6.68.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.66.0](/java/docs/reference/google-cloud-spanner/6.66.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.65.1](/java/docs/reference/google-cloud-spanner/6.65.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.62.0](/java/docs/reference/google-cloud-spanner/6.62.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.60.0](/java/docs/reference/google-cloud-spanner/6.60.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.58.0](/java/docs/reference/google-cloud-spanner/6.58.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.57.0](/java/docs/reference/google-cloud-spanner/6.57.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.56.0](/java/docs/reference/google-cloud-spanner/6.56.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.55.0](/java/docs/reference/google-cloud-spanner/6.55.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.54.0](/java/docs/reference/google-cloud-spanner/6.54.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.53.0](/java/docs/reference/google-cloud-spanner/6.53.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.52.1](/java/docs/reference/google-cloud-spanner/6.52.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.51.0](/java/docs/reference/google-cloud-spanner/6.51.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.50.1](/java/docs/reference/google-cloud-spanner/6.50.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.49.0](/java/docs/reference/google-cloud-spanner/6.49.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.25.1](/java/docs/reference/google-cloud-spanner/6.25.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.24.0](/java/docs/reference/google-cloud-spanner/6.24.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.23.4](/java/docs/reference/google-cloud-spanner/6.23.4/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.22.0](/java/docs/reference/google-cloud-spanner/6.22.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.21.2](/java/docs/reference/google-cloud-spanner/6.21.2/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.20.0](/java/docs/reference/google-cloud-spanner/6.20.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.19.1](/java/docs/reference/google-cloud-spanner/6.19.1/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.18.0](/java/docs/reference/google-cloud-spanner/6.18.0/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.17.4](/java/docs/reference/google-cloud-spanner/6.17.4/com.google.spanner.v1.ResultSetMetadataOrBuilder)\n- [6.14.1](/java/docs/reference/google-cloud-spanner/6.14.1/com.google.spanner.v1.ResultSetMetadataOrBuilder) \n\n public interface ResultSetMetadataOrBuilder extends MessageOrBuilder\n\nImplements\n----------\n\n[MessageOrBuilder](https://cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.MessageOrBuilder.html)\n\nMethods\n-------\n\n### getRowType()\n\n public abstract StructType getRowType()\n\nIndicates the field names and types for the rows in the result\nset. For example, a SQL query like `\"SELECT UserId, UserName FROM\nUsers\"` could return a `row_type` value like: \n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]\n\n`.google.spanner.v1.StructType row_type = 1;`\n\n### getRowTypeOrBuilder()\n\n public abstract StructTypeOrBuilder getRowTypeOrBuilder()\n\nIndicates the field names and types for the rows in the result\nset. For example, a SQL query like `\"SELECT UserId, UserName FROM\nUsers\"` could return a `row_type` value like: \n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]\n\n`.google.spanner.v1.StructType row_type = 1;`\n\n### getTransaction()\n\n public abstract Transaction getTransaction()\n\nIf the read or SQL query began a transaction as a side-effect, the\ninformation about the new transaction is yielded here.\n\n`.google.spanner.v1.Transaction transaction = 2;`\n\n### getTransactionOrBuilder()\n\n public abstract TransactionOrBuilder getTransactionOrBuilder()\n\nIf the read or SQL query began a transaction as a side-effect, the\ninformation about the new transaction is yielded here.\n\n`.google.spanner.v1.Transaction transaction = 2;`\n\n### getUndeclaredParameters()\n\n public abstract StructType getUndeclaredParameters()\n\nA SQL query can be parameterized. In PLAN mode, these parameters can be\nundeclared. This indicates the field names and types for those undeclared\nparameters in the SQL query. For example, a SQL query like `\"SELECT * FROM\nUsers where UserId = @userId and UserName = @userName \"` could return a\n`undeclared_parameters` value like: \n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]\n\n`.google.spanner.v1.StructType undeclared_parameters = 3;`\n\n### getUndeclaredParametersOrBuilder()\n\n public abstract StructTypeOrBuilder getUndeclaredParametersOrBuilder()\n\nA SQL query can be parameterized. In PLAN mode, these parameters can be\nundeclared. This indicates the field names and types for those undeclared\nparameters in the SQL query. For example, a SQL query like `\"SELECT * FROM\nUsers where UserId = @userId and UserName = @userName \"` could return a\n`undeclared_parameters` value like: \n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]\n\n`.google.spanner.v1.StructType undeclared_parameters = 3;`\n\n### hasRowType()\n\n public abstract boolean hasRowType()\n\nIndicates the field names and types for the rows in the result\nset. For example, a SQL query like `\"SELECT UserId, UserName FROM\nUsers\"` could return a `row_type` value like: \n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]\n\n`.google.spanner.v1.StructType row_type = 1;`\n\n### hasTransaction()\n\n public abstract boolean hasTransaction()\n\nIf the read or SQL query began a transaction as a side-effect, the\ninformation about the new transaction is yielded here.\n\n`.google.spanner.v1.Transaction transaction = 2;`\n\n### hasUndeclaredParameters()\n\n public abstract boolean hasUndeclaredParameters()\n\nA SQL query can be parameterized. In PLAN mode, these parameters can be\nundeclared. This indicates the field names and types for those undeclared\nparameters in the SQL query. For example, a SQL query like `\"SELECT * FROM\nUsers where UserId = @userId and UserName = @userName \"` could return a\n`undeclared_parameters` value like: \n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]\n\n`.google.spanner.v1.StructType undeclared_parameters = 3;`"]]