Re: [HACKERS] COMMUTATOR doesn't seem to work

2012-06-23 Thread D'Arcy Cain

On 12-06-23 12:17 AM, Tom Lane wrote:

D'Arcy Cain da...@druid.net writes:

On 12-06-22 07:09 PM, Robert Haas wrote:

I think DirectionFunctionCall2 is what you want.



Can you elaborate?  I could not find a single hit in Google or the
documentation search on the PG site and it does not appear anywhere
in the source distribution.


He meant DirectFunctionCall2


Still nothing in the documentation.  At least the search box doesn't
find it.

--
D'Arcy J.M. Cain da...@druid.net |  Democracy is three wolves
http://www.druid.net/darcy/|  and a sheep voting on
+1 416 425 1212 (DoD#0082)(eNTP)   |  what's for dinner.
IM: da...@vex.net



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers



Re: [HACKERS] random failing builds on spoonbill - backends not exiting...

2012-06-23 Thread Stefan Kaltenbrunner
On 06/22/2012 11:53 PM, Tom Lane wrote:
 oh, and just for comparison's sake, what do the postmaster's signal
 masks look like?


#  ps -o pid,sig,sigcatch,sigignore,sigmask,command -p 18020

  PID  PENDING   CAUGHT  IGNORED  BLOCKED COMMAND
180200 74084007 8972b0000
/home/pgbuild/pgbuildfarm/HEAD/pgsql.5709/src/interfaces/ecpg/test/./t...


Stefan

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] random failing builds on spoonbill - backends not exiting...

2012-06-23 Thread Stefan Kaltenbrunner
On 06/22/2012 11:47 PM, Tom Lane wrote:
 Stefan Kaltenbrunner ste...@kaltenbrunner.cc writes:
 PID  PENDING   CAUGHT  IGNORED  BLOCKED COMMAND
 12480 20004004 34084005 c942b002 fffefeff postgres: writer process
 9841 20004004 34084007 c942b000 fffefeff postgres: wal writer process
 
 this seems to be SIGUSR1,SIGTERM and SIGQUIT
 
 OK, I looked up OpenBSD's signal numbers on the web.  It looks to me
 like these two processes have everything blocked except KILL and STOP
 (which are unblockable of course).  I do not see any place in the PG
 code that could possibly set such a mask (note that BlockSig should
 have more holes in it than that).  So I'm thinking these must be
 blocked inside some system function that's installed a restrictive
 signal mask, or some such function forgot to restore the mask on exit.
 Could you gdb each of these processes and get a stack trace?


background writer (12480):

(gdb) bt
#0  0x000208eb5928 in poll () from /usr/lib/libc.so.62.0
#1  0x00020a972b88 in _thread_kern_poll (wait_reqd=Variable
wait_reqd is not available.
) at /usr/src/lib/libpthread/uthread/uthread_kern.c:784
#2  0x00020a973d04 in _thread_kern_sched (scp=0x0) at
/usr/src/lib/libpthread/uthread/uthread_kern.c:384
#3  0x00020a96b35c in poll (fds=0xfffefa80, nfds=Variable
nfds is not available.
) at /usr/src/lib/libpthread/uthread/uthread_poll.c:94
#4  0x00395538 in WaitLatchOrSocket (latch=0x212bdc97c,
wakeEvents=25, sock=-1, timeout=1) at pg_latch.c:286
#5  0x00399800 in BackgroundWriterMain () at bgwriter.c:325
#6  0x00201850 in AuxiliaryProcessMain (argc=2,
argv=0xfffefd98) at bootstrap.c:419
#7  0x003a1534 in StartChildProcess (type=BgWriterProcess) at
postmaster.c:4518
#8  0x003a7574 in reaper (postgres_signal_arg=Variable
postgres_signal_arg is not available.
) at postmaster.c:2385
#9  0x00020a974528 in _dispatch_signal (sig=20,
scp=0x03e0) at /usr/src/lib/libpthread/uthread/uthread_sig.c:408
#10 0x00020a97462c in _dispatch_signals (scp=0x03e0) at
/usr/src/lib/libpthread/uthread/uthread_sig.c:437
#11 0x00020a974e28 in _thread_sig_handler (sig=20,
info=0x0420, scp=0x03e0) at
/usr/src/lib/libpthread/uthread/uthread_sig.c:139
#12 signal handler called
#13 _thread_kern_set_timeout (timeout=0x0630) at
/usr/src/lib/libpthread/uthread/uthread_kern.c:989
#14 0x00020a96bc8c in select (numfds=9, readfds=0x0730,
writefds=0x0, exceptfds=0x0, timeout=Variable timeout is not available.
) at /usr/src/lib/libpthread/uthread/uthread_select.c:85
#15 0x003a2894 in ServerLoop () at postmaster.c:1321
#16 0x003a45ac in PostmasterMain (argc=Variable argc is not
available.
) at postmaster.c:1121
#17 0x00326df8 in main (argc=6, argv=0x14f8) at
main.c:199


