Re: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Peter Eisentraut
Bruce Momjian writes:

 The goal was to give a unified API to the various time measurements:

   [clock|statement|transaction]_timestamp

It would be very useful if we had a parameter that controlled whether
current_timestamp maps to statement_timestamp or to transaction_timestamp.
There seems to be quite some disagreement over this issue, and this would
help resolve it and also prevent users from unnecessarily using
nonstandard functions in their application.

The name clock_timestamp seems kind of unfortunate.  Where else would a
time stamp come from if not from the clock?  Why is this functionality
needed anyway?  It seems that it could only serve to produce
nondeterministic, unreproduceable results.

-- 
Peter Eisentraut   [EMAIL PROTECTED]


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] Make pg_dump dump conversions

2003-12-01 Thread Bruce Momjian
Tom Lane wrote:
 Bruce Momjian [EMAIL PROTECTED] writes:
  I will try to apply it within the next 48 hours.
 
 This one's applied already, no?

Yes, sorry.  Removed.

-- 
  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 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] Make pg_dump dump conversions

2003-12-01 Thread Bruce Momjian

Patch already applied.

---

Christopher Kings-Lynne wrote:
 Just noticed a bug in the previous version of the patch.  Would fail 
 against pre-7.3 postgres.
 
 Fixed in this new version.  Just discard the old.
 
 Chris
 
 
 Christopher Kings-Lynne wrote:
 
  Save this for 7.5.  Nails a TODO item.
  
  Chris
 

 ? GNUmakefile
 ? config.log
 ? config.status
 ? src/Makefile.global
 ? src/backend/postgres
 ? src/backend/access/common/.deps
 ? src/backend/access/gist/.deps
 ? src/backend/access/hash/.deps
 ? src/backend/access/heap/.deps
 ? src/backend/access/index/.deps
 ? src/backend/access/nbtree/.deps
 ? src/backend/access/rtree/.deps
 ? src/backend/access/transam/.deps
 ? src/backend/bootstrap/.deps
 ? src/backend/catalog/.deps
 ? src/backend/catalog/postgres.bki
 ? src/backend/catalog/postgres.description
 ? src/backend/commands/.deps
 ? src/backend/executor/.deps
 ? src/backend/lib/.deps
 ? src/backend/libpq/.deps
 ? src/backend/main/.deps
 ? src/backend/nodes/.deps
 ? src/backend/optimizer/geqo/.deps
 ? src/backend/optimizer/path/.deps
 ? src/backend/optimizer/plan/.deps
 ? src/backend/optimizer/prep/.deps
 ? src/backend/optimizer/util/.deps
 ? src/backend/parser/.deps
 ? src/backend/port/.deps
 ? src/backend/postmaster/.deps
 ? src/backend/regex/.deps
 ? src/backend/rewrite/.deps
 ? src/backend/storage/buffer/.deps
 ? src/backend/storage/file/.deps
 ? src/backend/storage/freespace/.deps
 ? src/backend/storage/ipc/.deps
 ? src/backend/storage/large_object/.deps
 ? src/backend/storage/lmgr/.deps
 ? src/backend/storage/page/.deps
 ? src/backend/storage/smgr/.deps
 ? src/backend/tcop/.deps
 ? src/backend/utils/.deps
 ? src/backend/utils/adt/.deps
 ? src/backend/utils/cache/.deps
 ? src/backend/utils/error/.deps
 ? src/backend/utils/fmgr/.deps
 ? src/backend/utils/hash/.deps
 ? src/backend/utils/init/.deps
 ? src/backend/utils/mb/.deps
 ? src/backend/utils/mb/conversion_procs/conversion_create.sql
 ? src/backend/utils/mb/conversion_procs/ascii_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/ascii_and_mic/libascii_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/cyrillic_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/cyrillic_and_mic/libcyrillic_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/euc_cn_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/euc_cn_and_mic/libeuc_cn_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/.deps
 ? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/libeuc_jp_and_sjis.so.0
 ? src/backend/utils/mb/conversion_procs/euc_kr_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/euc_kr_and_mic/libeuc_kr_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/.deps
 ? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/libeuc_tw_and_big5.so.0
 ? src/backend/utils/mb/conversion_procs/latin2_and_win1250/.deps
 ? src/backend/utils/mb/conversion_procs/latin2_and_win1250/liblatin2_and_win1250.so.0
 ? src/backend/utils/mb/conversion_procs/latin_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/latin_and_mic/liblatin_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_ascii/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_ascii/libutf8_and_ascii.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_big5/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_big5/libutf8_and_big5.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/libutf8_and_cyrillic.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/libutf8_and_euc_cn.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/libutf8_and_euc_jp.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/libutf8_and_euc_kr.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/libutf8_and_euc_tw.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/libutf8_and_gb18030.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_gbk/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_gbk/libutf8_and_gbk.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/libutf8_and_iso8859.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/libutf8_and_iso8859_1.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_johab/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_johab/libutf8_and_johab.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_sjis/.deps
 ? 

Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable

2003-12-01 Thread Bruce Momjian
Joe Conway wrote:
 Tom Lane wrote:
  One could make a good case that INDEX_MAX_KEYS should be exported along
  with FUNC_MAX_ARGS, rather than letting people write client code that
  assumes they are the same.
  
  I was intending to propose that we also export the following as
  read-only variables:
  * NAMEDATALEN
  * BLCKSZ
  * integer-vs-float datetime flag
 
 OK, the attached includes the above -- result looks like:
 
 regression=# select * from pg_settings where category like 'Compile%';
 -[ RECORD 1 ]--
 name   | block_size

OK.  Should that be page_size?  Not sure but block size sounds more like
a hardware setting.  I know we call it BLCKSZ in our code but page size
seems more appropriate.  Not sure.

 name   | func_max_args
 name   | index_max_keys

Should that be max_func_args and max_index_args?  Seems more natural.
Should we spell out function?  Probably.  We already have
check_*function*_bodies.

 name   | integer_datetimes
 short_desc | Datetimes are integer based

This one has me confused.  Datetimes are integer based is a statement,
as is the variable name.  Should it be integer_datetime_storage or
something else?

 name   | name_data_len

Is name a good description, or is identifier better, identifier_length?

-- 
  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 7: don't forget to increase your free space map settings


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Bruce Momjian

Agreed.

---

Peter Eisentraut wrote:
 Bruce Momjian writes:
 
  Your patch has been added to the PostgreSQL unapplied patches list at:
 
  http://momjian.postgresql.org/cgi-bin/pgpatches
 
  I will try to apply it within the next 48 hours.
 
 This parameter ought to be called default_with_oids, to reflect the
 actual effect.
 
 
  ---
 
 
  Neil Conway wrote:
   On Fri, 2003-10-10 at 05:56, Manfred Koizar wrote:
On Tue, 30 Sep 2003 20:00:22 -0400, Neil Conway [EMAIL PROTECTED]
wrote:
This patch adds a new GUC var, default_use_oids
   
