in connection.go [177:212]
func (c *conn) query(ctx context.Context, query string, args []namedValue) (driver.Rows, error) {
if c.connectionId == "" {
return nil, driver.ErrBadConn
}
if len(args) != 0 {
return nil, driver.ErrSkip
}
st, err := c.httpClient.post(ctx, message.CreateStatementRequest_builder{
ConnectionId: c.connectionId,
}.Build())
if err != nil {
return nil, c.avaticaErrorToResponseErrorOrError(err)
}
statementID := st.(*message.CreateStatementResponse).GetStatementId()
res, err := c.httpClient.post(ctx, message.PrepareAndExecuteRequest_builder{
ConnectionId: c.connectionId,
StatementId: statementID,
Sql: query,
MaxRowsTotal: c.config.maxRowsTotal,
FirstFrameMaxSize: c.config.frameMaxSize,
}.Build())
if err != nil {
_ = c.closeStatement(ctx, statementID)
return nil, c.avaticaErrorToResponseErrorOrError(err)
}
resultSets := res.(*message.ExecuteResponse).GetResults()
return newRows(c, statementID, true, resultSets), nil
}