|
8 | 8 | "github.com/databricks/databricks-sql-go/driverctx" |
9 | 9 | "github.com/databricks/databricks-sql-go/internal/cli_service" |
10 | 10 | dbsqlerrint "github.com/databricks/databricks-sql-go/internal/errors" |
| 11 | + "github.com/databricks/databricks-sql-go/internal/thrift_protocol" |
11 | 12 | dbsqllog "github.com/databricks/databricks-sql-go/logger" |
12 | 13 | ) |
13 | 14 |
|
@@ -53,20 +54,22 @@ func NewResultPageIterator( |
53 | 54 | connectionId string, |
54 | 55 | correlationId string, |
55 | 56 | logger *dbsqllog.DBSQLLogger, |
| 57 | + thriftProtocolVersion cli_service.TProtocolVersion, |
56 | 58 | ) ResultPageIterator { |
57 | 59 |
|
58 | 60 | // delimiter and hasMoreRows are used to set up the point in the paginated |
59 | 61 | // result set that this iterator starts from. |
60 | 62 | return &resultPageIterator{ |
61 | | - Delimiter: delimiter, |
62 | | - isFinished: closedOnServer, |
63 | | - maxPageSize: maxPageSize, |
64 | | - opHandle: opHandle, |
65 | | - closedOnServer: closedOnServer, |
66 | | - client: client, |
67 | | - connectionId: connectionId, |
68 | | - correlationId: correlationId, |
69 | | - logger: logger, |
| 63 | + Delimiter: delimiter, |
| 64 | + isFinished: closedOnServer, |
| 65 | + maxPageSize: maxPageSize, |
| 66 | + opHandle: opHandle, |
| 67 | + closedOnServer: closedOnServer, |
| 68 | + client: client, |
| 69 | + connectionId: connectionId, |
| 70 | + correlationId: correlationId, |
| 71 | + logger: logger, |
| 72 | + thriftProtocolVersion: thriftProtocolVersion, |
70 | 73 | } |
71 | 74 | } |
72 | 75 |
|
@@ -106,6 +109,8 @@ type resultPageIterator struct { |
106 | 109 |
|
107 | 110 | // Hold on to errors so they can be returned by Next() |
108 | 111 | err error |
| 112 | + |
| 113 | + thriftProtocolVersion cli_service.TProtocolVersion |
109 | 114 | } |
110 | 115 |
|
111 | 116 | var _ ResultPageIterator = (*resultPageIterator)(nil) |
@@ -184,10 +189,13 @@ func (rpf *resultPageIterator) getNextPage() (*cli_service.TFetchResultsResp, er |
184 | 189 |
|
185 | 190 | var includeResultSetMetadata = true |
186 | 191 | req := cli_service.TFetchResultsReq{ |
187 | | - OperationHandle: rpf.opHandle, |
188 | | - MaxRows: rpf.maxPageSize, |
189 | | - Orientation: directionToSparkDirection(direction), |
190 | | - IncludeResultSetMetadata: &includeResultSetMetadata, |
| 192 | + OperationHandle: rpf.opHandle, |
| 193 | + MaxRows: rpf.maxPageSize, |
| 194 | + Orientation: directionToSparkDirection(direction), |
| 195 | + // IncludeResultSetMetadata: &includeResultSetMetadata, |
| 196 | + } |
| 197 | + if thrift_protocol.SupportsIncludeResultSetMetadata(rpf.thriftProtocolVersion) { |
| 198 | + req.IncludeResultSetMetadata = &includeResultSetMetadata |
191 | 199 | } |
192 | 200 |
|
193 | 201 | fetchResult, err = rpf.client.FetchResults(ctx, &req) |
|
0 commit comments