[
https://issues.apache.org/jira/browse/CALCITE-6139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Francis Chuang resolved CALCITE-6139.
-------------------------------------
Resolution: Fixed
> 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
> Fix For: avatica-go-5.3.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> 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)