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{
ConnectionId: c.connectionId,
})
if err != nil {
return nil, c.avaticaErrorToResponseErrorOrError(err)
}
statementID := st.(*message.CreateStatementResponse).StatementId
res, err := c.httpClient.post(ctx, &message.PrepareAndExecuteRequest{
ConnectionId: c.connectionId,
StatementId: statementID,
Sql: query,
MaxRowsTotal: c.config.maxRowsTotal,
FirstFrameMaxSize: c.config.frameMaxSize,
})
if err != nil {
_ = c.closeStatement(context.Background(), statementID)
return nil, c.avaticaErrorToResponseErrorOrError(err)
}
resultSets := res.(*message.ExecuteResponse).Results
return newRows(c, statementID, true, resultSets), nil
}