wal writer(9841):

#0  0x000208eb5928 in poll () from /usr/lib/libc.so.62.0
#1  0x00020a972b88 in _thread_kern_poll (wait_reqd=Variable
wait_reqd is not available.
) at /usr/src/lib/libpthread/uthread/uthread_kern.c:784
#2  0x00020a973d04 in _thread_kern_sched (scp=0x0) at
/usr/src/lib/libpthread/uthread/uthread_kern.c:384
#3  0x00020a96b35c in poll (fds=0xfffefa80, nfds=Variable
nfds is not available.
) at /usr/src/lib/libpthread/uthread/uthread_poll.c:94
#4  0x00395538 in WaitLatchOrSocket (latch=0x212bdc69c,
wakeEvents=25, sock=-1, timeout=5000) at pg_latch.c:286
#5  0x003aa794 in WalWriterMain () at walwriter.c:301
#6  0x00201878 in AuxiliaryProcessMain (argc=2,
argv=0xfffefd98) at bootstrap.c:430
#7  0x003a1534 in StartChildProcess (type=WalWriterProcess) at
postmaster.c:4518
#8  0x003a7564 in reaper (postgres_signal_arg=Variable
postgres_signal_arg is not available.
) at postmaster.c:2387
#9  0x00020a974528 in _dispatch_signal (sig=20,
scp=0x03e0) at /usr/src/lib/libpthread/uthread/uthread_sig.c:408
#10 0x00020a97462c in _dispatch_signals (scp=0x03e0) at
/usr/src/lib/libpthread/uthread/uthread_sig.c:437
#11 0x00020a974e28 in _thread_sig_handler (sig=20,
info=0x0420, scp=0x03e0) at
/usr/src/lib/libpthread/uthread/uthread_sig.c:139
#12 signal handler called
#13 _thread_kern_set_timeout (timeout=0x0630) at
/usr/src/lib/libpthread/uthread/uthread_kern.c:989
#14 0x00020a96bc8c in select (numfds=9, readfds=0x0730,
writefds=0x0, exceptfds=0x0, timeout=Variable timeout is not available.
) at /usr/src/lib/libpthread/uthread/uthread_select.c:85
#15 0x003a2894 in ServerLoop () at postmaster.c:1321
#16 0x003a45ac in PostmasterMain (argc=Variable argc is not
available.
) at postmaster.c:1121
#17 0x00326df8 in main (argc=6, argv=0x14f8) at
main.c:199




Stefan

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Re: [HACKERS] Allow WAL information to recover corrupted pg_controldata

2012-06-23 Thread Amit Kapila


-Original Message-
From: Robert Haas [mailto:robertmh...@gmail.com] 
Sent: Friday, June 22, 2012 8:59 PM
To: Amit Kapila
Cc: Tom Lane; Alvaro Herrera; Cédric Villemain; Pg Hackers
Subject: Re: [HACKERS] Allow WAL information to recover corrupted
pg_controldata

On Fri, Jun 22, 2012 at 5:25 AM, Amit Kapila amit.kap...@huawei.com wrote:
 Based on the discussion and suggestions in this mail chain, following
features can be implemented:

 1. To compute the value of max LSN in data pages based on user input
whether he wants it for an individual file,
   a particular directory or whole database.

 2a. To search the available WAL files for the latest checkpoint record
and prints the value.
 2b. To search the available WAL files for the latest checkpoint record
and recreates a pg_control file pointing at that checkpoint.

 I have kept both options to address different kind of corruption
scenarios.

 I think I can see all of those things being potentially useful.  

I shall start working on design and usage(how to provide these options to
users) of the features and present it once I am done.

 There are a couple of pending patches that will revise the WAL format
 slightly; not sure how much those are likely to interfere with any
 development you might do on (2) in the meantime.
Thanks.
I shall look into the patches (WAL Format change by Heikki and any other for
Logical Replication) to see which changes can effect the
implementation/design.


With Regards,
Amit Kapila.


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] initdb and fsync

2012-06-23 Thread Jeff Davis
On Fri, 2012-06-22 at 10:04 -0400, Robert Haas wrote:
 This may be a stupid question, by why is it initdb's job to fsync the
 files the server creates, rather than the server's job?  Normally we
 rely on the server to make its own writes persistent.

