Re: 64-bit sequences
От | Paul Caskey |
---|---|
Тема | Re: 64-bit sequences |
Дата | |
Msg-id | 39538E73.4B17C594@nmxs.com обсуждение исходный текст |
Ответ на | 64-bit sequences (Paul Caskey <paul@nmxs.com>) |
Ответы |
Re: 64-bit sequences
|
Список | pgsql-hackers |
Tom Lane wrote: > > Paul Caskey <paul@nmxs.com> writes: > > But first, has this issue come up in the past, and was a decision made to > > keep sequences simple as an "int4" type only? Please clue me in on the > > history. Is there any reason not to push forward with "int8" sequences, > > as some sort of compile-time or run-time option? > > Mainly it's that int8 isn't supported on all our platforms. As a > compile-time option it might be reasonable... > > regards, tom lane Okay, cool. Similar subject: What about making the oid 64-bit? At first glance, this seems easier to change than the sequence generator, since you guys do a good job of using sizeof() and the Oid typedef. Changing the typedef to "unsigned long long" should cover everything...? I will test it. The snag I ran into with sequence.c is a missing Int64GetDatum() macro. My system is Sun Solaris 7, compiled in 32-bit mode. So I HAVE_LONG_LONG_INT_64 but don't HAVE_LONG_INT_64. I do have the "int8" SQL datatype and tested it. In c.h I have these lines: typedef signed char int8; /* == 8 bits */ typedef signed short int16; /* == 16 bits */ typedef signed int int32; /* == 32 bits */ Is there some reason I'm missing the magic fourth line? It should be: typedef signed long long int64; /* == 64 bits */ Isn't it strange I have the "int8" SQL datatype, but not the "int64" C typedef and the Int64GetDatum() macro? I'm not a 64-bit compiling expert, so go easy on me. Paul Caskey New Mexico Software
В списке pgsql-hackers по дате отправления: