Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?

2004-06-05 Thread David Garamond
This probably has been discussed and is probably a very minor point, but 
consider how many more years we want to be able to use the single 
digit.single digit major release numbering.

Assuming 1 year between major releases (7.3.0 - 7.4.0 = +- 1 year), 
then we have 7.5-9.9 = 26 years = up until +- jul 2030. if we skip to 
8.0 now, then we have up until 2023.

Also we have 1 more chance to skip major number: 8.x - 9.0. Imagine 
what features will there be in 9.0 that is ground-breaking enough. 
Because after that, we don't have any more major number to jump into 
without going into 2 digits.

I personally don't see the major number as a very magical thing. Look at 
Linux for example. People still see 2.6 as very different/ahead compared 
to 2.4...

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


Re: [HACKERS] Advice regarding configuration parameters

2004-06-05 Thread Thomas Hallgren
Some very good suggestions where made here. What happens next? Will this end
up in a TODO list where someone can claim the task (I'm trying to learn
how the process works) ?

Kind regards,

Thomas Hallgren

- Original Message - 
From: Tom Lane [EMAIL PROTECTED]
To: Joe Conway [EMAIL PROTECTED]
Cc: Peter Eisentraut [EMAIL PROTECTED]; Thomas Hallgren
[EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Friday, February 06, 2004 19:15
Subject: Re: [HACKERS] Advice regarding configuration parameters


 Joe Conway [EMAIL PROTECTED] writes:
  I like it. I wonder if we ought to have a way to register valid
  classes? Maybe a new guc variable in the form of a list of valid
  classes. So something like:

 There are some order-of-processing issues there, but maybe.  Another
 possibility is that after a shlib has finished registering its
 variables, it could look for remaining placeholders matching its prefix
 and issue WARNINGs about 'em (it can't realistically ERROR, probably,
 but a WARNING would surely help).  These are actually orthogonal checks
 since one addresses the class part and the other the individual variable.

  And we'd have to think a little about how to handle variable values
  that are discovered to be erroneous when we try to assign them to the
  variable --- probably we can just drop them, but does that make the
  semantics weird at all?

  Maybe we can require a default value as a parameter to
  add_guc_variable() and use that?

 Well, the new GUC variable struct would include a default by definition,
 and presumably that value would bubble up to replace any values that
 are found illegal.

 The sort of semantic funny I am thinking of is like this:
 * postgresql.conf contains pljava::var = somegoodvalue
 * ALTER DATABASE SET supplies pljava::var = somebadvalue
 For builtin variables the ALTER DATABASE value would be rejected on
 sight and the end result would be that the variable contains
 'somegoodvalue'.  However if we don't yet know the variable at backend
 startup, 'somebadvalue' will replace 'somegoodvalue' completely, and
 then when the PL actually gets loaded it will get thrown away.  End
 result is that the variable will have whatever its hardwired default is,
 and not 'somegoodvalue' as one would wish.  Even more surprising, a
 subsequent SIGHUP would make it acquire 'somegoodvalue'.

 This particular case could be dealt with by forcing a rescan of
 postgresql.conf after new variables are defined (I think we need only do
 so if any errors are detected in assigning values), but that will not
 handle everything.  We don't have any way to get back overridden values
 from other sources such as the postmaster command line.

 It seems likely to me that such corner cases are sufficiently bizarre to
 not bother anyone, but we need to think more to make sure that there
 aren't any that would bother someone.

 regards, tom lane



---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?

2004-06-05 Thread Markus Bertheau
 , 05.06.2004,  10:28, David Garamond :
 This probably has been discussed and is probably a very minor point, but 
 consider how many more years we want to be able to use the single 
 digit.single digit major release numbering.
 
 Assuming 1 year between major releases (7.3.0 - 7.4.0 = +- 1 year), 
 then we have 7.5-9.9 = 26 years = up until +- jul 2030. if we skip to 
 8.0 now, then we have up until 2023.
 
 Also we have 1 more chance to skip major number: 8.x - 9.0. Imagine 
 what features will there be in 9.0 that is ground-breaking enough. 
 Because after that, we don't have any more major number to jump into 
 without going into 2 digits.

