Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Let psql process files with > 4,294,967,295 lines



On Sun, Jul 30, 2006 at 05:40:16PM -0400, Tom Lane wrote:
> Alvaro Herrera <alvherre(at)commandprompt(dot)com> 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 <david(at)fetter(dot)org> 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 */
  


Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group