That was my first reaction as well:

http://archives.postgresql.org/message-id/1328468000.15224.32.camel@jdavis

However, from the discussion it seems like it will be harder to do it
that way (during normal operation, a checkpoint is what syncs the files;
but as Tom points out, bootstrap mode does not). Also, I would expect
the fsyncs to be in a less-controlled pattern, so it might perform more
poorly.

Regards,
Jeff Davis


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] COMMUTATOR doesn't seem to work

2012-06-23 Thread Dickson S. Guedes
2012/6/23 D'Arcy Cain da...@druid.net:
 On 12-06-23 12:17 AM, Tom Lane wrote:

 D'Arcy Cain da...@druid.net writes:

 On 12-06-22 07:09 PM, Robert Haas wrote:

 I think DirectionFunctionCall2 is what you want.


 Can you elaborate?  I could not find a single hit in Google or the
 documentation search on the PG site and it does not appear anywhere
 in the source distribution.


 He meant DirectFunctionCall2


 Still nothing in the documentation.  At least the search box doesn't
 find it.

Try in the search box of postgres doxygen documentation [1]..


[1] http://doxygen.postgresql.org/

[]s
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://guedesoft.net - http://www.postgresql.org.br

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] COMMUTATOR doesn't seem to work

2012-06-23 Thread D'Arcy Cain

On 12-06-23 08:21 AM, Dickson S. Guedes wrote:

Still nothing in the documentation.  At least the search box doesn't
find it.


Try in the search box of postgres doxygen documentation [1]..


That's source, not documentation.  I already found it in the actual
source files but that's not the same thing.  For one thing, if it
isn't documented then it may not be meant to be exposed to the API.
For another, without documentation we can't tell what is guaranteed
to work and what is an implementation detail.

I know that I can fiddle about and try stuff until it works but I
don't work for Microsoft.

--
D'Arcy J.M. Cain da...@druid.net |  Democracy is three wolves
http://www.druid.net/darcy/|  and a sheep voting on
+1 416 425 1212 (DoD#0082)(eNTP)   |  what's for dinner.
IM: da...@vex.net



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] COMMUTATOR doesn't seem to work

2012-06-23 Thread Tom Lane
D'Arcy Cain da...@druid.net writes:
 On 12-06-23 08:21 AM, Dickson S. Guedes wrote:
 Try in the search box of postgres doxygen documentation [1]..

 That's source, not documentation.  I already found it in the actual
 source files but that's not the same thing.  For one thing, if it
 isn't documented then it may not be meant to be exposed to the API.
 For another, without documentation we can't tell what is guaranteed
 to work and what is an implementation detail.

By and large, most of what you need to know to write C code for PG
is not in the SGML documentation.  I haven't seen any volunteers
stepping up to write another thousand or two pages of formal docs,
so that's how it's going to be for the foreseeable future.  You need
to be prepared to read the source code and especially to look at
existing examples such as the contrib modules.

As far as the not guaranteed to work angle is concerned, it's true,
we could decide to change that.  It's not very likely though: we do
try to avoid breaking things that we expect are in use by third-party
code, and anything that is in use by half a dozen contrib modules
certainly qualifies.  If you're thinking of doing something that you
don't see lots of precedents for in contrib or the core datatypes,
it would be reasonable to ask about it on -hackers first.

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Resource Owner reassign Locks

2012-06-23 Thread Jeff Janes
On Thu, Jun 21, 2012 at 5:32 AM, Heikki Linnakangas
heikki.linnakan...@enterprisedb.com wrote:
 On 18.06.2012 13:59, Heikki Linnakangas wrote:

 On 10.06.2012 23:39, Jeff Janes wrote:
 I found the interface between resowner.c and lock.c a bit confusing.
 resowner.c would sometimes call LockReassignCurrentOwner() to reassign
 all the locks, and sometimes it would call LockReassignCurrentOwner() on
 each individual lock, with the net effect that's the same as calling
 LockReleaseCurrentOwner(). And it doesn't seem right for
 ResourceOwnerRemember/ForgetLock to have to accept a NULL owner.

 I rearranged that so that there's just a single
 LockReassignCurrentOwner() function, like before this patch. But it
 takes as an optional argument a list of locks held by the current
 resource owner. If the caller knows it, it can pass them to make the
 call faster, but if it doesn't it can just pass NULL and the function
 will traverse the hash table the old-fashioned way. I think that's a
 better API.

Thank you, that does look much cleaner.


 Please take a look to see if I broke something.


 I hear no complaints, so committed. Thanks!