What's the problem with 7.10?

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?

2004-06-05 Thread Dave Page








From: David GaramondSent: Sat 6/5/2004 9:28 AMCc: postgresql advocacy; [EMAIL PROTECTED]Subject: Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?
Assuming 1 year between major releases (7.3.0 - 7.4.0 = +- 1 year), then we have 7.5-9.9 = 26 years = up until +- jul 2030. if we skip to 8.0 now, then we have up until 2023.
Hi Dave,

I might be missing the point, but why can't we go to double figures? MS Office has, HP-UX has, OS-X, Norton AV has, Madrake Linux has...

Regards, Dave





[HACKERS] I/O support for composite types

2004-06-05 Thread Tom Lane
There's just one thing left to do to make composite types useful as
table columns: we have to support I/O of composite values.  (Without
this, pg_dump would fail to work on such columns, rendering them not
very useful in the real world.)  This means we have to hammer out a
definition for what the external representation is.  Here are my
thoughts on the subject.


Textual representation:

I am inclined to define this similarly to the representation for arrays;
however, we need to allow for NULLs.  I suggest

{item,item,item}

The separator is always comma (it can't be type-specific since the items
might have different types).  Backslashes and double quotes can be used
in the usual ways to quote characters in the item strings.  If an item
string is completely empty it is taken as NULL; to write an actual
empty-string value, you must write .  There is an ambiguity whether
'{}' represents a zero-column row or a one-column row containing a NULL,
but I don't think this is a problem since the input converter will
always know how many columns it is expecting.

There are a couple of fine points of the array I/O behavior that I think
we should not emulate.  One is that leading whitespace in an item string
is discarded.  This seems inconsistent, mainly because trailing
whitespace isn't discarded.  In the cases where it really makes sense to
discard whitespace (namely numeric datatypes), the underlying datatype's
input converter can do that just fine, and so I suggest that the record
converter itself should not discard whitespace.  It seems OK to ignore
whitespace before and after the outer braces, however.

The other fine point has to do with double quoting.  In the array code,
{abcd}
is legal input representing an item 'abcd'.  I think it would be more
consistent with usual SQL conventions to treat it as meaning 'abcd',
that is a doubled double quote within double quotes should represent a
double quote not nothing.  Anyone have a strong feeling one way or the
other?

(In the long run we might want to think about making these same changes
in array_in, but that's a can of worms I don't wish to open today.)


Binary representation:

This seems relatively easy.  I propose we send number of fields (int4)
followed by, for each field: type oid (sizeof(Oid)), data length (int4),
data according to the binary representation of the field datatype.
The field count and type oids are not strictly necessary but seem like
a good idea for error-checking purposes.


Infrastructure changes:

record_out/record_send can extract the needed type info right from the
Datum, but record_in/record_recv really need to be told what data type
to expect, and the current call conventions for input converters don't
pass them any useful information.  I propose that we adjust the present
definitions so that the second argument passed to I/O conversion
routines, rather than being always pg_type.typelem, is defined as
if pg_type.typtype is 'c' then pg_type.oid else pg_type.typelem.
That is, for composite types we'll pass the type's own OID in place of
typelem.

This does not affect I/O routines for user-defined types, since there
are no user-defined I/O routines for composite types.  It could break
any user-written code that calls I/O routines, if it's been hard-wired
to pass typelem instead of using one of the support routines like
getTypeInputInfo() or get_type_io_data() to collect the parameters to
pass.  By my count there are about a dozen places in the backend code
that will need to be fixed to use one of these routines instead of
having a hard-wired typelem reference.

An alternative definition that might be more useful in the long run is
to define the second parameter as
if pg_type.typelem is not zero then pg_type.typelem else pg_type.oid.
In other words, for everything *except* arrays we'd pass the type OID.
This would allow I/O routines to be written to support multiple
datatypes.  However there seems a larger chance of breaking things if
we do this, and I'm also fuzzy on which OID to pass for domain types.
So I'm inclined to keep it conservative for now, and change the
behavior only for composite types.


