Egor Ryashin created CALCITE-6139: ------------------------------------- Summary: Avatica-Go sends the same offset for the FetchRequest Key: CALCITE-6139 URL: https://issues.apache.org/jira/browse/CALCITE-6139 Project: Calcite Issue Type: Bug Components: avatica-go Affects Versions: avatica-go-5.2.0 Reporter: Egor Ryashin Assignee: Francis Chuang
This exception happens when *Apache Druid Avatica* protobuf endpoint is used: {_}"Druid can only fetch forward. Requested offset”{_}. I tried to debug that and saw that any simple query fails if it triggers fetching of multiple frames. I speculate that when the first *ExucuteRequest* is sent {code:java} msg := &message.ExecuteRequest{ StatementHandle: s.handle, ParameterValues: s.parametersToTypedValues(args), FirstFrameMaxSize: s.conn.config.frameMaxSize, HasParameterValues: true, }{code} and the result set is created after {code:java} rsets = append(rsets, &resultSet{ columns: columns, done: frame.Done, offset: frame.Offset, data: data, }){code} then for the next frame *FetchRequest* is sent but it uses the same 0 offset (the data for that offset was returned with the {*}ExecuteRequest{*}) res, err := r.conn.httpClient.post(context.Background(), &message.FetchRequest{ {code:java} ConnectionId: r.conn.connectionId, StatementId: r.statementID, Offset: resultSet.offset, FrameMaxSize: r.conn.config.frameMaxSize, }){code} So, in short, I think *Avatica-Go* sends 2 requests with the same offset that makes Druid to fail. -- This message was sent by Atlassian Jira (v8.20.10#820010)