Shouldn't it be honoured by CREATE TABLE AS SELECT ... ?
  
   Good catch. I've attached an updated patch. I also included a few
   improvements to the docs.
  
   I think it would be a good idea to extend CREATE TABLE AS to allow WITH
   OIDS and WITHOUT OIDS to be specified, so that it provides a better
   option for people who need OIDs in their CREATE TABLE AS-generated
   tables than manually setting the default_use_oids GUC var (CREATE TABLE
   AS should also accept ON COMMIT ..., for that matter). But implementing
   this will require changing the internal representation of CREATE TABLE
   AS to be something more than just a wrapper over SelectStmt, I believe.
   I haven't made this change in the attached patch, but I'll probably do
   it before 7.5 is released. Any comments?
  
   -Neil
  
 
  [ Attachment, skipping... ]
 
  
   ---(end of broadcast)---
   TIP 8: explain analyze is your friend
 
 
 
 -- 
 Peter Eisentraut   [EMAIL PROTECTED]
 
 
 ---(end of broadcast)---
 TIP 5: Have you checked our extensive FAQ?
 
http://www.postgresql.org/docs/faqs/FAQ.html
 

-- 
  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 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [PATCHES] ISO 8601 Time Intervals of the format with time-unit

2003-12-01 Thread Bruce Momjian
Peter Eisentraut wrote:
 Bruce Momjian writes:
 
  Is this ready for application?  It looks good to me.  However, there is
  an Open issues section.
 
 It would be more useful to implement the SQL standard for intervals first
 instead of inventing more nonstandard formats for it.

OK, patch removed from queue.

-- 
  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: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Bruce Momjian
Peter Eisentraut wrote:
 Bruce Momjian writes:
 
  The goal was to give a unified API to the various time measurements:
 
  [clock|statement|transaction]_timestamp
 
 It would be very useful if we had a parameter that controlled whether
 current_timestamp maps to statement_timestamp or to transaction_timestamp.
 There seems to be quite some disagreement over this issue, and this would
 help resolve it and also prevent users from unnecessarily using
 nonstandard functions in their application.
 
 The name clock_timestamp seems kind of unfortunate.  Where else would a
 time stamp come from if not from the clock?  Why is this functionality
 needed anyway?  It seems that it could only serve to produce
 nondeterministic, unreproduceable results.

Agreed.  You are thinking a GUC like statement_current_timestamp which
defaults to false?

-- 
  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 8: explain analyze is your friend


Re: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Bruce Momjian
Tom Lane wrote:
 Peter Eisentraut [EMAIL PROTECTED] writes:
  It would be very useful if we had a parameter that controlled whether
  current_timestamp maps to statement_timestamp or to transaction_timestamp.
 
 This is a nonstarter, as is the previous proposal to have a single
 function with an explicit parameter that selects the behavior.  The
 reason is that any such function would have to be treated as completely
 non-optimizable.  It's really important that current_timestamp be STABLE
 so that queries like
   where entrytimestamp = current_timestamp - '10 minutes'
 can use an index.  This means you can't have options that make it not
 be STABLE.

Oh, I forgot about that.  Peter seems only to want statement_timestamp
and transaction_timestamp.  Aren't those both stable if
statement_timestamp is set from exec_simple_query?

  The name clock_timestamp seems kind of unfortunate.
 
 Agreed, it's not the best choice.
 
  Why is this functionality needed anyway?
 
 Performance measurements within plpgsql functions, for example.
 I am unconvinced that anyone has really proven the need for
 statement_timestamp, but a cleaner replacement for timeofday()
 would be nice to have.

Yep, and if we say we need that then the GUC option doesn't work because
the certainly will not be stable.

-- 
  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 4: Don't 'kill -9' the postmaster


Re: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 It would be very useful if we had a parameter that controlled whether
 current_timestamp maps to statement_timestamp or to transaction_timestamp.

This is a nonstarter, as is the previous proposal to have a single
function with an explicit parameter that selects the behavior.  The
reason is that any such function would have to be treated as completely
non-optimizable.  It's really important that current_timestamp be STABLE
so that queries like
where entrytimestamp = current_timestamp - '10 minutes'
can use an index.  This means you can't have options that make it not
be STABLE.

 The name clock_timestamp seems kind of unfortunate.

Agreed, it's not the best choice.

 Why is this functionality needed anyway?

Performance measurements within plpgsql functions, for example.
I am unconvinced that anyone has really proven the need for
statement_timestamp, but a cleaner replacement for timeofday()
would be nice to have.

regards, tom lane

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

   http://archives.postgresql.org


Re: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Tom Lane
Bruce Momjian [EMAIL PROTECTED] writes:
 Tom Lane wrote:
 This is a nonstarter,

 Oh, I forgot about that.  Peter seems only to want statement_timestamp
 and transaction_timestamp.  Aren't those both stable if
 statement_timestamp is set from exec_simple_query?

Hm.  If you restricted the option to only those two values, it might be
safe as far as the stability argument goes, but it would be the sort
of thing where we'd have to be perpetually on our guard against someone
making the obvious extension and thereby subtly breaking things.

In general, I do not like options that subtly change the behavior of
long-established functions, anyway.  Seems like a great recipe for
breaking people's applications.  I'm okay with adding new functions as
per the already-agreed-to set of names (though like Peter I wish we
could think of something clearer than clock_timestamp()).  Rejiggering
the behavior of already-existing functions was not part of what had
been agreed to.

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: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Peter Eisentraut
Tom Lane writes:

 This is a nonstarter, as is the previous proposal to have a single
 function with an explicit parameter that selects the behavior.  The
 reason is that any such function would have to be treated as completely
 non-optimizable.

Why?  We would just need to ensure that the mode cannot be changed at
critical times.

 I am unconvinced that anyone has really proven the need for
 statement_timestamp,

Compatibility with other database systems might be one (if it is
accessible through current_timestamp).

-- 
Peter Eisentraut   [EMAIL PROTECTED]


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


Re: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 Tom Lane writes:
 This is a nonstarter, as is the previous proposal to have a single
 function with an explicit parameter that selects the behavior.  The
 reason is that any such function would have to be treated as completely
 non-optimizable.

 Why?  We would just need to ensure that the mode cannot be changed at
 critical times.

critical time being anywhere within a session, I guess?  Either that
or keep track of whether any cached plans depend on the stability
assumption.