Comments, objections, better ideas?

regards, tom lane

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Bruce Momjian
Andrew Dunstan wrote:
 But following through a cycle or two in the archives provides ample evidence 
 for the 'laid-back' model used here.  It's ready when it's ready.  We try to 
 schedule, but the schedules are pretty flexible.
 
 And while most discussion happens here on [HACKERS], not all of it does.  Some 
 happens on IRC, some in [CORE], and some by telephone.  And it's been that 
 way for a while.
 
 PostgreSQL is not a 'release early, release often' project.  And that's OK.
   
 
 
 If it were true that June 1 was the expected Beta data, then perhaps 
 that should be in the FAQ too, as a counterweight to the gratuitously 
 patronising advice which, had I followed it, might have resulted in my 
 not making a number of contributions.
 
 But it is not true. I have already pointed out what Tom said on March 
 31:  There's not really a plan at the moment, but I had June in the 
 back of  my head as a good time. IOW, June was a possible month, 
 nothing was settled, certainly not a definite day. So ISTM your premise 
 is simply wrong.
 
 All I have asked for is a) reasonable clarity and b) reasonable notice. 
 I do not see that either of those conflict with being laid-back or 
 anything else above.

I believe the decision for June 1 was made around May 1. I participated
in the discussion.  Should we have made that final decision sooner?

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (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 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread Thomas Hallgren
Tom Lane wrote:
I am inclined to define this similarly to the representation for arrays;
however, we need to allow for NULLs.  I suggest
{item,item,item}
The separator is always comma (it can't be type-specific since the items
might have different types).  Backslashes and double quotes can be used
in the usual ways to quote characters in the item strings.  If an item
string is completely empty it is taken as NULL; to write an actual
empty-string value, you must write .  There is an ambiguity whether
'{}' represents a zero-column row or a one-column row containing a NULL,
but I don't think this is a problem since the input converter will
always know how many columns it is expecting.
There are a couple of fine points of the array I/O behavior that I think
we should not emulate.  One is that leading whitespace in an item string
is discarded.  This seems inconsistent, mainly because trailing
whitespace isn't discarded.  In the cases where it really makes sense to
discard whitespace (namely numeric datatypes), the underlying datatype's
input converter can do that just fine, and so I suggest that the record
converter itself should not discard whitespace.  It seems OK to ignore
whitespace before and after the outer braces, however.
The other fine point has to do with double quoting.  In the array code,
{abcd}
is legal input representing an item 'abcd'.  I think it would be more
consistent with usual SQL conventions to treat it as meaning 'abcd',
that is a doubled double quote within double quotes should represent a
double quote not nothing.  Anyone have a strong feeling one way or the
other?
Why not use standard C semantics for the textual representation with 
your addition that empty items are NULL? It becomes fairly stright 
forward, IMO highly readable, and the rules to define both arrays and 
complex types are well known and documented.

Here's an array of two composite elements of the same type. The last two 
items of the second element is NULL. The type is {int, double, string, char}

{
  {12, 123.4, some string with \a qouted string\ inside of it, 'c'},
  {13, -3.2,,}
}
This will also allow you to distinguish strings from identifiers. That 
might prove extremely important if you ever plan to serialize self 
referencing structures (a structure could then represent itself as 
ref_oid or something and thereby refer to itself).

Kind regards,
Thomas Hallgren
---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread Tom Lane
Thomas Hallgren [EMAIL PROTECTED] writes:
 Why not use standard C semantics for the textual representation with 
 your addition that empty items are NULL?

This isn't C, it's SQL; and I think the array I/O representation is a
closer precedent for us than the C standard.

In any case, how much of C syntax are you proposing to emulate exactly?
Comments?  Backslashed newlines?  Joining of adjacent double-quoted
strings?  Conversion of octal and hex integer constants (and what about
L, U, LL, etc suffixes)?  There's a lot more stuff there than meets the
eye, and most of it isn't something I want to code.

regards, tom lane

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread elein
Composite types will work recursively, right?
That is a composite type inside of a composite type column?
Does the SQL dot syntax support this nested referencing?
Or are we only allowing one level.


Why not just use the syntax of the insert values with parens?

insert into tble values (...); 

is very familiar so the corresponding:

insert into table values ( 'xxx', ('yyy', 123), 456 );

is also easy to understand and remember: a row is being inserted.  

Is there a specific reason why you want curly brackets?
I have not been following this much to my chagrin.

On Sat, Jun 05, 2004 at 12:57:27PM -0400, Tom Lane wrote:
 good stuff deleted...
 
 There are a couple of fine points of the array I/O behavior that I think
 we should not emulate.  One is that leading whitespace in an item string
 is discarded.  This seems inconsistent, mainly because trailing
 whitespace isn't discarded.  In the cases where it really makes sense to
 discard whitespace (namely numeric datatypes), the underlying datatype's
 input converter can do that just fine, and so I suggest that the record
 converter itself should not discard whitespace.  It seems OK to ignore
 whitespace before and after the outer braces, however.

If the whitespace is inside of the item, do not discard it; let the
underlying type deal with it. If the white space is outside of the
item, ignore it.  I think you probably meant this, but just to be sure.  
{ item number one   } == input_text(   item number one   )


 more good stuff deleted
 
 Comments, objections, better ideas?
 
   regards, tom lane
 
 ---(end of broadcast)---
 TIP 2: you can get off all lists at once with the unregister command
 (send unregister YourEmailAddressHere to [EMAIL PROTECTED])

--elein

[EMAIL PROTECTED]Varlena, LLCwww.varlena.com

  PostgreSQL Consulting, Support  Training   

PostgreSQL General Bits   http://www.varlena.com/GeneralBits/
=
I have always depended on the [QA] of strangers.


---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [HACKERS] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Marc G. Fournier
On Sat, 5 Jun 2004, Andrew Dunstan wrote:
All I have asked for is a) reasonable clarity and b) reasonable notice. 
I do not see that either of those conflict with being laid-back or 
anything else above.
Something we definitely will work on, in both cases ...

Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
 joining column's datatypes do not match


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread Thomas Hallgren
Tom Lane wrote:
Thomas Hallgren [EMAIL PROTECTED] writes:
Why not use standard C semantics for the textual representation with 
your addition that empty items are NULL?

