maria-developers team mailing list archive
Mailing list archive
Re: [Commits] Rev 3995: MDEV-5138 Numerous test failures in "mtr --ps --embedded"
On Mar 27, Alexey Botchkov wrote:
> Hi, Sergei.
> > Why does embedded fail while a normal client-server protocol is ok with
> > that?
> The difference is that the client checks the server status twice during
> - after the metadata reading and after the actual data.
> That SERVER_STATUS_CURSOR_EXISTS is returned on the 'reading data' stage
> and the usual client just skips it. But for the embedded server
> that status is same in both cases. And the 'reading metadata' part
> crashes when it sees that server status.
> It's in the prepare_to_fetch_result() called from mysql_stmt_execute().
Yes, I see that prepare_to_fetch_result() checks for
SERVER_STATUS_CURSOR_EXISTS. Why is it not returned for 'reading
metadata'? Where does the client skip it?
> I see no reason to store both statuses for the embedded server just to
> the usual client's behaviour. It's better not to return the misleading
> status in this case.
I agree about not returning the misleading status, but I'd still like to
understand why the regular client works.