On Sun, Jul 30, 2006 at 05:40:16PM -0400, Tom Lane wrote:
> Alvaro Herrera <[EMAIL PROTECTED]> writes:
> > David Fetter wrote:
> >> This patch changes the data type from unsigned int to unsigned
> >> long long, which is probably not the correct thing in order to
> >> get 64-bit arithmetic, but I figure it's good enough to get a
> >> discussion started.
>
> > The only thing I can tell you is that you should use INT64_FORMAT
> > instead of %lld.
>
> And the datatype should be declared int64, not "long long" which
> doesn't exist everywhere.
>
> Actually you probably want uint64 and UINT64_FORMAT...
>
> regards, tom lane
I think this fixes it, but I'm unsure how to test it. Two of the
methods mentioned in IRC, attaching with gdb and setting to a value >
2^32, and setting it directly in some code, seem like OK approaches.
Cheers,
D
--
David Fetter <[EMAIL PROTECTED]> http://fetter.org/
phone: +1 415 235 3778 AIM: dfetter666
Skype: davidfetter
Remember to vote!
Index: src/bin/psql/common.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/bin/psql/common.c,v
retrieving revision 1.122
diff -c -r1.122 common.c
*** src/bin/psql/common.c 14 Jul 2006 14:52:26 -0000 1.122
--- src/bin/psql/common.c 31 Jul 2006 01:57:42 -0000
***************
*** 188,194 ****
fflush(pset.queryFout);
if (pset.inputfile)
! fprintf(stderr, "%s:%s:%u: ", pset.progname, pset.inputfile,
pset.lineno);
va_start(ap, fmt);
vfprintf(stderr, _(fmt), ap);
va_end(ap);
--- 188,194 ----
fflush(pset.queryFout);
if (pset.inputfile)
! fprintf(stderr, "%s:%s:" UINT64_FORMAT ": ", pset.progname,
pset.inputfile, pset.lineno);
va_start(ap, fmt);
vfprintf(stderr, _(fmt), ap);
va_end(ap);
Index: src/bin/psql/mainloop.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/bin/psql/mainloop.c,v
retrieving revision 1.81
diff -c -r1.81 mainloop.c
*** src/bin/psql/mainloop.c 14 Jul 2006 14:52:26 -0000 1.81
--- src/bin/psql/mainloop.c 31 Jul 2006 01:57:42 -0000
***************
*** 44,50 ****
/* Save the prior command source */
FILE *prev_cmd_source;
bool prev_cmd_interactive;
! unsigned int prev_lineno;
/* Save old settings */
prev_cmd_source = pset.cur_cmd_source;
--- 44,50 ----
/* Save the prior command source */
FILE *prev_cmd_source;
bool prev_cmd_interactive;
! uint64 prev_lineno;
/* Save old settings */
prev_cmd_source = pset.cur_cmd_source;
Index: src/bin/psql/settings.h
===================================================================
RCS file: /projects/cvsroot/pgsql/src/bin/psql/settings.h,v
retrieving revision 1.27
diff -c -r1.27 settings.h
*** src/bin/psql/settings.h 5 Mar 2006 15:58:52 -0000 1.27
--- src/bin/psql/settings.h 31 Jul 2006 01:57:42 -0000
***************
*** 12,17 ****
--- 12,18 ----
#include "variables.h"
#include "print.h"
+ #include "pg_config.h"
#define DEFAULT_FIELD_SEP "|"
#define DEFAULT_RECORD_SEP "\n"
***************
*** 50,56 ****
char *inputfile; /* for error reporting */
char *dirname; /* current directory for \s display */
! unsigned lineno; /* also for error reporting */
bool timing; /* enable timing of all queries
*/
--- 51,57 ----
char *inputfile; /* for error reporting */
char *dirname; /* current directory for \s display */
! uint64 lineno; /* also for error reporting */
bool timing; /* enable timing of all queries
*/
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match