This isn't C, it's SQL; and I think the array I/O representation is a
closer precedent for us than the C standard.
In any case, how much of C syntax are you proposing to emulate exactly?
Comments?  Backslashed newlines?  Joining of adjacent double-quoted
strings?  Conversion of octal and hex integer constants (and what about
L, U, LL, etc suffixes)?  There's a lot more stuff there than meets the
eye, and most of it isn't something I want to code.
I'm not proposing a full C parser implementation :-) Just static data 
initializer part.

To answer how much of the C syntax:
Comments, no. SQL has a standard for comments that doesn't conflict with 
C semantics for data initializers.

Joining of adjacent double-quoted strings. Yes, of course. That's what 
you already do for arrays today. Without this, it will be hard to write 
long strings in a readable way.

Conversion of backslashed newlines, octal and integer constants within 
strings, yes, why not? The issue of non-printables needs to be addressed 
somehow. What do you propose?

Regarding the L, U, LL suffixes, depends in what way do you plan to 
tackle different character sets. Perhaps UTF-8 with unicode escapes 
would be better. Some mechanism i needed, that's for sure.

Kind regards,
Thomas Hallgren
---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
 joining column's datatypes do not match


Re: [HACKERS] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Andrew Dunstan

Bruce Momjian wrote:
I believe the decision for June 1 was made around May 1. I participated
in the discussion.  Should we have made that final decision sooner?
 

No, I think that was the right time to make a decision. Before that 
things were in a great state of flux. My suggestion is that there should 
be some minimum time (I suggested 6 weeks to 2 months) between when the 
decision is made/announced and the actual freeze date. In the present 
case we would have probably have ended up with a date very like what we 
now have, but without the June 1 false start, which many (including me) 
felt tried to set the date too early and gave insufficient notice to 
those who wanted to make the cut.