regards, tom lane

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable (was:

2003-12-01 Thread Peter Eisentraut
Tom Lane writes:

 There was just a discussion a few days ago about the page size for large
 objects, for which the correct answer was BLCKSZ/4 IIRC.  Whether
 people actually *should* care about the page size of large objects I
 dunno, but the fact is some of them *do* care.

Maybe we should provide specific functions to access this information, so
client applications don't have to hardcode these formulas.

-- 
Peter Eisentraut   [EMAIL PROTECTED]


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


Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable (was: [GENERAL] SELECT Question)

2003-12-01 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 Tom Lane writes:
 There was just a discussion a few days ago about the page size for large
 objects, for which the correct answer was BLCKSZ/4 IIRC.  Whether
 people actually *should* care about the page size of large objects I
 dunno, but the fact is some of them *do* care.

 Maybe we should provide specific functions to access this information, so
 client applications don't have to hardcode these formulas.

That's exactly what this thread is about: current_setting() is the
proposed access function ...

I'm not convinced that large object pagesize is interesting enough to
deserve its own GUC variable, but if someone wanted to make that case
I'm certainly open to listening.

regards, tom lane

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

   http://archives.postgresql.org


Re: [PATCHES] [PATCH] Re: [pgsql-advocacy] Why READ ONLY transactions?

2003-12-01 Thread Josh Berkus
Bruce,

 This seems like a valuable feature, as others have mentioned.  However,
 should it also prevent changes to default_transaction_read_only?

 What is the use case for this functionality?

I thought that this was rejected thouroughly by Tom some months ago.  He 
argued pretty strongly that READ ONLY transactions were *not* a security 
feature and that trying to make them one would work very poorly.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

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


Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable

2003-12-01 Thread Bruce Momjian
Joe Conway wrote:
 name   | func_max_args
 name   | index_max_keys
  Should that be max_func_args and max_index_args?  Seems more natural.
  Should we spell out function?  Probably.  We already have
  check_*function*_bodies.
 
 Agreed. Now:
 name   | max_function_args
 name   | max_identifier_length
 name   | max_index_keys

Nice.

 name   | integer_datetimes
 short_desc | Datetimes are integer based
  
  This one has me confused.  Datetimes are integer based is a statement,
  as is the variable name.  Should it be integer_datetime_storage or
  something else?
 
 Well the configure option is:
 --enable-integer-datetimes
 so integer_datetimes seemed natural to me.
 
 The description is a statement because the option is boolean, i.e. the 
 statement Datetimes are integer based is either true or false 
 (on or off, etc). How stongly do you feel about it? I don't think 
 integer_datetime_storage is accurate in any case.

Not strongly.  Keep it unchanged.

-- 
  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 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: [PATCHES] [PATCH] Re: [pgsql-advocacy] Why READ ONLY transactions?

2003-12-01 Thread Bruce Momjian
Josh Berkus wrote:
 Bruce,
 
  This seems like a valuable feature, as others have mentioned.  However,
  should it also prevent changes to default_transaction_read_only?
 
  What is the use case for this functionality?
 
 I thought that this was rejected thouroughly by Tom some months ago.  He 
 argued pretty strongly that READ ONLY transactions were *not* a security 
 feature and that trying to make them one would work very poorly.

I remember something like that, but I thought the patch was the result
of that discussion.  Tom?

-- 
  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 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [PATCHES] clock_timestamp() and transaction_timestamp() function

2003-12-01 Thread Randolf Richardson
 Yes, user-visible.  They give additional current timestamp information.
 transaction_timestamp() is the same as current_timestamp,
 clock_timestamp is the same as gettimeofday(), and statement_timestamp
 is a new one that shows statement start time.
 
 And what would be the point of that?

Bean counters love this stuff, especially during audits.  =D

-- 
Randolf Richardson - [EMAIL PROTECTED]
Vancouver, British Columbia, Canada

Please do not eMail me directly when responding
to my postings in the newsgroups.

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

   http://archives.postgresql.org


Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable

2003-12-01 Thread Joe Conway
Bruce Momjian wrote:
Joe Conway wrote:
The description is a statement because the option is boolean, i.e. the 
statement Datetimes are integer based is either true or false 
(on or off, etc). How stongly do you feel about it? I don't think 
integer_datetime_storage is accurate in any case.
Not strongly.  Keep it unchanged.

Any more thoughts on block_size (or page_size)?

Thanks,

Joe



---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [PATCHES] Minor lmgr code cleanup

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.  That lock manager code really needed the cleanup.

---


Manfred Koizar wrote:
 On Mon, 8 Sep 2003 13:02:11 -0400 (EDT), Bruce Momjian
 [EMAIL PROTECTED] wrote:
 
 Manfred, can I get a description for this patch?  Thanks.
 
 Try to reduce confusion about what is a lock method identifier, a lock
 method control structure, or a table of control structures.
 
 . Use type LOCKMASK where an int is not a counter.
 
 . Get rid of INVALID_TABLEID, use INVALID_LOCKMETHOD instead.
 
 . Use INVALID_LOCKMETHOD instead of (LOCKMETHOD) NULL, because
   LOCKMETHOD is not a pointer.
 
 . Define and use macro LockMethodIsValid.
 
 . Rename LOCKMETHOD to LOCKMETHODID.
 
 . Remove global variable LongTermTableId in lmgr.c, because it is
   never used.
 
 . Make LockTableId static in lmgr.c, because it is used nowhere else.
   Why not remove it and use DEFAULT_LOCKMETHOD?
 
 . Rename the lock method control structure from LOCKMETHODTABLE to
   LockMethodData.  Introduce a pointer type named LockMethod.
 
 . Remove elog(FATAL) after InitLockTable() call in
   CreateSharedMemoryAndSemaphores(), because if something goes wrong,
   there is elog(FATAL) in LockMethodTableInit(), and if this doesn't
   help, an elog(ERROR) in InitLockTable() is promoted to FATAL.
 
 . Make InitLockTable() void, because its only caller does not use its
   return value any more.
 
 . Rename variables in lock.c to avoid statements like
   LockMethodTable[NumLockMethods] = lockMethodTable;
   lockMethodTable = LockMethodTable[lockmethod];
 
 . Change LOCKMETHODID type to uint16 to fit into struct LOCKTAG.
 
 . Remove static variables BITS_OFF and BITS_ON from lock.c, because
   I agree to this doubt:
  * XXX is a fetch from a static array really faster than a shift?
 
 . Define and use macros LOCKBIT_ON/OFF.
 
 ==
  All 93 tests passed.
 ==
 
 Servus
  Manfred
 

-- 
  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 4: Don't 'kill -9' the postmaster


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Bruce Momjian


Updated patch applied.  Thanks.

---

Neil Conway wrote:
 This patch adds a new GUC var, default_use_oids, which follows the
 proposal for eventually deprecating OIDs on user tables that I posted
 earlier to pgsql-hackers. pg_dump now always specifies WITH OIDS or
 WITHOUT OIDS when dumping a table. The documentation has been updated.
 
 Comments are welcome.
 
 (This patch is for the 7.5 queue.)
 
 -Neil
 

[ Attachment, skipping... ]

 
 ---(end of broadcast)---
 TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

-- 
  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 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable

2003-12-01 Thread Peter Eisentraut
Joe Conway writes:

 Any more thoughts on block_size (or page_size)?

It's always been some variant spelling of block size, and I see no
reason to change the terminology.

-- 
Peter Eisentraut   [EMAIL PROTECTED]


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


Re: [Fwd: [PATCHES] Make psql use all pretty print options]

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.

The CHECK part of this patch was already applied to 7.4.

---



Christopher Kings-Lynne wrote:
 Resubmission of patch (for 7.4).
 
 I fixed the problems I was having what I chatted to you Bruce, I've 
 tested it well and it shouldn't be a problem to apply for 7.4.  It looks 
 really nice with the pretty print stuff!
 
 Chris
 
  Original Message 
 Subject: [PATCHES] Make psql use all pretty print options
 Date: Mon, 29 Sep 2003 12:31:18 +0800 (WST)
 From: Christopher Kings-Lynne [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 
 Hi,
 
 This patch finishes off the work that I did with making view
 definitions use pretty printing.
 
 It does:
 
 * Pretty check constraints
 * Pretty index predicates
 * Pretty rule definitions
 * Uppercases PRIMARY KEY and UNIQUE to be consistent with CHECK and
 FOREIGN KEY
 * View rules are improved to match table rules:
 
  View public.v
Column  |  Type   | Modifiers
 --+-+---
   ?column? | integer |
 View definition:
   SELECT 1;
 Rules:
   r1 AS
  ON INSERT TO v DO INSTEAD NOTHING
   r2 AS
  ON INSERT TO v DO INSTEAD NOTHING
 
 Chris
 
 
 

 Index: describe.c
 ===
 RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/describe.c,v
 retrieving revision 1.85
 diff -c -r1.85 describe.c
 *** describe.c7 Sep 2003 03:43:53 -   1.85
 --- describe.c29 Sep 2003 04:24:56 -
 ***
 *** 857,863 
   
   printfPQExpBuffer(buf,
 SELECT i.indisunique, i.indisprimary, a.amname, c2.relname,\n
 ! pg_catalog.pg_get_expr(i.indpred, 
 i.indrelid)\n
 FROM pg_catalog.pg_index i, 
 pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_am a\n
 WHERE i.indexrelid = c.oid AND 
 c.oid = '%s' AND c.relam = a.oid\n
 AND i.indrelid = c2.oid,
 --- 857,863 
   
   printfPQExpBuffer(buf,
 SELECT i.indisunique, i.indisprimary, a.amname, c2.relname,\n
 ! pg_catalog.pg_get_expr(i.indpred, 
 i.indrelid, true)\n
 FROM pg_catalog.pg_index i, 
 pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_am a\n
 WHERE i.indexrelid = c.oid AND 
 c.oid = '%s' AND c.relam = a.oid\n
 AND i.indrelid = c2.oid,
 ***
 *** 880,888 
   char   *indpred = PQgetvalue(result, 0, 4);
   
   if (strcmp(indisprimary, t) == 0)
 ! printfPQExpBuffer(tmpbuf, _(primary key, ));
   else if (strcmp(indisunique, t) == 0)
 ! printfPQExpBuffer(tmpbuf, _(unique, ));
   else
   resetPQExpBuffer(tmpbuf);
   appendPQExpBuffer(tmpbuf, %s, , indamname);
 --- 880,888 
   char   *indpred = PQgetvalue(result, 0, 4);
   
   if (strcmp(indisprimary, t) == 0)
 ! printfPQExpBuffer(tmpbuf, _(PRIMARY KEY, ));
   else if (strcmp(indisunique, t) == 0)
 ! printfPQExpBuffer(tmpbuf, _(UNIQUE, ));
   else
   resetPQExpBuffer(tmpbuf);
   appendPQExpBuffer(tmpbuf, %s, , indamname);
 ***
 *** 892,898 
 schemaname, indtable);
   
   if (strlen(indpred))
 ! appendPQExpBuffer(tmpbuf, , predicate %s, indpred);
   
   footers = xmalloczero(2 * sizeof(*footers));
   footers[0] = xstrdup(tmpbuf.data);
 --- 892,898 
 schemaname, indtable);
   
   if (strlen(indpred))
 ! appendPQExpBuffer(tmpbuf, , predicate (%s), 
 indpred);
   
   footers = xmalloczero(2 * sizeof(*footers));
   footers[0] = xstrdup(tmpbuf.data);
 ***
 *** 911,917 
   if (tableinfo.hasrules)
   {
   printfPQExpBuffer(buf,
 !   SELECT r.rulename\n
 FROM pg_catalog.pg_rewrite 
 r\n
  WHERE r.ev_class = '%s' AND r.rulename != 
 '_RETURN',
 oid);
 --- 911,917 
   if 

Re: [PATCHES] minor psql cleanup

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.  Someone had already removed the assert() from
tab_complete.c, but not the #include assert.h.

---


Neil Conway wrote:
 This patch reduces some unsightly #ifdefs, and fixes two typos in
 comments in the psql code. This doesn't make any functional change, so
 feel free to save it for 7.5
 
 -Neil
 

[ Attachment, skipping... ]

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

-- 
  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: [PATCHES] Make pg_dump dump conversions

2003-12-01 Thread Bruce Momjian

Just to confirm --- this was applied to 7.4 already.

---

Christopher Kings-Lynne wrote:
 Just noticed a bug in the previous version of the patch.  Would fail 
 against pre-7.3 postgres.
 
 Fixed in this new version.  Just discard the old.
 
 Chris
 
 
 Christopher Kings-Lynne wrote:
 
  Save this for 7.5.  Nails a TODO item.
  
  Chris
 

 ? GNUmakefile
 ? config.log
 ? config.status
 ? src/Makefile.global
 ? src/backend/postgres
 ? src/backend/access/common/.deps
 ? src/backend/access/gist/.deps
 ? src/backend/access/hash/.deps
 ? src/backend/access/heap/.deps
 ? src/backend/access/index/.deps
 ? src/backend/access/nbtree/.deps
 ? src/backend/access/rtree/.deps
 ? src/backend/access/transam/.deps
 ? src/backend/bootstrap/.deps
 ? src/backend/catalog/.deps
 ? src/backend/catalog/postgres.bki
 ? src/backend/catalog/postgres.description
 ? src/backend/commands/.deps
 ? src/backend/executor/.deps
 ? src/backend/lib/.deps
 ? src/backend/libpq/.deps
 ? src/backend/main/.deps
 ? src/backend/nodes/.deps
 ? src/backend/optimizer/geqo/.deps
 ? src/backend/optimizer/path/.deps
 ? src/backend/optimizer/plan/.deps
 ? src/backend/optimizer/prep/.deps
 ? src/backend/optimizer/util/.deps
 ? src/backend/parser/.deps
 ? src/backend/port/.deps
 ? src/backend/postmaster/.deps
 ? src/backend/regex/.deps
 ? src/backend/rewrite/.deps
 ? src/backend/storage/buffer/.deps
 ? src/backend/storage/file/.deps
 ? src/backend/storage/freespace/.deps
 ? src/backend/storage/ipc/.deps
 ? src/backend/storage/large_object/.deps
 ? src/backend/storage/lmgr/.deps
 ? src/backend/storage/page/.deps
 ? src/backend/storage/smgr/.deps
 ? src/backend/tcop/.deps
 ? src/backend/utils/.deps
 ? src/backend/utils/adt/.deps
 ? src/backend/utils/cache/.deps
 ? src/backend/utils/error/.deps
 ? src/backend/utils/fmgr/.deps
 ? src/backend/utils/hash/.deps
 ? src/backend/utils/init/.deps
 ? src/backend/utils/mb/.deps
 ? src/backend/utils/mb/conversion_procs/conversion_create.sql
 ? src/backend/utils/mb/conversion_procs/ascii_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/ascii_and_mic/libascii_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/cyrillic_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/cyrillic_and_mic/libcyrillic_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/euc_cn_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/euc_cn_and_mic/libeuc_cn_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/.deps
 ? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/libeuc_jp_and_sjis.so.0
 ? src/backend/utils/mb/conversion_procs/euc_kr_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/euc_kr_and_mic/libeuc_kr_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/.deps
 ? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/libeuc_tw_and_big5.so.0
 ? src/backend/utils/mb/conversion_procs/latin2_and_win1250/.deps
 ? src/backend/utils/mb/conversion_procs/latin2_and_win1250/liblatin2_and_win1250.so.0
 ? src/backend/utils/mb/conversion_procs/latin_and_mic/.deps
 ? src/backend/utils/mb/conversion_procs/latin_and_mic/liblatin_and_mic.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_ascii/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_ascii/libutf8_and_ascii.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_big5/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_big5/libutf8_and_big5.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/libutf8_and_cyrillic.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/libutf8_and_euc_cn.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/libutf8_and_euc_jp.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/libutf8_and_euc_kr.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/libutf8_and_euc_tw.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/libutf8_and_gb18030.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_gbk/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_gbk/libutf8_and_gbk.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/libutf8_and_iso8859.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/libutf8_and_iso8859_1.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_johab/.deps
 ? src/backend/utils/mb/conversion_procs/utf8_and_johab/libutf8_and_johab.so.0
 ? src/backend/utils/mb/conversion_procs/utf8_and_sjis/.deps
 ? 

Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable

2003-12-01 Thread Bruce Momjian
Peter Eisentraut wrote:
 Joe Conway writes:
 
  Any more thoughts on block_size (or page_size)?
 
 It's always been some variant spelling of block size, and I see no
 reason to change the terminology.

Yes, that is from a coder's perspective, but from the user/admin
perspective, it seems more like page, and in fact we probably would call
it page if we were starting from scratch.

-- 
  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: [PATCHES] 7.4 shared memory error on 64-bit SPARC/Solaris 5.8

2003-12-01 Thread Tom Lane
Thomas Baden [EMAIL PROTECTED] writes:
 Hi there.  My install was failing the regression tests
 due to a shared memory error.

After reviewing the proposed patch, I find it hard to believe that the
patch would have fixed any such problem --- even if key_t is 64 bits
on your system, the code should still have worked, because we'd never
have selected a key value wider than 32 bits anyway.  What *exact*
misbehavior were you seeing?

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: [PATCHES] psql: \dg and groups for \du

2003-12-01 Thread Bruce Momjian

Nice:

test= create group test;
CREATE GROUP
test= \dg
List of database groups
 Group name | Group ID 
+--
 test   |  100
(1 row)

test= alter group test add user postgres;
ALTER GROUP
test= \du
  List of database users
 User name | User ID | Attributes | Groups 
---+-++
 postgres  |   1 | superuser, create database | {test}
(1 row)

Patch applied, docs added, TODO updated.  Thanks.

---

Markus Bertheau wrote:
 Hi,
 
 attached is a patch that adds display of the groups a user belongs to to
 \du and a \dg command to psql. It's against 7.4beta5.
 
 -- 
 Markus Bertheau [EMAIL PROTECTED]

[ Attachment, skipping... ]

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

-- 
  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 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: [PATCHES] Win32 patch for Makefile.shlib

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.

---


Claudio Natoli wrote:
 
 If this is acceptable, I'll send a similar one for src/backend/Makefile
 
 Cheers,
 Claudio
 
 
 --- 
 WE HAVE MOVED - PLEASE NOTE OUR NEW CONTACT DETAILS: 
 THE BASEMENT, 33 EWELL STREET, BALMAIN NSW 2041 
 TEL: +61 2 9555 1544 FAX: +61 2 9555 6911 
 Certain disclaimers and policies apply to all email sent from Memetrics.
 For the full text of these disclaimers and policies see 
 http://www.memetrics.com/emailpolicy.html
   
 

[ Attachment, skipping... ]

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

-- 
  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 8: explain analyze is your friend


Re: [PATCHES] improve psql lo_* help

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.

---


Christopher Kings-Lynne wrote:
 This makes help like this:
 
\lo_export LOBOID FILE
\lo_import FILE [COMMENT]
\lo_list
\lo_unlink LOBOIDlarge object operations
 
 Instead of not saying anything about what arguments are required.
 
 Chris
 

 Index: src/bin/psql/help.c
 ===
 RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/help.c,v
 retrieving revision 1.81
 diff -c -r1.81 help.c
 *** src/bin/psql/help.c   2 Oct 2003 06:39:31 -   1.81
 --- src/bin/psql/help.c   17 Nov 2003 09:02:23 -
 ***
 *** 245,254 
   
   fprintf(output, _(Copy, Large Object\n));
   fprintf(output, _(  \\copy ...  perform SQL COPY with data stream to the 
 client host\n));
 ! fprintf(output, _(  \\lo_export\n
 ! \\lo_import\n
   \\lo_list\n
 ! \\lo_unlink large object 
 operations\n));
   
   if (output != stdout)
   {
 --- 245,254 
   
   fprintf(output, _(Copy, Large Object\n));
   fprintf(output, _(  \\copy ...  perform SQL COPY with data stream to the 
 client host\n));
 ! fprintf(output, _(  \\lo_export LOBOID FILE\n
 ! \\lo_import FILE [COMMENT] \n
   \\lo_list\n
 ! \\lo_unlink LOBOIDlarge object 
 operations\n));
   
   if (output != stdout)
   {

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

-- 
  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 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Alvaro Herrera
On Mon, Dec 01, 2003 at 05:07:40PM -0500, Bruce Momjian wrote:

 Neil Conway wrote:
  This patch adds a new GUC var, default_use_oids, which follows the
  proposal for eventually deprecating OIDs on user tables that I posted
  earlier to pgsql-hackers. pg_dump now always specifies WITH OIDS or
  WITHOUT OIDS when dumping a table. The documentation has been updated.
  
  Comments are welcome.

Hum, sorry to be late, but wasn't one of the supposed strenghts of
pg_dump supposed to be that you could take a dump and load it on a
different RDBMS?  I haven't tried it so I don't know if it works, but
this patch takes out the ability to do that -- no one else will accept
WITH/WITHOUT OIDS, so the dump will have to be modified.  Is a switch
provided to stop the emission of those modifiers?

-- 
Alvaro Herrera (alvherre[a]dcc.uchile.cl)
Escucha y olvidarás; ve y recordarás; haz y entenderás (Confucio)

---(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: [PATCHES] 7.4 shared memory error on 64-bit SPARC/Solaris 5.8

2003-12-01 Thread Kurt Roeckx
On Mon, Dec 01, 2003 at 05:19:17PM -0500, Tom Lane wrote:
 Thomas Baden [EMAIL PROTECTED] writes:
  Hi there.  My install was failing the regression tests
  due to a shared memory error.
 
 After reviewing the proposed patch, I find it hard to believe that the
 patch would have fixed any such problem --- even if key_t is 64 bits
 on your system, the code should still have worked, because we'd never
 have selected a key value wider than 32 bits anyway.  What *exact*
 misbehavior were you seeing?

It's not the key (key_t) that is the problem, but the size, which
used to be int but got replaced by a size_t.


Kurt


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [PATCHES] psql: \dg and groups for \du

2003-12-01 Thread Peter Eisentraut
Note that it is planned to unify users and groups into a general role
entity, so this command is probably going to go away soon.


Bruce Momjian writes:

 Nice:

   test= create group test;
   CREATE GROUP
   test= \dg
   List of database groups
Group name | Group ID
   +--
test   |  100
   (1 row)

   test= alter group test add user postgres;
   ALTER GROUP
   test= \du
 List of database users
User name | User ID | Attributes | Groups
   ---+-++
postgres  |   1 | superuser, create database | {test}
   (1 row)

 Patch applied, docs added, TODO updated.  Thanks.

 ---

 Markus Bertheau wrote:
  Hi,
 
  attached is a patch that adds display of the groups a user belongs to to
  \du and a \dg command to psql. It's against 7.4beta5.
 
  --
  Markus Bertheau [EMAIL PROTECTED]

 [ Attachment, skipping... ]

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



-- 
Peter Eisentraut   [EMAIL PROTECTED]


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Peter Eisentraut
Alvaro Herrera writes:

 On Mon, Dec 01, 2003 at 05:07:40PM -0500, Bruce Momjian wrote:

  Neil Conway wrote:
   This patch adds a new GUC var, default_use_oids, which follows the
   proposal for eventually deprecating OIDs on user tables that I posted
   earlier to pgsql-hackers. pg_dump now always specifies WITH OIDS or
   WITHOUT OIDS when dumping a table. The documentation has been updated.
  
   Comments are welcome.

 Hum, sorry to be late, but wasn't one of the supposed strenghts of
 pg_dump supposed to be that you could take a dump and load it on a
 different RDBMS?  I haven't tried it so I don't know if it works, but
 this patch takes out the ability to do that -- no one else will accept
 WITH/WITHOUT OIDS, so the dump will have to be modified.  Is a switch
 provided to stop the emission of those modifiers?

I agree with that.  By default, WITH/WITHOUT OIDS should not be dumped.

-- 
Peter Eisentraut   [EMAIL PROTECTED]


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


Re: [PATCHES] psql: \dg and groups for \du

2003-12-01 Thread Bruce Momjian
Peter Eisentraut wrote:
 Note that it is planned to unify users and groups into a general role
 entity, so this command is probably going to go away soon.

NP, at least the code is there for reuse.

-- 
  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 7: don't forget to increase your free space map settings


Re: [PATCHES] [PATCH] Re: [pgsql-advocacy] Why READ ONLY transactions?

2003-12-01 Thread Sean Chittenden
  Josh Berkus wrote:
  I thought that this was rejected thouroughly by Tom some months ago.  He 
  argued pretty strongly that READ ONLY transactions were *not* a security 
  feature and that trying to make them one would work very poorly.
 
  I remember something like that, but I thought the patch was the result
  of that discussion.  Tom?
 
 Hm, I can't find anything in the archives in which I said that.  I
 did argue that using GUC to control a security feature would be a
 mistake:
 http://archives.postgresql.org/pgsql-patches/2003-07/msg00198.php
 and after watching Bruce struggle with trying to make
 logging-related GUC settings secure, I think my point is pretty much
 proved ;-).  I don't want to see more cruft like that added to the
 GUC logic.

http://archives.postgresql.org/pgsql-patches/2003-07/msg00204.php

Sure sounds like you said READ ONLY xacts can't be used for security.  :)

 Another thing to think about is that the semantics of START
 TRANSACTION READ ONLY are constrained by the SQL standard, and they
 are not exactly read only in the traditional sense (eg, you can
 still create and use temp tables).  If we go down this path, I would
 be unsurprised to run into a showstopper conflict between what's
 needed for reasonably secure behavior and what the spec dictates.
 It would be less risky to use some other approach, if we are really
 interested in creating read-only users.

Hence the term, security policy.  I want read only
users/transactions, but I also need temp tables to work and for
transactions to be committed out of temp tables into the real tables
via a proc with elevated privs.  Other people who don't want to have
malicious read only users fill up the disk may want TEMP tables to be
disabled.

 So I'm still of the opinion I gave in the above-mentioned thread,
 that I'd rather make read only user be a concept driven by a flag
 in the user's pg_shadow entry.

I think a boolean read only user flag will fall well short of
letting admins finely tune the database's behavior given the example
above.  I think using ALTER USER [username] SET is a much better
mechanism for securing users than setting a boolean in pg_shadow.
Taking the boolean in pg_shadow to its extreme, we'll either get to
the point where we've got a gazillion different columns (think of how
nasty MySQL's mysql database and it's host/user/table/db is) that are
unneeded 99% of the time.  sarcasmTo avoid that, we could get smart
and replace the single boolean value with an int4 options field
where we could toggle various bits to mean different things.  Bit 1
would be read only.  Bit 2 would be allow temp tables.  Then we could
teach admins to xor bits and negate bits and hope that no one makes a
mistake, thus opening up their DB to abuse because the admin made a
mistake because instead of bit 15, they flipped bit 14, nevermind that
we'll have made the assumption that every DBA has a good working
understanding of binary./sarcasm

The patch doesn't prevent write(2), but this tunable isn't used to
prevent writing to disk, it's meant to prevent changes to the database
by a given user.  If you want a truly read-only database (in the case
of NFS), mount the filesystem as readonly (not sure if that works, but
it'd be a useful exercise).  One step better, centralize the
postmaster's write() calls and add a level of indirection with a few
function pointers.  If the backend is in read-only mode, use a
different func that aborts the transaction.

I think Tom's big objection is the abuse of the GUC system for
maintaining this information.  Having thought about this some, I think
the GUC system is pretty well suited for this and that Tom's objection
(correct me if I'm wrong here) is that GUC has a non-hierarchical
naming structure/convention.  With a hierarchical structure, lumping
of GUC variables becomes more reasonable and the naming is more
systematic.  Instead of, jail_read_only_transaction=true it'd be
security.force_readonly=true or transaction.readonly_always=true.

-sc

-- 
Sean Chittenden

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

   http://archives.postgresql.org


Re: [PATCHES] cleanup execTuples.c

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.

---


Neil Conway wrote:
 Tom Lane [EMAIL PROTECTED] writes:
  Please use names for the replacement routines that are more clear
  than fooInternal.  You can get away with that kind of name for a
  static function, but I think globally visible ones should have more
  meaningful names.
 
 The only function I named fooInternal was ExecTypeFromTLInternal,
 which is static.
 
  For ExecTypeFromTLInternal, maybe use ExecTupDescFromTL, which is a
  more accurate name in the first place
 
 What's the logic in having ExecTypeFromTL() and ExecCleanTypeFromTL()
 implemented in terms of a function called ExecTupDescFromTL()? i.e. if
 we're going to be renaming functions, wouldn't it make sense to rename
 the public API functions, not the internal static functions?
 
  As for the Slot functions, I agree with getting rid of the macros,
  which seem to add little except obfuscation.  But I see no need to
  introduce an extra layer of calls.  Why not make them all go
  directly to ExecAllocTableSlot(estate-es_tupleTable)?
 
 Yeah, I was considering that, both ways seemed about equal to me.
 
 Attached is a revised version of the patch. I've adopted Tom's
 suggestion for the slot functions. For renaming
 ExecTypeFromTLInternal(), I haven't changed the name of the function
 (see my comments above), but if you clarify what you're suggesting, I
 can submit another version of the patch.
 
 BTW, this code includes the comment:
 
  *Currently there are about 4 different places where we create
  *TupleDescriptors.  They should all be merged, or perhaps be
  *rewritten to call BuildDesc().
 
 Aside from the fact that BuildDesc() doesn't exist anymore AFAICS,
 would this still be a reasonable reorganization to make?
 
 -Neil

[ Attachment, skipping... ]

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

-- 
  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 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [PATCHES] 7.4 shared memory error on 64-bit SPARC/Solaris 5.8

2003-12-01 Thread Tom Lane
Kurt Roeckx [EMAIL PROTECTED] writes:
 On Mon, Dec 01, 2003 at 05:19:17PM -0500, Tom Lane wrote:
 After reviewing the proposed patch, I find it hard to believe that the
 patch would have fixed any such problem ---

 It's not the key (key_t) that is the problem, but the size, which
 used to be int but got replaced by a size_t.

I don't see a problem there either.  We don't create shmem segments
larger than 2Gb (and if we wanted to do so, this patch certainly
isn't enough to get it done --- all the arithmetic for shmem sizing
is int).

regards, tom lane

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [PATCHES] [PATCH] Re: [pgsql-advocacy] Why READ ONLY transactions?

2003-12-01 Thread Bruce Momjian
Sean Chittenden wrote:
 I think Tom's big objection is the abuse of the GUC system for
 maintaining this information.  Having thought about this some, I think
 the GUC system is pretty well suited for this and that Tom's objection
 (correct me if I'm wrong here) is that GUC has a non-hierarchical
 naming structure/convention.  With a hierarchical structure, lumping
 of GUC variables becomes more reasonable and the naming is more
 systematic.  Instead of, jail_read_only_transaction=true it'd be
 security.force_readonly=true or transaction.readonly_always=true.

Agreed on the usefulness of GUC.  I had trouble adding security for
logging settings not because GUC wouldn't work but because the logging
control had to hit several different variables that all had different
API's.  It had to allow _increase_ for some variables and not others.

-- 
  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 8: explain analyze is your friend


Re: [PATCHES] YA Cygwin DLLIMPORT patch

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.

---


Jason Tishler wrote:
 The attached patch enables contrib/cube to build cleanly under Cygwin
 (again).  Please consider this patch for the 7.4.1 branch (if there will
 be one) too.
 
 Thanks,
 Jason
 
 -- 
 PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
 Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6

[ Attachment, skipping... ]

 
 ---(end of broadcast)---
 TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

-- 
  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 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Bruce Momjian
Peter Eisentraut wrote:
 Alvaro Herrera writes:
 
  On Mon, Dec 01, 2003 at 05:07:40PM -0500, Bruce Momjian wrote:
 
   Neil Conway wrote:
This patch adds a new GUC var, default_use_oids, which follows the
proposal for eventually deprecating OIDs on user tables that I posted
earlier to pgsql-hackers. pg_dump now always specifies WITH OIDS or
WITHOUT OIDS when dumping a table. The documentation has been updated.
   
Comments are welcome.
 
  Hum, sorry to be late, but wasn't one of the supposed strenghts of
  pg_dump supposed to be that you could take a dump and load it on a
  different RDBMS?  I haven't tried it so I don't know if it works, but
  this patch takes out the ability to do that -- no one else will accept
  WITH/WITHOUT OIDS, so the dump will have to be modified.  Is a switch
  provided to stop the emission of those modifiers?
 
 I agree with that.  By default, WITH/WITHOUT OIDS should not be dumped.

Yes, I see that now:

CREATE TABLE x (
y integer
) WITH OIDS;

We need a solution to this.  One idea is to use SET to change the
default_with_oids setting when a table changes characteristics.

-- 
  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 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Neil Conway
Bruce Momjian [EMAIL PROTECTED] writes:
 We need a solution to this.

I'm really not sure we do: the SQL produced by pg_dump was totally
non-portable before, and it is slightly less portable now. ISTM that
you will almost always need to do some post-processing of pg_dump's
output to have any hope of loading it into another RDBMS in any case.

A flag for pg_dump that told it to produce standards-compliant SQL
would be a cool thing to have, but that would provide a solution to a
problem that has always existed, not one that is introduced by this
patch.

 One idea is to use SET to change the default_with_oids setting when
 a table changes characteristics.

It is easy to do this if people think it would improve things. I
didn't do it myself because I didn't see how it helped: SET is not in
the standard either. It is just as trivial to use sed/perl/etc. to
remove SET default_with_oids ... as it is to remove WITH/WITHOUT
OIDS.

-Neil


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


Re: [PATCHES] [PATCH] Re: [pgsql-advocacy] Why READ ONLY transactions?

2003-12-01 Thread Sean Chittenden
  http://archives.postgresql.org/pgsql-patches/2003-07/msg00204.php
  Sure sounds like you said READ ONLY xacts can't be used for security.  :)
 
 Better read it again then.

Okay:

 It's not intended to be a security measure, and I would strongly
 resist any attempt to make it so along the lines you propose.

And strong resist in tgl-speak means, over my dead body, it ain't
gunna happen.  :)

  I think Tom's big objection is the abuse of the GUC system for
  maintaining this information.
 
 Check.
 
  Having thought about this some, I think the GUC system is pretty
  well suited for this and that Tom's objection (correct me if I'm
  wrong here) is that GUC has a non-hierarchical naming
  structure/convention.
 
 Not in the least.  My objection to using GUC for this is that it's
 not designed to be non-subvertible; rather it's designed to allow
 settings to come from nearly anywhere.  To get around that, you have
 to kluge it horribly.  Poster child, once again, the cruft Bruce put
 into the logging settings --- not only is that ugly, but I have very
 little confidence that it doesn't still have holes.  Complexity is
 not a virtue in security-related code; and any security expert will
 tell you that having the same code serving both security- and
 non-security-related goals is a recipe for disaster.  It's too easy
 to break security while you are fooling with something you think is
 unrelated.

Far be it for me to disagree with your points.  Can I clarify what
you're saying then with the following statement:

A GUC-like system that is specific for containing security related
settings would be okay, but GUC as it stands in its current
incarnation, should not (at least with any illusion of providing
security) be used for anything that is security related.

And if I'm wrong in those assertions, can you comment on how you would
do this with a tunable definition of read only?  And if you agree
with the above statement, do you have any thoughts on improving GUC so
that it could potentially be more secure or secure enough?  Anything
that is written in C clobbers any attempt at being secure.  What in
side of the backend do you trust?  -sc

-- 
Sean Chittenden

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


Re: [PATCHES] export FUNC_MAX_ARGS as a read-only GUC variable

2003-12-01 Thread Joe Conway
Bruce Momjian wrote:
Peter Eisentraut wrote:
Joe Conway writes:
Any more thoughts on block_size (or page_size)?
It's always been some variant spelling of block size, and I see no
reason to change the terminology.
Yes, that is from a coder's perspective, but from the user/admin
perspective, it seems more like page, and in fact we probably would call
it page if we were starting from scratch.
Hmm, I don't feel strongly either way on this, but I guess I lean toward 
block_size myself. Any other opinions out there?

block_size or page_size or something else?

Joe



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


Re: [PATCHES] [HACKERS] Index creation takes for ever

2003-12-01 Thread Tom Lane
Manfred Koizar [EMAIL PROTECTED] writes:
 comparetup_index() compares two IndexTuples.  The structure
 IndexTupleData consists basically of not much more than an ItemPointer,
 and the patch is not much more than adding a comparison of two
 ItemPointers.  So how does the patch introduce a new low level
 implementation dependency?

Because it sorts on tuple position, which is certainly about as low
level as you can get.  More to the point, though, no evidence has been
provided that this is a good idea.

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: [PATCHES] [BUGS] PATCH: Uninitialized variable usage in contrib/pg_autovacuum

2003-12-01 Thread Bruce Momjian

Patch applied.  Thanks.

---


Craig Boston wrote:
 Sorry about the cross-post -- I'm not 100% sure which list this should be sent 
 to.
 
 I noticed in the 7.4 release that in contrib/pg_autovacuum, args-logfile is 
 not initialized if a log file is not specified on the command line.  This 
 causes an immediate segfault on systems that fill allocated memory with some 
 value other than zero (my FreeBSD machine uses 0xD0).
 
 Several crashes later I discovered that args-user, password, host, and port 
 are also used without being initialized.
 
 This doesn't appear to be fixed in CVS and I came up empty on a mailing list 
 search -- hope it hasn't been reported already.
 
 Attached is a quick patch that fixes the problem.
 
 --
 Craig

[ Attachment, skipping... ]

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

-- 
  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 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] [BUGS] PATCH: Uninitialized variable usage in contrib/pg_autovacuum

2003-12-01 Thread Bruce Momjian

Patch applied to 7.4.X too.

---

Craig Boston wrote:
 Sorry about the cross-post -- I'm not 100% sure which list this should be sent 
 to.
 
 I noticed in the 7.4 release that in contrib/pg_autovacuum, args-logfile is 
 not initialized if a log file is not specified on the command line.  This 
 causes an immediate segfault on systems that fill allocated memory with some 
 value other than zero (my FreeBSD machine uses 0xD0).
 
 Several crashes later I discovered that args-user, password, host, and port 
 are also used without being initialized.
 
 This doesn't appear to be fixed in CVS and I came up empty on a mailing list 
 search -- hope it hasn't been reported already.
 
 Attached is a quick patch that fixes the problem.
 
 --
 Craig

[ Attachment, skipping... ]

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

-- 
  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 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] [PATCH] Re: [pgsql-advocacy] Why READ ONLY

2003-12-01 Thread Neil Conway
Bruce Momjian [EMAIL PROTECTED] writes:
 I assume this patch is to control this way of breaking out of a
 read-only transaction:
 [...]
 This seems like a valuable feature, as others have mentioned.

Why is this feature valuable?

A read only user is still able to easily DOS the server, consume
arbitrary disk space[1], and prevent other users from accessing data
(using LOCK, for example). It has been a long-standing fact that
giving a user the ability to execute arbitrary SQL is a security hole;
if you plan to change that, ISTM that a lot more work is necessary.

-Neil

[1] Whether they are allowed to create temp tables or not: plenty of
other parts of the executor use temporary storage.


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


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Peter Eisentraut
Neil Conway writes:

 I'm really not sure we do: the SQL produced by pg_dump was totally
 non-portable before,

Significant effort has been invested to make pg_dump output portable, and
I've not had any problems with it last time I tried it.  Please explain
why you think it's totally non-portable.

-- 
Peter Eisentraut   [EMAIL PROTECTED]


---(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: [PATCHES] introduce default_use_oids

2003-12-01 Thread Christopher Kings-Lynne
Hum, sorry to be late, but wasn't one of the supposed strenghts of
pg_dump supposed to be that you could take a dump and load it on a
different RDBMS?  I haven't tried it so I don't know if it works, but
this patch takes out the ability to do that -- no one else will accept
WITH/WITHOUT OIDS, so the dump will have to be modified.  Is a switch
provided to stop the emission of those modifiers?
There are so many other incompatibilities in our dumps anyway!

Anyway, our first loyalty is to PostgreSQL...

If someone can't run a sed script to 's/WITH OIDS//g', then they're 
going to have a LOT of problems...

Chris



---(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: [PATCHES] YA Cygwin DLLIMPORT patch

2003-12-01 Thread Christopher Kings-Lynne
Did you commit to 7.4.1 too Bruce?

Chris

Bruce Momjian wrote:

Patch applied.  Thanks.

---

Jason Tishler wrote:

The attached patch enables contrib/cube to build cleanly under Cygwin
(again).  Please consider this patch for the 7.4.1 branch (if there will
be one) too.
Thanks,
Jason
--
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6


[ Attachment, skipping... ]


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]




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


Re: [PATCHES] introduce default_use_oids

2003-12-01 Thread Christopher Kings-Lynne
Significant effort has been invested to make pg_dump output portable, and
I've not had any problems with it last time I tried it.  Please explain
why you think it's totally non-portable.
Functions, indexes, operators, types, aggregates, users, groups, 
databases, inheritance, clustering, col stats, col storage, ...

What IS compatible?  Very basic table definitions?

Chris



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