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

2006-08-11 Thread Bruce Momjian

Patch applied.  Thanks.  Unnecessary #include file removed.

---



David Fetter wrote:
> 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 3778AIM: dfetter666
>   Skype: davidfetter
> 
> Remember to vote!

[ Attachment, skipping... ]

> 
> ---(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

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

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


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

2006-08-03 Thread Bruce Momjian

[ Tom's include adjustment added.]

Your patch has been added to the PostgreSQL unapplied patches list at:

http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---


David Fetter wrote:
> 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 3778AIM: dfetter666
>   Skype: davidfetter
> 
> Remember to vote!

[ Attachment, skipping... ]

> 
> ---(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

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

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


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

2006-07-30 Thread Tom Lane
David Fetter <[EMAIL PROTECTED]> writes:
> + #include "pg_config.h"

You should not need that.  All PG code assumes that c.h and its
inclusions have already been read.

regards, tom lane

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


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

2006-07-30 Thread David Fetter
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 3778AIM: 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 -  1.122
--- src/bin/psql/common.c   31 Jul 2006 01:57:42 -
***
*** 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 -  1.81
--- src/bin/psql/mainloop.c 31 Jul 2006 01:57:42 -
***
*** 44,50 
/* Save the prior command source */
FILE   *prev_cmd_source;
boolprev_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;
boolprev_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 -   1.27
--- src/bin/psql/settings.h 31 Jul 2006 01:57:42 -
***
*** 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 */
  
!   unsignedlineno; /* also for error reporting */
  
booltiming; /* 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 */
  
booltiming; /* 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


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

2006-07-30 Thread Tom Lane
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

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


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

2006-07-30 Thread Alvaro Herrera
David Fetter wrote:

Hi,

> I just ran across an issue where in psql, people can get the line
> number in the file so long as it is under 2^32-1 lines long, but once
> it gets larger than that, it's hosed.
> 
> 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.

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

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