Skip to Content.
Sympa Menu

freetds - Re: dg/ux challenges

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Brian Bruns <camber AT umcc.ais.org>
  • To: TDS Development Group <freetds AT franklin.oit.unc.edu>
  • Subject: Re: dg/ux challenges
  • Date: Sun, 26 Sep 1999 17:45:02 -0400 (EDT)



This makes no logical sense. I hate to say it but I have no other
explaination than compiler or OS bug. Please check to see if gcc is being
invoked with -O something, if so remove the -O flag. Maybe over agressive
optimization is biting us. Also, can you post your version of
tds_process_result_tokens() to make sure it matches mine?

On Sun, 26 Sep 1999, Jeff Driscoll wrote:

> Results:
>
> 1> select * from sys_users
> 2> go
> entering ct_results()
> inside tds_proc_res_toks()
> processing result tokens. marker is 170
> Msg 208, Level 16, State 1
> Server 'VSTNCDB', Line 1
> Invalid object name 'sys_users'.
<-- tds_process_result_tokens should return TDS_FAIL here but doesn't
> processing result tokens. marker is 253
<-- instead it heads through the loop one more time and then returns?!
> ct_results() returning CS_SUCCEED res_type = CS_CMD_FAIL

This result can only occur if tds_process_result_tokens() returns TDS_FAIL
TDS_FAIL is only returned if an error is encountered (which it is), but we
see that it goes through the loop 1 additional time before returning! How
is this happening?

> entering ct_results()
> inside tds_proc_res_toks()
<-- when we get here there should be the 253 marker to process but
there isn't and we hang on input.
>
> On 09/26/99, "Brian Bruns <camber AT umcc.ais.org>" wrote:
> > Wow. This is pretty much what should be happening.
> >
> > Ok, we have to be getting close. In src/tds/token.c in the function
> > tds_process_result_tokens() place this as the first statement (right
> > before the if() statement):
> >
> > fprintf(stderr, "inside tds_proc_res_toks()\n");
> >
> > and then there should be a line like:
> >
> > tdsdump_log("%L processing result tokens. marker is %x\n", marker);
> >
> > add this right next statement after it. (This wouldn't be necessary if the
> > freetds.log file had something in it...sigh)
> >
> > fprintf(stderr,"processing result tokens. marker is %d\n",marker);
> >
> > This will tell us if ct_results() is calling it incorrectly or whether
> > tds_process_result_tokens() is looping too many times. At least we know
> > sqsh is doing the right thing.
> >
> > Brian
>





Archive powered by MHonArc 2.6.24.

Top of Page