cheers
andrew
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


[HACKERS] Why hash indexes suck

2004-06-05 Thread Tom Lane
Dann Corbit [EMAIL PROTECTED] writes:
 There seems to be something seriously defective with hash indexes in old
 versions of PostgreSQL.

They still suck; I'm not aware of any situation where I'd recommend hash
over btree indexes in Postgres.  I think we have fixed the hash indexes'
deadlock problems as of 7.4, but there's still no real performance
advantage.

I just had an epiphany as to the probable reason why the performance sucks.
It's this: the hash bucket size is the same as the page size (ie, 8K).

This means that if you have only one or a few items per bucket, the
information density is awful, and you lose big on I/O requirements
compared to a btree index.  On the other hand, if you have enough
items per bucket to make the storage density competitive, you will
be doing linear searches through dozens if not hundreds of items that
are all in the same bucket, and you lose on CPU time (compared to btree
which can do binary search to find an item within a page).

It would probably be interesting to look into making the hash bucket
size be just a fraction of a page, with the intent of having no more
than a couple dozen items per bucket.  I'm not sure what the
implications would be for intra-page storage management or index locking
conventions, but offhand it seems like there wouldn't be any
insurmountable problems.

I'm not planning on doing this myself, just throwing it out as a
possible TODO item for anyone who's convinced that hash indexes ought
to work better than they do.

regards, tom lane

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?

2004-06-05 Thread David Garamond
Dave Page wrote:
From: David Garamond
Sent: Sat 6/5/2004 9:28 AM
Cc: postgresql advocacy; [EMAIL PROTECTED]
Subject: Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?
Assuming 1 year between major releases (7.3.0 - 7.4.0 = +- 1 year), 
then we have 7.5-9.9 = 26 years = up until +- jul 2030. if we skip to 
8.0 now, then we have up until 2023.

Hi Dave,
I might be missing the point, but why can't we go to double figures? MS 
Office has, HP-UX has, OS-X, Norton AV has, Madrake Linux has...
Of course we can, I didn't say we can't. But double digits are sometimes 
undesirable because it can break some things. For example, a simple 
shell or Perl script might try to compare the version of two data 
directories by comparing the content of PG_VERSION stringwise. It then 
concludes that 7.10 is smaller than 7.4.

Granted, the script itself is faulty, but since some other OS projects 
(like Ruby, with the same x.y.z numbering) do guarantee they never will 
have double digits in version number component than people might think 
the same too and thus the habit of stringwise version comparison continues.

--
dave
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread Tom Lane
elein [EMAIL PROTECTED] writes:
 Composite types will work recursively, right?
 That is a composite type inside of a composite type column?

You can have that, but I'm not intending that the I/O syntax be
explicitly aware of it.  A composite type field would just be an
item (and hence would have to be suitably quoted).  So it would
look something like
{somecolumn,{anothercolumn,\a quoted column\},column3}
if we go with the syntax I originally suggested.

Note that just as we offer ARRAY[] to avoid having to write this sort
of thing in SQL statements, we offer ROW() so you can synthesize
composite values without actually having to write this junk.  I see
this mainly as a dump/reload representation, so I'm not too worried
about whether complex cases can be written simply.

 Does the SQL dot syntax support this nested referencing?
 Or are we only allowing one level.

You have to parenthesize to avoid ambiguity against the normal
table.field notation, but beyond that it works.  For instance
(this is a real example with CVS tip + error check removed):

regression=# create type complex as (r float8, i float8);
CREATE TYPE
regression=# create table foo (c complex);
CREATE TABLE
regression=# insert into foo values(row(1.1, 2.2));
INSERT 154998 1
-- this doesn't work yet:
regression=# select c from foo f;
ERROR:  output of composite types not implemented yet
-- here is the ambiguity problem:
regression=# select c.r from foo f;
NOTICE:  adding missing FROM-clause entry for table c
ERROR:  column c.r does not exist
-- which you can fix like this:
regression=# select (c).r, (f.c).i from foo f;
  r  |  i