Thanks.

Just for the record, I'd previously promised some long running
performance tests with my proposed -P option for pgbench, which are
now done and showed a 0.2% degradation with my patch.  With enough
data collected, that difference is statistically significant, but
probably not practically significant.  It was with my original
version, but I can't imagine your version being different in
performance.  Also, this test is very pessimistic.  Since the primary
key look-up in the pl/pgSQL look up runs in a portal each time, it
pushes the locks to the parent each time.  If the lookup was instead
running as the inner side of a nested loop, it would not do the
reassign on each loop.

Cheers,

Jeff

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] initdb and fsync

2012-06-23 Thread Peter Eisentraut
On mån, 2012-06-18 at 20:57 +0200, Andres Freund wrote:
 I don't think the difference in initdb cost is relevant when running
 the regression tests. Should it prove to be we can re-add -N after a
 week or two in the buildfarm machines.

Keep in mind that the regression tests are not only run on the
buildfarm, and that pg_regress is not only used for the main regression
tests.  When you're dealing with things in contrib or src/pl or external
modules, then adding 3 seconds to a 5 second test is not so nice.

  I just remember that there were several OS specific regression when
 adding the pre-syncing for createdb.

Sure, it would be useful to test this, but then we should also turn on
fsync in the backend.  Make it a separate slow mode (or a separate fast
mode).


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] CREATE FOREGIN TABLE LACUNA

2012-06-23 Thread Dean Rasheed
On 23 March 2012 18:38, David Fetter da...@fetter.org wrote:
 On Thu, Mar 15, 2012 at 11:23:43AM -0300, Alvaro Herrera wrote:
 Excerpts from David Fetter's message of jue mar 15 02:28:28 -0300 2012:
  On Wed, Mar 14, 2012 at 12:06:20PM -0400, Robert Haas wrote:
   On Wed, Mar 14, 2012 at 10:22 AM, David Fetter da...@fetter.org wrote:
I think that instead of inventing new grammar productions and a new
node type for this, you should just reuse the existing productions for
LIKE clauses and then reject invalid options during parse analysis.
   
OK.  Should I first merge CREATE FOREIGN TABLE with CREATE TABLE and
submit that as a separate patch?
  
   I don't see any reason to do that.  I merely meant that you could
   reuse TableLikeClause or maybe even TableElement in the grammer for
   CreateForeignTableStmt.
 
  Next WIP patch attached implementing this via reusing TableLikeClause
  and refactoring transformTableLikeClause().
 
  What say?

 Looks much better to me, but the use of strcmp() doesn't look good.
 ISTM that stmtType is mostly used for error messages.  I think you
 should add some kind of identifier (such as the original parser Node)
 into the CreateStmtContext so that you can do a IsA() test instead -- a
 bit more invasive as a patch, but much cleaner.

 Also the error messages need more work.

 How about this one?


I spotted a couple of other issues during testing:

* You're still allowing INCLUDING DEFAULTS and INCLUDING STORAGE, even
though these options are not supported on foreign tables.

* If I do INCLUDING ALL, I get an error because of the unsupported
options. I think that ALL in this context needs to be made to mean
all the options that foreign tables support (just COMMENTS at the
moment).

Regards,
Dean

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] new --maintenance-db options

2012-06-23 Thread Peter Eisentraut
About the new --maintenance-db options:

Why was this option not added to createuser and dropuser?  In the
original discussion[0] they were mentioned, but it apparently never made
it into the code.

I find the name to be unfortunate.  For example, I think of running
vacuum as maintenance.  So running vacuumdb --maintenance-db=X would
imply that the vacuum maintenance is done on X.  In fact, the whole
point of this option is to find out where the maintenance is to be run,
not to run the maintenance.  Maybe something like --initial-db would be
better?

What is the purpose of these options?  The initial discussion was
unclear on this.  The documentation contains no explanation of why they
should be used.  If we want to really support the case where both
postgres and template1 are removed, an environment variable might be
more useful than requiring this to be typed out for every command.


[0]: 
http://archives.postgresql.org/message-id/ca+tgmoacjwsis9nnqjgaaml1vg6c8b6o1ndgqnuca2gm00d...@mail.gmail.com


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] foreign key locks

2012-06-23 Thread Kevin Grittner
Alvaro Herrera  wrote:
 
 So here's the rebased version.
 
I found a couple problems on `make check-world`.  Attached is a patch
to fix one of them.  The other is on pg_upgrade, pasted below.
 
