[ https://issues.apache.org/jira/browse/CALCITE-6139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Francis Chuang reassigned CALCITE-6139: --------------------------------------- Assignee: Egor Ryashin (was: Francis Chuang) > 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: Egor Ryashin > Priority: Major > > 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)