-+-
 1.1 | 2.2
(1 row)

-- nested types work about like you'd expect:
regression=# create type quad as (c1 complex, c2 complex);
CREATE TYPE
regression=# create table bar (q quad);
CREATE TABLE
regression=# insert into bar values (row(row(1.1, 2.2), row(3.3, 4.4)));
INSERT 155006 1
regression=# select (q).c2.r from bar;
  r
-
 3.3
(1 row)

 Why not just use the syntax of the insert values with parens?
   insert into tble values (...); 
 is very familiar so the corresponding:
   insert into table values ( 'xxx', ('yyy', 123), 456 );
 is also easy to understand and remember: a row is being inserted.  

I don't particularly care one way or the other about parens versus
braces; anyone else have an opinion on that?

However, I do want to follow the array syntax to the extent of using
double not single quotes for quoting items.  Otherwise you've got a mess
when you do try to write one of these things as a SQL literal.
For instance, instead of
'{1.1,2.2}'::complex
you'd have to write
'{\'1.1\',\'2.2\'}'::complex
which is just painful.  (In this particular example of course the inner
quotes could just be dropped entirely, but with textual fields they
would often be necessary.)

regards, tom lane

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] Why hash indexes suck

2004-06-05 Thread Tom Lane
Sailesh Krishnamurthy [EMAIL PROTECTED] writes:
 This is probably a crazy idea, but is it possible to organize the data
 in a page of a hash bucket as a binary tree ?

Only if you want to require a hash opclass to supply ordering operators,
which sort of defeats the purpose I think.  Hash is only supposed to
need equality not ordering.

regards, tom lane

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [HACKERS] [pgsql-advocacy] Not 7.5, but 8.0 ?

2004-06-05 Thread Tom Lane
David Garamond [EMAIL PROTECTED] writes:
 Granted, the script itself is faulty, but since some other OS projects 
 (like Ruby, with the same x.y.z numbering) do guarantee they never will 
 have double digits in version number component

Oh?  What's their plan for the release after 9.9.9?

In practice, non-broken bits of code don't make such an assumption,
as there have always been lots of projects with double-digit version
components.  A quick grep for locally-installed packages finds

autoconf-2.53.tar.gz
binutils-2.10.1.tar.gz
bison-1.875.tar.gz
cvs-1.10.7.tar.gz
emacs-19.34b.tar.gz
expect-5.38.tar.gz
gcc-2.95.3.tar.gz
gettext-0.11.5.tar.gz
ghostscript-6.50.tar.gz
lesstif-0.89.9.tar.gz
lsof_4.47_W.tar.gz
make-3.79.1.tar.gz
mysql-3.23.29a-gamma.tar.gz
netcat-1.10.tar.gz
ntp-4.0.99k.tar.gz
procmail-3.22.tar.gz
sendmail.8.12.11.tar.gz
tar-1.13.tar.gz

IMHO trying to avoid double-digit component numbers is just silly.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Marc G. Fournier
On Sat, 5 Jun 2004, Andrew Dunstan wrote:
No, I think that was the right time to make a decision. Before that 
things were in a great state of flux. My suggestion is that there should 
be some minimum time (I suggested 6 weeks to 2 months) between when the 
decision is made/announced and the actual freeze date. In the present 
case we would have probably have ended up with a date very like what we 
now have, but without the June 1 false start, which many (including me) 
felt tried to set the date too early and gave insufficient notice to 
those who wanted to make the cut.
Except, as some have already mentioned, the June 1st false start as you 
put it, was never a surprise ... *shrug*


Marc G. Fournier   Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]   Yahoo!: yscrappy  ICQ: 7615664
---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread Tom Lane
I wrote:
 regression=# insert into bar values (row(row(1.1, 2.2), row(3.3, 4.4)));

BTW, I forgot to mention that the keyword ROW is optional as long as
you've got at least two items in the row expression, so the above can
be simplified to

regression=# insert into bar values (((1.1, 2.2), (3.3,4.4)));
INSERT 155011 1