+ pg_upgrade -d
/home/kevin/pg/master/contrib/pg_upgrade/tmp_check/data.old -D
/home/kevin/pg/master/contrib/pg_upgrade/tmp_check/data -b
/home/kevin/pg/master/contrib/pg_upgrade/tmp_check/install//home/
kevin/pg/master/Debug/bin -B
/home/kevin/pg/master/contrib/pg_upgrade/tmp_check/install//home/
kevin/pg/master/Debug/bin
Performing Consistency Checks
-
Checking current, bin, and data directories ok
Checking cluster versions   ok
Checking database user is a superuser   ok
Checking for prepared transactions  ok
Checking for reg* system OID user data typesok
Checking for contrib/isn with bigint-passing mismatch   ok
Creating catalog dump   ok
Checking for presence of required libraries ok
Checking database user is a superuser   ok
Checking for prepared transactions  ok

If pg_upgrade fails after this point, you must re-initdb the
new cluster before continuing.

Performing Upgrade
--
Analyzing all rows in the new cluster   ok
Freezing all rows on the new clusterok
Deleting files from new pg_clog ok
Copying old pg_clog to new server   ok
Setting next transaction ID for new cluster ok
Deleting files from new pg_multixact/offsetsok
Copying old pg_multixact/offsets to new server  ok
Deleting files from new pg_multixact/membersok
Copying old pg_multixact/members to new server  ok
Setting next multixact ID and offset for new clustersh:
/home/kevin/pg/master/contrib/pg_upgrade/tmp_check/install//home/
kevin/pg/master/Debug/bin: Permission denied
*failure*

Consult the last few lines of %s/pg_resetxlog -O %u -m %u,%u %s
 /dev/null for the probable cause of the failure.
Failure, exiting
make[2]: *** [check] Error 1
make[2]: Leaving directory `/home/kevin/pg/master/contrib/pg_upgrade'
make[1]: *** [check-pg_upgrade-recurse] Error 2
make[1]: Leaving directory `/home/kevin/pg/master/contrib'
make: *** [check-world-contrib-recurse] Error 2
 
I'm marking it as Waiting for Author since this seems like a must
fix, but I'll keep looking at it,
 
-Kevin




fklocks-13a.diff
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] new --maintenance-db options

2012-06-23 Thread Dave Page
On Saturday, June 23, 2012, Peter Eisentraut wrote:

 About the new --maintenance-db options:

 Why was this option not added to createuser and dropuser?  In the
 original discussion[0] they were mentioned, but it apparently never made
 it into the code.

 I find the name to be unfortunate.  For example, I think of running
 vacuum as maintenance.  So running vacuumdb --maintenance-db=X would
 imply that the vacuum maintenance is done on X.  In fact, the whole
 point of this option is to find out where the maintenance is to be run,
 not to run the maintenance.  Maybe something like --initial-db would be
 better?


I'm not saying it's the best name, but I suspect the origin is pgAdmin
which has used 'Maintenance DB' for 10+ years. There's likely a certain
amount of familiarity with the term amonst pgAdmin users.


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: [HACKERS] pg_dump and dependencies and --section ... it's a mess

2012-06-23 Thread Andrew Dunstan



On 06/22/2012 04:43 PM, Tom Lane wrote:

Anyway, the attached patch does seem to fix the constraint bug.



Looks sane to me.




A possible objection to it is that there are now three different ways in
which the pg_dump code knows which DO_XXX object types go in which dump
section: the new addBoundaryDependencies() function knows this, the
SECTION_xxx arguments to ArchiveEntry calls know it, and the sort
ordering constants in pg_dump_sort.c have to agree too.  My original
idea was to add an explicit section field to DumpableObject to reduce
the number of places that know this, but that would increase pg_dump's
memory consumption still more, and yet still not give us a single point
of knowledge.  Has anybody got a better idea?



Not off hand.


cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] CREATE FOREGIN TABLE LACUNA

2012-06-23 Thread Alvaro Herrera

Excerpts from Dean Rasheed's message of sáb jun 23 18:08:31 -0400 2012:

 I spotted a couple of other issues during testing:

David, when you generate a new version of the patch, please also make
sure to use RELKIND_RELATION and RELKIND_FOREIGN instead of 'r' and 'f'.

 * You're still allowing INCLUDING DEFAULTS and INCLUDING STORAGE, even
 though these options are not supported on foreign tables.

Maybe the code should list options allowed instead of the ones
disallowed.

 * If I do INCLUDING ALL, I get an error because of the unsupported
 options. I think that ALL in this context needs to be made to mean
 all the options that foreign tables support (just COMMENTS at the
 moment).

I agree.

-- 
Álvaro Herrera alvhe...@commandprompt.com
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers