I spent all day debugging it. Still have absolutely
no idea what could possibly go wrong. Does
anyone have a slightest clue what can it be and
why it manifests itself only on win32?


On Tue, 1 Mar 2005 09:29:07 -0500 (EST), Bruce Momjian
<pgman@candle.pha.pa.us> wrote:
> Nicolai Tufar wrote:
> > On Tue, 1 Mar 2005 00:55:20 -0500 (EST), Bruce Momjian
> > > My next guess
> > > is that Win32 isn't handling va_arg(..., long long int) properly.
> > >
> >
> > I am trying various combination of number and types
> > of parameters in my test program and everything prints fine.
> > When it comes to pg, it fails :(
> >
> > > >       template1=# select * from test where x > 1000::int8;
> > > >            x
> > > >       ------------
> > > >        -869367531
> > > >       (1 row)
> >
> > I am not too fluent in source code, could someone
> > point me to there actual call to snprintf() is being done
> > when a query like this is executed. I could not find it myslef
> 
> Sure, in src/backend/utils/adt/int8.c, there is a call in int8out():
> 
>     if ((len = snprintf(buf, MAXINT8LEN, INT64_FORMAT, val)) < 0)
> 
> and that calls port/snprintf.c.
> 
> I have added a puts() in snprintf.c to make sure it is getting the
> long/long specifier.
> 
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 359-1001
>   +  If your life is a hard drive,     |  13 Roberts Road
>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
>

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to