Some other examples:

regression=# select (1,2)::complex;
ERROR:  output of composite types not implemented yet
regression=# select cast ((1,2) as complex);
ERROR:  output of composite types not implemented yet

Looking at these, it does seem like it would be natural to get back

 complex
-
  (1,2)

so I'll now agree with you that the I/O syntax should use parens not
braces as the outer delimiters.

regards, tom lane

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread elein
Good reason. Now I'm excited.  I'll download and run
tests and try to do a write up in general bits next week.

cheers,
elein

On Sat, Jun 05, 2004 at 05:00:24PM -0400, Tom Lane wrote:
 I wrote:
  regression=# insert into bar values (row(row(1.1, 2.2), row(3.3, 4.4)));
 
 BTW, I forgot to mention that the keyword ROW is optional as long as
 you've got at least two items in the row expression, so the above can
 be simplified to
 
 regression=# insert into bar values (((1.1, 2.2), (3.3,4.4)));
 INSERT 155011 1
 
 Some other examples:
 
 regression=# select (1,2)::complex;
 ERROR:  output of composite types not implemented yet
 regression=# select cast ((1,2) as complex);
 ERROR:  output of composite types not implemented yet
 
 Looking at these, it does seem like it would be natural to get back
 
  complex
 -
   (1,2)
 
 so I'll now agree with you that the I/O syntax should use parens not
 braces as the outer delimiters.
 
   regards, tom lane
 
 ---(end of broadcast)---
 TIP 4: Don't 'kill -9' the postmaster

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: [HACKERS] I/O support for composite types

2004-06-05 Thread Thomas Hallgren
Tom Lane wrote:
Why not just use the syntax of the insert values with parens?
	insert into tble values (...); 
is very familiar so the corresponding:
	insert into table values ( 'xxx', ('yyy', 123), 456 );
is also easy to understand and remember: a row is being inserted.  

I don't particularly care one way or the other about parens versus
braces; anyone else have an opinion on that?
My vote would be on parens. It's more coherent. Do you use braces 
anywhere else?

Kind regards,
Thomas Hallgren
---(end of broadcast)---
TIP 3: 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] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Andrew Dunstan

Marc G. Fournier wrote:
On Sat, 5 Jun 2004, Andrew Dunstan wrote:
No, I think that was the right time to make a decision. Before that 
things were in a great state of flux. My suggestion is that there 
should be some minimum time (I suggested 6 weeks to 2 months) between 
when the decision is made/announced and the actual freeze date. In 
the present case we would have probably have ended up with a date 
very like what we now have, but without the June 1 false start, which 
many (including me) felt tried to set the date too early and gave 
insufficient notice to those who wanted to make the cut.

Except, as some have already mentioned, the June 1st false start as 
you put it, was never a surprise ... *shrug*


We've been aropund this block already, so I'm not going to continue. If 
you think the process is working just fine then don't change it. I 
don't, but then I am not in a position to make the decisions.

cheers
andrew
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] Why hash indexes suck

2004-06-05 Thread Jeff Davis
On Sat, 2004-06-05 at 13:31, Tom Lane wrote:
 Only if you want to require a hash opclass to supply ordering operators,
 which sort of defeats the purpose I think.  Hash is only supposed to
 need equality not ordering.

Is it possible to assume some kind of ordering (i.e. strcmp() the binary
data of the type) as long as it's consistent?

Regards,
Jeff


---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: [HACKERS] Why hash indexes suck

2004-06-05 Thread Tom Lane
Jeff Davis [EMAIL PROTECTED] writes:
 On Sat, 2004-06-05 at 13:31, Tom Lane wrote:
 Only if you want to require a hash opclass to supply ordering operators,
 which sort of defeats the purpose I think.  Hash is only supposed to
 need equality not ordering.

 Is it possible to assume some kind of ordering (i.e. strcmp() the binary
 data of the type) as long as it's consistent?

Not really; that would assume that equality of the datatype is the same
as bitwise equality, which is not the case in general (consider -0
versus +0 in IEEE floats, or any datatype with pad bits in the struct).
Some time ago we got rid of the assumption that hash should hash on all
the bits without any type-specific intervention, and I don't want to
reintroduce those bugs.

We could safely sort on the hash value, but I'm not sure how effective
that would be, considering that we're talking about values that already
hashed into the same bucket --- there's likely not to be very many
distinct hash values there.

regards, tom lane

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] 7.4.1 release status - Turkish Locale

2004-06-05 Thread Tom Lane
Nicolai Tufar [EMAIL PROTECTED] writes:
 Sorry for rising up old issue again but the problem still persists.
 And database cluster is not being created with Turkish locale

I've committed the attached fix, which I believe will solve this
problem.  Could you test it?

(Patch is against 7.4 branch)

regards, tom lane



binuQ5kYk0rs1.bin
Description: downcase.patch

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: [HACKERS] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Lamar Owen
On Saturday 05 June 2004 10:13, Andrew Dunstan wrote:
 Lamar Owen wrote:
 There is a reason I wrote the message a long time ago (that, I think, is
  still in the Developer's FAQ) about how to get started in PostgreSQL
  development. The first thing a developer  should do before getting too
  involved in the process is to get a feel for the development culture. 

 If it were true that June 1 was the expected Beta data, then perhaps
 that should be in the FAQ too, as a counterweight to the gratuitously
 patronising advice which, had I followed it, might have resulted in my
 not making a number of contributions.

I'm sorry you consider the advice to be 'patronizing' : I can assure you it is 
not meant that way.  It was written from the point of view of someone who had 
been around the block and had seen how things work (and in my case one who 
did not do it that way, and regrets it).  And I don't think I ever 
recommended not coding while just reading mailing lists; rather, it should be 
a hand in hand process: you learn the code while you learn the community. 

 All I have asked for is a) reasonable clarity and b) reasonable notice.
 I do not see that either of those conflict with being laid-back or
 anything else above.

As Marc said, that is certainly something that could use work, since we have 
never really been clear in dates: primarily because we never have met them.

Please lighten up, that's all.  That's one thing I have found helps in this 
project, and maybe it's not something I made clear, but we are 'laid back' 
including a fair amount of humor.  A good portion of that goes on privately; 
I remember ribbing Bruce a couple of cycles back with some Biblical 
references about the signs of the times (he was in 'let's go back through the 
mailing list a few weeks and pick up TODO items and patches' mode, and I 
commented that it must be time for beta, due to the signs of the times.).

The lesson of the history of our beta 'freezes' is that the permafrost tends 
to be thin early in the beta cycle, and gets progressively thicker as the 
cycle progresses.  And we have never met the early dates, as evidenced by 
Peter Eisentraut's desire to see us freeze in March (which obviously did not 
happen). 

And my advice is to simply get some context about the process.  One gets 
context of the code; one should apply the same effort to getting the context 
of the process.  With PostgreSQL the code is large and it takes considerable 
digging to really get into contributing mode; it takes similar amounts of 
digging to merge into the process.  Is this a wrong thing to do?

And your contributions are very appreciated, by me in particular.  Fresh code 
ideas, properly applied, are always welcome.
-- 
Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC  28772
(828)862-5554
www.pari.edu

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [HACKERS] Official Freeze Date for 7.5: July 1st, 2004

2004-06-05 Thread Andrew Dunstan

Lamar Owen wrote:
Please lighten up, that's all.  That's one thing I have found helps in this 
project, and maybe it's not something I made clear, but we are 'laid back' 
including a fair amount of humor.  A good portion of that goes on privately; 
I remember ribbing Bruce a couple of cycles back with some Biblical 
references about the signs of the times (he was in 'let's go back through the 
mailing list a few weeks and pick up TODO items and patches' mode, and I 
commented that it must be time for beta, due to the signs of the times.).

 

Old habits die hard - all my life I've pushed for things I care about. 
Still, I hope I retain a sense of humor - the other day someone asked me 
about the freeze date, and I said I believed that the day and month had 
been settled on but people were still arguing about the year ;-)

cheers
andrew
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html