> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+From pgsql-hackers-owner+M17793=candle.pha.pa.us=pgman@postgresql.org Fri Jan 18 19:40:47 2002
+Return-path: <pgsql-hackers-owner+M17793=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0J0elU09208
+ for <pgman@candle.pha.pa.us>; Fri, 18 Jan 2002 19:40:47 -0500 (EST)
+Received: (qmail 94886 invoked by alias); 19 Jan 2002 00:40:45 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 19 Jan 2002 00:40:45 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0J0TfV92793
+ for <pgsql-hackers@postgreSQL.org>; Fri, 18 Jan 2002 19:29:41 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0J0Th311096
+ for <pgsql-hackers@postgreSQL.org>; Fri, 18 Jan 2002 19:29:44 -0500 (EST)
+To: pgsql-hackers@postgresql.org
+Subject: [HACKERS] Schemas vs. PostQUEL: resolving qualified identifiers
+Date: Fri, 18 Jan 2002 19:29:43 -0500
+Message-ID: <11093.1011400183@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+I'm starting to think about how to do SQL-compatible schemas in Postgres.
+
+One of the first issues that comes up is that Postgres has interpretations
+of qualified (dotted) names that conflict with what the standard says to
+do. This stuff is a hangover from Berkeley days and PostQUEL. Briefly,
+since there are no schemas in PG, anytime we have a dotted name we know
+that the first component *must* be a table name. Successive components are
+then resolved as either column or function names applied to whatever we
+have so far. For example,
+
+ a.b.c is equivalent to c(a.b) if c is a function
+
+The equivalence works the other way too: you can write colname(tabname)
+and it will be taken as tabname.colname (though this seems to work only
+if tabname already has a rangetable entry).
+
+This is not going to fly together with SQL92, which wants a.b.c to mean
+schema a, table b, column c.
+
+I believe we can resolve the conflict without breaking any cases that
+are likely to be used much in practice. Here's my proposal:
+
+First, I'd like to allow the notation "table.*" to be used as a function
+argument, representing passing a whole-row value to a function (the
+function's argument would be declared as the table rowtype). Presently
+this is done by writing just the undecorated table name, but that is
+ambiguous if the same name is also used as a column name in the query.
+Also, we need this notation for use with qualified table names.
+
+Having done that, we can resolve names appearing in expressions thus:
+
+foo First try to resolve as unqualified column name;
+ if not found, try to resolve as unqualified table name
+ (in which case this is a whole-row value, equivalent
+ to foo.*).
+
+foo.bar foo is an unqualified table name. Try first to resolve
+ bar as a column name of foo; if not found, try to resolve
+ bar as a function taking the rowtype of foo.
+
+foo.bar.baz This refers to table bar in schema foo. baz is either
+ a column or function name, as above.
+
+foo.bar.baz.quux Refers to table baz in schema bar in catalog foo.
+ quux is either a column or function name, as above.
+
+foo.* foo is an unqualified table name; means whole-row value.
+
+foo.bar.* Whole row of table bar in schema foo.
+
+foo.bar.baz.* Whole row of table baz in schema bar in catalog foo.
+
+The first two of these rules are the same as current behavior; the next
+two are additions mandated by SQL92; the last three are a proposed
+extension to allow unambiguous reference to whole-row values.
+
+With these rules, we do not lose any functionality that we have now,
+but some PostQUEL-ish constructs will need to be rewritten into an
+equivalent form.
+
+PostQUEL-isms that still work:
+
+table.func equivalent to func(table.*)
+
+func(table) equivalent to func(table.*), as long as table name
+ doesn't match any column name of the query
+
+PostQUEL-isms that no longer work:
+
+table.col.func Must rewrite as func(table.col)
+
+table.func1.func2 Must rewrite as, eg, func2(func1(table.*))
+
+While there are a couple of examples of the above two constructs in the
+regression tests, I doubt they are used much in the real world.
+
+Another PostQUEL-ism that I would like to remove is col(tab) to mean
+tab.col; I'd prefer to restrict the function syntax to functions only.
+We could continue to support this for unqualified table names, but
+given the above rules it could not work for a qualified table name,
+eg, col(schema.tab) would be misinterpreted. Again, it seems unlikely
+that many people are using this, so we may as well try to regularize
+the syntax as much as we can.
+
+You may wonder why I'm still allowing the construction tab.func ---
+why not get rid of that too? Well, mainly because I'd like to support
+the Oracle-ish syntax for nextval: seqname.nextval. Together with the
+desire not to break existing code unnecessarily, that seems a good enough
+reason to leave it in.
+
+Comments?
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18054=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 14:15:06 2002
+Return-path: <pgsql-hackers-owner+M18054=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NJF5U00389
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 14:15:05 -0500 (EST)
+Received: (qmail 74462 invoked by alias); 23 Jan 2002 19:13:45 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 19:13:45 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NJ0Fl67761
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 14:00:15 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NJ00f04506;
+ Wed, 23 Jan 2002 14:00:01 -0500 (EST)
+To: Fernando Nasser <fnasser@redhat.com>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] Schemas vs. PostQUEL: resolving qualified identifiers
+In-Reply-To: <3C4EFD15.882B0785@redhat.com>
+References: <46C15C39FEB2C44BA555E356FBCD6FA42128D9@m0114.s-mxs.net> <2521.1011798379@sss.pgh.pa.us> <3C4EFD15.882B0785@redhat.com>
+Comments: In-reply-to Fernando Nasser <fnasser@redhat.com>
+ message dated "Wed, 23 Jan 2002 13:12:37 -0500"
+Date: Wed, 23 Jan 2002 14:00:00 -0500
+Message-ID: <4503.1011812400@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Fernando Nasser <fnasser@redhat.com> writes:
+> Tom Lane wrote:
+>> Okay, but then how will you refer unambiguously to the rowtype object?
+
+> What about casting with the keyord ROW?
+> func(ROW table)
+> always refers to the row-type of table "table" even if there is
+> a column called "table".
+
+Strikes me as gratuituously different from the way everything else is
+done. We have .* and %ROWTYPE and so forth, and they're all suffixes.
+The closest analogy to your ROW syntax is CAST, but it doesn't alter the
+initial interpretation of its argument.
+
+I was toying with the notion of inventing some new notation like
+ table.**
+I don't like double-asterisk much, but maybe there's some other symbol
+we could use here?
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18069=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 17:13:24 2002
+Return-path: <pgsql-hackers-owner+M18069=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NMDOU16966
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 17:13:24 -0500 (EST)
+Received: (qmail 49292 invoked by alias); 23 Jan 2002 22:13:23 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 22:13:23 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NLvFl45904
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 16:57:15 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (totem.toronto.redhat.com [172.16.14.242])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA18180;
+ Wed, 23 Jan 2002 13:57:09 -0800 (PST)
+Message-ID: <3C4F31B4.C7C9B2D6@redhat.com>
+Date: Wed, 23 Jan 2002 16:57:08 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat , Inc. - Toronto
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.7-10smp i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] Schemas vs. PostQUEL: resolving qualified identifiers
+References: <46C15C39FEB2C44BA555E356FBCD6FA42128D9@m0114.s-mxs.net> <2521.1011798379@sss.pgh.pa.us> <3C4EFD15.882B0785@redhat.com> <4503.1011812400@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Fernando Nasser <fnasser@redhat.com> writes:
+> > Tom Lane wrote:
+> >> Okay, but then how will you refer unambiguously to the rowtype object?
+>
+> > What about casting with the keyord ROW?
+> > func(ROW table)
+> > always refers to the row-type of table "table" even if there is
+> > a column called "table".
+>
+> Strikes me as gratuituously different from the way everything else is
+> done. We have .* and %ROWTYPE and so forth, and they're all suffixes.
+> The closest analogy to your ROW syntax is CAST, but it doesn't alter the
+> initial interpretation of its argument.
+>
+
+I didn't mean literally that way, I just wanted to add a keyword for
+solving ambiguity (when there is one).
+
+You are right, it should be:
+
+func(table%ROWTYPE)
+
+
+
+
+--
+Fernando Nasser
+Red Hat - Toronto E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M17920=candle.pha.pa.us=pgman@postgresql.org Mon Jan 21 16:45:17 2002
+Return-path: <pgsql-hackers-owner+M17920=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0LLjHU16235
+ for <pgman@candle.pha.pa.us>; Mon, 21 Jan 2002 16:45:17 -0500 (EST)
+Received: (qmail 38745 invoked by alias); 21 Jan 2002 21:43:19 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 21 Jan 2002 21:43:19 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0LLTql30573
+ for <pgsql-hackers@postgreSQL.org>; Mon, 21 Jan 2002 16:29:53 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0LLTrf11384
+ for <pgsql-hackers@postgreSQL.org>; Mon, 21 Jan 2002 16:29:53 -0500 (EST)
+To: pgsql-hackers@postgresql.org
+Subject: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Mon, 21 Jan 2002 16:29:52 -0500
+Message-ID: <11381.1011648592@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Continuing to think about implementing SQL schemas for 7.3 ...
+
+Today's topic for discussion: which types of Postgres objects should
+belong to schemas, and which ones should have other name scopes?
+
+Relations (tables, indexes, views, sequences) clearly belong to schemas.
+Since each relation has an associated datatype with the same name, it
+seems that datatypes must belong to schemas as well. (Even if that
+argument doesn't convince you, SQL99 says that user-defined datatypes
+belong to schemas.) However the situation is murkier for other kinds of
+objects.
+
+Here are all the kinds of named objects that exist in Postgres today,
+with some comments on whether they should belong to schemas or not:
+
+relations Must be in schemas
+types Must be in schemas
+databases Databases contain schemas, not vice versa
+users Users are cross-database, so not in schemas
+groups User groups are cross-database, so not in schemas
+languages Probably should not be in schemas
+access methods Probably should not be in schemas
+opclasses See below
+operators See below
+functions/procedures See below
+aggregates Should treat same as regular functions
+constraints See below
+rules See below
+triggers See below
+NOTIFY conditions See below
+
+Languages and access methods are not trivial to add to the system, so
+there's not much risk of name conflicts, and no reason to make their name
+scope less than global.
+
+The situation is a lot murkier for operators and functions. These should
+probably be treated alike, since operators are just syntactic sugar for
+functions. I think the basic argument for making them schema-local is
+that different users might conceivably want to define conflicting
+functions or operators of the same name. Against that, however, there
+are a number of reasons for wanting to keep these objects database-wide.
+First off there are syntactic problems. Do you really want to write
+ A schemaname.+ B
+to qualify an ambiguous "+" operator? Looks way too much like a syntax
+error to me. Allowing this would probably turn a lot of simple syntax
+errors into things that get past the grammar and end up producing truly
+confusing error messages. Qualified function names also pose some
+problems, not so much with
+ schemaname.function(args)
+which seems reasonable, but with the Berkeley-derived syntax that allows
+"foo.function" to mean "function(foo)" --- there's no way to squeeze a
+schema-name for the function into that. (And you'll recall from my note
+of the other day that we don't want to abandon this syntax entirely,
+because people would like us to support "sequencename.nextval" for Oracle
+compatibility.) Notice that we are not forced to make functions/operators
+schema-local just because datatypes are, because overloading will save the
+day. func(schema1.type1) and func(schema2.type1) are distinct functions
+because the types are different, even if they live in the same function
+namespace. Finally, SQL99 doesn't appear to think that operator and
+function names are schema-local; though that may just be because it hasn't
+got user-defined operators AFAICT.
+
+I am leaning towards keeping functions/operators database-wide, but would
+like to hear comments. Is there any real value in, eg, allowing different
+users to define different "+" operators *on the same datatypes*?
+
+Not sure about index opclasses. Given that datatype names are
+schema-local, one can think of scenarios where two users define similar
+datatypes and then try to use the same index opclass name for both.
+But it seems pretty unlikely. I'd prefer to leave opclass names
+database-wide for simplicity. Comments?
+
+As for constraints, currently we only support table-level constraints,
+and we do not enforce any uniqueness at all on their names; multiple
+constraints for the same table can have the same name (and if so, ALTER
+TABLE DROP CONSTRAINT drops all matching names). SQL92 requires named
+constraints to have names that are unique within their schema, which is
+okay for standalone assertions (which we haven't got) but seems quite
+unnecessary for constraints attached to tables. And what's really odd,
+it appears to allow a table constraint to belong to a different schema
+than the table it is on! This is pretty bogus. I'd prefer to ignore the
+part of the spec that says that table constraint names can be qualified
+names, and either keep our existing behavior or require constraint names
+to be unique per-table. Thoughts?
+
+Rewrite rules are currently required to have a name unique within their
+database. We clearly don't want that to still be true in the schema
+environment. Personally I would like to make rules' names unique only
+among rules on the same table (like we handle triggers). That would
+mean an incompatible change in the syntax of DROP RULE: it'd have to
+become DROP RULE rule ON table, much like DROP TRIGGER. Is that okay?
+If not, probably we must make rulenames local to schemas and say they
+implicitly belong to the schema of the associated table.
+
+Triggers are already handled as being named uniquely among the triggers
+of the same table. This behavior is fine with me, and doesn't need to
+be changed for schema support.
+
+I can see some advantage to considering NOTIFY condition names to be local
+to a schema, but I can also see risks of breaking existing applications.
+Currently, "NOTIFY foo" will signal to "LISTEN foo" even if the two
+processes belong to different users. With an implicit schema qualifier
+attached to foo, very likely this would fail to work. Since NOTIFY names
+aren't officially registered anywhere, the implicit qualifier would have
+to correspond to the front schema of one's schema search path, and there'd
+be no way for such processes to communicate if their search paths didn't
+match. I think people would end up always qualifying NOTIFY names with
+a single schema name, which means we might as well continue to consider
+them global. On the other hand, if you assume that NOTIFY names are often
+the names of tables, it'd make sense to allow them to be qualified. Any
+thoughts on this?
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M17929=candle.pha.pa.us=pgman@postgresql.org Mon Jan 21 19:13:39 2002
+Return-path: <pgsql-hackers-owner+M17929=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0M0DcU03335
+ for <pgman@candle.pha.pa.us>; Mon, 21 Jan 2002 19:13:38 -0500 (EST)
+Received: (qmail 78739 invoked by alias); 22 Jan 2002 00:12:48 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 00:12:48 -0000
+Received: from corvette.mascari.com (dhcp065-024-158-068.columbus.rr.com [65.24.158.68])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0LNo9l76502
+ for <pgsql-hackers@postgresql.org>; Mon, 21 Jan 2002 18:50:09 -0500 (EST)
+ (envelope-from mascarm@mascari.com)
+Received: from mascari.com (ferrari.mascari.com [192.168.2.1])
+ by corvette.mascari.com (8.9.3/8.9.3) with ESMTP id SAA26029
+ for <pgsql-hackers@postgresql.org>; Mon, 21 Jan 2002 18:45:34 -0500
+Message-ID: <3C4CA81E.4D1D7BD9@mascari.com>
+Date: Mon, 21 Jan 2002 18:45:34 -0500
+From: Mike Mascari <mascarm@mascari.com>
+X-Mailer: Mozilla 4.7 [en] (WinNT; I)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <11381.1011648592@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Continuing to think about implementing SQL schemas for 7.3 ...
+>
+> Today's topic for discussion: which types of Postgres objects should
+> belong to schemas, and which ones should have other name scopes?
+...
+>
+> I am leaning towards keeping functions/operators database-wide, but would
+> like to hear comments. Is there any real value in, eg, allowing different
+> users to define different "+" operators *on the same datatypes*?
+
+With regard to functions, I believe they should be schema specific.
+Oracle allows the creation of procedures/functions in specific schema.
+User2 may then execute user1's function as:
+
+EXECUTE user1.myfunction();
+
+However, as you suggest, the fully qualified naming of functions gets
+messy. So Oracle allows (and I think we would need) PUBLIC SYNONYMs.
+This allows user1 to do:
+
+CREATE TABLE employees(key integer, name VARCHAR(20));
+
+CREATE SEQUENCE s;
+
+CREATE PROCEDURE newemployee(n IN VARCHAR)
+AS
+BEGIN
+INSERT INTO employees
+SELECT s.nextval, n
+FROM DUAL;
+END;
+/
+
+GRANT INSERT ON employees TO user2;
+GRANT EXECUTE ON newemployee TO user2;
+CREATE PUBLIC SYNONYM newemployee FOR user1.newemployee;
+
+Now, user2 just does:
+
+EXECUTE newemployee(10);
+
+
+In fact, with regard to the package discussion a while back, Oracle
+allows this:
+
+Database->Schema->Package->Procedure
+
+and this:
+
+Database->Schema->Procedure
+
+and effectively this:
+
+Database->Procedure via Database->PUBLIC Schema->Procedure
+
+I really think that the main purpose of schemas is to prevent an
+ill-informed or malicious user from engaging in unacceptable behavior.
+By placing everything in schemas, it allows the Oracle DBA to have a
+very fine-grained control over the ability of user1 to interfere with
+user2. Before user1 above could pollute the global namespace, the dba
+must have:
+
+GRANT user1 CREATE PUBLIC SYNONYM
+
+privilege, or created the synonym himself. This allows things like
+pg_class to reside within their own schema, as well as all built-in
+PostgreSQL functions. After the bootstrapping, PUBLIC SYNONYMs are
+created for all of the system objects which should have global scope:
+
+CREATE PUBLIC SYNONYM pg_class FOR system.pg_class;
+CREATE PUBLIC SYNONYM abs(int) FOR system.abs(int);
+
+One major benefit of Oracle is that the DBA, through the use of
+STATEMENT privileges (i.e. GRANT CREATE TABLE to user1), resource
+PROFILEs, and TABLESPACES can easily admin a database used by 20
+different deparments and 1000 different users without the fear that one
+might step on the other's toes. If the accounting department wants to
+create an addtax() function, it shouldn't have to ask the receiving
+deptartment to do so.
+
+Just my thoughts,
+
+Mike Mascari
+mascarm@mascari.com
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M17928=candle.pha.pa.us=pgman@postgresql.org Mon Jan 21 19:13:39 2002
+Return-path: <pgsql-hackers-owner+M17928=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0M0DcU03336
+ for <pgman@candle.pha.pa.us>; Mon, 21 Jan 2002 19:13:38 -0500 (EST)
+Received: (qmail 78777 invoked by alias); 22 Jan 2002 00:12:50 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 00:12:50 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0LNxBl77018
+ for <pgsql-hackers@postgreSQL.org>; Mon, 21 Jan 2002 18:59:12 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.18] [148.61.250.18] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Mon, 21 Jan 2002 18:59:14 -0500 (EDT)
+Date: Mon, 21 Jan 2002 19:01:13 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <11381.1011648592@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane writes:
+
+> languages Probably should not be in schemas
+> access methods Probably should not be in schemas
+> opclasses See below
+> operators See below
+> functions/procedures See below
+> aggregates Should treat same as regular functions
+> constraints See below
+> rules See below
+> triggers See below
+> NOTIFY conditions See below
+
+Remember that a schema is a named representation of ownership, so anything
+that can be owned must be in a schema. (Unless you want to invent a
+parallel universe for a different kind of ownership, which would be
+incredibly confusing.) Also remember that we wanted to use schemas as a
+way to prevent unprivileged users from creating anything by default. So
+it would be much simpler if "everything" were in a schema.
+
+I wouldn't worry so much about the invocation syntax -- if you don't like
+ugly don't make ugly. For instance, if you add a user-defined operator
+you would probably either put it in the same schema with the rest of your
+project or put it in some sort of a global or default schema (to be
+determined) to make it available to the whole system, my assumption being
+that either way you don't need to qualify the operator. But the important
+thing is that you *could* make cross-schema operator calls, say during
+development or testing.
+
+Consequentially, I opine that all of the things listed above should be in
+a schema. (Although I don't have a strong opinion about notifications,
+yet.)
+
+> namespace. Finally, SQL99 doesn't appear to think that operator and
+> function names are schema-local; though that may just be because it hasn't
+> got user-defined operators AFAICT.
+
+Check clause 10.4 <routine invocation>: routine names are (optionally)
+schema qualified like everything else.
+
+> Rewrite rules are currently required to have a name unique within their
+> database. We clearly don't want that to still be true in the schema
+> environment. Personally I would like to make rules' names unique only
+> among rules on the same table (like we handle triggers). That would
+> mean an incompatible change in the syntax of DROP RULE: it'd have to
+> become DROP RULE rule ON table, much like DROP TRIGGER. Is that okay?
+> If not, probably we must make rulenames local to schemas and say they
+> implicitly belong to the schema of the associated table.
+
+I'd rather make the opposite change (make trigger names schema-global)
+because that aligns with SQL99 and it would make more sense for overall
+consistency (e.g., you can't have indexes with the same names on different
+tables). The syntax change would also be backward compatible. I think
+either way, schema-global or table-global namespace, can be argued to be
+more useful or more confusion-prone, so I side with the standard on this
+one.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M17932=candle.pha.pa.us=pgman@postgresql.org Mon Jan 21 20:14:13 2002
+Return-path: <pgsql-hackers-owner+M17932=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0M1ECU11565
+ for <pgman@candle.pha.pa.us>; Mon, 21 Jan 2002 20:14:12 -0500 (EST)
+Received: (qmail 88800 invoked by alias); 22 Jan 2002 01:14:11 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 01:14:11 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0M16kl87933
+ for <pgsql-hackers@postgreSQL.org>; Mon, 21 Jan 2002 20:06:47 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0M16Uf12242;
+ Mon, 21 Jan 2002 20:06:30 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain>
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+ message dated "Mon, 21 Jan 2002 19:01:13 -0500"
+Date: Mon, 21 Jan 2002 20:06:30 -0500
+Message-ID: <12239.1011661590@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> Remember that a schema is a named representation of ownership, so anything
+> that can be owned must be in a schema. (Unless you want to invent a
+> parallel universe for a different kind of ownership, which would be
+> incredibly confusing.)
+
+I don't buy that premise. It's true that SQL92 equates ownership of a
+schema with ownership of the objects therein, but AFAICS we have no hope
+of being forward-compatible with existing database setups (wherein there
+can be multiple tables of different ownership all in a single namespace)
+if we don't allow varying ownership within a schema. I think we can
+arrange things so that we are upward compatible with both SQL92 and
+the old way. Haven't worked out details yet though.
+
+Have to run, more later.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M17933=candle.pha.pa.us=pgman@postgresql.org Mon Jan 21 20:42:40 2002
+Return-path: <pgsql-hackers-owner+M17933=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0M1geU12708
+ for <pgman@candle.pha.pa.us>; Mon, 21 Jan 2002 20:42:40 -0500 (EST)
+Received: (qmail 92393 invoked by alias); 22 Jan 2002 01:42:38 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 01:42:38 -0000
+Received: from p566.codebydesign.com (cx950878-a.fed1.sdca.home.com [24.11.158.40])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0M1cZl91431
+ for <pgsql-hackers@postgresql.org>; Mon, 21 Jan 2002 20:38:35 -0500 (EST)
+ (envelope-from pharvey@codebydesign.com)
+Received: from p12.codebydesign.com (p12.codebydesign.com [192.168.1.27])
+ by p566.codebydesign.com (8.11.1/8.11.1) with SMTP id g0M2mmt12179;
+ Mon, 21 Jan 2002 18:48:53 -0800
+Content-Type: text/plain;
+ charset="iso-8859-1"
+From: Peter Harvey <pharvey@codebydesign.com>
+Organization: CodeByDesign
+To: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Mon, 21 Jan 2002 17:39:05 -0800
+X-Mailer: KMail [version 1.2]
+cc: pgsql-hackers@postgresql.org
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us>
+In-Reply-To: <12239.1011661590@sss.pgh.pa.us>
+MIME-Version: 1.0
+Message-ID: <02012117390500.02279@p12.codebydesign.com>
+Content-Transfer-Encoding: 8bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+FYI: Applications like Data Architect would benefit from a consistent and
+complete interface to the schema. For example; I found that we had to bypass
+the DD views which exist (as I recall) because they did not give us all
+information we needed. So we selected stuff from the system tables directly.
+Yucky. Sorry I can not recall details but thought that I would mention this
+here. The MySQL 'SHOW' statements seem to work pretty well and shields us
+from changes to the system tables.
+
+Peter
+
+> I don't buy that premise. It's true that SQL92 equates ownership of a
+> schema with ownership of the objects therein, but AFAICS we have no hope
+> of being forward-compatible with existing database setups (wherein there
+> can be multiple tables of different ownership all in a single namespace)
+> if we don't allow varying ownership within a schema. I think we can
+> arrange things so that we are upward compatible with both SQL92 and
+> the old way. Haven't worked out details yet though.
+>
+> Have to run, more later.
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M17966=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 10:53:20 2002
+Return-path: <pgsql-hackers-owner+M17966=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MFrJU05739
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 10:53:20 -0500 (EST)
+Received: (qmail 83537 invoked by alias); 22 Jan 2002 15:53:00 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 15:53:00 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0MFoql80523
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 10:50:52 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (rtl.sfbay.redhat.com [205.180.230.21])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id HAA09903;
+ Tue, 22 Jan 2002 07:50:43 -0800 (PST)
+Message-ID: <3C4D8A39.FF79CDC4@redhat.com>
+Date: Tue, 22 Jan 2002 10:50:17 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat Canada
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Peter Eisentraut <peter_e@gmx.net> writes:
+> > Remember that a schema is a named representation of ownership, so anything
+> > that can be owned must be in a schema. (Unless you want to invent a
+> > parallel universe for a different kind of ownership, which would be
+> > incredibly confusing.)
+>
+> I don't buy that premise. It's true that SQL92 equates ownership of a
+> schema with ownership of the objects therein, but AFAICS we have no hope
+> of being forward-compatible with existing database setups (wherein there
+> can be multiple tables of different ownership all in a single namespace)
+> if we don't allow varying ownership within a schema. I think we can
+> arrange things so that we are upward compatible with both SQL92 and
+> the old way. Haven't worked out details yet though.
+>
+
+Peter is right. Schemas is just a practical way of creating things
+under
+the same authorization-id + crating a namespace so that different
+authorization-ids can have objects with the same (unqualified name).
+
+Quoting Date (pg. 221): "The schema authID for a given schema identifies
+the owner of that schema (and hence the owner of everything described by
+that schema also)."
+
+It is very important that we reach a conclusion on this as it simplifies
+things a lot.
+
+Regards,
+Fernando
+
+
+P.S.: That is why I was telling you that, except for the namespace part,
+we already have the groundwork for Entry-level SQL-Schemas (where the
+schema is always the authorization-id of the creator) -- it is just
+a question of handling the "owner" appropriately.
+
+
+--
+Fernando Nasser
+Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M17973=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 11:26:13 2002
+Return-path: <pgsql-hackers-owner+M17973=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MGQCU09218
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 11:26:12 -0500 (EST)
+Received: (qmail 4629 invoked by alias); 22 Jan 2002 16:25:41 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 16:25:41 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MGGTl95123
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 11:16:29 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0MGGBf15342;
+ Tue, 22 Jan 2002 11:16:11 -0500 (EST)
+To: Fernando Nasser <fnasser@redhat.com>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C4D8A39.FF79CDC4@redhat.com>
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com>
+Comments: In-reply-to Fernando Nasser <fnasser@redhat.com>
+ message dated "Tue, 22 Jan 2002 10:50:17 -0500"
+Date: Tue, 22 Jan 2002 11:16:11 -0500
+Message-ID: <15339.1011716171@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Fernando Nasser <fnasser@redhat.com> writes:
+> Tom Lane wrote:
+>> I don't buy that premise. It's true that SQL92 equates ownership of a
+>> schema with ownership of the objects therein, but AFAICS we have no hope
+>> of being forward-compatible with existing database setups (wherein there
+>> can be multiple tables of different ownership all in a single namespace)
+>> if we don't allow varying ownership within a schema.
+
+> Quoting Date (pg. 221): "The schema authID for a given schema identifies
+> the owner of that schema (and hence the owner of everything described by
+> that schema also)."
+
+Yes, I know what the spec says. I also think we'll have a revolt on our
+hands if we don't make it possible for existing Postgres applications to
+continue working as they have in the past --- and that means allowing
+tables of different ownerships to be accessible in a single namespace.
+
+Although I haven't thought through the details yet, it seems to me that
+a solution exists along these lines:
+
+1. The creator of an object owns it. (With some special cases, eg the
+ superuser should be able to create a schema owned by someone else.)
+
+2. Whether you can create an object in a schema that is owned by someone
+ else depends on permissions attached to the schema. By default only
+ the owner of a schema can create anything in it.
+
+3. SQL92-compatible behavior is achieved when everyone has their own
+ schema and they don't grant each other create-in-schema rights.
+ Backwards-compatible behavior is achieved when everyone uses a
+ shared "public" schema.
+
+We'd probably need GUC variable(s) to make it possible to choose which
+behavior is the default. I haven't thought much about exactly what
+knobs should be provided. I do think we will want at least these two
+knobs:
+
+1. A "search path" that is an ordered list of schemas to look in
+ when trying to resolve an unqualified name.
+
+2. A "default schema" variable that identifies the schema to create
+ objects in, if a fully qualified name is not given.
+
+The default creation location shouldn't be hardwired to equal the
+front of the search path, because the front item of the search path
+is probably always going to be a backend-local temporary schema
+(this is where we'll create temporary tables).
+
+The most dumbed-down version of this that would work is to reduce the
+search path to just a fixed list of three locations: temp schema, a
+selectable default schema (which is also the default creation location),
+and a system schema (where pg_class and friends live). But a
+user-settable path wouldn't be any more effort to support, and might
+offer some useful capability.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M17976=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 12:04:19 2002
+Return-path: <pgsql-hackers-owner+M17976=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MH4IU12377
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 12:04:18 -0500 (EST)
+Received: (qmail 20616 invoked by alias); 22 Jan 2002 17:04:13 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 17:04:13 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0MGiKl15781
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 11:44:20 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (rtl.sfbay.redhat.com [205.180.230.21])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id IAA14751;
+ Tue, 22 Jan 2002 08:44:15 -0800 (PST)
+Message-ID: <3C4D96C5.80BBF764@redhat.com>
+Date: Tue, 22 Jan 2002 11:43:49 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat Canada
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> > Quoting Date (pg. 221): "The schema authID for a given schema identifies
+> > the owner of that schema (and hence the owner of everything described by
+> > that schema also)."
+>
+> Yes, I know what the spec says. I also think we'll have a revolt on our
+> hands if we don't make it possible for existing Postgres applications to
+> continue working as they have in the past --- and that means allowing
+> tables of different ownerships to be accessible in a single namespace.
+>
+
+But them it is not SQL-Schemas. Call it something else, "packages"
+for instance. The standard has lots of rules and other considerations
+all around the document that depend on schemas have the meaning they
+assigned to it.
+
+If someone wants to really make use of SQL-Schemas, he/she will need to
+reorg the database anyway, which will probably mean dumping the data,
+massaging the DLL and recreating it. I guess most users of SQL-Schemas
+will be people creating new databases.
+
+For the current users, (based on your idea below) a default behavior of
+searching the current-AuthID schema, them the "default" schema them
+"any"
+schema will probably make things work.
+
+Fernando
+
+P.S.: Note that the standard has no GRANTs for SCHEMAs themselves; all
+GRANTS go to the specific objects as before.
+
+
+> Although I haven't thought through the details yet, it seems to me that
+> a solution exists along these lines:
+>
+> 1. The creator of an object owns it. (With some special cases, eg the
+> superuser should be able to create a schema owned by someone else.)
+>
+> 2. Whether you can create an object in a schema that is owned by someone
+> else depends on permissions attached to the schema. By default only
+> the owner of a schema can create anything in it.
+>
+> 3. SQL92-compatible behavior is achieved when everyone has their own
+> schema and they don't grant each other create-in-schema rights.
+> Backwards-compatible behavior is achieved when everyone uses a
+> shared "public" schema.
+>
+> We'd probably need GUC variable(s) to make it possible to choose which
+> behavior is the default. I haven't thought much about exactly what
+> knobs should be provided. I do think we will want at least these two
+> knobs:
+>
+> 1. A "search path" that is an ordered list of schemas to look in
+> when trying to resolve an unqualified name.
+>
+> 2. A "default schema" variable that identifies the schema to create
+> objects in, if a fully qualified name is not given.
+>
+> The default creation location shouldn't be hardwired to equal the
+> front of the search path, because the front item of the search path
+> is probably always going to be a backend-local temporary schema
+> (this is where we'll create temporary tables).
+>
+> The most dumbed-down version of this that would work is to reduce the
+> search path to just a fixed list of three locations: temp schema, a
+> selectable default schema (which is also the default creation location),
+> and a system schema (where pg_class and friends live). But a
+> user-settable path wouldn't be any more effort to support, and might
+> offer some useful capability.
+>
+> regards, tom lane
+>
+> ---------------------------(end of broadcast)---------------------------
+> TIP 3: if posting/reading through Usenet, please send an appropriate
+> subscribe-nomail command to majordomo@postgresql.org so that your
+> message can get through to the mailing list cleanly
+
+--
+Fernando Nasser
+Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M17976=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 12:04:19 2002
+Return-path: <pgsql-hackers-owner+M17976=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MH4IU12378
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 12:04:18 -0500 (EST)
+Received: (qmail 20627 invoked by alias); 22 Jan 2002 17:04:13 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 17:04:13 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MGpjl18339
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 11:51:45 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0MGpUf15641;
+ Tue, 22 Jan 2002 11:51:30 -0500 (EST)
+To: Fernando Nasser <fnasser@redhat.com>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C4D96C5.80BBF764@redhat.com>
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com>
+Comments: In-reply-to Fernando Nasser <fnasser@redhat.com>
+ message dated "Tue, 22 Jan 2002 11:43:49 -0500"
+Date: Tue, 22 Jan 2002 11:51:30 -0500
+Message-ID: <15638.1011718290@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Fernando Nasser <fnasser@redhat.com> writes:
+> But them it is not SQL-Schemas. Call it something else, "packages"
+> for instance. The standard has lots of rules and other considerations
+> all around the document that depend on schemas have the meaning they
+> assigned to it.
+
+Where? And are there any cases where it really matters?
+
+> If someone wants to really make use of SQL-Schemas, he/she will need to
+> reorg the database anyway, which will probably mean dumping the data,
+> massaging the DLL and recreating it. I guess most users of SQL-Schemas
+> will be people creating new databases.
+
+No doubt. That still leaves us with the problem of providing
+backward-compatible behavior in an engine that is going to be designed
+to support schemas. I'm not sure what you think the implementation of
+schemas is going to look like --- but I think it's not going to be
+something that can be turned off or ignored. Every table is going to
+belong to some schema, and the old behavior has to be available within
+that framework.
+
+We are not working in a vacuum here, and that means that "implement
+the specification and nothing but" is not a workable design approach.
+We are going to end up with something that does the things SQL92 asks
+for, but does other things too.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M17980=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 15:34:09 2002
+Return-path: <pgsql-hackers-owner+M17980=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MKY7U05934
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 15:34:07 -0500 (EST)
+Received: (qmail 77926 invoked by alias); 22 Jan 2002 20:33:26 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 20:33:26 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0MKUrl76871
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 15:30:54 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (rtl.sfbay.redhat.com [205.180.230.21])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id MAA09466;
+ Tue, 22 Jan 2002 12:30:46 -0800 (PST)
+Message-ID: <3C4DCBDB.689D7201@redhat.com>
+Date: Tue, 22 Jan 2002 15:30:20 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat Canada
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+OK, so the proposal is that we dissociate the ownership from the
+namespace when we implement our version of SQL-Schemas, right?
+This way an object will have both an owner and a schema (while in
+the standard they are the same thing).
+
+The important is not much to accommodate someone who is creating
+schemas (a new thing, so objects can be created the "right" way)
+but rather to accommodate current code that does not use schemas
+and have several owners for the objects (which would all fall
+into a "default" schema). Can you agree with that?
+
+I was looking to see if we choose the proper defaults and search paths
+and the "default" schema we could make it look for SQL-compliant code
+as if it was a vanilla SQL-Schemas implementation.
+
+To support the current database schema definitions (without SQL-Schemas
+and with different owners), things would be created with the current
+user authorization id and will have its name defined in the "default"
+SQL-Schema
+namespace. Also, when referring to an object if the name is not
+qualified
+with the schema name, the search would go through the schema with the
+current authorization id (as required by the std) and proceed to check
+the "default" schema.
+
+The only problem in the scenario above is that the standard says that
+when creating objects and not specifying the schema the schema name
+should be assumed to be the current user authorization id (or whatever
+authorization id the code is running as). In our case it would go to
+the default schema. If someone wants the SQL std behavior then, he/she
+must create things inside a CREATE SCHEMA statement or explicitly
+qualify
+with the schema name the objects being created. Can we live with that?
+Will we pass the conformance tests? (I saw tests that test the schema
+name
+that is assumed when referencing but I do not recall seeing one that
+tests
+what is assumed on creation -- things I saw were all created inside
+CREATE SCHEMA statements. Note, also, that passing the NIST tests
+doesn't
+make us compliant if we know that we are doing something different than
+what is specified -- it just means that we got away with it :-)
+
+
+--
+Fernando Nasser
+Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M17982=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 15:46:46 2002
+Return-path: <pgsql-hackers-owner+M17982=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MKkhU07389
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 15:46:44 -0500 (EST)
+Received: (qmail 82732 invoked by alias); 22 Jan 2002 20:43:40 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 20:43:40 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MKg8l81714
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 15:42:08 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0MKfnf28202;
+ Tue, 22 Jan 2002 15:41:49 -0500 (EST)
+To: Fernando Nasser <fnasser@redhat.com>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C4DCBDB.689D7201@redhat.com>
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us> <3C4DCBDB.689D7201@redhat.com>
+Comments: In-reply-to Fernando Nasser <fnasser@redhat.com>
+ message dated "Tue, 22 Jan 2002 15:30:20 -0500"
+Date: Tue, 22 Jan 2002 15:41:49 -0500
+Message-ID: <28199.1011732109@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Fernando Nasser <fnasser@redhat.com> writes:
+> The only problem in the scenario above is that the standard says that
+> when creating objects and not specifying the schema the schema name
+> should be assumed to be the current user authorization id (or whatever
+> authorization id the code is running as). In our case it would go to
+> the default schema. If someone wants the SQL std behavior then, he/she
+> must create things inside a CREATE SCHEMA statement or explicitly
+> qualify
+> with the schema name the objects being created. Can we live with
+> that?
+
+Huh? You seem to be assuming that we need to support both the
+historical Postgres behavior and the SQL-standard behavior with exactly
+the same configuration switches. That's not how I'm seeing it at all.
+The way I'm envisioning it, you could get either the historical
+behavior, or the standard's behavior, depending on how you set up the
+configuration variables. I don't see any particular reason to limit the
+system to just those two cases, either, if the underlying implementation
+has enough flexibility to support custom namespace configurations.
+
+I believe that we could get the historical behavior with something like
+
+ schema search path = ("public" schema, system schema);
+
+ default creation schema = "public" schema
+
+and the standard's behavior with something like
+
+ schema search path = (user's own schema, system schema);
+
+ default creation schema = user's own schema
+
+(ignoring the issue of a schema for temp tables for the moment).
+
+If you prefer to think of these things as "namespaces" rather than
+"schemas", that's fine with me ... what we're talking about here
+is an implementation that can support SQL-style schemas, but isn't
+narrowly able to do only that.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M17985=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 16:15:56 2002
+Return-path: <pgsql-hackers-owner+M17985=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MLFrU10671
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 16:15:53 -0500 (EST)
+Received: (qmail 94223 invoked by alias); 22 Jan 2002 21:14:17 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 21:14:17 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0ML2fl90295
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 16:02:41 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (rtl.sfbay.redhat.com [205.180.230.21])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA12269;
+ Tue, 22 Jan 2002 13:02:34 -0800 (PST)
+Message-ID: <3C4DD34F.CC4D8B6@redhat.com>
+Date: Tue, 22 Jan 2002 16:02:07 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat Canada
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us> <3C4DCBDB.689D7201@redhat.com> <28199.1011732109@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Huh? You seem to be assuming that we need to support both the
+> historical Postgres behavior and the SQL-standard behavior with exactly
+> the same configuration switches. That's not how I'm seeing it at all.
+> The way I'm envisioning it, you could get either the historical
+> behavior, or the standard's behavior, depending on how you set up the
+> configuration variables.
+
+Then we can live just with the schema being the ownership.
+
+Switches set to standard:
+
+ schema search path = ("user's own schema", postgres)
+
+ [ default creation schema = user's own schema ] same as below,
+ we don't need this
+switch
+
+Switches set to historical:
+
+ schema search path = (user's own schema, "any" schema, postgres)
+
+ [ default creation schema = user's own schema ]
+
+The searching in "any" schema (i.e., any owner) will let will find
+things that where defined the way they are today, i.e., possibly
+by several different users.
+
+
+P.S.: You can even add the "default" schema in the standard case and
+I believe you are still compliant and can handle things easier:
+ schema search path = ("user's own schema", postgres)
+
+
+Maybe you could give an example of a case where the schema meaning
+ownership breaks things. Or what kind of additional things you have
+in mind that would require orthogonal schema and ownership spaces.
+
+
+Regards,
+Fernando
+
+
+
+
+--
+Fernando Nasser
+Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M17986=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 16:23:41 2002
+Return-path: <pgsql-hackers-owner+M17986=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MLNbU11596
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 16:23:38 -0500 (EST)
+Received: (qmail 703 invoked by alias); 22 Jan 2002 21:23:31 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 21:23:31 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MLEYl94662
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 16:14:34 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0MLEGf28560;
+ Tue, 22 Jan 2002 16:14:17 -0500 (EST)
+To: Fernando Nasser <fnasser@redhat.com>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C4DD34F.CC4D8B6@redhat.com>
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us> <3C4DCBDB.689D7201@redhat.com> <28199.1011732109@sss.pgh.pa.us> <3C4DD34F.CC4D8B6@redhat.com>
+Comments: In-reply-to Fernando Nasser <fnasser@redhat.com>
+ message dated "Tue, 22 Jan 2002 16:02:07 -0500"
+Date: Tue, 22 Jan 2002 16:14:16 -0500
+Message-ID: <28557.1011734056@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Fernando Nasser <fnasser@redhat.com> writes:
+> Switches set to historical:
+
+> schema search path = (user's own schema, "any" schema, postgres)
+
+> [ default creation schema = user's own schema ]
+
+> The searching in "any" schema (i.e., any owner) will let will find
+> things that where defined the way they are today, i.e., possibly
+> by several different users.
+
+No, it won't, because nothing will ever get put into that schema.
+(At least not by existing pg_dump scripts, which are the things that
+really need to see the historical behavior.) The
+default-creation-schema variable has got to point at any/public/
+whatever-we-call it, or you do not have the historical behavior.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M17988=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 16:44:43 2002
+Return-path: <pgsql-hackers-owner+M17988=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MLifU13572
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 16:44:41 -0500 (EST)
+Received: (qmail 8653 invoked by alias); 22 Jan 2002 21:43:27 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 21:43:27 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0MLR6l02610
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 16:27:06 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (rtl.sfbay.redhat.com [205.180.230.21])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA14337;
+ Tue, 22 Jan 2002 13:27:00 -0800 (PST)
+Message-ID: <3C4DD909.F26FD0D1@redhat.com>
+Date: Tue, 22 Jan 2002 16:26:33 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat Canada
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us> <3C4DCBDB.689D7201@redhat.com> <28199.1011732109@sss.pgh.pa.us> <3C4DD34F.CC4D8B6@redhat.com> <28557.1011734056@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Fernando Nasser <fnasser@redhat.com> writes:
+> > Switches set to historical:
+>
+> > schema search path = (user's own schema, "any" schema, postgres)
+>
+> > [ default creation schema = user's own schema ]
+>
+> > The searching in "any" schema (i.e., any owner) will let will find
+> > things that where defined the way they are today, i.e., possibly
+> > by several different users.
+>
+> No, it won't, because nothing will ever get put into that schema.
+> (At least not by existing pg_dump scripts, which are the things that
+> really need to see the historical behavior.) The
+> default-creation-schema variable has got to point at any/public/
+> whatever-we-call it, or you do not have the historical behavior.
+>
+
+You did not understand what I meant by "any". It is not a schema
+called "any". It is _any_ schema.
+
+Example:
+
+A creates a table (do not specify the schema) so it gets into
+the schema named A (as per standard).
+
+B refers to the table without qualifying it...
+
+In the standard case: look into schema B (=> not found), not in
+postgres either.
+ERROR: Inv. relation As the standard requires.
+
+In the historical mode: look into schema B (=> not found), look into
+ANY
+schema (finds it in A). Works as it is today.
+
+
+Note that I only suggest looking in B first (in the historical case)
+because
+this will allow for the coexistence of the current mode with a
+quasi-compliant
+use of SQL-Schemas. You only need to change the switch if you want
+strict
+compliance.
+
+
+
+--
+Fernando Nasser
+Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M17987=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 16:45:30 2002
+Return-path: <pgsql-hackers-owner+M17987=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MLjSU13642
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 16:45:29 -0500 (EST)
+Received: (qmail 8533 invoked by alias); 22 Jan 2002 21:43:23 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 21:43:23 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MLZ5l06911
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 16:35:05 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0MLYlf28790;
+ Tue, 22 Jan 2002 16:34:47 -0500 (EST)
+To: Fernando Nasser <fnasser@redhat.com>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C4DD909.F26FD0D1@redhat.com>
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us> <3C4DCBDB.689D7201@redhat.com> <28199.1011732109@sss.pgh.pa.us> <3C4DD34F.CC4D8B6@redhat.com> <28557.1011734056@sss.pgh.pa.us> <3C4DD909.F26FD0D1@redhat.com>
+Comments: In-reply-to Fernando Nasser <fnasser@redhat.com>
+ message dated "Tue, 22 Jan 2002 16:26:33 -0500"
+Date: Tue, 22 Jan 2002 16:34:47 -0500
+Message-ID: <28787.1011735287@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Fernando Nasser <fnasser@redhat.com> writes:
+> In the historical mode: look into schema B (=> not found), look into
+> ANY schema (finds it in A). Works as it is today.
+
+No, it doesn't work the same as today, because in that implementation
+both A and B can create the same tablename without complaint. It then
+becomes very unclear which instance other people will get (unless your
+"any" placeholder somehow implies a search order).
+
+The idea of being able to put an "any" placeholder into the search list
+is an interesting one, though. If we can resolve the ambiguity problem
+it might be a useful feature.
+
+I am a little troubled by the idea of placing "any" before the system
+schema (what if JRandomLuser creates a table named "pg_class"?) but it
+might be workable at the tail end of the path.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M17991=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 17:13:49 2002
+Return-path: <pgsql-hackers-owner+M17991=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MMDmU19678
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 17:13:49 -0500 (EST)
+Received: (qmail 19170 invoked by alias); 22 Jan 2002 22:13:14 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 22:13:14 -0000
+Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged))
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0MM3ql17554
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 17:03:53 -0500 (EST)
+ (envelope-from fnasser@redhat.com)
+Received: from redhat.com (rtl.sfbay.redhat.com [205.180.230.21])
+ by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id OAA18084;
+ Tue, 22 Jan 2002 14:03:46 -0800 (PST)
+Message-ID: <3C4DE1A7.98860E96@redhat.com>
+Date: Tue, 22 Jan 2002 17:03:19 -0500
+From: Fernando Nasser <fnasser@redhat.com>
+Organization: Red Hat Canada
+X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201211840260.687-100000@peter.localdomain> <12239.1011661590@sss.pgh.pa.us> <3C4D8A39.FF79CDC4@redhat.com> <15339.1011716171@sss.pgh.pa.us> <3C4D96C5.80BBF764@redhat.com> <15638.1011718290@sss.pgh.pa.us> <3C4DCBDB.689D7201@redhat.com> <28199.1011732109@sss.pgh.pa.us> <3C4DD34F.CC4D8B6@redhat.com> <28557.1011734056@sss.pgh.pa.us> <3C4DD909.F26FD0D1@redhat.com> <28787.1011735287@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Fernando Nasser <fnasser@redhat.com> writes:
+> > In the historical mode: look into schema B (=> not found), look into
+> > ANY schema (finds it in A). Works as it is today.
+>
+> No, it doesn't work the same as today, because in that implementation
+> both A and B can create the same tablename without complaint.
+
+I agree that we won't be able to catch this as an error unless we turn
+another switch that requires unique names (there goes one of the
+advantages
+of having schemas, but there is always the option of leaving it on).
+
+In this case it would be more close to the current behavior but what is
+left of the SQL-Schemas will be more of a syntactic sugar (although it
+can
+be still used by the DBA to better organize the grant of privileges).
+
+Anyway, it would be a DBA option to live with not detecting duplicate
+names. And, I hope all our tools, graphical or not, will make it clear
+what
+is the schema things are defined into, so it would not be difficult to
+figure out what is going wrong if something goes wrong (and we can also
+print the relation oid on messages).
+
+> It then
+> becomes very unclear which instance other people will get (unless your
+> "any" placeholder somehow implies a search order).
+>
+
+If someone is just using the current mode, there shouldn't be (all names
+are
+database-unique).
+
+The only case where this situation can happen is if someone is trying
+to use schemas and the historical non-schema organization in the same
+database, right? Can we make the search order per database?)
+
+One possibility is to state that this is not recommended (one should
+organize things as schemas or not at all in a database) and say that
+the search order, besides the current AuthId, is unspecified (random).
+
+Another possibility is to allow only one object with that name in the
+"any" space. If someone means an object that was defined on a schema,
+he/she can qualify the name with the schema (good practice). The only
+case where this is not possible is the legacy case, where there is
+exactly one object with that name anyway.
+
+I prefer this second solution.
+
+> The idea of being able to put an "any" placeholder into the search list
+> is an interesting one, though. If we can resolve the ambiguity problem
+> it might be a useful feature.
+>
+
+See above.
+
+> I am a little troubled by the idea of placing "any" before the system
+> schema (what if JRandomLuser creates a table named "pg_class"?) but it
+> might be workable at the tail end of the path.
+>
+
+Yes, I thought of that as I was typing, but it was not the important
+point at that time. You're right, should go at the end.
+
+--
+Fernando Nasser
+Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
+2323 Yonge Street, Suite #300
+Toronto, Ontario M4P 2C9
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M17993=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 18:44:53 2002
+Return-path: <pgsql-hackers-owner+M17993=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MNiqU29215
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 18:44:53 -0500 (EST)
+Received: (qmail 36986 invoked by alias); 22 Jan 2002 23:43:31 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 23:43:31 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MNGYl30543
+ for <pgsql-hackers@postgreSQL.org>; Tue, 22 Jan 2002 18:16:34 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.147] [148.61.250.147] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Tue, 22 Jan 2002 18:16:37 -0500 (EDT)
+Date: Tue, 22 Jan 2002 18:18:38 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <12239.1011661590@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201221816130.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane writes:
+
+> I don't buy that premise. It's true that SQL92 equates ownership of a
+> schema with ownership of the objects therein, but AFAICS we have no hope
+> of being forward-compatible with existing database setups (wherein there
+> can be multiple tables of different ownership all in a single namespace)
+> if we don't allow varying ownership within a schema.
+
+We could have a Boolean knob that says "if you don't find the object in
+the default schema, search all other schemas". That should provide all
+the backward compatibility we need. Moreover, I figure if we do it that
+way, the whole schema implementation reduces itself mostly to parser work,
+no complicated system catalog changes, no complex overhaul of the
+privilege system -- at least initially.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M17992=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 18:34:48 2002
+Return-path: <pgsql-hackers-owner+M17992=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MNYmU28419
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 18:34:48 -0500 (EST)
+Received: (qmail 32848 invoked by alias); 22 Jan 2002 23:34:10 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 23:34:10 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MNPUl31485
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 18:25:30 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.147] [148.61.250.147] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Tue, 22 Jan 2002 18:25:33 -0500 (EDT)
+Date: Tue, 22 Jan 2002 18:27:35 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Fernando Nasser <fnasser@redhat.com>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <28787.1011735287@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201221824360.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane writes:
+
+> No, it doesn't work the same as today, because in that implementation
+> both A and B can create the same tablename without complaint. It then
+> becomes very unclear which instance other people will get (unless your
+> "any" placeholder somehow implies a search order).
+
+The "search any schema" switch is only intended for use with legacy
+databases, where duplicate names don't occur anyway. If someone uses it
+with a new schema-using database design, then he kind of ought to know
+that the switch probably doesn't make a whole lot of sense. However, to
+get reproduceable behaviour anyway we can just define a search order, such
+as by schema name.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M17994=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 18:45:53 2002
+Return-path: <pgsql-hackers-owner+M17994=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0MNjqU29324
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 18:45:52 -0500 (EST)
+Received: (qmail 37021 invoked by alias); 22 Jan 2002 23:43:34 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 22 Jan 2002 23:43:34 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0MNVOl31958
+ for <pgsql-hackers@postgreSQL.org>; Tue, 22 Jan 2002 18:31:24 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0MNV8f29291;
+ Tue, 22 Jan 2002 18:31:08 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201221816130.686-100000@peter.localdomain>
+References: <Pine.LNX.4.30.0201221816130.686-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+ message dated "Tue, 22 Jan 2002 18:18:38 -0500"
+Date: Tue, 22 Jan 2002 18:31:08 -0500
+Message-ID: <29288.1011742268@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> Moreover, I figure if we do it that
+> way, the whole schema implementation reduces itself mostly to parser work,
+> no complicated system catalog changes, no complex overhaul of the
+> privilege system -- at least initially.
+
+Why are you guys so eager to save me work? I'm not in the least
+interested in implementing a "schema" feature that can only handle
+the entry-level user == schema case. Therefore, just relabeling the
+owner column as schema isn't an interesting option.
+
+I really don't see what's wrong with building a namespace mechanism
+that is orthogonal to ownership and then using that to implement what
+SQL92 wants. I think this will be cleaner, simpler, and more flexible
+than trying to equate ownership with namespace.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M17997=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 19:13:42 2002
+Return-path: <pgsql-hackers-owner+M17997=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N0DgU01512
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 19:13:42 -0500 (EST)
+Received: (qmail 46269 invoked by alias); 23 Jan 2002 00:13:11 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 00:13:11 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N02bl42634
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 19:02:37 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0N02Kf29439;
+ Tue, 22 Jan 2002 19:02:21 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: Fernando Nasser <fnasser@redhat.com>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201221824360.686-100000@peter.localdomain>
+References: <Pine.LNX.4.30.0201221824360.686-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+ message dated "Tue, 22 Jan 2002 18:27:35 -0500"
+Date: Tue, 22 Jan 2002 19:02:20 -0500
+Message-ID: <29436.1011744140@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> Tom Lane writes:
+>> No, it doesn't work the same as today, because in that implementation
+>> both A and B can create the same tablename without complaint. It then
+>> becomes very unclear which instance other people will get (unless your
+>> "any" placeholder somehow implies a search order).
+
+> The "search any schema" switch is only intended for use with legacy
+> databases, where duplicate names don't occur anyway.
+
+That's a mighty narrow view of the world. Do you think that people had
+better convert to SQL schemas before they ever again create a table?
+The fact is that ordinary non-schema-aware usage will certainly lead to
+the above scenario.
+
+> that the switch probably doesn't make a whole lot of sense. However, to
+> get reproduceable behaviour anyway we can just define a search order, such
+> as by schema name.
+
+Or say that you get an "ambiguous reference" error if there is more than
+one possible candidate in the "any" namespace. (Although that opens the
+door for innocent creation of a table foo by one user to break other
+people's formerly-working queries that reference some other foo.)
+Bottom line for me is that this is an untried concept. I think the
+concept of an "any" searchlist entry is risky enough that I don't much
+want to hang the entire usability of the implementation on the
+assumption that we won't find any fatal problems with "any".
+
+
+However, the argument over whether SQL92's concept of ownership should
+be taken as gospel is not really the argument I wanted to have in this
+thread. Is it possible to go back to the original point concerning
+whether there should be different namespace boundaries for different
+types of objects? You aren't going to avoid those issues by saying that
+namespace == ownership is good enough.
+
+I'm particularly troubled by the idea of trying to apply this "any"
+lookup concept to resolution of overloaded operators and functions.
+Suppose I have a reference func(type1,type2) that I'm trying to resolve,
+and I have an inexact match (one requiring coercion) in my own schema.
+Do I look to the "any" schema to see if there are better matches?
+If so, what happens if the "any" schema contains multiple possibilities
+with identical signatures (presumably created by different users)? ISTM
+this will positively guarantee a resolution failure, since there's no
+way for the resolver to prefer one over another. Thus, by creating
+a "func(foo,bar)" function --- quite legally --- JRandomLuser might
+break other people's formerly working queries that use other functions
+named func. Although it's possible for this to happen now, it'll be
+a lot more surprising if JRandomLuser thinks that his functions live
+in his own private schema namespace.
+
+I'm thinking that the overloading concept is not going to play well
+at all with multiple namespaces for functions or operators, and that
+we'd be best off to say that there is only one namespace (per database)
+for these things.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M17998=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 19:33:10 2002
+Return-path: <pgsql-hackers-owner+M17998=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N0X9U02302
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 19:33:09 -0500 (EST)
+Received: (qmail 52787 invoked by alias); 23 Jan 2002 00:33:08 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 00:33:08 -0000
+Received: from ece.rice.edu (ece.rice.edu [128.42.4.34])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N0IEl49263
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 19:18:14 -0500 (EST)
+ (envelope-from reedstrm@rice.edu)
+Received: from localhost (localhost [127.0.0.1])
+ by ece.rice.edu (Postfix) with ESMTP
+ id A57FF68A57; Tue, 22 Jan 2002 18:18:14 -0600 (CST)
+Received: from wallace.ece.rice.edu (wallace.ece.rice.edu [128.42.12.154])
+ by ece.rice.edu (Postfix) with ESMTP
+ id 393F168A1D; Tue, 22 Jan 2002 18:18:13 -0600 (CST)
+Received: from reedstrm by wallace.ece.rice.edu with local (Exim 3.22 #1 (Debian))
+ id 16TB7F-000292-00; Tue, 22 Jan 2002 18:18:13 -0600
+Date: Tue, 22 Jan 2002 18:18:13 -0600
+From: "Ross J. Reedstrom" <reedstrm@rice.edu>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Message-ID: <20020123001812.GB7932@rice.edu>
+Mail-Followup-To: "Ross J. Reedstrom" <reedstrm@ece.rice.edu>,
+ Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+References: <Pine.LNX.4.30.0201221816130.686-100000@peter.localdomain> <29288.1011742268@sss.pgh.pa.us>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <29288.1011742268@sss.pgh.pa.us>
+User-Agent: Mutt/1.3.25i
+X-Virus-Scanned: by AMaViS snapshot-20010714
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Tue, Jan 22, 2002 at 06:31:08PM -0500, Tom Lane wrote:
+> Peter Eisentraut <peter_e@gmx.net> writes:
+> > Moreover, I figure if we do it that
+> > way, the whole schema implementation reduces itself mostly to parser work,
+> > no complicated system catalog changes, no complex overhaul of the
+> > privilege system -- at least initially.
+>
+> Why are you guys so eager to save me work? I'm not in the least
+> interested in implementing a "schema" feature that can only handle
+> the entry-level user == schema case. Therefore, just relabeling the
+> owner column as schema isn't an interesting option.
+>
+> I really don't see what's wrong with building a namespace mechanism
+> that is orthogonal to ownership and then using that to implement what
+> SQL92 wants. I think this will be cleaner, simpler, and more flexible
+> than trying to equate ownership with namespace.
+>
+
+I'm with Tom on this: the extended Schema capability he's described
+combines the best of both authentication mechanisms, IMHO. It give
+us namespace separation ala the SQL standard, and individual object
+ownership, like unix FS semantics. Only having ownership on the
+'containers' strikes me as limiting, even if that is how the standard
+describes it.
+
+Ross
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18002=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 20:33:04 2002
+Return-path: <pgsql-hackers-owner+M18002=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N1X3U05117
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 20:33:03 -0500 (EST)
+Received: (qmail 73320 invoked by alias); 23 Jan 2002 01:32:55 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 01:32:55 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0N1FDl69103
+ for <pgsql-hackers@postgreSQL.org>; Tue, 22 Jan 2002 20:15:14 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 12961 invoked by uid 1130); 23 Jan 2002 01:15:07 -0000
+Date: Tue, 22 Jan 2002 17:10:24 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <11381.1011648592@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201221657270.5119-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Mon, 21 Jan 2002, Tom Lane wrote:
+
+> Continuing to think about implementing SQL schemas for 7.3 ...
+>
+> Today's topic for discussion: which types of Postgres objects should
+> belong to schemas, and which ones should have other name scopes?
+>
+> Relations (tables, indexes, views, sequences) clearly belong to schemas.
+> Since each relation has an associated datatype with the same name, it
+> seems that datatypes must belong to schemas as well. (Even if that
+> argument doesn't convince you, SQL99 says that user-defined datatypes
+> belong to schemas.) However the situation is murkier for other kinds of
+> objects.
+>
+> Here are all the kinds of named objects that exist in Postgres today,
+> with some comments on whether they should belong to schemas or not:
+>
+> relations Must be in schemas
+> types Must be in schemas
+> databases Databases contain schemas, not vice versa
+> users Users are cross-database, so not in schemas
+> groups User groups are cross-database, so not in schemas
+> languages Probably should not be in schemas
+> access methods Probably should not be in schemas
+> opclasses See below
+> operators See below
+> functions/procedures See below
+> aggregates Should treat same as regular functions
+> constraints See below
+> rules See below
+> triggers See below
+> NOTIFY conditions See below
+>
+> Languages and access methods are not trivial to add to the system, so
+> there's not much risk of name conflicts, and no reason to make their name
+> scope less than global.
+>
+> The situation is a lot murkier for operators and functions. These should
+> probably be treated alike, since operators are just syntactic sugar for
+> functions. I think the basic argument for making them schema-local is
+> that different users might conceivably want to define conflicting
+> functions or operators of the same name. Against that, however, there
+> are a number of reasons for wanting to keep these objects database-wide.
+> First off there are syntactic problems. Do you really want to write
+> A schemaname.+ B
+> to qualify an ambiguous "+" operator? Looks way too much like a syntax
+> error to me. Allowing this would probably turn a lot of simple syntax
+> errors into things that get past the grammar and end up producing truly
+> confusing error messages. Qualified function names also pose some
+> problems, not so much with
+> schemaname.function(args)
+> which seems reasonable, but with the Berkeley-derived syntax that allows
+> "foo.function" to mean "function(foo)" --- there's no way to squeeze a
+> schema-name for the function into that. (And you'll recall from my note
+
+Why not? What's wrong with either schema.foo.function (==>
+function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+Tables and functions can't have the same names as schemas, so we will be
+able to notice the schema names in there. Oh, and I worked out how to get
+parse.y to be happy with x.y & x.y.z (schema.package.function) names. :-)
+
+> of the other day that we don't want to abandon this syntax entirely,
+> because people would like us to support "sequencename.nextval" for Oracle
+> compatibility.) Notice that we are not forced to make functions/operators
+> schema-local just because datatypes are, because overloading will save the
+> day. func(schema1.type1) and func(schema2.type1) are distinct functions
+> because the types are different, even if they live in the same function
+> namespace. Finally, SQL99 doesn't appear to think that operator and
+> function names are schema-local; though that may just be because it hasn't
+> got user-defined operators AFAICT.
+
+Actually functions do have to be schema local. It's in the spec (don't
+have exactly where with me).
+
+> I am leaning towards keeping functions/operators database-wide, but would
+> like to hear comments. Is there any real value in, eg, allowing different
+> users to define different "+" operators *on the same datatypes*?
+
+Yes. It means that third-party developers can develop routines and then
+operators based on them without having to worry about conflicts. Obviously
+these two different operators would have to be in different schemas. Also,
+it would mean that someone could ship replacement operators for built-in
+operators. Say adding a + operator which throws exceptions on overflow.
+:-)
+
+> Not sure about index opclasses. Given that datatype names are
+> schema-local, one can think of scenarios where two users define similar
+> datatypes and then try to use the same index opclass name for both.
+> But it seems pretty unlikely. I'd prefer to leave opclass names
+> database-wide for simplicity. Comments?
+
+My vote would be to make them schema-specific. As Peter pointed out,
+schemas are how you own things, so put them in a schema so we can keep
+track of ownership.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18001=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 20:23:11 2002
+Return-path: <pgsql-hackers-owner+M18001=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N1NAU04735
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 20:23:10 -0500 (EST)
+Received: (qmail 70414 invoked by alias); 23 Jan 2002 01:23:01 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 01:23:01 -0000
+Received: from corvette.mascari.com (dhcp065-024-158-068.columbus.rr.com [65.24.158.68])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N1KBl69469
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 20:20:11 -0500 (EST)
+ (envelope-from mascarm@mascari.com)
+Received: from mascari.com (ferrari.mascari.com [192.168.2.1])
+ by corvette.mascari.com (8.9.3/8.9.3) with ESMTP id UAA30752
+ for <pgsql-hackers@postgresql.org>; Tue, 22 Jan 2002 20:15:29 -0500
+Message-ID: <3C4E0EB1.1E3687FD@mascari.com>
+Date: Tue, 22 Jan 2002 20:15:29 -0500
+From: Mike Mascari <mascarm@mascari.com>
+X-Mailer: Mozilla 4.7 [en] (WinNT; I)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201221824360.686-100000@peter.localdomain> <29436.1011744140@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> I'm particularly troubled by the idea of trying to apply this "any"
+> lookup concept to resolution of overloaded operators and functions.
+> Suppose I have a reference func(type1,type2) that I'm trying to resolve,
+> and I have an inexact match (one requiring coercion) in my own schema.
+> Do I look to the "any" schema to see if there are better matches?
+> If so, what happens if the "any" schema contains multiple possibilities
+> with identical signatures (presumably created by different users)? ISTM
+> this will positively guarantee a resolution failure, since there's no
+> way for the resolver to prefer one over another. Thus, by creating
+> a "func(foo,bar)" function --- quite legally --- JRandomLuser might
+> break other people's formerly working queries that use other functions
+> named func. Although it's possible for this to happen now, it'll be
+> a lot more surprising if JRandomLuser thinks that his functions live
+> in his own private schema namespace.
+>
+
+So, in a nutshell, the price we pay for function overloading is the
+inability to have schema-specific functions. Right? Possibly why Oracle
+doesn't allow function overloading? As a user, I'd much rather have
+schema-specific functions than only global. I'm not downplaying the
+value of function overloading, but if I had the choice (which I guess I
+can't/won't), I'd choose schema-specific functions over function
+overloading...
+
+Mike Mascari
+mascarm@mascari.com
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18003=candle.pha.pa.us=pgman@postgresql.org Tue Jan 22 20:52:52 2002
+Return-path: <pgsql-hackers-owner+M18003=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N1qqU05847
+ for <pgman@candle.pha.pa.us>; Tue, 22 Jan 2002 20:52:52 -0500 (EST)
+Received: (qmail 76088 invoked by alias); 23 Jan 2002 01:52:50 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 01:52:50 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N1o8l75594
+ for <pgsql-hackers@postgreSQL.org>; Tue, 22 Jan 2002 20:50:08 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.147] [148.61.250.147] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Tue, 22 Jan 2002 20:50:13 -0500 (EDT)
+Date: Tue, 22 Jan 2002 20:52:14 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <29288.1011742268@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201222042400.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane writes:
+
+> I really don't see what's wrong with building a namespace mechanism
+> that is orthogonal to ownership and then using that to implement what
+> SQL92 wants. I think this will be cleaner, simpler, and more flexible
+> than trying to equate ownership with namespace.
+
+OK, I can accept that. But then I want to get back at my original point,
+namely that all database objects (except users and groups) should be in
+schemas. This is also cleaner, simpler, and more flexible. There is
+clearly demand for schema-local functions. So I think that designing this
+system from the premise that a schema-qualified operator call will look
+strange is the wrong end to start at.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18006=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 00:13:21 2002
+Return-path: <pgsql-hackers-owner+M18006=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N5DLU26660
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 00:13:21 -0500 (EST)
+Received: (qmail 12536 invoked by alias); 23 Jan 2002 05:13:01 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 05:13:01 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N58Cl11241
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 00:08:12 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0N57vf00651;
+ Wed, 23 Jan 2002 00:07:58 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201221657270.5119-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201221657270.5119-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Tue, 22 Jan 2002 17:10:24 -0800"
+Date: Wed, 23 Jan 2002 00:07:57 -0500
+Message-ID: <648.1011762477@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+> Why not? What's wrong with either schema.foo.function (==>
+> function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+
+Neither is wrong in isolation, but how do you tell the difference?
+More to the point, given input x.y.z, how do you tell which component
+is what?
+
+> Tables and functions can't have the same names as schemas,
+
+News to me. Where is that written on stone tablets? Even if that's
+considered an acceptable limitation from a purely functional point of
+view, I don't like using it to disambiguate input. The error messages
+you'll get from incorrect input to an implementation that depends on
+that to disambiguate cases will not be very helpful.
+
+> Actually functions do have to be schema local. It's in the spec (don't
+> have exactly where with me).
+
+(A) I don't believe that; please cite chapter and verse; (B) even if
+SQL92 thinks that's okay, we can't do it that way because of
+backwards-compatibility issues.
+
+> My vote would be to make them schema-specific. As Peter pointed out,
+> schemas are how you own things,
+
+Sorry, but this line of argument is trying to assume the very point in
+dispute.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18007=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 01:12:58 2002
+Return-path: <pgsql-hackers-owner+M18007=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N6CvU01868
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 01:12:57 -0500 (EST)
+Received: (qmail 21084 invoked by alias); 23 Jan 2002 06:13:00 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 06:13:00 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N69Kl20384
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 01:09:20 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.147] [148.61.250.147] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Wed, 23 Jan 2002 01:09:18 -0500 (EDT)
+Date: Wed, 23 Jan 2002 01:11:21 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <648.1011762477@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201230058150.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane writes:
+
+> > Actually functions do have to be schema local. It's in the spec (don't
+> > have exactly where with me).
+>
+> (A) I don't believe that; please cite chapter and verse;
+
+In SQL99, chapter 4 verse 23 it says
+
+"An SQL-invoked routine is an element of an SQL-schema and is called a
+schema-level routine."
+
+> (B) even if
+> SQL92 thinks that's okay, we can't do it that way because of
+> backwards-compatibility issues.
+
+I don't buy that. If all you're looking for is preserving
+
+foo.bar <==> bar(foo)
+
+for compatibility, then you can simply say that "bar" cannot be
+schema-qualified in the left form (so it needs to live in the current or
+the default schema). We currently only have one default schema, so that's
+backward compatible. I think this syntax is a mistake, so I don't feel
+compelled to provide more than backwards compatibility.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18008=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 04:13:30 2002
+Return-path: <pgsql-hackers-owner+M18008=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0N9DTU17316
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 04:13:29 -0500 (EST)
+Received: (qmail 56495 invoked by alias); 23 Jan 2002 09:13:26 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 09:13:26 -0000
+Received: from smxsat1.smxs.net (smxsat1.smxs.net [213.150.10.1])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N9BKl55718
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 04:11:21 -0500 (EST)
+ (envelope-from ZeugswetterA@spardat.at)
+Received: from m01x1.s-mxs.net [10.3.55.201]
+ by smxsat1.smxs.net
+ with XWall v3.18f ;
+ Wed, 23 Jan 2002 10:12:42 +0100
+Received: from m0102.s-mxs.net [10.3.55.2]
+ by m01x1.s-mxs.net
+ with XWall v3.18a ;
+ Wed, 23 Jan 2002 10:11:14 +0100
+Received: from m0114.s-mxs.net ([10.3.55.14]) by m0102.s-mxs.net with Microsoft SMTPSVC(5.0.2195.2966);
+ Wed, 23 Jan 2002 10:11:13 +0100
+X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3
+content-class: urn:content-classes:message
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Wed, 23 Jan 2002 10:11:13 +0100
+Message-ID: <46C15C39FEB2C44BA555E356FBCD6FA41EB4C2@m0114.s-mxs.net>
+Thread-Topic: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Thread-Index: AcGjixqphLJq/YpTSK6U7FZuNf4j3AAWxJvQ
+From: "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
+To: "Tom Lane" <tgl@sss.pgh.pa.us>, "Fernando Nasser" <fnasser@redhat.com>
+cc: "Peter Eisentraut" <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>
+X-OriginalArrivalTime: 23 Jan 2002 09:11:13.0579 (UTC) FILETIME=[E7DEA7B0:01C1A3ED]
+Content-Transfer-Encoding: 8bit
+X-MIME-Autoconverted: from quoted-printable to 8bit by postgresql.org id g0N9CTm55809
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+
+> > Switches set to historical:
+>
+> > schema search path = (user's own schema, "any" schema, postgres)
+>
+> > [ default creation schema = user's own schema ]
+>
+> > The searching in "any" schema (i.e., any owner) will let will find
+> > things that where defined the way they are today, i.e., possibly
+> > by several different users.
+>
+> No, it won't, because nothing will ever get put into that schema.
+> (At least not by existing pg_dump scripts, which are the things that
+> really need to see the historical behavior.) The
+> default-creation-schema variable has got to point at any/public/
+> whatever-we-call it, or you do not have the historical behavior.
+
+When configured for historical behavior would need to:
+1. have search path: temp, any, system
+2. guard against duplicate table names across all schemas (except temp schema)
+
+Or are you thinking about a per session behavior ?
+I would rather envision a per database behavior.
+
+Maybe the easy way out would be a "default creation schema" property for
+each user, that would default to the username. If you want everything in one
+schema simply alter the users.
+
+Andreas
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18010=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 05:03:10 2002
+Return-path: <pgsql-hackers-owner+M18010=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NA39U22271
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 05:03:09 -0500 (EST)
+Received: (qmail 70600 invoked by alias); 23 Jan 2002 10:03:04 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 10:03:04 -0000
+Received: from smxsat1.smxs.net (smxsat1.smxs.net [213.150.10.1])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0N9xNl69597
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 04:59:24 -0500 (EST)
+ (envelope-from ZeugswetterA@spardat.at)
+Received: from m01x1.s-mxs.net [10.3.55.201]
+ by smxsat1.smxs.net
+ with XWall v3.18f ;
+ Wed, 23 Jan 2002 11:00:47 +0100
+Received: from m0103.s-mxs.net [10.3.55.3]
+ by m01x1.s-mxs.net
+ with XWall v3.18a ;
+ Wed, 23 Jan 2002 10:59:19 +0100
+Received: from m0114.s-mxs.net ([10.3.55.14]) by m0103.s-mxs.net with Microsoft SMTPSVC(5.0.2195.2966);
+ Wed, 23 Jan 2002 10:59:18 +0100
+X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3
+content-class: urn:content-classes:message
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Wed, 23 Jan 2002 10:59:18 +0100
+Message-ID: <46C15C39FEB2C44BA555E356FBCD6FA42128DA@m0114.s-mxs.net>
+Thread-Topic: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Thread-Index: AcGj1QtRzBpAfJVfQjCydtlooB5fgwAHyaDQ
+From: "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
+To: "Peter Eisentraut" <peter_e@gmx.net>, "Tom Lane" <tgl@sss.pgh.pa.us>
+cc: "Bill Studenmund" <wrstuden@netbsd.org>, <pgsql-hackers@postgresql.org>
+X-OriginalArrivalTime: 23 Jan 2002 09:59:18.0969 (UTC) FILETIME=[9FB23A90:01C1A3F4]
+Content-Transfer-Encoding: 8bit
+X-MIME-Autoconverted: from quoted-printable to 8bit by postgresql.org id g0NA2d170062
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+
+> I don't buy that. If all you're looking for is preserving
+>
+> foo.bar <==> bar(foo)
+>
+> for compatibility, then you can simply say that "bar" cannot be
+> schema-qualified in the left form (so it needs to live in the current or
+> the default schema). We currently only have one default schema, so that's
+> backward compatible. I think this syntax is a mistake, so I don't feel
+> compelled to provide more than backwards compatibility.
+
+This syntax is actually my favorite :-) I use it heavily for calculated
+columns. I don't feel it is a mistake.
+
+Andreas
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18012=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 06:13:40 2002
+Return-path: <pgsql-hackers-owner+M18012=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NBDdU21327
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 06:13:39 -0500 (EST)
+Received: (qmail 81930 invoked by alias); 23 Jan 2002 11:13:12 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 11:13:12 -0000
+Received: from mail_exchange.westcountrypublications.co.uk ([195.171.163.135])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NB70l80597
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 06:07:02 -0500 (EST)
+ (envelope-from SHenshall@westcountrypublications.co.uk)
+Received: by MAIL_EXCHANGE with Internet Mail Service (5.5.2650.21)
+ id <DKQFH0AY>; Wed, 23 Jan 2002 11:03:18 -0000
+Message-ID: <E2870D8CE1CCD311BAF50008C71EDE8E01F747A1@MAIL_EXCHANGE>
+From: "Henshall, Stuart - WCP" <SHenshall@westcountrypublications.co.uk>
+To: "'Tom Lane'" <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>
+cc: Fernando Nasser <fnasser@redhat.com>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Wed, 23 Jan 2002 11:03:16 -0000
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2650.21)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+
+
+> -----Original Message-----
+> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
+> Sent: 23 January 2002 00:02
+> To: Peter Eisentraut
+> Cc: Fernando Nasser; pgsql-hackers@postgresql.org
+> Subject: Re: RFD: schemas and different kinds of Postgres objects
+>
+>
+> Peter Eisentraut <peter_e@gmx.net> writes:
+> > Tom Lane writes:
+> >> No, it doesn't work the same as today, because in that
+> implementation
+> >> both A and B can create the same tablename without
+> complaint. It then
+> >> becomes very unclear which instance other people will get
+> (unless your
+> >> "any" placeholder somehow implies a search order).
+>
+> > The "search any schema" switch is only intended for use with legacy
+> > databases, where duplicate names don't occur anyway.
+>
+> That's a mighty narrow view of the world. Do you think that
+> people had
+> better convert to SQL schemas before they ever again create a table?
+> The fact is that ordinary non-schema-aware usage will
+> certainly lead to
+> the above scenario.
+>
+> > that the switch probably doesn't make a whole lot of sense.
+> However, to
+> > get reproduceable behaviour anyway we can just define a
+> search order, such
+> > as by schema name.
+>
+> Or say that you get an "ambiguous reference" error if there
+> is more than
+> one possible candidate in the "any" namespace. (Although
+> that opens the
+> door for innocent creation of a table foo by one user to break other
+> people's formerly-working queries that reference some other foo.)
+> Bottom line for me is that this is an untried concept. I think the
+> concept of an "any" searchlist entry is risky enough that I don't much
+> want to hang the entire usability of the implementation on the
+> assumption that we won't find any fatal problems with "any".
+>
+>
+> However, the argument over whether SQL92's concept of ownership should
+> be taken as gospel is not really the argument I wanted to have in this
+> thread. Is it possible to go back to the original point concerning
+> whether there should be different namespace boundaries for different
+> types of objects? You aren't going to avoid those issues by
+> saying that
+> namespace == ownership is good enough.
+>
+> I'm particularly troubled by the idea of trying to apply this "any"
+> lookup concept to resolution of overloaded operators and functions.
+> Suppose I have a reference func(type1,type2) that I'm trying
+> to resolve,
+> and I have an inexact match (one requiring coercion) in my own schema.
+> Do I look to the "any" schema to see if there are better matches?
+> If so, what happens if the "any" schema contains multiple
+> possibilities
+> with identical signatures (presumably created by different
+> users)? ISTM
+> this will positively guarantee a resolution failure, since there's no
+> way for the resolver to prefer one over another. Thus, by creating
+> a "func(foo,bar)" function --- quite legally --- JRandomLuser might
+> break other people's formerly working queries that use other functions
+> named func. Although it's possible for this to happen now, it'll be
+> a lot more surprising if JRandomLuser thinks that his functions live
+> in his own private schema namespace.
+>
+> I'm thinking that the overloading concept is not going to play well
+> at all with multiple namespaces for functions or operators, and that
+> we'd be best off to say that there is only one namespace (per
+> database)
+> for these things.
+>
+> regards, tom lane
+>
+Could you just have a general rule of search in order of age (by OID)? This
+should prevent changes to existing operation when new definitions come along
+(unless new definition is in new own schema or default).
+Cheers,
+- Stuart
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18024=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 10:13:55 2002
+Return-path: <pgsql-hackers-owner+M18024=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NFDsU06028
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 10:13:54 -0500 (EST)
+Received: (qmail 39657 invoked by alias); 23 Jan 2002 15:13:28 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 15:13:28 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NF1dl35283
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 10:01:40 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NExef02480;
+ Wed, 23 Jan 2002 09:59:40 -0500 (EST)
+To: "Henshall, Stuart - WCP" <SHenshall@westcountrypublications.co.uk>
+cc: Peter Eisentraut <peter_e@gmx.net>, Fernando Nasser <fnasser@redhat.com>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <E2870D8CE1CCD311BAF50008C71EDE8E01F747A1@MAIL_EXCHANGE>
+References: <E2870D8CE1CCD311BAF50008C71EDE8E01F747A1@MAIL_EXCHANGE>
+Comments: In-reply-to "Henshall, Stuart - WCP" <SHenshall@westcountrypublications.co.uk>
+ message dated "Wed, 23 Jan 2002 11:03:16 +0000"
+Date: Wed, 23 Jan 2002 09:59:39 -0500
+Message-ID: <2477.1011797979@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+"Henshall, Stuart - WCP" <SHenshall@westcountrypublications.co.uk> writes:
+> Could you just have a general rule of search in order of age (by OID)?
+
+No, unless you plan to abandon the whole notion of resolving ambiguous
+operator/function calls. (Which'd cut down our TODO list a good bit ;-)
+but I don't think users would be happy...) OID/age ordering generally
+has little to do with reasonable resolution behavior.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18026=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 10:33:35 2002
+Return-path: <pgsql-hackers-owner+M18026=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NFXYU07736
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 10:33:34 -0500 (EST)
+Received: (qmail 44416 invoked by alias); 23 Jan 2002 15:33:29 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 15:33:29 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NFVfl43926
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 10:31:41 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NFVQf02603;
+ Wed, 23 Jan 2002 10:31:26 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: pgsql-hackers@postgresql.org, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201222042400.686-100000@peter.localdomain>
+References: <Pine.LNX.4.30.0201222042400.686-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+ message dated "Tue, 22 Jan 2002 20:52:14 -0500"
+Date: Wed, 23 Jan 2002 10:31:25 -0500
+Message-ID: <2600.1011799885@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> OK, I can accept that. But then I want to get back at my original point,
+> namely that all database objects (except users and groups) should be in
+> schemas. This is also cleaner, simpler, and more flexible. There is
+> clearly demand for schema-local functions. So I think that designing this
+> system from the premise that a schema-qualified operator call will look
+> strange is the wrong end to start at.
+
+Okay, a fair point --- or you could have used my own argument against
+me: there's nothing wrong with designing a general mechanism and then
+choosing not to expose all of the functionality. So let's assume that
+functions and operators live in namespaces, and that we have some kind
+of search path across multiple namespaces for use when an unqualified
+name is given.
+
+Now, how is that going to play with resolution of ambiguous calls?
+
+The most reasonable semantics I can think of are to collect all the
+potential matches (matching op/func name) across all the searchable
+namespaces, discarding only those that have exactly the same signature
+as one in a prior namespace. Thus, eg, plus(int4,int4) in an earlier
+namespace would hide plus(int4,int4) in a later namespace in the search
+path, but it wouldn't hide plus(int8,int8). After we've collected all
+the visible alternatives, do resolution based on argument types the same
+way as we do now.
+
+The only alternative semantics that seem defensible at all are to stop
+at the first namespace that contains any matching-by-name op or func,
+and do resolution using only the candidates available in that namespace.
+That strikes me as not a good idea; for example, a user who defines a
+"+" operator in his own schema for his own datatype would be quite
+unhappy to find it masking all the "+" operators in the system schema.
+
+I believe that this behavior would be fairly reasonable if our
+backward-compatibility feature consists of a "public" namespace
+that all users can write in. OTOH I think it would not play at all
+well if we use Fernando's idea of an "any" wildcard in the search
+path. (1) Imagine the case where we have some users who are using
+the backward-compatible behavior while others have set up private
+namespaces. If Joe SmartGuy creates a "+" operator in his private
+namespace, it'll be visible to people using the "any" wildcard and
+possibly cause resolution-ambiguity failures for them, even though
+Joe deliberately did what he should do to avoid that. (2) "any"
+creates the problem of resolving multiple functions with identical
+signatures in different namespaces, with no reasonable rule for
+making the choice.
+
+So I'm still of the opinion that an "any" wildcard is too risky a
+solution for our backwards-compatibility problem.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18030=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 11:35:41 2002
+Return-path: <pgsql-hackers-owner+M18030=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NGZeU13512
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 11:35:40 -0500 (EST)
+Received: (qmail 91981 invoked by alias); 23 Jan 2002 16:34:06 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 16:34:06 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NFjNl67457
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 10:45:58 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NFiYf02680;
+ Wed, 23 Jan 2002 10:44:34 -0500 (EST)
+To: "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
+cc: "Fernando Nasser" <fnasser@redhat.com>,
+ "Peter Eisentraut" <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <46C15C39FEB2C44BA555E356FBCD6FA41EB4C2@m0114.s-mxs.net>
+References: <46C15C39FEB2C44BA555E356FBCD6FA41EB4C2@m0114.s-mxs.net>
+Comments: In-reply-to "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
+ message dated "Wed, 23 Jan 2002 10:11:13 +0100"
+Date: Wed, 23 Jan 2002 10:44:34 -0500
+Message-ID: <2677.1011800674@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: ORr
+
+"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
+> When configured for historical behavior would need to:
+> 1. have search path: temp, any, system
+> 2. guard against duplicate table names across all schemas (except temp schema)
+
+This would be a *whole* lot simpler if we forgot the notion of "any"
+and made the search order look like
+
+ (temp, private, public, system)
+
+where the public namespace is world-writable but the private per-user
+ones are (typically at least) not.
+
+It occurs to me that we can get both backward-compatible and SQL92
+semantics with this same search path; the only thing that needs to
+be different in the two cases is whether the default place to create
+objects is your private schema or the public one. If you don't ever
+use your private schema then it doesn't matter if it's on the search
+path or not. I would still prefer that the search path be a settable
+option, since a paranoid person might well wish to not have public in
+his path at all ... but the default could be as-above.
+
+> Or are you thinking about a per session behavior ?
+> I would rather envision a per database behavior.
+> Maybe the easy way out would be a "default creation schema" property for
+> each user, that would default to the username. If you want everything in one
+> schema simply alter the users.
+
+I hadn't really gotten to the point of thinking about exactly what and
+where the control knobs should be. I suspect you are right that we will
+want the default behavior to be selectable on a per-user or per-database
+basis, which seems to eliminate the option of using GUC (at least in its
+current form). We could easily add a field to pg_shadow or pg_database
+respectively to determine the default behavior. It'd be nice though if
+the behavior could be changed after connection by a SET statement, which
+would be lots easier if the setting were GUC-controlled. Peter, you see
+any way to resolve that?
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18034=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 11:50:22 2002
+Return-path: <pgsql-hackers-owner+M18034=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NGoLU15032
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 11:50:21 -0500 (EST)
+Received: (qmail 1716 invoked by alias); 23 Jan 2002 16:50:05 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 16:50:05 -0000
+Received: from megazone.bigpanda.com (megazone.bigpanda.com [63.150.15.178])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NGZgl93351
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 11:35:42 -0500 (EST)
+ (envelope-from sszabo@megazone23.bigpanda.com)
+Received: by megazone.bigpanda.com (Postfix, from userid 1001)
+ id ABA27D5E5; Wed, 23 Jan 2002 08:35:47 -0800 (PST)
+Received: from localhost (localhost [127.0.0.1])
+ by megazone.bigpanda.com (Postfix) with ESMTP
+ id 9D3E55BF5; Wed, 23 Jan 2002 08:35:47 -0800 (PST)
+Date: Wed, 23 Jan 2002 08:35:47 -0800 (PST)
+From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <2600.1011799885@sss.pgh.pa.us>
+Message-ID: <20020123083152.W18169-100000@megazone23.bigpanda.com>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> The only alternative semantics that seem defensible at all are to stop
+> at the first namespace that contains any matching-by-name op or func,
+> and do resolution using only the candidates available in that namespace.
+> That strikes me as not a good idea; for example, a user who defines a
+> "+" operator in his own schema for his own datatype would be quite
+> unhappy to find it masking all the "+" operators in the system schema.
+>
+> I believe that this behavior would be fairly reasonable if our
+> backward-compatibility feature consists of a "public" namespace
+> that all users can write in. OTOH I think it would not play at all
+> well if we use Fernando's idea of an "any" wildcard in the search
+> path. (1) Imagine the case where we have some users who are using
+> the backward-compatible behavior while others have set up private
+> namespaces. If Joe SmartGuy creates a "+" operator in his private
+> namespace, it'll be visible to people using the "any" wildcard and
+> possibly cause resolution-ambiguity failures for them, even though
+> Joe deliberately did what he should do to avoid that. (2) "any"
+> creates the problem of resolving multiple functions with identical
+> signatures in different namespaces, with no reasonable rule for
+> making the choice.
+
+Wouldn't it make sense to prefer operators/functions earlier in the search
+path for resolving ambiguity. So if you had plus(int4, int4) in my
+schema and plus(int8, int8) in system, and they'd otherwise cause an
+ambiguity failure for the query, use the plus(int4, int4) on mine. It
+seems not too far from having the search path shadow later exact matches.
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18041=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 12:18:50 2002
+Return-path: <pgsql-hackers-owner+M18041=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NHInU20563
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 12:18:49 -0500 (EST)
+Received: (qmail 17817 invoked by alias); 23 Jan 2002 17:14:34 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 17:14:34 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NHC6l15615
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 12:12:06 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NGkwf03162;
+ Wed, 23 Jan 2002 11:46:58 -0500 (EST)
+To: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <20020123083152.W18169-100000@megazone23.bigpanda.com>
+References: <20020123083152.W18169-100000@megazone23.bigpanda.com>
+Comments: In-reply-to Stephan Szabo <sszabo@megazone23.bigpanda.com>
+ message dated "Wed, 23 Jan 2002 08:35:47 -0800"
+Date: Wed, 23 Jan 2002 11:46:58 -0500
+Message-ID: <3159.1011804418@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
+> Wouldn't it make sense to prefer operators/functions earlier in the search
+> path for resolving ambiguity. So if you had plus(int4, int4) in my
+> schema and plus(int8, int8) in system, and they'd otherwise cause an
+> ambiguity failure for the query, use the plus(int4, int4) on mine. It
+> seems not too far from having the search path shadow later exact matches.
+
+Given the complexity of the resolution rules (cf.
+http://developer.postgresql.org/docs/postgres/typeconv.html),
+it's not clear that we can determine exactly which "later" entry ought
+to be blamed for causing a resolution failure. I'd be interested to
+hear Lockhart's opinion on this --- but my gut feeling is we don't
+want to go there. The resolution rules are already complicated enough,
+and I think layering an additional mechanism like that onto them might
+make the behavior totally unpredictable.
+
+Another problem is that this would probably cause earlier namespace
+entries to be over-preferred. For example, suppose that the system
+namespace has plus(int4,int4) and plus(int8,int8) and you choose to
+define plus(int4,int8) locally. I believe you'd suddenly find yours
+being used for *any* cross-datatype addition, including cases that
+had nothing obvious to do with either int4 or int8 ...
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18040=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 12:18:51 2002
+Return-path: <pgsql-hackers-owner+M18040=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NHIoU20594
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 12:18:51 -0500 (EST)
+Received: (qmail 17832 invoked by alias); 23 Jan 2002 17:14:34 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 17:14:34 -0000
+Received: from mx1.relaypoint.net (ns2.generalbroadband.com [64.32.62.5])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NGu6l05540
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 11:56:06 -0500 (EST)
+ (envelope-from jconway@cox.net)
+Received: from [206.19.64.3] (account jconway@wwc.com HELO cox.net)
+ by mx1.relaypoint.net (CommuniGate Pro SMTP 3.4.8)
+ with ESMTP id 2510369; Wed, 23 Jan 2002 08:56:10 -0800
+Message-ID: <3C4EEB2F.8040803@cox.net>
+Date: Wed, 23 Jan 2002 08:56:15 -0800
+From: "Joe Conway (wwc)" <jconway@cox.net>
+User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.6+) Gecko/20011219
+X-Accept-Language: en-us
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <46C15C39FEB2C44BA555E356FBCD6FA41EB4C2@m0114.s-mxs.net> <2677.1011800674@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii; format=flowed
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+
+>
+> This would be a *whole* lot simpler if we forgot the notion of "any"
+> and made the search order look like
+>
+> (temp, private, public, system)
+>
+> where the public namespace is world-writable but the private per-user
+> ones are (typically at least) not.
+>
+> It occurs to me that we can get both backward-compatible and SQL92
+> semantics with this same search path; the only thing that needs to
+> be different in the two cases is whether the default place to create
+> objects is your private schema or the public one. If you don't ever
+> use your private schema then it doesn't matter if it's on the search
+> path or not. I would still prefer that the search path be a settable
+> option, since a paranoid person might well wish to not have public in
+> his path at all ... but the default could be as-above.
+>
+
+
+I think it would be desirable to be able to restrict users from
+"publishing" objects into the public schema. As an admin, I'd like some
+control over the objects in this namespace. Hand-in-hand with this would
+be the ability for the superuser to move (or "promote") an object from a
+private schema to the public one. This would allow a user to develop
+their own objects without interfering with others, but then make it
+public with the superuser's assistance.
+
+The search path you suggest above would then lead to the behavior that
+unqualified references to objects will see my own objects before the
+public ones, and other people's private objects must be explicitly
+qualified.
+
+Joe
+
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18042=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 12:18:45 2002
+Return-path: <pgsql-hackers-owner+M18042=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NHIiU20532
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 12:18:45 -0500 (EST)
+Received: (qmail 17765 invoked by alias); 23 Jan 2002 17:14:31 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 17:14:31 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NH1Tl11512
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 12:01:29 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NH0vf03329;
+ Wed, 23 Jan 2002 12:00:57 -0500 (EST)
+To: "Joe Conway (wwc)" <jconway@cox.net>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C4EEB2F.8040803@cox.net>
+References: <46C15C39FEB2C44BA555E356FBCD6FA41EB4C2@m0114.s-mxs.net> <2677.1011800674@sss.pgh.pa.us> <3C4EEB2F.8040803@cox.net>
+Comments: In-reply-to "Joe Conway (wwc)" <jconway@cox.net>
+ message dated "Wed, 23 Jan 2002 08:56:15 -0800"
+Date: Wed, 23 Jan 2002 12:00:56 -0500
+Message-ID: <3326.1011805256@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+"Joe Conway (wwc)" <jconway@cox.net> writes:
+> I think it would be desirable to be able to restrict users from
+> "publishing" objects into the public schema.
+
+Sure. I'm envisioning that namespaces will have ACLs --- that's what
+will keep private namespaces private. So, while public would by default
+be world-writable (at least in the backwards-compatibility case),
+there'd be nothing stopping you from marking it as read-only to some
+users.
+
+Come to think of it, that's still another reason not to have an "any"
+wildcard: there's no way to put any restrictions on what appears in
+such a namespace.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18043=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 12:22:29 2002
+Return-path: <pgsql-hackers-owner+M18043=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NHMSU21118
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 12:22:28 -0500 (EST)
+Received: (qmail 17648 invoked by alias); 23 Jan 2002 17:14:27 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 17:14:27 -0000
+Received: from megazone.bigpanda.com (megazone.bigpanda.com [63.150.15.178])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NH9Ul15308
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 12:09:30 -0500 (EST)
+ (envelope-from sszabo@megazone23.bigpanda.com)
+Received: by megazone.bigpanda.com (Postfix, from userid 1001)
+ id E7DB9D5E5; Wed, 23 Jan 2002 09:09:35 -0800 (PST)
+Received: from localhost (localhost [127.0.0.1])
+ by megazone.bigpanda.com (Postfix) with ESMTP
+ id DD82F5BF5; Wed, 23 Jan 2002 09:09:35 -0800 (PST)
+Date: Wed, 23 Jan 2002 09:09:35 -0800 (PST)
+From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3159.1011804418@sss.pgh.pa.us>
+Message-ID: <20020123085959.U18688-100000@megazone23.bigpanda.com>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
+> > Wouldn't it make sense to prefer operators/functions earlier in the search
+> > path for resolving ambiguity. So if you had plus(int4, int4) in my
+> > schema and plus(int8, int8) in system, and they'd otherwise cause an
+> > ambiguity failure for the query, use the plus(int4, int4) on mine. It
+> > seems not too far from having the search path shadow later exact matches.
+>
+> Given the complexity of the resolution rules (cf.
+> http://developer.postgresql.org/docs/postgres/typeconv.html),
+> it's not clear that we can determine exactly which "later" entry ought
+> to be blamed for causing a resolution failure. I'd be interested to
+> hear Lockhart's opinion on this --- but my gut feeling is we don't
+> want to go there. The resolution rules are already complicated enough,
+> and I think layering an additional mechanism like that onto them might
+> make the behavior totally unpredictable.
+
+> Another problem is that this would probably cause earlier namespace
+> entries to be over-preferred. For example, suppose that the system
+> namespace has plus(int4,int4) and plus(int8,int8) and you choose to
+> define plus(int4,int8) locally. I believe you'd suddenly find yours
+> being used for *any* cross-datatype addition, including cases that
+> had nothing obvious to do with either int4 or int8 ...
+
+Well, what I'd been thinking of would have been similar to anywhere it
+says "If only one candidate matches", becoming "If the earliest search
+path entry with at least one candidate matching has only one
+matching candidate ..." But that would cause the plus(int4, int8) to get
+used in any cross-datatype case that could coerce and didn't have a
+stronger match (ie, one of the arguments exactly matching a plus argument
+per b or c) so that's probably not good enough.
+
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18058=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 14:45:20 2002
+Return-path: <pgsql-hackers-owner+M18058=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NJjJU03694
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 14:45:19 -0500 (EST)
+Received: (qmail 89208 invoked by alias); 23 Jan 2002 19:43:44 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 19:43:44 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NJd7l87615
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 14:39:07 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 11757 invoked by uid 1130); 23 Jan 2002 19:39:07 -0000
+Date: Wed, 23 Jan 2002 11:34:23 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <12239.1011661590@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201221710360.5119-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Mon, 21 Jan 2002, Tom Lane wrote:
+
+> Peter Eisentraut <peter_e@gmx.net> writes:
+> > Remember that a schema is a named representation of ownership, so anything
+> > that can be owned must be in a schema. (Unless you want to invent a
+> > parallel universe for a different kind of ownership, which would be
+> > incredibly confusing.)
+>
+> I don't buy that premise. It's true that SQL92 equates ownership of a
+> schema with ownership of the objects therein, but AFAICS we have no hope
+> of being forward-compatible with existing database setups (wherein there
+> can be multiple tables of different ownership all in a single namespace)
+> if we don't allow varying ownership within a schema. I think we can
+> arrange things so that we are upward compatible with both SQL92 and
+> the old way. Haven't worked out details yet though.
+
+Yes we most certianly can! :-)
+
+One of the things schemas have to support is essentially a PATH specifier.
+So all we need to do is have all of the schemas created in a new DB have
+path specifiers pulling in all of the other schemas. Thus we can make a
+schema-savy system act as if it has only one namespace.
+
+Back when Zembu was paying me to work on this, I envisioned a script or
+tool you'd feed a DB dump, and it would do the schema fixup, including
+adding PATH directives to all schemas, so they all see everything.
+
+Since you have to pg_dump when updating, all this adds is running one tool
+during an upgrade. And then existing apps would work. :-)
+
+Take care,
+
+Bill
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18059=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 15:15:34 2002
+Return-path: <pgsql-hackers-owner+M18059=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NKFXU06599
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 15:15:34 -0500 (EST)
+Received: (qmail 357 invoked by alias); 23 Jan 2002 20:13:55 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 20:13:55 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NJvXl94681
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 14:57:33 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NJvEf05081;
+ Wed, 23 Jan 2002 14:57:14 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201221710360.5119-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201221710360.5119-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Wed, 23 Jan 2002 11:34:23 -0800"
+Date: Wed, 23 Jan 2002 14:57:14 -0500
+Message-ID: <5078.1011815834@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+> One of the things schemas have to support is essentially a PATH specifier.
+
+Yes, but...
+
+> So all we need to do is have all of the schemas created in a new DB have
+> path specifiers pulling in all of the other schemas. Thus we can make a
+> schema-savy system act as if it has only one namespace.
+
+When you create a new user, do all those path specifiers for the
+existing users magically update themselves? Seems like maintenance
+would be a pain.
+
+Fernando's "any" idea is probably a cleaner way to handle it if we
+wanted to do things like that. But I still think it'll be safer and
+more controllable if we provide a "public" namespace instead; see
+followup discussions.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18061=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 16:04:22 2002
+Return-path: <pgsql-hackers-owner+M18061=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NL4LU11265
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 16:04:21 -0500 (EST)
+Received: (qmail 21187 invoked by alias); 23 Jan 2002 21:03:47 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 21:03:47 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NKkVl14074
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 15:46:32 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 21707 invoked by uid 1130); 23 Jan 2002 20:46:32 -0000
+Date: Wed, 23 Jan 2002 12:41:48 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <648.1011762477@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231134290.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > Why not? What's wrong with either schema.foo.function (==>
+> > function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+>
+> Neither is wrong in isolation, but how do you tell the difference?
+> More to the point, given input x.y.z, how do you tell which component
+> is what?
+
+See below.
+
+> > Tables and functions can't have the same names as schemas,
+>
+> News to me. Where is that written on stone tablets? Even if that's
+
+I'm still trying to find the quote, but I found it a few months ago. I'm
+looking in SQL99, which is 1100+ pages for section 2. :-)
+
+> considered an acceptable limitation from a purely functional point of
+> view, I don't like using it to disambiguate input. The error messages
+> you'll get from incorrect input to an implementation that depends on
+> that to disambiguate cases will not be very helpful.
+
+?? Depends on how we do it. As I see it, we have four cases. In the
+x.y.z.p.q, we have:
+
+1) No table name, but a function name. It's a function call.
+
+2) A table name, but no function name. It's a table reference.
+
+3) Both a table name & function name, and the function is first. I think
+this case is an error (I don't think we support function.foo ==
+function(foo))
+
+4) Both a table name & function name, and the table is first. This is
+foo.function.
+
+Ok, there is a fifth case, no function nor table names, which is an error.
+
+> > Actually functions do have to be schema local. It's in the spec (don't
+> > have exactly where with me).
+>
+> (A) I don't believe that; please cite chapter and verse; (B) even if
+
+Peter got to that one first.
+
+> SQL92 thinks that's okay, we can't do it that way because of
+> backwards-compatibility issues.
+
+Why do backwards-compatability issues keep us from doing it?
+
+Yes, I understand we have apps now with different users owning things
+(tables, functions) which they all can access, just like they were in one
+unified name space. With real schemas, they are in differen namespaces.
+But as long as the routines, tables, triggers & such in each schema can
+find things in the other schemas as if they were in one namespace, where
+is the problem? We just have the app gain PATH directives to path in all
+the other schemas.
+
+The app runs, even though there are different schemas involved. Where is
+the problem?
+
+> > My vote would be to make them schema-specific. As Peter pointed out,
+> > schemas are how you own things,
+>
+> Sorry, but this line of argument is trying to assume the very point in
+> dispute.
+
+When you started this thread, you said you were thinking about
+"implementing SQL schemas." Are these "SQL schemas" going to follow the
+spec or not? SQL'99 is rather clear that ownership happens at the schema
+level. Peter spent quite a lot of time last October pounding that into my
+head, and after I looked at the spec, I found he was 100% correct.
+
+If these schemas are to follow the standards, ownership happens at the
+schema level. If ownership happens elsewhere, whatever we're doing is not
+following the standard. Unfortunatly it's that cut & dried. So why should
+we call them "SQL schemas" if we aren't following the SQL spec?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18061=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 16:04:22 2002
+Return-path: <pgsql-hackers-owner+M18061=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NL4LU11264
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 16:04:21 -0500 (EST)
+Received: (qmail 21192 invoked by alias); 23 Jan 2002 21:03:48 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 21:03:48 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NKvHl19546
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 15:57:17 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NKvGf08536;
+ Wed, 23 Jan 2002 15:57:16 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231134290.7050-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201231134290.7050-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Wed, 23 Jan 2002 12:41:48 -0800"
+Date: Wed, 23 Jan 2002 15:57:16 -0500
+Message-ID: <8533.1011819436@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+> On Wed, 23 Jan 2002, Tom Lane wrote:
+>> Bill Studenmund <wrstuden@netbsd.org> writes:
+> Why not? What's wrong with either schema.foo.function (==>
+> function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+>>
+>> Neither is wrong in isolation, but how do you tell the difference?
+>> More to the point, given input x.y.z, how do you tell which component
+>> is what?
+
+> ?? Depends on how we do it. As I see it, we have four cases. In the
+> x.y.z.p.q, we have:
+
+> 1) No table name, but a function name. It's a function call.
+
+> 2) A table name, but no function name. It's a table reference.
+
+No, you're missing the point. Which of x,y,z,p,q is the name we
+are going to test to see if it is a table or function? And which
+of these names is a schema name --- if you don't even know that,
+it's hard to argue that checking to see if some name is known is
+a well-defined operation.
+
+> When you started this thread, you said you were thinking about
+> "implementing SQL schemas." Are these "SQL schemas" going to follow the
+> spec or not?
+
+If you use only the SQL-defined operations, after setting up any
+configuration variables we may invent in the way we will document as
+necessary for SQL-compatible behavior, then you will get SQL-compatible
+behavior. I do not think that precludes having an underlying
+implementation that sees the world differently than SQL does and
+supports non-SQL behaviors too. (For that matter, I'm sure there is
+text somewhere in the spec that points out that the spec intends to
+define user-visible behavior, not implementation.)
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18062=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 16:14:05 2002
+Return-path: <pgsql-hackers-owner+M18062=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NLE4U12279
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 16:14:04 -0500 (EST)
+Received: (qmail 25791 invoked by alias); 23 Jan 2002 21:13:41 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 21:13:41 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NL3Jl20482
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 16:03:19 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 27532 invoked by uid 1130); 23 Jan 2002 21:03:16 -0000
+Date: Wed, 23 Jan 2002 12:58:33 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <5078.1011815834@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231242120.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > One of the things schemas have to support is essentially a PATH specifier.
+>
+> Yes, but...
+>
+> > So all we need to do is have all of the schemas created in a new DB have
+> > path specifiers pulling in all of the other schemas. Thus we can make a
+> > schema-savy system act as if it has only one namespace.
+>
+> When you create a new user, do all those path specifiers for the
+> existing users magically update themselves? Seems like maintenance
+> would be a pain.
+
+No, they don't. But why should they? Why should they need to?
+
+Either we're migrating an existing app, for which adding PATH directives
+with a helper program before restore works, or we're making a new app. If
+you're designing an app for a schema-savy system, you need to think about
+schemas.
+
+> Fernando's "any" idea is probably a cleaner way to handle it if we
+> wanted to do things like that. But I still think it'll be safer and
+> more controllable if we provide a "public" namespace instead; see
+> followup discussions.
+
+Why? Why is it needed? What would public let you do that PATH and ACLs
+wouldn't?
+
+The only reason I can see it's needed is so that people can make new apps
+for a schema-savy PostgreSQL while ignoring the schemas. That strikes me
+as bad. I agree that schemas shouldn't interfeer with things, but to let
+folks just blow them off seems equally bad.
+
+Also, it wouldn't be SQL'99 schemas. It can still be done, but it's
+solving a problem that the other SQL'99 databases don't seem to have.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18065=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 16:33:45 2002
+Return-path: <pgsql-hackers-owner+M18065=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NLXiU14151
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 16:33:44 -0500 (EST)
+Received: (qmail 32278 invoked by alias); 23 Jan 2002 21:33:41 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 21:33:41 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NLKGl28778
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 16:20:16 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 665 invoked by uid 1130); 23 Jan 2002 21:20:17 -0000
+Date: Wed, 23 Jan 2002 13:15:33 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <8533.1011819436@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231259150.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > On Wed, 23 Jan 2002, Tom Lane wrote:
+> >> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > Why not? What's wrong with either schema.foo.function (==>
+> > function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+> >>
+> >> Neither is wrong in isolation, but how do you tell the difference?
+> >> More to the point, given input x.y.z, how do you tell which component
+> >> is what?
+>
+> > ?? Depends on how we do it. As I see it, we have four cases. In the
+> > x.y.z.p.q, we have:
+>
+> > 1) No table name, but a function name. It's a function call.
+>
+> > 2) A table name, but no function name. It's a table reference.
+>
+> No, you're missing the point. Which of x,y,z,p,q is the name we
+> are going to test to see if it is a table or function? And which
+> of these names is a schema name --- if you don't even know that,
+> it's hard to argue that checking to see if some name is known is
+> a well-defined operation.
+
+No, I'm not. :-) You test enough of them to figure out what case you have.
+Yes, it might be a bit of work, but it's doable.
+
+Actually, it's not that hard. In foo.funcname, do we support anything
+AFTER the funcname? I don't think so. If there were a parenthesis, then we
+have a function call. If it's an operator or something else, we have
+either a table reference, or a foo.funcname function call. So all we have
+to do is see if p.q (last two elements) is a schema.function, or of q is a
+function pathed into our current schema. If yes, we have foo.function. If
+not, then we have some table reference.
+
+> > When you started this thread, you said you were thinking about
+> > "implementing SQL schemas." Are these "SQL schemas" going to follow the
+> > spec or not?
+>
+> If you use only the SQL-defined operations, after setting up any
+> configuration variables we may invent in the way we will document as
+> necessary for SQL-compatible behavior, then you will get SQL-compatible
+> behavior. I do not think that precludes having an underlying
+> implementation that sees the world differently than SQL does and
+> supports non-SQL behaviors too. (For that matter, I'm sure there is
+> text somewhere in the spec that points out that the spec intends to
+> define user-visible behavior, not implementation.)
+
+While I agree in principle, that quote is from talking about ownership. I
+don't see how we can gloss over ownership. :-)
+
+Also, why support two different behaviors? That means 1) there's code
+bloat since the backend has to support both. 2) Support is harder as major
+DB behaviors will change depending on these settings. 3) I still haven't
+seen anything this variant behavior would do that can't be done with
+schema paths and access control lists, other than it would let people keep
+thinking about things as they do now.
+
+That latter reason doesn't strike me as a good one. Yes, it will take some
+getting used to to wrap minds around schemas, but once done, I don't think
+it will be that hard. Yes, the documentation will need work, and the
+tutorial will need changing (And Bruce will need to release a new edition
+of his book :-) , but once that's done, I don't think working with real
+schemas will be that hard. So why not just do things right from the
+begining?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18064=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 16:23:32 2002
+Return-path: <pgsql-hackers-owner+M18064=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NLNVU13386
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 16:23:31 -0500 (EST)
+Received: (qmail 29442 invoked by alias); 23 Jan 2002 21:23:26 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 21:23:26 -0000
+Received: from stubee.d2hosting.net (d2hosting.net [66.70.41.160])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NLGVl28360
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 16:16:31 -0500 (EST)
+ (envelope-from tswan-lst@ics.olemiss.edu)
+Received: from ics.olemiss.edu (adsl-81-102-77.jan.bellsouth.net [65.81.102.77])
+ by stubee.d2hosting.net (8.11.6/linuxconf) with ESMTP id g0NLGLT00962;
+ Wed, 23 Jan 2002 15:16:22 -0600
+Message-ID: <3C4F2824.90709@ics.olemiss.edu>
+Date: Wed, 23 Jan 2002 15:16:20 -0600
+From: Thomas Swan <tswan-lst@ics.olemiss.edu>
+User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.7+) Gecko/20020123
+X-Accept-Language: en-us
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <20020123083152.W18169-100000@megazone23.bigpanda.com> <3159.1011804418@sss.pgh.pa.us>
+Content-Type: text/html; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title></title>
+</head>
+<body>
+Tom Lane wrote:<br>
+<blockquote type="cite" cite="mid:3159.1011804418@sss.pgh.pa.us">
+ <pre wrap="">Stephan Szabo <a class="moz-txt-link-rfc2396E" href="mailto:sszabo@megazone23.bigpanda.com"><sszabo@megazone23.bigpanda.com></a> writes:<br></pre>
+ <blockquote type="cite">
+ <pre wrap="">Wouldn't it make sense to prefer operators/functions earlier in the search<br>path for resolving ambiguity. So if you had plus(int4, int4) in my<br>schema and plus(int8, int8) in system, and they'd otherwise cause an<br>ambiguity failure for the query, use the plus(int4, int4) on mine. It<br>seems not too far from having the search path shadow later exact matches.<br></pre>
+ </blockquote>
+ <pre wrap=""><!----><br>Given the complexity of the resolution rules (cf.<br><a class="moz-txt-link-freetext" href="http://developer.postgresql.org/docs/postgres/typeconv.html">http://developer.postgresql.org/docs/postgres/typeconv.html</a>),<br>it's not clear that we can determine exactly which "later" entry ought<br>to be blamed for causing a resolution failure. I'd be interested to<br>hear Lockhart's opinion on this --- but my gut feeling is we don't<br>want to go there. The resolution rules are already complicated enough,<br>and I think layering an additional mechanism like that onto them might<br>make the behavior totally unpredictable.<br><br>Another problem is that this would probably cause earlier namespace<br>entries to be over-preferred. For example, suppose that the system<br>namespace has plus(int4,int4) and plus(int8,int8) and you choose to<br>define plus(int4,int8) locally. I believe you'd suddenly find yours<br>being used for *any* cross-datatype addit
+ion, including cases that<br>had nothing obvious to do with either int4 or int8 ...<br></pre>
+ </blockquote>
+This is a good example. The other option is to use name, arg1, arg2...
+as a hunt path for function call resolution. This would depend on when datatype
+promotion is occuring (i.e. int4 to int8, int8 to int4, etc... )<br>
+ <br>
+Then you could just be really hard and say that only exact and trivial conversion
+matches in user space will be used . <br>
+ <br>
+There is no easy answer for this, but whatever rules are initiated need to
+be something that someone can step through to solve w/o a machine.<br>
+ <br>
+I do think you will ultimately need a search utility that provides 'which'
+functionality. (Given my namespace, which function in what namespace is
+going to be called.)<br>
+ <blockquote type="cite" cite="mid:3159.1011804418@sss.pgh.pa.us">
+ <pre wrap=""><br><br> regards, tom lane<br><br>---------------------------(end of broadcast)---------------------------<br>TIP 1: subscribe and unsubscribe commands go to <a class="moz-txt-link-abbreviated" href="mailto:majordomo@postgresql.org">majordomo@postgresql.org</a><br></pre>
+ </blockquote>
+ <br>
+ <br>
+ </body>
+ </html>
+
+
+From pgsql-hackers-owner+M18066=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 16:45:11 2002
+Return-path: <pgsql-hackers-owner+M18066=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NLjAU15010
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 16:45:11 -0500 (EST)
+Received: (qmail 39170 invoked by alias); 23 Jan 2002 21:43:48 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 21:43:48 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NLQpl30489
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 16:26:51 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NLQXf08750;
+ Wed, 23 Jan 2002 16:26:33 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231242120.7050-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201231242120.7050-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Wed, 23 Jan 2002 12:58:33 -0800"
+Date: Wed, 23 Jan 2002 16:26:33 -0500
+Message-ID: <8747.1011821193@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+> Either we're migrating an existing app, for which adding PATH directives
+> with a helper program before restore works, or we're making a new app.
+
+Sorry, I don't accept that either-or proposition. People will expect to
+be able to continue to use 7.3 as they have used Postgres in the past.
+Among other things that will mean being able to add new users to an
+existing installation. If we say "you can't do much of anything in 7.3
+until you upgrade all your applications to schema-awareness", then we're
+going to have lots of unhappy users.
+
+>> Fernando's "any" idea is probably a cleaner way to handle it if we
+>> wanted to do things like that. But I still think it'll be safer and
+>> more controllable if we provide a "public" namespace instead; see
+>> followup discussions.
+
+> Why? Why is it needed? What would public let you do that PATH and ACLs
+> wouldn't?
+
+Public gives you a place to put the ACL determining what people can do
+with publicly-visible names. See, eg, comments from Joe Conway.
+Without a specific public namespace to put ACLs on, a dbadmin has very
+little control over interuser interactions. Please note that the
+facility we are talking about offering here is not available in existing
+Postgres nor in SQL92, but that doesn't make it evil or unreasonable.
+
+Basically my point here is that the SQL spec is not the be-all and
+end-all of database development. (Have you read C. J. Date's commentary
+on it, for example?) We have a proven useful concept of object ownership
+in existing Postgres, and I see no need to remove that facility in
+pursuit of slavish adherence to a specification. If it were a project
+goal to rip out everything in Postgres that is not mentioned in the
+SQL spec, we could have a much smaller distribution ... with lots fewer
+users.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18067=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 17:04:34 2002
+Return-path: <pgsql-hackers-owner+M18067=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NM4XU16392
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 17:04:33 -0500 (EST)
+Received: (qmail 47125 invoked by alias); 23 Jan 2002 22:04:32 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 22:04:32 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NLk1l42602
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 16:46:01 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0NLk1f08845;
+ Wed, 23 Jan 2002 16:46:01 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231259150.7050-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201231259150.7050-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Wed, 23 Jan 2002 13:15:33 -0800"
+Date: Wed, 23 Jan 2002 16:46:01 -0500
+Message-ID: <8842.1011822361@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+>> No, you're missing the point. Which of x,y,z,p,q is the name we
+>> are going to test to see if it is a table or function?
+
+> No, I'm not. :-) You test enough of them to figure out what case you have.
+
+There could be multiple valid interpretations. When you can't even
+figure out where to start, it's too squishy for me. Code complexity
+isn't really the issue here, it's whether a user can understand what's
+going on.
+
+> Actually, it's not that hard. In foo.funcname, do we support anything
+> AFTER the funcname? I don't think so. If there were a parenthesis, then we
+> have a function call. If it's an operator or something else, we have
+> either a table reference, or a foo.funcname function call. So all we have
+> to do is see if p.q (last two elements) is a schema.function, or of q is a
+> function pathed into our current schema. If yes, we have foo.function. If
+> not, then we have some table reference.
+
+Now wait a sec. What you started out with was the claim
+
+> Why not? What's wrong with either schema.foo.function (==>
+> function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+
+The issue was not figuring out whether the last component was a function
+name or not, it was to determine what the other components were, and in
+particular whether the function name should be presumed to be qualified
+(by the next-to-last component taken as a schema name) or unqualified.
+That in turns changes your assumptions about which of the components
+further left are table names, schema names, or catalog names.
+
+> ... I don't think working with real
+> schemas will be that hard. So why not just do things right from the
+> begining?
+
+If I thought that SQL's model of ownership == namespace was "right",
+then we probably wouldn't be having this argument. I think the spec
+pretty much sucks in this particular department, and I don't see why
+we should restrict our implementation to support only the spec's
+braindead world view. Especially not when it makes the implementation
+harder, not easier, because we end up needing to add in weird frammishes
+to have some semblance of backwards-compatibility too.
+
+Please give me some good reasons (not "the spec says so") why it's
+a good idea to treat ownership of a namespace as equivalent to ownership
+of the objects in it, and why decoupling the concepts at the
+implementation level isn't a reasonable thing to do.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18070=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 17:43:52 2002
+Return-path: <pgsql-hackers-owner+M18070=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NMhpU18760
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 17:43:51 -0500 (EST)
+Received: (qmail 53592 invoked by alias); 23 Jan 2002 22:43:08 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 22:43:08 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NMP4l51662
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 17:25:04 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 9718 invoked by uid 1130); 23 Jan 2002 22:25:06 -0000
+Date: Wed, 23 Jan 2002 14:20:22 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <8842.1011822361@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231344110.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> >> No, you're missing the point. Which of x,y,z,p,q is the name we
+> >> are going to test to see if it is a table or function?
+>
+> > No, I'm not. :-) You test enough of them to figure out what case you have.
+>
+> There could be multiple valid interpretations. When you can't even
+> figure out where to start, it's too squishy for me. Code complexity
+> isn't really the issue here, it's whether a user can understand what's
+> going on.
+>
+> > Actually, it's not that hard. In foo.funcname, do we support anything
+> > AFTER the funcname? I don't think so. If there were a parenthesis, then we
+> > have a function call. If it's an operator or something else, we have
+> > either a table reference, or a foo.funcname function call. So all we have
+> > to do is see if p.q (last two elements) is a schema.function, or of q is a
+> > function pathed into our current schema. If yes, we have foo.function. If
+> > not, then we have some table reference.
+>
+> Now wait a sec. What you started out with was the claim
+>
+> > Why not? What's wrong with either schema.foo.function (==>
+> > function(schema.foo)) or foo.schema.function (==> schema.function(foo))?
+>
+> The issue was not figuring out whether the last component was a function
+> name or not, it was to determine what the other components were, and in
+> particular whether the function name should be presumed to be qualified
+> (by the next-to-last component taken as a schema name) or unqualified.
+> That in turns changes your assumptions about which of the components
+> further left are table names, schema names, or catalog names.
+
+Then you choose. Choose a search order, and document it. If you are going
+to go back into a corner full of so much ambiguity, then document your way
+out.
+
+You can make it easier restricting say catalogs and schemas to have
+different names, or schemas, tables, and functions can't have the same
+name. For this, I'd suggest following Oracle's example. I don't think you
+can go too wrong using Oracle's behavior to break ties & ambiguities.
+
+> > ... I don't think working with real
+> > schemas will be that hard. So why not just do things right from the
+> > begining?
+>
+> If I thought that SQL's model of ownership == namespace was "right",
+> then we probably wouldn't be having this argument. I think the spec
+> pretty much sucks in this particular department, and I don't see why
+> we should restrict our implementation to support only the spec's
+> braindead world view. Especially not when it makes the implementation
+> harder, not easier, because we end up needing to add in weird frammishes
+> to have some semblance of backwards-compatibility too.
+
+?? What weird fammishes from ownership?
+
+It actually makes things (slightly) simpler. All of the owner fields
+disapear from most system tables, because the owner is implied by the
+containing schema.
+
+Also, what is braindead about the spec? Yes, it's not what I would choose,
+and it's different from what PG does now. But it's just that, different.
+Given all of the ACL abilities (if the superuser wants user X to be able
+to create objects in table Y of schema Z, s/he makes it so), why does it
+matter who owns the object?
+
+> Please give me some good reasons (not "the spec says so") why it's
+> a good idea to treat ownership of a namespace as equivalent to ownership
+> of the objects in it, and why decoupling the concepts at the
+> implementation level isn't a reasonable thing to do.
+
+Can you really give a good reason other than, "I don't like it?"
+
+Absent the existance of specs, it's a matter of choice. Having all of the
+ownership happen at the schema level or at the individual item level, it's
+six of one, half-dozen of the other.
+
+But there is a spec. A spec that, as far as I can tell, all other
+schema-claming DBs follow. So why shouldn't we follow it? Yes, you don't
+like it. But is this really supposed to be about personal desires, or
+about the resulting DB?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18072=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 18:14:00 2002
+Return-path: <pgsql-hackers-owner+M18072=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NNDxU20711
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 18:14:00 -0500 (EST)
+Received: (qmail 61874 invoked by alias); 23 Jan 2002 23:13:20 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 23:13:20 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NMitl56697
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 17:44:55 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 10914 invoked by uid 1130); 23 Jan 2002 22:44:56 -0000
+Date: Wed, 23 Jan 2002 14:40:12 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <2600.1011799885@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231435300.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Peter Eisentraut <peter_e@gmx.net> writes:
+> > OK, I can accept that. But then I want to get back at my original point,
+> > namely that all database objects (except users and groups) should be in
+> > schemas. This is also cleaner, simpler, and more flexible. There is
+> > clearly demand for schema-local functions. So I think that designing this
+> > system from the premise that a schema-qualified operator call will look
+> > strange is the wrong end to start at.
+>
+> Okay, a fair point --- or you could have used my own argument against
+> me: there's nothing wrong with designing a general mechanism and then
+> choosing not to expose all of the functionality. So let's assume that
+> functions and operators live in namespaces, and that we have some kind
+> of search path across multiple namespaces for use when an unqualified
+> name is given.
+>
+> Now, how is that going to play with resolution of ambiguous calls?
+>
+> The most reasonable semantics I can think of are to collect all the
+> potential matches (matching op/func name) across all the searchable
+> namespaces, discarding only those that have exactly the same signature
+> as one in a prior namespace. Thus, eg, plus(int4,int4) in an earlier
+> namespace would hide plus(int4,int4) in a later namespace in the search
+> path, but it wouldn't hide plus(int8,int8). After we've collected all
+> the visible alternatives, do resolution based on argument types the same
+> way as we do now.
+>
+> The only alternative semantics that seem defensible at all are to stop
+> at the first namespace that contains any matching-by-name op or func,
+> and do resolution using only the candidates available in that namespace.
+> That strikes me as not a good idea; for example, a user who defines a
+> "+" operator in his own schema for his own datatype would be quite
+> unhappy to find it masking all the "+" operators in the system schema.
+
+There is a third behavior which is almost the first one. And it's the one
+I use for function matching in the package diffs I made oh so long ago.
+:-)
+
+You look in the first namespace for all candidates. If one matches, you
+use it. If two or more match, you throw the error we throw now. If none
+match, you move on to the next namespace and repeat the search there.
+
+It's what the code does now. It's not that hard. It's just essentially
+turning part of the function lookup into a for loop over the namespaces.
+:-)
+
+It's easier than gathering everything as you only gather one namespace's
+worth of matches at once.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18071=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 18:14:06 2002
+Return-path: <pgsql-hackers-owner+M18071=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NNE5U20779
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 18:14:06 -0500 (EST)
+Received: (qmail 62072 invoked by alias); 23 Jan 2002 23:13:28 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 23:13:28 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NMsEl57927
+ for <pgsql-hackers@postgresql.org>; Wed, 23 Jan 2002 17:54:14 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 13221 invoked by uid 1130); 23 Jan 2002 22:54:16 -0000
+Date: Wed, 23 Jan 2002 14:49:32 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <2677.1011800674@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231443440.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
+> > When configured for historical behavior would need to:
+> > 1. have search path: temp, any, system
+> > 2. guard against duplicate table names across all schemas (except temp schema)
+>
+> This would be a *whole* lot simpler if we forgot the notion of "any"
+> and made the search order look like
+>
+> (temp, private, public, system)
+>
+> where the public namespace is world-writable but the private per-user
+> ones are (typically at least) not.
+>
+> It occurs to me that we can get both backward-compatible and SQL92
+> semantics with this same search path; the only thing that needs to
+> be different in the two cases is whether the default place to create
+> objects is your private schema or the public one. If you don't ever
+> use your private schema then it doesn't matter if it's on the search
+> path or not. I would still prefer that the search path be a settable
+> option, since a paranoid person might well wish to not have public in
+> his path at all ... but the default could be as-above.
+
+s/public/DEFAULT/ and add a way (createdb option) to make the default ACL
+on DEFAULT such that anyone can create things and we are in agreement.
+
+One of the parts of the schema system I'd envisioned (and tried to make)
+was that there would be an IMPLIMENTATION_SCHEMA which owned all
+built-ins, and a DEFAULT schema which was owned by the superuser. Making
+the default schema path for a schema
+IMPLIMENTATION_SCHEMA:<SCHEMA_NAME>:DEFAULT is fine.
+
+Making the default schema for creation settable to DEFAULT would be fine,
+and I think would remove objection. :-)
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18073=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 18:14:19 2002
+Return-path: <pgsql-hackers-owner+M18073=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NNEIU20817
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 18:14:18 -0500 (EST)
+Received: (qmail 61956 invoked by alias); 23 Jan 2002 23:13:23 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 23:13:23 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NN0Cl58411
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 18:00:12 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 14480 invoked by uid 1130); 23 Jan 2002 23:00:14 -0000
+Date: Wed, 23 Jan 2002 14:55:29 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <8747.1011821193@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201231420310.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > Either we're migrating an existing app, for which adding PATH directives
+> > with a helper program before restore works, or we're making a new app.
+>
+> Sorry, I don't accept that either-or proposition. People will expect to
+> be able to continue to use 7.3 as they have used Postgres in the past.
+> Among other things that will mean being able to add new users to an
+> existing installation. If we say "you can't do much of anything in 7.3
+> until you upgrade all your applications to schema-awareness", then we're
+> going to have lots of unhappy users.
+
+"upgrad[ing] .. to schema-awareness" is adding the PATHs to the schema
+creates. You then have a unified namespace (to the apps perspective). The
+migration tool I mentioned should be able to do this (and will need to be
+present).
+
+As PostgreSQL changes, people are going to have to learn to deal with new
+features. I really don't think that dealing with schemas is going to be
+that hard. Also, at Zembu, all of the apps we looked at had maybe two or
+three schemas. These are big apps. If they can live with just a few
+schemas, why do we need so many that maintainance is a pain?
+
+Also, what is this new user going to do *IN THE EXISTING APP*? Either the
+user is going to change existing tables, for which adding the user to the
+ACLs (or better yet to a group) will work, or the new user is going to own
+new tables. If the new user is owning new tables, then you have to change
+the app to refer to them. If the upgrade to 7.3 included a, "quick
+tutorial about the new schema support," the author should be able to adapt
+easily.
+
+> >> Fernando's "any" idea is probably a cleaner way to handle it if we
+> >> wanted to do things like that. But I still think it'll be safer and
+> >> more controllable if we provide a "public" namespace instead; see
+> >> followup discussions.
+>
+> > Why? Why is it needed? What would public let you do that PATH and ACLs
+> > wouldn't?
+>
+> Public gives you a place to put the ACL determining what people can do
+> with publicly-visible names. See, eg, comments from Joe Conway.
+> Without a specific public namespace to put ACLs on, a dbadmin has very
+> little control over interuser interactions. Please note that the
+> facility we are talking about offering here is not available in existing
+> Postgres nor in SQL92, but that doesn't make it evil or unreasonable.
+
+I think the existance of a DEFAULT schema (which is a real schema, not a
+special namespace) would also aleviate the above concerns.
+
+> Basically my point here is that the SQL spec is not the be-all and
+> end-all of database development. (Have you read C. J. Date's commentary
+> on it, for example?) We have a proven useful concept of object ownership
+> in existing Postgres, and I see no need to remove that facility in
+> pursuit of slavish adherence to a specification. If it were a project
+> goal to rip out everything in Postgres that is not mentioned in the
+> SQL spec, we could have a much smaller distribution ... with lots fewer
+> users.
+
+I haven't read the comentary, do you have a URL?
+
+I agree that we should not limit ourselves to SQL'99. But doing more than
+SQL'99 is different from wanting to support SQL schemas while using a
+different ownership model, when one of the main things of SQL schemas as I
+understand it is the ownership model.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18075=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 18:33:16 2002
+Return-path: <pgsql-hackers-owner+M18075=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0NNXGU21830
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 18:33:16 -0500 (EST)
+Received: (qmail 68962 invoked by alias); 23 Jan 2002 23:33:14 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 23 Jan 2002 23:33:14 -0000
+Received: from megazone.bigpanda.com (megazone.bigpanda.com [63.150.15.178])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0NNUFl68439
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 18:30:15 -0500 (EST)
+ (envelope-from sszabo@megazone23.bigpanda.com)
+Received: by megazone.bigpanda.com (Postfix, from userid 1001)
+ id 4D769D5F7; Wed, 23 Jan 2002 15:30:07 -0800 (PST)
+Received: from localhost (localhost [127.0.0.1])
+ by megazone.bigpanda.com (Postfix) with ESMTP
+ id 412425BF5; Wed, 23 Jan 2002 15:30:07 -0800 (PST)
+Date: Wed, 23 Jan 2002 15:30:07 -0800 (PST)
+From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231435300.7050-100000@vespasia.home-net.internetconnect.net>
+Message-ID: <20020123152711.I22382-100000@megazone23.bigpanda.com>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Bill Studenmund wrote:
+
+> On Wed, 23 Jan 2002, Tom Lane wrote:
+>
+> There is a third behavior which is almost the first one. And it's the one
+> I use for function matching in the package diffs I made oh so long ago.
+> :-)
+>
+> You look in the first namespace for all candidates. If one matches, you
+> use it. If two or more match, you throw the error we throw now. If none
+> match, you move on to the next namespace and repeat the search there.
+
+That's even more strongly towards earlier namespaces than my suggestion.
+How do you define match? If you allow coercions, then the
+plus(int8, int8) in my schema would be prefered over better (possibly
+exact) matches in the system schema which may not be what you want.
+
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18078=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 19:04:16 2002
+Return-path: <pgsql-hackers-owner+M18078=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O04GU23131
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 19:04:16 -0500 (EST)
+Received: (qmail 74730 invoked by alias); 24 Jan 2002 00:03:43 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 00:03:43 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0NNqbl73179
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 18:52:37 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 20343 invoked by uid 1130); 23 Jan 2002 23:52:39 -0000
+Date: Wed, 23 Jan 2002 15:47:55 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <20020123152711.I22382-100000@megazone23.bigpanda.com>
+Message-ID: <Pine.NEB.4.33.0201231535590.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Stephan Szabo wrote:
+
+> On Wed, 23 Jan 2002, Bill Studenmund wrote:
+>
+> > On Wed, 23 Jan 2002, Tom Lane wrote:
+> >
+> > There is a third behavior which is almost the first one. And it's the one
+> > I use for function matching in the package diffs I made oh so long ago.
+> > :-)
+> >
+> > You look in the first namespace for all candidates. If one matches, you
+> > use it. If two or more match, you throw the error we throw now. If none
+> > match, you move on to the next namespace and repeat the search there.
+>
+> That's even more strongly towards earlier namespaces than my suggestion.
+> How do you define match? If you allow coercions, then the
+> plus(int8, int8) in my schema would be prefered over better (possibly
+> exact) matches in the system schema which may not be what you want.
+
+True. But:
+
+1) How often are you going to make routines with names that duplicate
+those in the system schema, when you don't want them to be used?
+
+2) you can always explicitly refer to the system schema, so you can get
+the routine you want if it's not the one you'll get by coercion.
+
+3) We tested other (commercial) databases, and they have this behavior, so
+it seems a reasonable thing to do.
+
+4) It's simple and easy to understand.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18079=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 19:13:55 2002
+Return-path: <pgsql-hackers-owner+M18079=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O0DsU23615
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 19:13:55 -0500 (EST)
+Received: (qmail 79143 invoked by alias); 24 Jan 2002 00:13:37 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 00:13:37 -0000
+Received: from megazone.bigpanda.com (megazone.bigpanda.com [63.150.15.178])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0O074l78013
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 19:07:04 -0500 (EST)
+ (envelope-from sszabo@megazone23.bigpanda.com)
+Received: by megazone.bigpanda.com (Postfix, from userid 1001)
+ id 7D1CFD5F7; Wed, 23 Jan 2002 16:07:07 -0800 (PST)
+Received: from localhost (localhost [127.0.0.1])
+ by megazone.bigpanda.com (Postfix) with ESMTP
+ id 6EC505BF5; Wed, 23 Jan 2002 16:07:07 -0800 (PST)
+Date: Wed, 23 Jan 2002 16:07:07 -0800 (PST)
+From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231535590.7050-100000@vespasia.home-net.internetconnect.net>
+Message-ID: <20020123155603.Y22713-100000@megazone23.bigpanda.com>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Bill Studenmund wrote:
+
+> On Wed, 23 Jan 2002, Stephan Szabo wrote:
+>
+> > On Wed, 23 Jan 2002, Bill Studenmund wrote:
+> >
+> > > On Wed, 23 Jan 2002, Tom Lane wrote:
+> > >
+> > > There is a third behavior which is almost the first one. And it's the one
+> > > I use for function matching in the package diffs I made oh so long ago.
+> > > :-)
+> > >
+> > > You look in the first namespace for all candidates. If one matches, you
+> > > use it. If two or more match, you throw the error we throw now. If none
+> > > match, you move on to the next namespace and repeat the search there.
+> >
+> > That's even more strongly towards earlier namespaces than my suggestion.
+> > How do you define match? If you allow coercions, then the
+> > plus(int8, int8) in my schema would be prefered over better (possibly
+> > exact) matches in the system schema which may not be what you want.
+>
+> True. But:
+>
+> 1) How often are you going to make routines with names that duplicate
+> those in the system schema, when you don't want them to be used?
+
+Sure, you want them used when the arguments match, but what about when
+they don't exactly?
+If the system schema has foo(integer) and in my schema I make a new type
+and then make a type(integer) and foo(type), when I call foo(1), do I
+really mean do a coersion to my type and call foo(type)?
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18082=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 19:33:21 2002
+Return-path: <pgsql-hackers-owner+M18082=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O0XKU24428
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 19:33:21 -0500 (EST)
+Received: (qmail 85643 invoked by alias); 24 Jan 2002 00:33:19 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 00:33:19 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0O0N0l83366
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 19:23:00 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 24329 invoked by uid 1130); 24 Jan 2002 00:23:02 -0000
+Date: Wed, 23 Jan 2002 16:18:18 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <20020123155603.Y22713-100000@megazone23.bigpanda.com>
+Message-ID: <Pine.NEB.4.33.0201231606090.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Stephan Szabo wrote:
+
+> On Wed, 23 Jan 2002, Bill Studenmund wrote:
+>
+> > True. But:
+> >
+> > 1) How often are you going to make routines with names that duplicate
+> > those in the system schema, when you don't want them to be used?
+>
+> Sure, you want them used when the arguments match, but what about when
+> they don't exactly?
+> If the system schema has foo(integer) and in my schema I make a new type
+> and then make a type(integer) and foo(type), when I call foo(1), do I
+> really mean do a coersion to my type and call foo(type)?
+
+Yes, you did. The documentation said that that would happen, so since you
+made the call ambiguous, you wanted the coercion to happen. Or at least
+you weren't concerned that it might.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18083=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 19:43:17 2002
+Return-path: <pgsql-hackers-owner+M18083=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O0hGU24835
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 19:43:16 -0500 (EST)
+Received: (qmail 88309 invoked by alias); 24 Jan 2002 00:43:14 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 00:43:14 -0000
+Received: from megazone.bigpanda.com (megazone.bigpanda.com [63.150.15.178])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0O0YUl87134
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 19:34:30 -0500 (EST)
+ (envelope-from sszabo@megazone23.bigpanda.com)
+Received: by megazone.bigpanda.com (Postfix, from userid 1001)
+ id 11552D5F8; Wed, 23 Jan 2002 16:34:33 -0800 (PST)
+Received: from localhost (localhost [127.0.0.1])
+ by megazone.bigpanda.com (Postfix) with ESMTP
+ id 050095BF5; Wed, 23 Jan 2002 16:34:33 -0800 (PST)
+Date: Wed, 23 Jan 2002 16:34:32 -0800 (PST)
+From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231606090.7050-100000@vespasia.home-net.internetconnect.net>
+Message-ID: <20020123162426.K22713-100000@megazone23.bigpanda.com>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Bill Studenmund wrote:
+
+> On Wed, 23 Jan 2002, Stephan Szabo wrote:
+>
+> > On Wed, 23 Jan 2002, Bill Studenmund wrote:
+> >
+> > > True. But:
+> > >
+> > > 1) How often are you going to make routines with names that duplicate
+> > > those in the system schema, when you don't want them to be used?
+> >
+> > Sure, you want them used when the arguments match, but what about when
+> > they don't exactly?
+> > If the system schema has foo(integer) and in my schema I make a new type
+> > and then make a type(integer) and foo(type), when I call foo(1), do I
+> > really mean do a coersion to my type and call foo(type)?
+>
+> Yes, you did. The documentation said that that would happen, so since you
+
+It doesn't currently say anything of the sort. If we made the above
+behavior the standard, it would, but that's sort of circular. ;) Unless
+I'm misreading the page Tom sent me to earlier, it seems to say it
+prefers matches with exact types over coercions which would no longer be
+true.
+
+> made the call ambiguous, you wanted the coercion to happen. Or at least
+> you weren't concerned that it might.
+
+I still disagree. If I make a complex number type in my schema,
+I don't really intend integer+integer to convert to complex and give me a
+complex answer even if I want to be able to cast integers into complex.
+AFAIK there's no way to specify that I want to make the function
+complex(integer) such that I can do CAST(1 as complex) but not as an
+implicit cast.
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18084=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 20:06:02 2002
+Return-path: <pgsql-hackers-owner+M18084=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O161U25898
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 20:06:01 -0500 (EST)
+Received: (qmail 91014 invoked by alias); 24 Jan 2002 01:05:59 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 01:05:59 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0O0qTl89749
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 19:52:29 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 1144 invoked by uid 1130); 24 Jan 2002 00:52:32 -0000
+Date: Wed, 23 Jan 2002 16:47:48 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <20020123162426.K22713-100000@megazone23.bigpanda.com>
+Message-ID: <Pine.NEB.4.33.0201231636150.7050-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Stephan Szabo wrote:
+
+> On Wed, 23 Jan 2002, Bill Studenmund wrote:
+>
+> > On Wed, 23 Jan 2002, Stephan Szabo wrote:
+> >
+> > Yes, you did. The documentation said that that would happen, so since you
+>
+> It doesn't currently say anything of the sort. If we made the above
+> behavior the standard, it would, but that's sort of circular. ;) Unless
+> I'm misreading the page Tom sent me to earlier, it seems to say it
+> prefers matches with exact types over coercions which would no longer be
+> true.
+
+The documentation says nothing about schemas at all now, so obviously it
+has to change. :-)
+
+> > made the call ambiguous, you wanted the coercion to happen. Or at least
+> > you weren't concerned that it might.
+>
+> I still disagree. If I make a complex number type in my schema,
+> I don't really intend integer+integer to convert to complex and give me a
+> complex answer even if I want to be able to cast integers into complex.
+> AFAIK there's no way to specify that I want to make the function
+> complex(integer) such that I can do CAST(1 as complex) but not as an
+> implicit cast.
+
+Note: I've been talking about functions, and you're talking about
+operators. While operators are syntactic sugar for functions, one big
+difference is that you can't specify explicit schemas for operators (nor
+do I think you should be able to). I think exact matches for operators
+anywhere in the path would be better than local coercable ones.
+
+Does SQL'99 say anything about this?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18086=candle.pha.pa.us=pgman@postgresql.org Wed Jan 23 20:25:47 2002
+Return-path: <pgsql-hackers-owner+M18086=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O1PkU26965
+ for <pgman@candle.pha.pa.us>; Wed, 23 Jan 2002 20:25:47 -0500 (EST)
+Received: (qmail 94892 invoked by alias); 24 Jan 2002 01:25:45 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 01:25:45 -0000
+Received: from megazone.bigpanda.com (megazone.bigpanda.com [63.150.15.178])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0O1MNl94162
+ for <pgsql-hackers@postgreSQL.org>; Wed, 23 Jan 2002 20:22:24 -0500 (EST)
+ (envelope-from sszabo@megazone23.bigpanda.com)
+Received: by megazone.bigpanda.com (Postfix, from userid 1001)
+ id 5B37BD5F7; Wed, 23 Jan 2002 17:22:26 -0800 (PST)
+Received: from localhost (localhost [127.0.0.1])
+ by megazone.bigpanda.com (Postfix) with ESMTP
+ id 50EA45BF5; Wed, 23 Jan 2002 17:22:26 -0800 (PST)
+Date: Wed, 23 Jan 2002 17:22:26 -0800 (PST)
+From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231636150.7050-100000@vespasia.home-net.internetconnect.net>
+Message-ID: <20020123165321.K23306-100000@megazone23.bigpanda.com>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Bill Studenmund wrote:
+
+What I was getting at was that Tom's behavior (or even mine) is more
+similar to the currently described behavior than the suggested one.
+
+> > > made the call ambiguous, you wanted the coercion to happen. Or at least
+> > > you weren't concerned that it might.
+> >
+> > I still disagree. If I make a complex number type in my schema,
+> > I don't really intend integer+integer to convert to complex and give me a
+> > complex answer even if I want to be able to cast integers into complex.
+> > AFAIK there's no way to specify that I want to make the function
+> > complex(integer) such that I can do CAST(1 as complex) but not as an
+> > implicit cast.
+>
+> Note: I've been talking about functions, and you're talking about
+> operators. While operators are syntactic sugar for functions, one big
+> difference is that you can't specify explicit schemas for operators (nor
+> do I think you should be able to). I think exact matches for operators
+> anywhere in the path would be better than local coercable ones.
+
+I'd say the same thing for a random math function as well. For example
+if there was a square(int) that returned $1*$1 and I made a square for my
+complex type, I'd still expect that square(5) is an integer rather than a
+complex using the square(complex). For example, I'd expect square(5) to
+be a valid length argument to substr.
+
+> Does SQL'99 say anything about this?
+That I don't know about (don't have a draft around to look at). I'm not
+sure that it'd have these problems though unless it's got the same sort of
+coercion system.
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18095=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 00:43:04 2002
+Return-path: <pgsql-hackers-owner+M18095=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0O5h4U15469
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 00:43:04 -0500 (EST)
+Received: (qmail 28221 invoked by alias); 24 Jan 2002 05:43:00 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 05:43:00 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0O5QCl26727
+ for <pgsql-hackers@postgreSQL.org>; Thu, 24 Jan 2002 00:26:13 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.90] [148.61.250.90] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Thu, 24 Jan 2002 00:26:11 -0500 (EDT)
+Date: Thu, 24 Jan 2002 00:28:16 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ Tom Lane <tgl@sss.pgh.pa.us>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201231636150.7050-100000@vespasia.home-net.internetconnect.net>
+Message-ID: <Pine.LNX.4.30.0201240003120.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund writes:
+
+> Does SQL'99 say anything about this?
+
+Yes, though, as usual, you have to twist your brain a little to understand
+it. My understanding is that for a function call of the form "foo(a, b)"
+it goes like this:
+
+1. Find all functions named "foo" in the current database. This is the
+set of "possibly candidate routines".
+
+2. Drop all routines that you do not have EXECUTE privilege for. This is
+the set of "executable routines".
+
+3. Drop all routines that do not have compatible parameter lists. This is
+the set of "invocable routines".
+
+4. Drop all routines whose schema is not in the path. This is the set of
+"candidate routines".
+
+5. If you have more than one routine left, eliminate some routines
+according to type precedence rules. (We do some form of this, SQL99
+specifies something different.) This yields the set of "candidate subject
+routines".
+
+6. Choose the routine whose schema is earliest in the path as the "subject
+routine".
+
+Execute the subject routine. Phew!
+
+
+This doesn't look glaringly wrong to me, so maybe you want to consider it.
+Please note step 2.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18127=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 14:53:53 2002
+Return-path: <pgsql-hackers-owner+M18127=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0OJrqU16554
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 14:53:52 -0500 (EST)
+Received: (qmail 59340 invoked by alias); 24 Jan 2002 19:53:33 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 19:53:33 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0OJprl58616
+ for <pgsql-hackers@postgreSQL.org>; Thu, 24 Jan 2002 14:51:53 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 22083 invoked by uid 1130); 24 Jan 2002 19:51:54 -0000
+Date: Thu, 24 Jan 2002 11:47:07 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <20020123165321.K23306-100000@megazone23.bigpanda.com>
+Message-ID: <Pine.NEB.4.33.0201241138130.9384-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Stephan Szabo wrote:
+
+> On Wed, 23 Jan 2002, Bill Studenmund wrote:
+>
+> What I was getting at was that Tom's behavior (or even mine) is more
+> similar to the currently described behavior than the suggested one.
+
+I understand. As part of developing the package changes, though, I found
+that Oracle used the method I described for finding routines in packages.
+
+>From Peter's description, it sounds like Oracle's not following the spec.
+
+> I'd say the same thing for a random math function as well. For example
+> if there was a square(int) that returned $1*$1 and I made a square for my
+> complex type, I'd still expect that square(5) is an integer rather than a
+> complex using the square(complex). For example, I'd expect square(5) to
+> be a valid length argument to substr.
+
+Yeah, that makes sense.
+
+> > Does SQL'99 say anything about this?
+> That I don't know about (don't have a draft around to look at). I'm not
+
+Do you want pdfs?
+
+> sure that it'd have these problems though unless it's got the same sort of
+> coercion system.
+
+I don't think it has the same sort of coercion, but it has some, I'd
+expect (as all of the DBs I know of have some sort of coercion :-)
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18128=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 15:04:41 2002
+Return-path: <pgsql-hackers-owner+M18128=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0OK4eU18207
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 15:04:40 -0500 (EST)
+Received: (qmail 65543 invoked by alias); 24 Jan 2002 20:03:53 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 24 Jan 2002 20:03:53 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0OJsul61073
+ for <pgsql-hackers@postgreSQL.org>; Thu, 24 Jan 2002 14:54:57 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 23026 invoked by uid 1130); 24 Jan 2002 19:54:57 -0000
+Date: Thu, 24 Jan 2002 11:50:12 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ Tom Lane <tgl@sss.pgh.pa.us>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201240003120.686-100000@peter.localdomain>
+Message-ID: <Pine.NEB.4.33.0201241147131.9384-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Thu, 24 Jan 2002, Peter Eisentraut wrote:
+
+> Bill Studenmund writes:
+>
+> > Does SQL'99 say anything about this?
+>
+> Yes, though, as usual, you have to twist your brain a little to understand
+> it.
+
+Indeed. I find the spec makes the most sense after you understand it. ;-)
+
+> My understanding is that for a function call of the form "foo(a, b)"
+> it goes like this:
+>
+> 1. Find all functions named "foo" in the current database. This is the
+> set of "possibly candidate routines".
+>
+> 2. Drop all routines that you do not have EXECUTE privilege for. This is
+> the set of "executable routines".
+>
+> 3. Drop all routines that do not have compatible parameter lists. This is
+> the set of "invocable routines".
+>
+> 4. Drop all routines whose schema is not in the path. This is the set of
+> "candidate routines".
+>
+> 5. If you have more than one routine left, eliminate some routines
+> according to type precedence rules. (We do some form of this, SQL99
+> specifies something different.) This yields the set of "candidate subject
+> routines".
+>
+> 6. Choose the routine whose schema is earliest in the path as the "subject
+> routine".
+>
+> Execute the subject routine. Phew!
+
+Wow. Thanks for diging this out.
+
+> This doesn't look glaringly wrong to me, so maybe you want to consider it.
+> Please note step 2.
+
+It looks fine, and is probably what we should do. Well, I'd do things in a
+different order (look only in in-path schemas first for instance), but
+that's just trying to optimize the query. :-)
+
+How different are the type coercion rules?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18156=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 22:45:56 2002
+Return-path: <pgsql-hackers-owner+M18156=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P3jte02265
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 22:45:55 -0500 (EST)
+Received: (qmail 95096 invoked by alias); 25 Jan 2002 03:45:50 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 03:45:50 -0000
+Received: from candle.pha.pa.us (216-55-132-35.dsl.san-diego.abac.net [216.55.132.35])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P3NWl91448
+ for <pgsql-hackers@postgresql.org>; Thu, 24 Jan 2002 22:23:33 -0500 (EST)
+ (envelope-from pgman@candle.pha.pa.us)
+Received: (from pgman@localhost)
+ by candle.pha.pa.us (8.11.6/8.10.1) id g0P3NMY22893;
+ Thu, 24 Jan 2002 22:23:22 -0500 (EST)
+From: Bruce Momjian <pgman@candle.pha.pa.us>
+Message-ID: <200201250323.g0P3NMY22893@candle.pha.pa.us>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <2677.1011800674@sss.pgh.pa.us>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Thu, 24 Jan 2002 22:23:22 -0500 (EST)
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+X-Mailer: ELM [version 2.4ME+ PL96 (25)]
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+> "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
+> > When configured for historical behavior would need to:
+> > 1. have search path: temp, any, system
+> > 2. guard against duplicate table names across all schemas (except temp schema)
+>
+> This would be a *whole* lot simpler if we forgot the notion of "any"
+> and made the search order look like
+>
+> (temp, private, public, system)
+>
+> where the public namespace is world-writable but the private per-user
+> ones are (typically at least) not.
+
+[ I am just reading this schema thread now.]
+
+The above private/public idea seems like a much better than 'any'. That
+'any' thing had me quite confused and the idea thought you would have
+duplicates that would only be found at runtime seems destined to random
+falures.
+
+I assume 'private' above means search in my personal schema/namespace.
+
+--
+ Bruce Momjian | http://candle.pha.pa.us
+ pgman@candle.pha.pa.us | (610) 853-3000
+ + If your life is a hard drive, | 830 Blythe Avenue
+ + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18157=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 22:45:56 2002
+Return-path: <pgsql-hackers-owner+M18157=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P3jte02266
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 22:45:55 -0500 (EST)
+Received: (qmail 95098 invoked by alias); 25 Jan 2002 03:45:50 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 03:45:50 -0000
+Received: from candle.pha.pa.us (216-55-132-35.dsl.san-diego.abac.net [216.55.132.35])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P3Qql91635
+ for <pgsql-hackers@postgresql.org>; Thu, 24 Jan 2002 22:26:52 -0500 (EST)
+ (envelope-from pgman@candle.pha.pa.us)
+Received: (from pgman@localhost)
+ by candle.pha.pa.us (8.11.6/8.10.1) id g0P3Qhw23061;
+ Thu, 24 Jan 2002 22:26:43 -0500 (EST)
+From: Bruce Momjian <pgman@candle.pha.pa.us>
+Message-ID: <200201250326.g0P3Qhw23061@candle.pha.pa.us>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <2677.1011800674@sss.pgh.pa.us>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Thu, 24 Jan 2002 22:26:43 -0500 (EST)
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+X-Mailer: ELM [version 2.4ME+ PL96 (25)]
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+> > Or are you thinking about a per session behavior ?
+> > I would rather envision a per database behavior.
+> > Maybe the easy way out would be a "default creation schema" property for
+> > each user, that would default to the username. If you want everything in one
+> > schema simply alter the users.
+>
+> I hadn't really gotten to the point of thinking about exactly what and
+> where the control knobs should be. I suspect you are right that we will
+> want the default behavior to be selectable on a per-user or per-database
+> basis, which seems to eliminate the option of using GUC (at least in its
+> current form). We could easily add a field to pg_shadow or pg_database
+> respectively to determine the default behavior. It'd be nice though if
+> the behavior could be changed after connection by a SET statement, which
+> would be lots easier if the setting were GUC-controlled. Peter, you see
+> any way to resolve that?
+
+I think we could set the database default at db creation time, then
+allow SET to modify that default per session; seems flexible enough.
+It is basically a GUC value who's default is stored in pg_database
+rather than postgresql.conf. You could use postgresql.conf to set the
+default schema type at db creation time.
+
+--
+ Bruce Momjian | http://candle.pha.pa.us
+ pgman@candle.pha.pa.us | (610) 853-3000
+ + If your life is a hard drive, | 830 Blythe Avenue
+ + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18158=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 23:03:48 2002
+Return-path: <pgsql-hackers-owner+M18158=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P43le13410
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 23:03:47 -0500 (EST)
+Received: (qmail 97941 invoked by alias); 25 Jan 2002 04:03:42 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 04:03:42 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P3wjl97273
+ for <pgsql-hackers@postgresql.org>; Thu, 24 Jan 2002 22:58:46 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.128] [148.61.250.128] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Thu, 24 Jan 2002 22:58:51 -0500 (EDT)
+Date: Thu, 24 Jan 2002 23:00:57 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <2677.1011800674@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201242259280.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: ORr
+
+Tom Lane writes:
+
+> It'd be nice though if
+> the behavior could be changed after connection by a SET statement, which
+> would be lots easier if the setting were GUC-controlled. Peter, you see
+> any way to resolve that?
+
+We had a text[] field to pg_shadow and/or pg_database containing
+name=value assignments which are executed just before the session starts.
+Doesn't look terribly difficult, and it's something I've always wanted to
+do anyway.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18160=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 23:45:22 2002
+Return-path: <pgsql-hackers-owner+M18160=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P4jLe11106
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 23:45:21 -0500 (EST)
+Received: (qmail 3520 invoked by alias); 25 Jan 2002 04:43:35 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 04:43:35 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P4OAl00294
+ for <pgsql-hackers@postgresql.org>; Thu, 24 Jan 2002 23:24:11 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0P4Nef23267;
+ Thu, 24 Jan 2002 23:23:40 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201242259280.686-100000@peter.localdomain>
+References: <Pine.LNX.4.30.0201242259280.686-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+ message dated "Thu, 24 Jan 2002 23:00:57 -0500"
+Date: Thu, 24 Jan 2002 23:23:39 -0500
+Message-ID: <23264.1011932619@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> We [add] a text[] field to pg_shadow and/or pg_database containing
+> name=value assignments which are executed just before the session starts.
+> Doesn't look terribly difficult, and it's something I've always wanted to
+> do anyway.
+
+Seems like a fine idea, with many uses besides this one.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18159=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 23:33:32 2002
+Return-path: <pgsql-hackers-owner+M18159=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P4XVe10435
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 23:33:31 -0500 (EST)
+Received: (qmail 1069 invoked by alias); 25 Jan 2002 04:33:26 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 04:33:26 -0000
+Received: from linuxworld.com.au (www.linuxworld.com.au [203.34.46.50])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P4Pal00372
+ for <pgsql-hackers@postgresql.org>; Thu, 24 Jan 2002 23:25:36 -0500 (EST)
+ (envelope-from swm@linuxworld.com.au)
+Received: from localhost (swm@localhost)
+ by linuxworld.com.au (8.11.4/8.11.4) with ESMTP id g0P4P5Z12976;
+ Fri, 25 Jan 2002 15:25:05 +1100
+Date: Fri, 25 Jan 2002 15:25:05 +1100 (EST)
+From: Gavin Sherry <swm@linuxworld.com.au>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <8533.1011819436@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.21.0201251517350.12632-100000@linuxworld.com.au>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 23 Jan 2002, Tom Lane wrote:
+
+> If you use only the SQL-defined operations, after setting up any
+> configuration variables we may invent in the way we will document as
+> necessary for SQL-compatible behavior, then you will get SQL-compatible
+> behavior. I do not think that precludes having an underlying
+> implementation that sees the world differently than SQL does and
+> supports non-SQL behaviors too. (For that matter, I'm sure there is
+> text somewhere in the spec that points out that the spec intends to
+> define user-visible behavior, not implementation.)
+
+This makes a lot of sense and suggests the possibility of 'schema enabled'
+databases. That is, a switch 'bool withschemas' (which defaults to
+false) could be added to pg_database. If true, the parser and ownership
+model reflects that of SQL'99 and/or the Postgres schema model. If false,
+the existing 'schema' model is assumed.
+
+This should allow existing users to migrate their data and applications to
+7.3 without having to modify either.
+
+Its not an ideal solution but backward compatibility is generally results
+in compromise ;).
+
+Gavin
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18164=candle.pha.pa.us=pgman@postgresql.org Thu Jan 24 23:45:36 2002
+Return-path: <pgsql-hackers-owner+M18164=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P4jae11220
+ for <pgman@candle.pha.pa.us>; Thu, 24 Jan 2002 23:45:36 -0500 (EST)
+Received: (qmail 4119 invoked by alias); 25 Jan 2002 04:43:57 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 04:43:57 -0000
+Received: from candle.pha.pa.us (216-55-132-35.dsl.san-diego.abac.net [216.55.132.35])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P4Y0l01902
+ for <pgsql-hackers@postgresql.org>; Thu, 24 Jan 2002 23:34:00 -0500 (EST)
+ (envelope-from pgman@candle.pha.pa.us)
+Received: (from pgman@localhost)
+ by candle.pha.pa.us (8.11.6/8.10.1) id g0P4XqD10470;
+ Thu, 24 Jan 2002 23:33:52 -0500 (EST)
+From: Bruce Momjian <pgman@candle.pha.pa.us>
+Message-ID: <200201250433.g0P4XqD10470@candle.pha.pa.us>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201242259280.686-100000@peter.localdomain>
+To: Peter Eisentraut <peter_e@gmx.net>
+Date: Thu, 24 Jan 2002 23:33:52 -0500 (EST)
+cc: Tom Lane <tgl@sss.pgh.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, pgsql-hackers@postgresql.org
+X-Mailer: ELM [version 2.4ME+ PL96 (25)]
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut wrote:
+> Tom Lane writes:
+>
+> > It'd be nice though if
+> > the behavior could be changed after connection by a SET statement, which
+> > would be lots easier if the setting were GUC-controlled. Peter, you see
+> > any way to resolve that?
+>
+> We had a text[] field to pg_shadow and/or pg_database containing
+> name=value assignments which are executed just before the session starts.
+> Doesn't look terribly difficult, and it's something I've always wanted to
+> do anyway.
+
+So are thinking of "dbname=schema_type"? Seems this is really something
+that should be in pg_database. If you create a database, who wants to
+edit postgresql.conf to set its default schema type? Why not set the
+GUC value from pg_database?
+
+--
+ Bruce Momjian | http://candle.pha.pa.us
+ pgman@candle.pha.pa.us | (610) 853-3000
+ + If your life is a hard drive, | 830 Blythe Avenue
+ + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18165=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 00:33:36 2002
+Return-path: <pgsql-hackers-owner+M18165=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P5XZe14335
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 00:33:36 -0500 (EST)
+Received: (qmail 15579 invoked by alias); 25 Jan 2002 05:33:30 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 05:33:30 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P5Oul14811
+ for <pgsql-hackers@postgreSQL.org>; Fri, 25 Jan 2002 00:24:56 -0500 (EST)
+ (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.128] [148.61.250.128] by student.gvsu.edu
+ with Novonyx SMTP Server $Revision: 1.3 $; Fri, 25 Jan 2002 00:25:01 -0500 (EDT)
+Date: Fri, 25 Jan 2002 00:27:07 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <8842.1011822361@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.30.0201250013040.686-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane writes:
+
+> There could be multiple valid interpretations. When you can't even
+> figure out where to start, it's too squishy for me. Code complexity
+> isn't really the issue here, it's whether a user can understand what's
+> going on.
+
+Here's a tricky question: In what situations is a.b valid to mean b(a)?
+Because in a general object-like system you could write a.b.c.d to mean
+d(c(b(a))). There you've got a system where it's really impossible to
+tell anything. Maybe b() returns a table, so a.b.c.d could mean
+subattribute d in column c in the table returned by b(a).
+
+Somehow we need to do at least one of three things:
+1. Require parentheses after function calls.
+2. Use a different operator to invoke function calls (SQL uses ->).
+3. Require users to register functions as "methods" with the data type
+before being able to say a.b for b(a). This also takes care of having to
+specify the schema of b because that's declared when you define the
+method.
+
+SQL99 does 2 and 3 (but not 1).
+
+I say, forget Oracle. Oracle doesn't have all the extensibility
+functionality that PostgreSQL has. Let's build a system that is
+consistent, orthogonal, and easy to use for *our* users, and those that
+want to convert will quickly see the value.
+
+--
+Peter Eisentraut peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18166=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 00:43:38 2002
+Return-path: <pgsql-hackers-owner+M18166=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P5hce15000
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 00:43:38 -0500 (EST)
+Received: (qmail 18028 invoked by alias); 25 Jan 2002 05:43:28 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 05:43:28 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P5eol16732
+ for <pgsql-hackers@postgreSQL.org>; Fri, 25 Jan 2002 00:40:50 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0P5eIf23724;
+ Fri, 25 Jan 2002 00:40:18 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: Bill Studenmund <wrstuden@netbsd.org>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201250013040.686-100000@peter.localdomain>
+References: <Pine.LNX.4.30.0201250013040.686-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+ message dated "Fri, 25 Jan 2002 00:27:07 -0500"
+Date: Fri, 25 Jan 2002 00:40:18 -0500
+Message-ID: <23721.1011937218@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> Here's a tricky question: In what situations is a.b valid to mean b(a)?
+
+I defined that in my first message on these issues: the last element
+of a dotted-name string can be either a field name or a function
+(which is applied to a table that's the next-to-last item). The
+next-to-last element is always a table name.
+
+> Because in a general object-like system you could write a.b.c.d to mean
+> d(c(b(a))).
+
+Indeed, that can happen now in Postgres, and as I pointed out we have
+to get rid of it. That doesn't mean we need to eliminate the base case,
+however.
+
+> Somehow we need to do at least one of three things:
+> 1. Require parentheses after function calls.
+
+Breaks existing code unnecessarily.
+
+> 2. Use a different operator to invoke function calls (SQL uses ->).
+
+Breaks existing code unnecessarily.
+
+> 3. Require users to register functions as "methods" with the data type
+> before being able to say a.b for b(a). This also takes care of having to
+> specify the schema of b because that's declared when you define the
+> method.
+
+Doesn't buy you anything unless you intend to reject function
+overloading too. With overloading you may have multiple functions
+b(something), so you still have to be able to determine what a is
+without any context.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18168=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 01:13:24 2002
+Return-path: <pgsql-hackers-owner+M18168=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0P6DNe17080
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 01:13:23 -0500 (EST)
+Received: (qmail 22750 invoked by alias); 25 Jan 2002 06:13:23 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 06:13:23 -0000
+Received: from candle.pha.pa.us (216-55-132-35.dsl.san-diego.abac.net [216.55.132.35])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0P5tdl21299
+ for <pgsql-hackers@postgresql.org>; Fri, 25 Jan 2002 00:55:39 -0500 (EST)
+ (envelope-from pgman@candle.pha.pa.us)
+Received: (from pgman@localhost)
+ by candle.pha.pa.us (8.11.6/8.10.1) id g0P5tWY15824;
+ Fri, 25 Jan 2002 00:55:32 -0500 (EST)
+From: Bruce Momjian <pgman@candle.pha.pa.us>
+Message-ID: <200201250555.g0P5tWY15824@candle.pha.pa.us>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.30.0201242259280.686-100000@peter.localdomain>
+To: Peter Eisentraut <peter_e@gmx.net>
+Date: Fri, 25 Jan 2002 00:55:32 -0500 (EST)
+cc: Tom Lane <tgl@sss.pgh.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, pgsql-hackers@postgresql.org
+X-Mailer: ELM [version 2.4ME+ PL96 (25)]
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut wrote:
+> Tom Lane writes:
+>
+> > It'd be nice though if
+> > the behavior could be changed after connection by a SET statement, which
+> > would be lots easier if the setting were GUC-controlled. Peter, you see
+> > any way to resolve that?
+>
+> We had a text[] field to pg_shadow and/or pg_database containing
+> name=value assignments which are executed just before the session starts.
+> Doesn't look terribly difficult, and it's something I've always wanted to
+> do anyway.
+
+Sorry, I see what you are saying now, that the name=value pairs would
+set in pg_database and pg_shadow and get executed on session startup.
+Very good.
+
+--
+ Bruce Momjian | http://candle.pha.pa.us
+ pgman@candle.pha.pa.us | (610) 853-3000
+ + If your life is a hard drive, | 830 Blythe Avenue
+ + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18174=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 06:44:17 2002
+Return-path: <pgsql-hackers-owner+M18174=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0PBiGe20620
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 06:44:16 -0500 (EST)
+Received: (qmail 92210 invoked by alias); 25 Jan 2002 11:43:41 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 11:43:41 -0000
+Received: from smxsat1.smxs.net (smxsat1.smxs.net [213.150.10.1])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0PBYsl90858
+ for <pgsql-hackers@postgresql.org>; Fri, 25 Jan 2002 06:34:54 -0500 (EST)
+ (envelope-from ZeugswetterA@spardat.at)
+Received: from m01x1.s-mxs.net [10.3.55.201]
+ by smxsat1.smxs.net
+ with XWall v3.18f ;
+ Fri, 25 Jan 2002 12:36:18 +0100
+Received: from m0102.s-mxs.net [10.3.55.2]
+ by m01x1.s-mxs.net
+ with XWall v3.18a ;
+ Fri, 25 Jan 2002 12:34:49 +0100
+Received: from m0114.s-mxs.net ([10.3.55.14]) by m0102.s-mxs.net with Microsoft SMTPSVC(5.0.2195.2966);
+ Fri, 25 Jan 2002 12:34:49 +0100
+X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3
+content-class: urn:content-classes:message
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Fri, 25 Jan 2002 12:34:48 +0100
+Message-ID: <46C15C39FEB2C44BA555E356FBCD6FA42128DD@m0114.s-mxs.net>
+Thread-Topic: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Thread-Index: AcGkLuTMcnCfXPmkTji5zHYd6Vhu3QBZTo9w
+From: "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
+To: "Joe Conway (wwc)" <jconway@cox.net>, "Tom Lane" <tgl@sss.pgh.pa.us>
+cc: "Fernando Nasser" <fnasser@redhat.com>,
+ "Peter Eisentraut" <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>
+X-OriginalArrivalTime: 25 Jan 2002 11:34:49.0376 (UTC) FILETIME=[4C1C7200:01C1A594]
+Content-Transfer-Encoding: 8bit
+X-MIME-Autoconverted: from quoted-printable to 8bit by postgresql.org id g0PBh2m91415
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: ORr
+
+
+> Tom Lane wrote:
+>
+> >
+> > This would be a *whole* lot simpler if we forgot the notion of "any"
+> > and made the search order look like
+> >
+> > (temp, private, public, system)
+
+I am starting to see the advantages and like it. I also like the exact
+name "public" for the public schema.
+
+Andreas
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18195=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 12:18:20 2002
+Return-path: <pgsql-hackers-owner+M18195=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0PHIJe26232
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 12:18:19 -0500 (EST)
+Received: (qmail 96791 invoked by alias); 25 Jan 2002 17:14:40 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 17:14:40 -0000
+Received: from candle.pha.pa.us (216-55-132-35.dsl.san-diego.abac.net [216.55.132.35])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0PGrXl88459
+ for <pgsql-hackers@postgresql.org>; Fri, 25 Jan 2002 11:53:34 -0500 (EST)
+ (envelope-from pgman@candle.pha.pa.us)
+Received: (from pgman@localhost)
+ by candle.pha.pa.us (8.11.6/8.10.1) id g0PGq4L23522;
+ Fri, 25 Jan 2002 11:52:04 -0500 (EST)
+From: Bruce Momjian <pgman@candle.pha.pa.us>
+Message-ID: <200201251652.g0PGq4L23522@candle.pha.pa.us>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <46C15C39FEB2C44BA555E356FBCD6FA42128DD@m0114.s-mxs.net>
+To: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>
+Date: Fri, 25 Jan 2002 11:52:04 -0500 (EST)
+cc: "Joe Conway (wwc)" <jconway@cox.net>, Tom Lane <tgl@sss.pgh.pa.us>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+X-Mailer: ELM [version 2.4ME+ PL96 (25)]
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Zeugswetter Andreas SB SD wrote:
+>
+> > Tom Lane wrote:
+> >
+> > >
+> > > This would be a *whole* lot simpler if we forgot the notion of "any"
+> > > and made the search order look like
+> > >
+> > > (temp, private, public, system)
+>
+> I am starting to see the advantages and like it. I also like the exact
+> name "public" for the public schema.
+
+I wonder if we should think about a 'group' area so people in a group
+can create things that others in the group can see, but not people
+outside the group.
+
+--
+ Bruce Momjian | http://candle.pha.pa.us
+ pgman@candle.pha.pa.us | (610) 853-3000
+ + If your life is a hard drive, | 830 Blythe Avenue
+ + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From tgl@sss.pgh.pa.us Fri Jan 25 12:04:14 2002
+Return-path: <tgl@sss.pgh.pa.us>
+Received: from sss.pgh.pa.us (root@[192.204.191.242])
+ by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g0PH4De25154
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 12:04:13 -0500 (EST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0PH4Cf26410;
+ Fri, 25 Jan 2002 12:04:12 -0500 (EST)
+To: Bruce Momjian <pgman@candle.pha.pa.us>
+cc: Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ "Joe Conway (wwc)" <jconway@cox.net>, Fernando Nasser <fnasser@redhat.com>,
+ Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <200201251652.g0PGq4L23522@candle.pha.pa.us>
+References: <200201251652.g0PGq4L23522@candle.pha.pa.us>
+Comments: In-reply-to Bruce Momjian <pgman@candle.pha.pa.us>
+ message dated "Fri, 25 Jan 2002 11:52:04 -0500"
+Date: Fri, 25 Jan 2002 12:04:12 -0500
+Message-ID: <26407.1011978252@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Status: OR
+
+Bruce Momjian <pgman@candle.pha.pa.us> writes:
+>> I am starting to see the advantages and like it. I also like the exact
+>> name "public" for the public schema.
+
+> I wonder if we should think about a 'group' area so people in a group
+> can create things that others in the group can see, but not people
+> outside the group.
+
+I see no reason to hard-wire such a concept. Given createable
+namespaces, ACLs for namespaces, and a settable namespace search path,
+people can set up group namespaces or anything else they want.
+
+The (temp, private, public, system) path is suggested as default because
+it's the minimum we need to support both SQL92 and backwards-compatible
+behaviors. I don't think we should put in special-purpose features
+beyond that, when we can instead offer a general mechanism with which
+people can build the special-purpose features they want.
+
+ regards, tom lane
+
+From pgsql-hackers-owner+M18209=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 16:14:02 2002
+Return-path: <pgsql-hackers-owner+M18209=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0PLE1e19183
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 16:14:01 -0500 (EST)
+Received: (qmail 85059 invoked by alias); 25 Jan 2002 21:13:58 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 21:13:58 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0PKtNl77878
+ for <pgsql-hackers@postgresql.org>; Fri, 25 Jan 2002 15:55:23 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 10628 invoked by uid 1130); 25 Jan 2002 20:55:14 -0000
+Date: Fri, 25 Jan 2002 12:50:26 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Gavin Sherry <swm@linuxworld.com.au>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.LNX.4.21.0201251517350.12632-100000@linuxworld.com.au>
+Message-ID: <Pine.NEB.4.33.0201251241140.12100-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Fri, 25 Jan 2002, Gavin Sherry wrote:
+
+> This makes a lot of sense and suggests the possibility of 'schema enabled'
+> databases. That is, a switch 'bool withschemas' (which defaults to
+> false) could be added to pg_database. If true, the parser and ownership
+> model reflects that of SQL'99 and/or the Postgres schema model. If false,
+> the existing 'schema' model is assumed.
+>
+> This should allow existing users to migrate their data and applications to
+> 7.3 without having to modify either.
+>
+> Its not an ideal solution but backward compatibility is generally results
+> in compromise ;).
+
+I guess my frustration with this idea is that we don't really need it. We
+can achieve the same global namespace for an old app without it. All we
+need is a tool which turns old dumps into new ones (which we probably need
+anyway) that merges all of the schemas together w/ PATH statements. Or
+maybe (new idea) a tool which looks at the schemas in a DB and updates
+their PATHs so they act unified.
+
+We can achieve the old behavior w/o having to build it into the backend.
+So why add code to the backend when we don't have to? Among other things,
+it would complicate the system schema as we'd have to keep track of
+ownership values we wouldn't otherwise need to.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From ZeugswetterA@spardat.at Fri Jan 25 16:36:49 2002
+Return-path: <ZeugswetterA@spardat.at>
+Received: from smxsat1.smxs.net (smxsat1.smxs.net [213.150.10.1])
+ by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g0PLame20819
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 16:36:48 -0500 (EST)
+Received: from m01x1.s-mxs.net [10.3.55.201]
+ by smxsat1.smxs.net
+ with XWall v3.18f ;
+ Fri, 25 Jan 2002 22:38:07 +0100
+Received: from m0102.s-mxs.net [10.3.55.2]
+ by m01x1.s-mxs.net
+ with XWall v3.18a ;
+ Fri, 25 Jan 2002 22:36:38 +0100
+Received: from m0114.s-mxs.net ([10.3.55.14]) by m0102.s-mxs.net with Microsoft SMTPSVC(5.0.2195.2966);
+ Fri, 25 Jan 2002 22:36:38 +0100
+X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3
+content-class: urn:content-classes:message
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Subject: RE: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Date: Fri, 25 Jan 2002 22:36:37 +0100
+Message-ID: <46C15C39FEB2C44BA555E356FBCD6FA42128E0@m0114.s-mxs.net>
+Thread-Topic: [HACKERS] RFD: schemas and different kinds of Postgres objects
+Thread-Index: AcGlwKXMNIw3BiZ7R4G6MaOhn/ahAgAJ0maA
+From: "Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
+To: "Bruce Momjian" <pgman@candle.pha.pa.us>
+cc: "Joe Conway (wwc)" <jconway@cox.net>, "Tom Lane" <tgl@sss.pgh.pa.us>,
+ "Fernando Nasser" <fnasser@redhat.com>,
+ "Peter Eisentraut" <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>
+X-OriginalArrivalTime: 25 Jan 2002 21:36:38.0285 (UTC) FILETIME=[5EB2B3D0:01C1A5E8]
+Content-Transfer-Encoding: 8bit
+X-MIME-Autoconverted: from quoted-printable to 8bit by candle.pha.pa.us id g0PLame20819
+Status: OR
+
+
+> > I am starting to see the advantages and like it. I also like the exact
+> > name "public" for the public schema.
+>
+> I wonder if we should think about a 'group' area so people in a group
+> can create things that others in the group can see, but not people
+> outside the group.
+
+A group simply chooses a special schema name for their group.
+
+Maybe an extra in the ACL area so you can grant privs for a whole
+schema.
+
+grant select on schema blabla to "JoeLuser"
+
+Andreas
+
+From wrstuden@netbsd.org Fri Jan 25 17:12:51 2002
+Return-path: <wrstuden@netbsd.org>
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0PMCoe23588
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 17:12:51 -0500 (EST)
+Received: (qmail 20909 invoked by uid 1130); 25 Jan 2002 22:12:46 -0000
+Date: Fri, 25 Jan 2002 14:07:58 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Bruce Momjian <pgman@candle.pha.pa.us>
+cc: Tom Lane <tgl@sss.pgh.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <200201250326.g0P3Qhw23061@candle.pha.pa.us>
+Message-ID: <Pine.NEB.4.33.0201251358390.12100-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Status: OR
+
+On Thu, 24 Jan 2002, Bruce Momjian wrote:
+
+> I think we could set the database default at db creation time, then
+> allow SET to modify that default per session; seems flexible enough.
+> It is basically a GUC value who's default is stored in pg_database
+> rather than postgresql.conf. You could use postgresql.conf to set the
+> default schema type at db creation time.
+
+Specifically to the question of schema pathing, why would you want it to
+be session-settable? Either your DB app is designed to work w/ schemas, or
+it isn't. That's a pretty fundamental design concept. Given that, I don't
+see how it can make sense to try to operate in the opposite mode as the
+app was designed for - that'll only lead to chaos.
+
+Take care,
+
+Bill
+
+
+From tgl@sss.pgh.pa.us Fri Jan 25 17:26:17 2002
+Return-path: <tgl@sss.pgh.pa.us>
+Received: from sss.pgh.pa.us (root@[192.204.191.242])
+ by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g0PMQGe24836
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 17:26:16 -0500 (EST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0PMQEf07711;
+ Fri, 25 Jan 2002 17:26:14 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Bruce Momjian <pgman@candle.pha.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201251358390.12100-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201251358390.12100-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Fri, 25 Jan 2002 14:07:58 -0800"
+Date: Fri, 25 Jan 2002 17:26:14 -0500
+Message-ID: <7708.1011997574@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+> Specifically to the question of schema pathing, why would you want it to
+> be session-settable? Either your DB app is designed to work w/ schemas, or
+> it isn't.
+
+So that you can set the correct mode for your client application. It is
+silly to suppose that an installation-wide or even database-wide setting
+is sufficient. Consider for example a database shared by multiple
+pieces of client software; wouldn't you like to be able to upgrade them
+to schema-awareness one at a time?
+
+You could possibly make a case for a single setting per user, but even
+that makes an assumption (user == client software) that I think is not
+reasonable for us to force on all Postgres installations.
+
+Basically I haven't got a lot of patience for arguments that say we do
+not need flexibility. There are more people out there, using Postgres
+in more different ways, than either you or I know about.
+
+ regards, tom lane
+
+From pgsql-hackers-owner+M18216=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 18:54:34 2002
+Return-path: <pgsql-hackers-owner+M18216=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0PNsXe02286
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 18:54:34 -0500 (EST)
+Received: (qmail 18323 invoked by alias); 25 Jan 2002 23:53:56 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 25 Jan 2002 23:53:56 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0PNk1l17143
+ for <pgsql-hackers@postgresql.org>; Fri, 25 Jan 2002 18:46:02 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 23281 invoked by uid 1130); 25 Jan 2002 23:46:04 -0000
+Date: Fri, 25 Jan 2002 15:41:16 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bruce Momjian <pgman@candle.pha.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <7708.1011997574@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201251425391.12100-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Fri, 25 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > Specifically to the question of schema pathing, why would you want it to
+> > be session-settable? Either your DB app is designed to work w/ schemas, or
+> > it isn't.
+>
+> So that you can set the correct mode for your client application. It is
+> silly to suppose that an installation-wide or even database-wide setting
+> is sufficient. Consider for example a database shared by multiple
+> pieces of client software; wouldn't you like to be able to upgrade them
+> to schema-awareness one at a time?
+
+What exactly does it mean to upgrade to schema-awareness? I know the jist
+of what you mean, but what does it entail? What steps? I ask as, when I
+think of what it means in practical steps, an upgraded app won't have
+problems with extra stuff pathed in. So the upgraded app will be fine with
+the pathing set up to include all (not-upgraded) schemas. Also, if it does
+have a problem with stuff pathed in, since you can easily set the new apps
+up to live in different schemas than the old ones, you can have upgraded &
+from-before schemas.
+
+> You could possibly make a case for a single setting per user, but even
+> that makes an assumption (user == client software) that I think is not
+> reasonable for us to force on all Postgres installations.
+
+But we will have the ability to set the path per schema. Since
+schema-aware apps should be able to choose which schema they connect to (I
+envision it being a connect parameter), the different apps can implicitly
+get different behaviors by connecting to schemas that are designed to be
+schema-savy, or connecting to ones which aren't (i.e. have all of the
+schema-unaware stuff pathed in).
+
+> Basically I haven't got a lot of patience for arguments that say we do
+> not need flexibility. There are more people out there, using Postgres
+> in more different ways, than either you or I know about.
+
+Tom, please listen to what I'm saying. I'm trying to be as clear as I can
+& making sure I'm not working from details in my head and not my posts.
+I'm sorry if it isn't clear but I'm _not_ saying that we don't need the
+flexability you describe. We do.
+
+I'm saying that IT IS ALREADY THERE! The pathing built into schemas can be
+very powerful. Powerful enough that I haven't heard of an example yet that
+can't be taken care of with judicious use of pathing. And I don't think
+the pathing needed is beyond mid-level admins (I don't see it as something
+which only say 5 people on the lists can get right). Yes, people will have
+to learn it, but it doesn't strike me as that hard a thing.
+
+What I am saying is that we don't need the solution you & Bruce mentioned
+to get the flexability you mentioned as the reason for adding it. So why
+add the feature which isn't needed?
+
+One of my objections to a "mode" supporting the old behavior is that, as I
+understand it, there would be a schema ("public") where different users
+could own objects in the same schema. That goes against one of the
+advantages I see for schemas: we can consolidate ownership info in the
+system tables. If you know what schema something is in, you know its
+owner. That means that adding schema support doesn't mean growing system
+tables, just renaming a column (the user id gets turned into the schema
+id).
+
+Maybe that's not such a big deal. But it seems when we're doing things
+right, things should get cleaner. Having to keep ownership info at both
+the schema level and at the object level strikes me as not making things
+cleaner. That just seems to be going in the wrong direction.
+
+Especially as, AFAICT, it wouldn't be hard to let the sysadmins have all
+the flexability you want them to have (and also that I agree they should
+have) in a system which is, at its core, very schema-savy (everything in
+one schema is owned by the same user or group).
+
+I also agree that migration is important. Apps from 7.2 (and 7.1 and
+earlier as possible) should run on the schema-savy backend I describe. A
+migration tool to take the dump from before and add update schema commands
+to path everything in (so it looks like one namespace) should make the old
+apps keep working.
+
+The one thing I'll concede could be useful would be for createuser to be
+told to automatically set the new user's schema to include all the other
+schemas, and to update all the other user schemas to add this user. That
+way you can add new users to your DB when you're acting as if it didn't
+have schemas.
+
+Hmmm. If we made the above behavior a per-db-configurable default, the
+pg_dump file wouldn't need to be changed. That would be good. It would
+make the path updates O(nusers^2) rather than O(nusers), but that probably
+won't be bad. And offering both options would probably be good.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From tgl@sss.pgh.pa.us Fri Jan 25 19:04:17 2002
+Return-path: <tgl@sss.pgh.pa.us>
+Received: from sss.pgh.pa.us (root@[192.204.191.242])
+ by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g0Q04Ge02926
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 19:04:17 -0500 (EST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0Q04Ff08236;
+ Fri, 25 Jan 2002 19:04:16 -0500 (EST)
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Bruce Momjian <pgman@candle.pha.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <Pine.NEB.4.33.0201251425391.12100-100000@vespasia.home-net.internetconnect.net>
+References: <Pine.NEB.4.33.0201251425391.12100-100000@vespasia.home-net.internetconnect.net>
+Comments: In-reply-to Bill Studenmund <wrstuden@netbsd.org>
+ message dated "Fri, 25 Jan 2002 15:41:16 -0800"
+Date: Fri, 25 Jan 2002 19:04:15 -0500
+Message-ID: <8233.1012003455@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Status: OR
+
+Bill Studenmund <wrstuden@netbsd.org> writes:
+> But we will have the ability to set the path per schema.
+
+?? I don't follow that at all. A namespace is something that's referred
+to by a search path, not vice versa. Or are you defining "schema" to
+mean some higher-level concept that incorporates a search path of
+multiple primitive namespaces? Maybe that could work, but I'm not sure
+I see the point yet.
+
+ regards, tom lane
+
+From wrstuden@netbsd.org Fri Jan 25 20:39:59 2002
+Return-path: <wrstuden@netbsd.org>
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0Q1dve10731
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 20:39:58 -0500 (EST)
+Received: (qmail 27927 invoked by uid 1130); 26 Jan 2002 01:39:59 -0000
+Date: Fri, 25 Jan 2002 17:35:11 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bruce Momjian <pgman@candle.pha.pa.us>,
+ Zeugswetter Andreas SB SD <ZeugswetterA@spardat.at>,
+ Fernando Nasser <fnasser@redhat.com>, Peter Eisentraut <peter_e@gmx.net>,
+ <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <8233.1012003455@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201251631050.12100-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Status: OR
+
+On Fri, 25 Jan 2002, Tom Lane wrote:
+
+> Bill Studenmund <wrstuden@netbsd.org> writes:
+> > But we will have the ability to set the path per schema.
+>
+> ?? I don't follow that at all. A namespace is something that's referred
+> to by a search path, not vice versa. Or are you defining "schema" to
+> mean some higher-level concept that incorporates a search path of
+> multiple primitive namespaces? Maybe that could work, but I'm not sure
+> I see the point yet.
+
+Oh. That would make a difference. We've been talking past each other.
+
+SQL schemas, as I understand the spec, are both. A shema is a container
+that holds things like tables and views and functions (and for PostgreSQL
+operators and aggregates and I'd suggest index operators, etc.). It also
+can include a schema path specification, which defines the search path
+used by routines (stored procedures & functions) contained in that schema.
+
+So say I have schemas foo, bar, and baz. I can set the schema path for
+schema bar to be foo:bar:baz:IMPLIMENTATION_SCHEMA, and all routines in
+bar will look in those four schemas for types, functions and tables (and
+everything else we use the search path for).
+
+(*) IMPLIMENTATION_SCHEMA is required by the spec, and contains all the
+built-ins. It's be implimentation_schema for pg. Also, if you have a path
+that doesn't list it, the db is supposed to prepend it to the list.
+
+So when migrating an app from a schema-unaware PostgreSQL to a
+schema-aware one, if we create a schema for each user, and make each
+such schema path in all the other such schemas, we make it such that all
+of the procedures in those schemas act like they have a unified namespace.
+
+There also is also the concept of the CURRENT_PATH which is the schema
+path used for parsed queries (like ones typed into psql). I got lost in
+the spec trying to find what this is supposed to default to, but what I
+understand other DBs to do is your CURRENT_PATH is set to the path of the
+schema you log into.
+
+Add to this mix the default schema for user X is schema X (which I thought
+was in the spec but I can't find now), and let's look at that example
+again.
+
+Say we had users foo, bar and baz before. We made schemas foo, bar, and
+baz. We set the default paths for each of these schemas to
+foo:bar:baz:IMPLIMENTATION_SCHEMA. Now the routines in each of these
+schemas will see a unified namespace. Next, when we log in as users foo,
+bar, or baz, and our CURRENT_PATH ends up including the namespaces of the
+three original users. So now all of our submitted queries also see a
+unified namespace.
+
+So with a schema-savy backend, by adding PATH statements to the schemas
+that pull in all of the previous schemas, we can make the old app behave
+as if it had a unified namespace.
+
+Does that make sense?
+
+Take care,
+
+Bill
+
+P.S. does anyone need copies of the spec? I found pdf's on the web a while
+back..
+
+
+From pgsql-hackers-owner+M18221=candle.pha.pa.us=pgman@postgresql.org Fri Jan 25 22:13:58 2002
+Return-path: <pgsql-hackers-owner+M18221=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0Q3Dwe17302
+ for <pgman@candle.pha.pa.us>; Fri, 25 Jan 2002 22:13:58 -0500 (EST)
+Received: (qmail 42344 invoked by alias); 26 Jan 2002 03:13:55 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 26 Jan 2002 03:13:55 -0000
+Received: from golem.fourpalms.org (golem.fourpalms.org [64.3.68.148])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0Q35hl41629
+ for <pgsql-hackers@postgresql.org>; Fri, 25 Jan 2002 22:05:43 -0500 (EST)
+ (envelope-from lockhart@fourpalms.org)
+Received: from fourpalms.org (localhost.localdomain [127.0.0.1])
+ by golem.fourpalms.org (Postfix) with ESMTP
+ id 0336CFEC5; Sat, 26 Jan 2002 03:05:45 +0000 (UTC)
+Message-ID: <3C521D08.9138E2EA@fourpalms.org>
+Date: Sat, 26 Jan 2002 03:05:44 +0000
+From: Thomas Lockhart <lockhart@fourpalms.org>
+Reply-To: lockhart@fourpalms.org
+Organization: Yes
+X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.2.17-21mdksmp i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <20020123083152.W18169-100000@megazone23.bigpanda.com> <3159.1011804418@sss.pgh.pa.us>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+...
+> > Wouldn't it make sense to prefer operators/functions earlier in the search
+> > path for resolving ambiguity. So if you had plus(int4, int4) in my
+> > schema and plus(int8, int8) in system, and they'd otherwise cause an
+> > ambiguity failure for the query, use the plus(int4, int4) on mine. It
+> > seems not too far from having the search path shadow later exact matches.
+> Given the complexity of the resolution rules (cf.
+> http://developer.postgresql.org/docs/postgres/typeconv.html),
+> it's not clear that we can determine exactly which "later" entry ought
+> to be blamed for causing a resolution failure. I'd be interested to
+> hear Lockhart's opinion on this --- but my gut feeling is we don't
+> want to go there. The resolution rules are already complicated enough,
+> and I think layering an additional mechanism like that onto them might
+> make the behavior totally unpredictable.
+
+(I've been following the discussion; I suspect that this part may
+already have an obvious answer since "any" scoping -- equivalent to
+flattening the namespace? -- may now be out of favor; I'm assuming that
+we have a clearly scoped lookup scheme available).
+
+imho there is nothing fundamentally difficult or "unpredictable" about
+layering schema lookup on to the existing function resolution rules. One
+might want a bit better diagnostics about *which* function was actually
+chosen, but reasonable scoping and lookup rules could be constructed
+which give reasonable behavior with the addition of schemas.
+
+For example, the current function resolution rules prefer an exact
+match, then start looking for approximate matches, and narrow that down
+to preferring the one with the best explicit match on data types. If
+more than one matches, then it rejects the query. (I've left out one or
+two steps, but on the whole this is the behavior that matters.)
+
+With schemas, one could choose to use "closest schema" as the tiebreaker
+for multiple matches, but istm that an exact match should always win.
+
+We might want to include a mechanism that *blocks* schema lookups deeper
+into the search path, to allow reliable *complete replacement* of a
+function. This would be a property of the function, to be set when it is
+defined in the schema. So an implementer could choose to restrict
+lookups explicitly if that is deemed necessary. Again, this is not a
+huge complication.
+
+It is an interesting discussion, and the fine points will not be brought
+out without having lots of back-and-forth, which seems to be happening
+already ;)
+
+ - Thomas
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18236=candle.pha.pa.us=pgman@postgresql.org Sun Jan 27 20:44:07 2002
+Return-path: <pgsql-hackers-owner+M18236=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0S1i6e21103
+ for <pgman@candle.pha.pa.us>; Sun, 27 Jan 2002 20:44:06 -0500 (EST)
+Received: (qmail 86523 invoked by alias); 28 Jan 2002 01:44:01 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 28 Jan 2002 01:44:01 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0S1X4l84668
+ for <pgsql-hackers@postgreSQL.org>; Sun, 27 Jan 2002 20:33:04 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 4010 invoked from network); 28 Jan 2002 01:33:07 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 28 Jan 2002 01:33:07 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id KAA05318;
+ Mon, 28 Jan 2002 10:33:04 +0900 (JST)
+Message-ID: <3C54AA51.64CE68AD@tpf.co.jp>
+Date: Mon, 28 Jan 2002 10:33:05 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>,
+ Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.LNX.4.30.0201240003120.686-100000@peter.localdomain>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Is *the path* below the same as "search path* in other
+postings about this thread ?
+
+Maybe Peter's posting isn't the one exactly what I have to
+ask but there are too many postings for me to follow.
+
+regards,
+Hiroshi Inoue
+
+Peter Eisentraut wrote:
+>
+> Bill Studenmund writes:
+>
+> > Does SQL'99 say anything about this?
+>
+> Yes, though, as usual, you have to twist your brain a little to understand
+> it. My understanding is that for a function call of the form "foo(a, b)"
+> it goes like this:
+>
+> 1. Find all functions named "foo" in the current database. This is the
+> set of "possibly candidate routines".
+>
+> 2. Drop all routines that you do not have EXECUTE privilege for. This is
+> the set of "executable routines".
+>
+> 3. Drop all routines that do not have compatible parameter lists. This is
+> the set of "invocable routines".
+>
+> 4. Drop all routines whose schema is not in the path. This is the set of
+> "candidate routines".
+>
+> 5. If you have more than one routine left, eliminate some routines
+> according to type precedence rules. (We do some form of this, SQL99
+> specifies something different.) This yields the set of "candidate subject
+> routines".
+>
+> 6. Choose the routine whose schema is earliest in the path as the "subject
+> routine".
+>
+> Execute the subject routine. Phew!
+>
+> This doesn't look glaringly wrong to me, so maybe you want to consider it.
+> Please note step 2.
+>
+> --
+> Peter Eisentraut peter_e@gmx.net
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18249=candle.pha.pa.us=pgman@postgresql.org Mon Jan 28 19:34:59 2002
+Return-path: <pgsql-hackers-owner+M18249=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0T0Ywe04781
+ for <pgman@candle.pha.pa.us>; Mon, 28 Jan 2002 19:34:58 -0500 (EST)
+Received: (qmail 99270 invoked by alias); 29 Jan 2002 00:34:49 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 29 Jan 2002 00:34:49 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0T0WDl98697
+ for <pgsql-hackers@postgreSQL.org>; Mon, 28 Jan 2002 19:32:13 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 26513 invoked by uid 1130); 29 Jan 2002 00:31:57 -0000
+Date: Mon, 28 Jan 2002 16:27:04 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>,
+ Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C54AA51.64CE68AD@tpf.co.jp>
+Message-ID: <Pine.NEB.4.33.0201281624010.18868-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Mon, 28 Jan 2002, Hiroshi Inoue wrote:
+
+> Is *the path* below the same as "search path* in other
+> postings about this thread ?
+
+I think so. I believe the path I've been talking about is the one in step
+6 below.
+
+Take care,
+
+Bill
+
+> Maybe Peter's posting isn't the one exactly what I have to
+> ask but there are too many postings for me to follow.
+>
+> regards,
+> Hiroshi Inoue
+>
+> Peter Eisentraut wrote:
+> >
+> > Bill Studenmund writes:
+> >
+> > > Does SQL'99 say anything about this?
+> >
+> > Yes, though, as usual, you have to twist your brain a little to understand
+> > it. My understanding is that for a function call of the form "foo(a, b)"
+> > it goes like this:
+> >
+> > 1. Find all functions named "foo" in the current database. This is the
+> > set of "possibly candidate routines".
+> >
+> > 2. Drop all routines that you do not have EXECUTE privilege for. This is
+> > the set of "executable routines".
+> >
+> > 3. Drop all routines that do not have compatible parameter lists. This is
+> > the set of "invocable routines".
+> >
+> > 4. Drop all routines whose schema is not in the path. This is the set of
+> > "candidate routines".
+> >
+> > 5. If you have more than one routine left, eliminate some routines
+> > according to type precedence rules. (We do some form of this, SQL99
+> > specifies something different.) This yields the set of "candidate subject
+> > routines".
+> >
+> > 6. Choose the routine whose schema is earliest in the path as the "subject
+> > routine".
+> >
+> > Execute the subject routine. Phew!
+> >
+> > This doesn't look glaringly wrong to me, so maybe you want to consider it.
+> > Please note step 2.
+> >
+> > --
+> > Peter Eisentraut peter_e@gmx.net
+>
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18257=candle.pha.pa.us=pgman@postgresql.org Tue Jan 29 01:14:41 2002
+Return-path: <pgsql-hackers-owner+M18257=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0T6Eee16404
+ for <pgman@candle.pha.pa.us>; Tue, 29 Jan 2002 01:14:40 -0500 (EST)
+Received: (qmail 64203 invoked by alias); 29 Jan 2002 06:14:43 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 29 Jan 2002 06:14:43 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0T5lJl60013
+ for <pgsql-hackers@postgreSQL.org>; Tue, 29 Jan 2002 00:47:20 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 19665 invoked from network); 29 Jan 2002 05:47:24 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 29 Jan 2002 05:47:24 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id OAA07250;
+ Tue, 29 Jan 2002 14:47:22 +0900 (JST)
+Message-ID: <3C56376C.BCA5B3A5@tpf.co.jp>
+Date: Tue, 29 Jan 2002 14:47:24 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>,
+ Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201281624010.18868-100000@vespasia.home-net.internetconnect.net>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund wrote:
+>
+> On Mon, 28 Jan 2002, Hiroshi Inoue wrote:
+>
+> > Is *the path* below the same as "search path* in other
+> > postings about this thread ?
+>
+> I think so. I believe the path I've been talking about is the one in step
+> 6 below.
+
+What I can find in SQL99 is SQL-path.
+Does *the path*(i.e search path) mean SQL-path ?
+They don't seem the same to me.
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18271=candle.pha.pa.us=pgman@postgresql.org Tue Jan 29 12:55:04 2002
+Return-path: <pgsql-hackers-owner+M18271=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0THt2P00626
+ for <pgman@candle.pha.pa.us>; Tue, 29 Jan 2002 12:55:02 -0500 (EST)
+Received: (qmail 77793 invoked by alias); 29 Jan 2002 17:54:57 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 29 Jan 2002 17:54:57 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0THmBl76965
+ for <pgsql-hackers@postgreSQL.org>; Tue, 29 Jan 2002 12:48:11 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 23554 invoked by uid 1130); 29 Jan 2002 17:48:16 -0000
+Date: Tue, 29 Jan 2002 09:43:22 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>,
+ Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C56376C.BCA5B3A5@tpf.co.jp>
+Message-ID: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Tue, 29 Jan 2002, Hiroshi Inoue wrote:
+
+> Bill Studenmund wrote:
+> >
+> > On Mon, 28 Jan 2002, Hiroshi Inoue wrote:
+> >
+> > > Is *the path* below the same as "search path* in other
+> > > postings about this thread ?
+> >
+> > I think so. I believe the path I've been talking about is the one in step
+> > 6 below.
+>
+> What I can find in SQL99 is SQL-path.
+> Does *the path*(i.e search path) mean SQL-path ?
+> They don't seem the same to me.
+
+While we may have not been using the terminology of the spec, I think we
+have been talking about schema paths from SQL99.
+
+One difference between our discussions and SQL99 I've noticed is that
+we've spoken of having the path find functions (and operators and
+aggregates), types, _and_tables_. SQL99 doesn't have tables in there
+AFAICT, but I think it makes sense.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18273=candle.pha.pa.us=pgman@postgresql.org Tue Jan 29 19:25:30 2002
+Return-path: <pgsql-hackers-owner+M18273=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0U0PUP06467
+ for <pgman@candle.pha.pa.us>; Tue, 29 Jan 2002 19:25:30 -0500 (EST)
+Received: (qmail 92158 invoked by alias); 30 Jan 2002 00:25:29 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 30 Jan 2002 00:25:29 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0U0Kil91336
+ for <pgsql-hackers@postgreSQL.org>; Tue, 29 Jan 2002 19:20:45 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 18978 invoked from network); 30 Jan 2002 00:20:46 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 30 Jan 2002 00:20:46 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id JAA08622;
+ Wed, 30 Jan 2002 09:20:44 +0900 (JST)
+Message-ID: <3C573C5E.F01B48C2@tpf.co.jp>
+Date: Wed, 30 Jan 2002 09:20:46 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ Tom Lane <tgl@sss.pgh.pa.us>
+cc: PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund wrote:
+>
+> On Tue, 29 Jan 2002, Hiroshi Inoue wrote:
+>
+> > What I can find in SQL99 is SQL-path.
+> > Does *the path*(i.e search path) mean SQL-path ?
+> > They don't seem the same to me.
+>
+> While we may have not been using the terminology of the spec, I think we
+> have been talking about schema paths from SQL99.
+>
+> One difference between our discussions and SQL99 I've noticed is that
+> we've spoken of having the path find functions (and operators and
+> aggregates), types, _and_tables_.
+
+My understanding is the same.
+Tom, Peter is it right ?
+
+> SQL99 doesn't have tables in there
+> AFAICT, but I think it makes sense.
+
+It seems to make sense but they are different and
+our *path* is never an extension of SQL-path.
+Where are the difference or the relevance referred
+to in this thread ?
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18305=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 15:15:26 2002
+Return-path: <pgsql-hackers-owner+M18305=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0UKFOP11825
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 15:15:25 -0500 (EST)
+Received: (qmail 72977 invoked by alias); 30 Jan 2002 20:15:22 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 30 Jan 2002 20:15:22 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0UKEKl72120
+ for <pgsql-hackers@postgreSQL.org>; Wed, 30 Jan 2002 15:14:20 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 23890 invoked by uid 1130); 30 Jan 2002 20:13:52 -0000
+Date: Wed, 30 Jan 2002 12:08:54 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C573C5E.F01B48C2@tpf.co.jp>
+Message-ID: <Pine.NEB.4.33.0201301207540.26920-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 30 Jan 2002, Hiroshi Inoue wrote:
+
+> Bill Studenmund wrote:
+> >
+> > On Tue, 29 Jan 2002, Hiroshi Inoue wrote:
+> > SQL99 doesn't have tables in there
+> > AFAICT, but I think it makes sense.
+>
+> It seems to make sense but they are different and
+> our *path* is never an extension of SQL-path.
+> Where are the difference or the relevance referred
+> to in this thread ?
+
+How is our path not an extention of SQL-path? Or at least how is the path
+I've been pushing not an SQL-path?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18307=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 16:15:23 2002
+Return-path: <pgsql-hackers-owner+M18307=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0ULFMP19850
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 16:15:22 -0500 (EST)
+Received: (qmail 96622 invoked by alias); 30 Jan 2002 21:15:08 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 30 Jan 2002 21:15:08 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0ULD4l95438
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 16:13:04 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0ULCPf26128;
+ Wed, 30 Jan 2002 16:12:25 -0500 (EST)
+To: Stephan Szabo <sszabo@megazone23.bigpanda.com>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ pgsql-hackers@postgresql.org, Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <20020123162426.K22713-100000@megazone23.bigpanda.com>
+References: <20020123162426.K22713-100000@megazone23.bigpanda.com>
+Comments: In-reply-to Stephan Szabo <sszabo@megazone23.bigpanda.com>
+ message dated "Wed, 23 Jan 2002 16:34:32 -0800"
+Date: Wed, 30 Jan 2002 16:12:24 -0500
+Message-ID: <26125.1012425144@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+[ just catching up on this thread after a couple days thinking about
+other things ]
+
+Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
+> AFAIK there's no way to specify that I want to make the function
+> complex(integer) such that I can do CAST(1 as complex) but not as an
+> implicit cast.
+
+You may have forgotten that I recently suggested adding just such a
+feature, ie a boolean flag on pg_proc rows to indicate whether they can
+be considered for implicit casts. I think we'd agreed that it would be
+a good thing to do in 7.3.
+
+However, that doesn't bear very much on the general argument of the
+thread. The bottom line is that we've put a whole lot of sweat into
+developing rules for resolving ambiguous operator and function calls,
+and I don't think we're going to be willing to toss all that effort into
+the scrap heap. But making namespace search order the dominant factor
+in choosing a function/operator (as Bill seems to want) would certainly
+break all that carefully-crafted effort. If we put the system namespace
+at the front of the search list then users would be unable to override
+standard operators with schema-local substitutes; clearly that's no
+good. But if we put it at the back, then a schema-local user operator
+would dominate all system entries of the same operator name, even for
+quite different types, and thereby it would break the resolution
+behavior.
+
+So I'm still of the opinion that my original suggestion is the only
+workable one: collect candidates across all available namespaces,
+discarding only those that are exact matches to candidates in earlier
+namespaces, and then apply the existing resolution rules to the
+collection. AFAICS this need not be any slower than what we do now,
+if the catalog is set up so that we can collect candidates in one
+indexscan without regard to namespace. The case where there actually
+are any exact matches to discard should be uncommon, so we can deal with
+it later on in the resolution process.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18308=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 16:25:39 2002
+Return-path: <pgsql-hackers-owner+M18308=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0ULPcP20879
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 16:25:38 -0500 (EST)
+Received: (qmail 3172 invoked by alias); 30 Jan 2002 21:25:37 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 30 Jan 2002 21:25:37 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0ULM4l01963
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 16:22:04 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 21064 invoked by uid 1130); 30 Jan 2002 21:22:04 -0000
+Date: Wed, 30 Jan 2002 13:17:07 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Stephan Szabo <sszabo@megazone23.bigpanda.com>,
+ Peter Eisentraut <peter_e@gmx.net>, <pgsql-hackers@postgresql.org>,
+ Fernando Nasser <fnasser@redhat.com>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <26125.1012425144@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201301311020.26920-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 30 Jan 2002, Tom Lane wrote:
+
+> [ just catching up on this thread after a couple days thinking about
+> other things ]
+>
+> However, that doesn't bear very much on the general argument of the
+> thread. The bottom line is that we've put a whole lot of sweat into
+> developing rules for resolving ambiguous operator and function calls,
+> and I don't think we're going to be willing to toss all that effort into
+> the scrap heap. But making namespace search order the dominant factor
+> in choosing a function/operator (as Bill seems to want) would certainly
+> break all that carefully-crafted effort. If we put the system namespace
+> at the front of the search list then users would be unable to override
+> standard operators with schema-local substitutes; clearly that's no
+> good. But if we put it at the back, then a schema-local user operator
+> would dominate all system entries of the same operator name, even for
+> quite different types, and thereby it would break the resolution
+> behavior.
+
+I've changed my mind. :-)
+
+> So I'm still of the opinion that my original suggestion is the only
+> workable one: collect candidates across all available namespaces,
+> discarding only those that are exact matches to candidates in earlier
+> namespaces, and then apply the existing resolution rules to the
+> collection. AFAICS this need not be any slower than what we do now,
+> if the catalog is set up so that we can collect candidates in one
+> indexscan without regard to namespace. The case where there actually
+> are any exact matches to discard should be uncommon, so we can deal with
+> it later on in the resolution process.
+
+Sounds like the thing to do, and it matches the spec. :-)
+
+Oh, you can make a path with your namespace before the built-in one. It's
+just that if you don't include the built-in one (IMPLIMENTATION_SCHEMA) in
+a path, you're supposed to prepend it to the specified list.
+
+Take care,
+
+Bill
+
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18311=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 18:15:49 2002
+Return-path: <pgsql-hackers-owner+M18311=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0UNFmP04299
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 18:15:48 -0500 (EST)
+Received: (qmail 40895 invoked by alias); 30 Jan 2002 23:15:47 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 30 Jan 2002 23:15:47 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0UNDrl39795
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 18:13:53 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0UND7f27530;
+ Wed, 30 Jan 2002 18:13:07 -0500 (EST)
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C573C5E.F01B48C2@tpf.co.jp>
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp>
+Comments: In-reply-to Hiroshi Inoue <Inoue@tpf.co.jp>
+ message dated "Wed, 30 Jan 2002 09:20:46 +0900"
+Date: Wed, 30 Jan 2002 18:13:06 -0500
+Message-ID: <27527.1012432386@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> Bill Studenmund wrote:
+>> While we may have not been using the terminology of the spec, I think we
+>> have been talking about schema paths from SQL99.
+>>
+>> One difference between our discussions and SQL99 I've noticed is that
+>> we've spoken of having the path find functions (and operators and
+>> aggregates), types, _and_tables_.
+
+> My understanding is the same.
+> Tom, Peter is it right ?
+
+SQL99's SQL-path is very clearly stated to be used only for looking up
+routines and user-defined type names. Extending it to cover tables,
+operators, and so forth makes sense to me, but we have to recognize
+that it is a spec extension and therefore not all the answers we need
+can be found in the spec.
+
+I also find it curious that they exclude standard type names from the
+search path. It would seem obvious to treat the standard type names
+as included in a schema that is part of the search path, but AFAICT
+this is not done in the spec. Postgres *has to* do it that way,
+however, or give up our whole approach to datatypes; surely we don't
+want to hardwire the SQL-standard datatypes into the parser to the
+exclusion of the not-so-standard ones.
+
+IMHO, the spec's artificial distinction between system and user types
+limits its usefulness as a guide to the questions we're debating here.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18312=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 18:55:30 2002
+Return-path: <pgsql-hackers-owner+M18312=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0UNtSP08482
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 18:55:29 -0500 (EST)
+Received: (qmail 58399 invoked by alias); 30 Jan 2002 23:55:26 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 30 Jan 2002 23:55:26 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0UNqhl56957
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 18:52:43 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 17164 invoked by uid 1130); 30 Jan 2002 23:46:06 -0000
+Date: Wed, 30 Jan 2002 15:41:09 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Hiroshi Inoue <Inoue@tpf.co.jp>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <27527.1012432386@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201301529010.26920-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 30 Jan 2002, Tom Lane wrote:
+
+> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > Bill Studenmund wrote:
+> >> While we may have not been using the terminology of the spec, I think we
+> >> have been talking about schema paths from SQL99.
+> >>
+> >> One difference between our discussions and SQL99 I've noticed is that
+> >> we've spoken of having the path find functions (and operators and
+> >> aggregates), types, _and_tables_.
+>
+> > My understanding is the same.
+> > Tom, Peter is it right ?
+>
+> SQL99's SQL-path is very clearly stated to be used only for looking up
+> routines and user-defined type names. Extending it to cover tables,
+> operators, and so forth makes sense to me, but we have to recognize
+> that it is a spec extension and therefore not all the answers we need
+> can be found in the spec.
+
+True. I think that extending the path to be used for operators and
+aggregates makes sense as they are special types of function calls. The
+searching for tables might need to be a configurable parameter (defaulting
+to yes), though. I think it makes sense to do, but I can imagine cases
+where apps need to not.
+
+> I also find it curious that they exclude standard type names from the
+> search path. It would seem obvious to treat the standard type names
+> as included in a schema that is part of the search path, but AFAICT
+> this is not done in the spec. Postgres *has to* do it that way,
+> however, or give up our whole approach to datatypes; surely we don't
+> want to hardwire the SQL-standard datatypes into the parser to the
+> exclusion of the not-so-standard ones.
+>
+> IMHO, the spec's artificial distinction between system and user types
+> limits its usefulness as a guide to the questions we're debating here.
+
+True.
+
+Does SQL99 support types as flexable as the ones we do? I know types in
+Oracle are basically special cases of already built-in ones...
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18314=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 19:15:14 2002
+Return-path: <pgsql-hackers-owner+M18314=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V0FDP11130
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 19:15:14 -0500 (EST)
+Received: (qmail 70218 invoked by alias); 31 Jan 2002 00:15:12 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 00:15:12 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0UNtQl58401
+ for <pgsql-hackers@postgreSQL.org>; Wed, 30 Jan 2002 18:55:28 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 11171 invoked from network); 30 Jan 2002 23:55:24 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 30 Jan 2002 23:55:24 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id IAA10232;
+ Thu, 31 Jan 2002 08:55:17 +0900 (JST)
+Message-ID: <3C5887E8.CE7E569F@tpf.co.jp>
+Date: Thu, 31 Jan 2002 08:55:20 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201301207540.26920-100000@vespasia.home-net.internetconnect.net>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund wrote:
+>
+> On Wed, 30 Jan 2002, Hiroshi Inoue wrote:
+>
+> > Bill Studenmund wrote:
+> > >
+> > > On Tue, 29 Jan 2002, Hiroshi Inoue wrote:
+> > > SQL99 doesn't have tables in there
+> > > AFAICT, but I think it makes sense.
+> >
+> > It seems to make sense but they are different and
+> > our *path* is never an extension of SQL-path.
+> > Where are the difference or the relevance referred
+> > to in this thread ?
+>
+> How is our path not an extention of SQL-path? Or at least how is the path
+> I've been pushing not an SQL-path?
+
+IMHO _tables_like objects must be guarded from such
+a search mechanism fundamentally. I don't object to
+the use of our *path* but it should be distinguished
+from SQL-path.
+
+For example the PATH environment variable is used
+only to search executables not files. Is it
+preferable for *rm a_file* to search all the directory
+in the PATH ? If the purpose is different the different
+*path* is needed of cource.
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18317=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 21:15:26 2002
+Return-path: <pgsql-hackers-owner+M18317=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V2FPP23342
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 21:15:25 -0500 (EST)
+Received: (qmail 15445 invoked by alias); 31 Jan 2002 02:15:12 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 02:15:12 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0V1v1l07129
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 20:57:01 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 21526 invoked from network); 31 Jan 2002 01:57:03 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 31 Jan 2002 01:57:03 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id KAA10366;
+ Thu, 31 Jan 2002 10:57:02 +0900 (JST)
+Message-ID: <3C58A472.2E90C21C@tpf.co.jp>
+Date: Thu, 31 Jan 2002 10:57:06 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > Bill Studenmund wrote:
+> >> While we may have not been using the terminology of the spec, I think we
+> >> have been talking about schema paths from SQL99.
+> >>
+> >> One difference between our discussions and SQL99 I've noticed is that
+> >> we've spoken of having the path find functions (and operators and
+> >> aggregates), types, _and_tables_.
+>
+> > My understanding is the same.
+> > Tom, Peter is it right ?
+>
+> SQL99's SQL-path is very clearly stated to be used only for looking up
+> routines and user-defined type names. Extending it to cover tables,
+> operators, and so forth makes sense to me,
+
+I have no objection to the point it makes sense to use
+such *path*s internally but I think it also has a siginificance
+for SQL-path to not look up _tables_like objects.
+I think they are different from the first and we should(need)
+not manage the system with one *path*.
+
+BTW I see few references to *catalog*. Would the concept
+of catalog be introduced together. If so what would be
+contained in the current database.
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18319=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 21:45:37 2002
+Return-path: <pgsql-hackers-owner+M18319=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V2jZP27049
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 21:45:36 -0500 (EST)
+Received: (qmail 27626 invoked by alias); 31 Jan 2002 02:45:32 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 02:45:32 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0V2Wfl22316
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 21:32:41 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0V2WAf29271;
+ Wed, 30 Jan 2002 21:32:10 -0500 (EST)
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C58A472.2E90C21C@tpf.co.jp>
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us> <3C58A472.2E90C21C@tpf.co.jp>
+Comments: In-reply-to Hiroshi Inoue <Inoue@tpf.co.jp>
+ message dated "Thu, 31 Jan 2002 10:57:06 +0900"
+Date: Wed, 30 Jan 2002 21:32:10 -0500
+Message-ID: <29268.1012444330@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> I have no objection to the point it makes sense to use
+> such *path*s internally but I think it also has a siginificance
+> for SQL-path to not look up _tables_like objects.
+> I think they are different from the first and we should(need)
+> not manage the system with one *path*.
+
+I'm unconvinced. We must search for datatypes and tables on the same
+path because tables have associated datatypes; it will definitely not
+do to look for a table's datatype and get the wrong type. And I think
+that functions and operators should be looked for on the same path
+as datatypes, because a type should be pretty closely associated with
+the functions/operators for it. So it seems to me that the apparent
+flexibility of having more than one path is just a way to shoot yourself
+in the foot. Why are you concerned that we keep them separate?
+
+> BTW I see few references to *catalog*. Would the concept
+> of catalog be introduced together. If so what would be
+> contained in the current database.
+
+My thought is that we will consider catalog == database. As far as
+I can tell, that is a legitimate implementation-defined way of
+interpreting the spec. (It's not clear to me what the value is of
+having more than one level of schema hierarchy; or at least, if you want
+hierarchical namespaces, there's no argument for stopping at depth two.
+But I digress.) To satisfy the spec we must allow a (purely decorative)
+specification of the current database name as the catalog level of a
+qualified name, but that's as far as I want to go. In this round,
+anyway. Cross-database access is not something to tackle for 7.3.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18323=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 22:45:10 2002
+Return-path: <pgsql-hackers-owner+M18323=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V3j9P04896
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 22:45:09 -0500 (EST)
+Received: (qmail 48073 invoked by alias); 31 Jan 2002 03:45:06 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 03:45:06 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0V3aPl45009
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 22:36:27 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 31045 invoked from network); 31 Jan 2002 03:36:21 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 31 Jan 2002 03:36:21 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id MAA10485;
+ Thu, 31 Jan 2002 12:36:15 +0900 (JST)
+Message-ID: <3C58BBB3.58D5F964@tpf.co.jp>
+Date: Thu, 31 Jan 2002 12:36:19 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us> <3C58A472.2E90C21C@tpf.co.jp> <29268.1012444330@sss.pgh.pa.us>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > I have no objection to the point it makes sense to use
+> > such *path*s internally but I think it also has a siginificance
+> > for SQL-path to not look up _tables_like objects.
+> > I think they are different from the first and we should(need)
+> > not manage the system with one *path*.
+>
+> I'm unconvinced. We must search for datatypes and tables on the same
+> path because tables have associated datatypes;
+
+Isn't the table definition a part of the datatype in
+such a case ?
+
+> it will definitely not
+> do to look for a table's datatype and get the wrong type. And I think
+> that functions and operators should be looked for on the same path
+> as datatypes, because a type should be pretty closely associated with
+> the functions/operators for it. So it seems to me that the apparent
+> flexibility of having more than one path is just a way to shoot yourself
+> in the foot. Why are you concerned that we keep them separate?
+
+For example, doesn't 'DROP table a_table' drop the
+a_table table in a schema in the *path* if there's
+no a_table table in the current schema ?
+
+If we would never introduce SQL-paths (in the future)
+there would be problem.
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+ (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M18325=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 22:55:24 2002
+Return-path: <pgsql-hackers-owner+M18325=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V3tOP06352
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 22:55:24 -0500 (EST)
+Received: (qmail 52777 invoked by alias); 31 Jan 2002 03:55:21 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 03:55:21 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0V3iml47386
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 22:44:48 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0V3hff29736;
+ Wed, 30 Jan 2002 22:43:42 -0500 (EST)
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C58BBB3.58D5F964@tpf.co.jp>
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us> <3C58A472.2E90C21C@tpf.co.jp> <29268.1012444330@sss.pgh.pa.us> <3C58BBB3.58D5F964@tpf.co.jp>
+Comments: In-reply-to Hiroshi Inoue <Inoue@tpf.co.jp>
+ message dated "Thu, 31 Jan 2002 12:36:19 +0900"
+Date: Wed, 30 Jan 2002 22:43:41 -0500
+Message-ID: <29733.1012448621@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> For example, doesn't 'DROP table a_table' drop the
+> a_table table in a schema in the *path* if there's
+> no a_table table in the current schema ?
+
+Sure. And that's exactly what it should do, IMHO.
+Otherwise the notion that you can ignore your private
+schema (at the front of the path) if you're not using
+it falls down. Also, we wouldn't be able to implement
+temp tables via a backend-local schema at the front of
+the path.
+
+Any security concerns here should be addressed by putting
+ACLs on the schemas you don't want altered; not by contorting
+the notion of a search path to work for some operations and
+not others.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18326=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 23:15:07 2002
+Return-path: <pgsql-hackers-owner+M18326=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V4F6P09920
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 23:15:06 -0500 (EST)
+Received: (qmail 57935 invoked by alias); 31 Jan 2002 04:15:03 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 04:15:03 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0V3lIl50338
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 22:47:20 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 31967 invoked from network); 31 Jan 2002 03:47:17 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 31 Jan 2002 03:47:17 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id MAA10500;
+ Thu, 31 Jan 2002 12:47:17 +0900 (JST)
+Message-ID: <3C58BE48.AD4EE527@tpf.co.jp>
+Date: Thu, 31 Jan 2002 12:47:20 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us> <3C58A472.2E90C21C@tpf.co.jp> <29268.1012444330@sss.pgh.pa.us>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+>
+> > BTW I see few references to *catalog*. Would the concept
+> > of catalog be introduced together. If so what would be
+> > contained in the current database.
+>
+> My thought is that we will consider catalog == database. As far as
+> I can tell, that is a legitimate implementation-defined way of
+> interpreting the spec. (It's not clear to me what the value is of
+> having more than one level of schema hierarchy; or at least, if you want
+> hierarchical namespaces, there's no argument for stopping at depth two.
+> But I digress.) To satisfy the spec we must allow a (purely decorative)
+> specification of the current database name as the catalog level of a
+> qualified name, but that's as far as I want to go. In this round,
+> anyway. Cross-database access is not something to tackle for 7.3.
+
+Just a confirmation.
+We can't see any catalog.schema.object notation in 7.3,
+can we ?
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18324=candle.pha.pa.us=pgman@postgresql.org Wed Jan 30 22:55:24 2002
+Return-path: <pgsql-hackers-owner+M18324=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0V3tOP06351
+ for <pgman@candle.pha.pa.us>; Wed, 30 Jan 2002 22:55:24 -0500 (EST)
+Received: (qmail 52747 invoked by alias); 31 Jan 2002 03:55:20 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 03:55:20 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id g0V3pTl51655
+ for <pgsql-hackers@postgresql.org>; Wed, 30 Jan 2002 22:51:29 -0500 (EST)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g0V3p0f29810;
+ Wed, 30 Jan 2002 22:51:00 -0500 (EST)
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C58BE48.AD4EE527@tpf.co.jp>
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us> <3C58A472.2E90C21C@tpf.co.jp> <29268.1012444330@sss.pgh.pa.us> <3C58BE48.AD4EE527@tpf.co.jp>
+Comments: In-reply-to Hiroshi Inoue <Inoue@tpf.co.jp>
+ message dated "Thu, 31 Jan 2002 12:47:20 +0900"
+Date: Wed, 30 Jan 2002 22:51:00 -0500
+Message-ID: <29807.1012449060@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> Just a confirmation.
+> We can't see any catalog.schema.object notation in 7.3,
+> can we ?
+
+No, what I meant was you could write catalog.schema.object --- but for
+7.3, the system will only accept it if the catalog name is the same as
+the current database. This satisfies the minimum requirements of the
+spec, and it leaves notational room to use the catalog name as the cue
+for cross-database access, if we ever decide we want to try to do that.
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18334=candle.pha.pa.us=pgman@postgresql.org Thu Jan 31 05:45:28 2002
+Return-path: <pgsql-hackers-owner+M18334=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0VAjRP11000
+ for <pgman@candle.pha.pa.us>; Thu, 31 Jan 2002 05:45:27 -0500 (EST)
+Received: (qmail 4065 invoked by alias); 31 Jan 2002 10:45:25 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 10:45:25 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0VAbGl02141
+ for <pgsql-hackers@postgresql.org>; Thu, 31 Jan 2002 05:37:17 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 30401 invoked from network); 31 Jan 2002 10:37:17 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 31 Jan 2002 10:37:17 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id TAA10891;
+ Thu, 31 Jan 2002 19:37:15 +0900 (JST)
+Message-ID: <3C591E5E.14549DF@tpf.co.jp>
+Date: Thu, 31 Jan 2002 19:37:18 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Bill Studenmund <wrstuden@netbsd.org>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201290939350.24201-100000@vespasia.home-net.internetconnect.net> <3C573C5E.F01B48C2@tpf.co.jp> <27527.1012432386@sss.pgh.pa.us> <3C58A472.2E90C21C@tpf.co.jp> <29268.1012444330@sss.pgh.pa.us> <3C58BBB3.58D5F964@tpf.co.jp> <29733.1012448621@sss.pgh.pa.us>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Tom Lane wrote:
+>
+> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > For example, doesn't 'DROP table a_table' drop the
+> > a_table table in a schema in the *path* if there's
+> > no a_table table in the current schema ?
+>
+> Sure. And that's exactly what it should do, IMHO.
+> Otherwise the notion that you can ignore your private
+> schema (at the front of the path) if you're not using
+> it falls down. Also, we wouldn't be able to implement
+> temp tables via a backend-local schema at the front of
+> the path.
+
+I don't think it's useful for tables other than temp
+ones and I wouldn't use it other than for temp ones.
+
+When we type 'rm a_file' in a shell environment
+does the *rm* command search the PATH in finding
+the a_file file ? Even though we need to implement
+such a search mechanism we would use another path
+different from the executable search PATH. I don't
+think our *path* is an extension of SQL-path.
+
+I wouldn't complain unless we call the *path*
+as SQL-path or an extension of SQL-path.
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18340=candle.pha.pa.us=pgman@postgresql.org Thu Jan 31 11:55:49 2002
+Return-path: <pgsql-hackers-owner+M18340=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0VGtmP13664
+ for <pgman@candle.pha.pa.us>; Thu, 31 Jan 2002 11:55:48 -0500 (EST)
+Received: (qmail 32205 invoked by alias); 31 Jan 2002 16:53:46 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 16:53:46 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0VGVXl24649
+ for <pgsql-hackers@postgresql.org>; Thu, 31 Jan 2002 11:31:37 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 29829 invoked by uid 1130); 31 Jan 2002 16:31:38 -0000
+Date: Thu, 31 Jan 2002 08:26:40 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C58A472.2E90C21C@tpf.co.jp>
+Message-ID: <Pine.NEB.4.33.0201310823050.29090-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Thu, 31 Jan 2002, Hiroshi Inoue wrote:
+
+> Tom Lane wrote:
+> >
+> > Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > SQL99's SQL-path is very clearly stated to be used only for looking up
+> > routines and user-defined type names. Extending it to cover tables,
+> > operators, and so forth makes sense to me,
+>
+> I have no objection to the point it makes sense to use
+> such *path*s internally but I think it also has a siginificance
+> for SQL-path to not look up _tables_like objects.
+> I think they are different from the first and we should(need)
+> not manage the system with one *path*.
+
+I'm confused. Are you suggesting multiple paths? i.e. a function/type path
+and a table one?
+
+I think calling our path an SQL path is fine. Yes, we extend it by using
+it for tables too, but it strikes me as still fundamentally an SQL path.
+So I don't see why we should not call it that.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18342=candle.pha.pa.us=pgman@postgresql.org Thu Jan 31 11:56:06 2002
+Return-path: <pgsql-hackers-owner+M18342=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0VGu5P13918
+ for <pgman@candle.pha.pa.us>; Thu, 31 Jan 2002 11:56:05 -0500 (EST)
+Received: (qmail 32437 invoked by alias); 31 Jan 2002 16:53:56 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 16:53:56 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0VGdAl25623
+ for <pgsql-hackers@postgresql.org>; Thu, 31 Jan 2002 11:39:11 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 29902 invoked by uid 1130); 31 Jan 2002 16:33:09 -0000
+Date: Thu, 31 Jan 2002 08:28:10 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C58BBB3.58D5F964@tpf.co.jp>
+Message-ID: <Pine.NEB.4.33.0201310827380.29090-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Thu, 31 Jan 2002, Hiroshi Inoue wrote:
+
+> > it will definitely not
+> > do to look for a table's datatype and get the wrong type. And I think
+> > that functions and operators should be looked for on the same path
+> > as datatypes, because a type should be pretty closely associated with
+> > the functions/operators for it. So it seems to me that the apparent
+> > flexibility of having more than one path is just a way to shoot yourself
+> > in the foot. Why are you concerned that we keep them separate?
+>
+> For example, doesn't 'DROP table a_table' drop the
+> a_table table in a schema in the *path* if there's
+> no a_table table in the current schema ?
+>
+> If we would never introduce SQL-paths (in the future)
+> there would be problem.
+
+??
+
+We're talking about adding them now. Why would we add them twice?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18341=candle.pha.pa.us=pgman@postgresql.org Thu Jan 31 11:59:16 2002
+Return-path: <pgsql-hackers-owner+M18341=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0VGxFP14456
+ for <pgman@candle.pha.pa.us>; Thu, 31 Jan 2002 11:59:15 -0500 (EST)
+Received: (qmail 32440 invoked by alias); 31 Jan 2002 16:53:56 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 16:53:56 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0VGdAl25618
+ for <pgsql-hackers@postgresql.org>; Thu, 31 Jan 2002 11:39:11 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 223 invoked by uid 1130); 31 Jan 2002 16:36:01 -0000
+Date: Thu, 31 Jan 2002 08:31:03 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Hiroshi Inoue <Inoue@tpf.co.jp>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <29733.1012448621@sss.pgh.pa.us>
+Message-ID: <Pine.NEB.4.33.0201310828190.29090-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wed, 30 Jan 2002, Tom Lane wrote:
+
+> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > For example, doesn't 'DROP table a_table' drop the
+> > a_table table in a schema in the *path* if there's
+> > no a_table table in the current schema ?
+>
+> Sure. And that's exactly what it should do, IMHO.
+> Otherwise the notion that you can ignore your private
+> schema (at the front of the path) if you're not using
+> it falls down. Also, we wouldn't be able to implement
+> temp tables via a backend-local schema at the front of
+> the path.
+
+Well, I disagree on this one. :-) I'd vote drop should need a specific
+schema if it's not the current one. But I won't push the point. :-)
+
+> Any security concerns here should be addressed by putting
+> ACLs on the schemas you don't want altered; not by contorting
+> the notion of a search path to work for some operations and
+> not others.
+
+I'm not so concerned about security as being sure of operator intent. ACLs
+address security (and should be used), but they don't address making sure
+you delete exactly what you wanted.
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18341=candle.pha.pa.us=pgman@postgresql.org Thu Jan 31 12:00:40 2002
+Return-path: <pgsql-hackers-owner+M18341=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g0VH0dP14749
+ for <pgman@candle.pha.pa.us>; Thu, 31 Jan 2002 12:00:39 -0500 (EST)
+Received: (qmail 32325 invoked by alias); 31 Jan 2002 16:53:51 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 31 Jan 2002 16:53:51 -0000
+Received: from mail.netbsd.org (mail.netbsd.org [155.53.1.253])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g0VGdAl25625
+ for <pgsql-hackers@postgresql.org>; Thu, 31 Jan 2002 11:39:12 -0500 (EST)
+ (envelope-from wrstuden@netbsd.org)
+Received: (qmail 284 invoked by uid 1130); 31 Jan 2002 16:38:48 -0000
+Date: Thu, 31 Jan 2002 08:33:50 -0800 (PST)
+From: Bill Studenmund <wrstuden@netbsd.org>
+X-X-Sender: <wrstuden@vespasia.home-net.internetconnect.net>
+To: Hiroshi Inoue <Inoue@tpf.co.jp>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+In-Reply-To: <3C591E5E.14549DF@tpf.co.jp>
+Message-ID: <Pine.NEB.4.33.0201310831290.29090-100000@vespasia.home-net.internetconnect.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Thu, 31 Jan 2002, Hiroshi Inoue wrote:
+
+> Tom Lane wrote:
+> >
+> > Hiroshi Inoue <Inoue@tpf.co.jp> writes:
+> > > For example, doesn't 'DROP table a_table' drop the
+> > > a_table table in a schema in the *path* if there's
+> > > no a_table table in the current schema ?
+> >
+> > Sure. And that's exactly what it should do, IMHO.
+> > Otherwise the notion that you can ignore your private
+> > schema (at the front of the path) if you're not using
+> > it falls down. Also, we wouldn't be able to implement
+> > temp tables via a backend-local schema at the front of
+> > the path.
+>
+> I don't think it's useful for tables other than temp
+> ones and I wouldn't use it other than for temp ones.
+
+I agree.
+
+> When we type 'rm a_file' in a shell environment
+> does the *rm* command search the PATH in finding
+> the a_file file ? Even though we need to implement
+> such a search mechanism we would use another path
+> different from the executable search PATH. I don't
+> think our *path* is an extension of SQL-path.
+>
+> I wouldn't complain unless we call the *path*
+> as SQL-path or an extension of SQL-path.
+
+I still don't get this. The path we're talking about is the same thing
+(with the same envirnment name and operational syntax) as SQL-paths,
+except that we use it to find tables too. Why does that make it not an SQL
+path?
+
+Take care,
+
+Bill
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M18346=candle.pha.pa.us=pgman@postgresql.org Thu Jan 31 20:15:10 2002
+Return-path: <pgsql-hackers-owner+M18346=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+ by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g111FAP04980
+ for <pgman@candle.pha.pa.us>; Thu, 31 Jan 2002 20:15:10 -0500 (EST)
+Received: (qmail 48143 invoked by alias); 1 Feb 2002 01:15:08 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+ by www.postgresql.org with SMTP; 1 Feb 2002 01:15:08 -0000
+Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34])
+ by postgresql.org (8.11.3/8.11.4) with SMTP id g11181l47339
+ for <pgsql-hackers@postgresql.org>; Thu, 31 Jan 2002 20:08:01 -0500 (EST)
+ (envelope-from Inoue@tpf.co.jp)
+Received: (qmail 14937 invoked from network); 1 Feb 2002 01:08:03 -0000
+Received: from unknown (HELO viscomail.tpf.co.jp) (100.0.0.108)
+ by sd2.tpf-fw-c.co.jp with SMTP; 1 Feb 2002 01:08:03 -0000
+Received: from tpf.co.jp (3dgateway1 [126.0.1.60])
+ by viscomail.tpf.co.jp (8.8.8+Sun/8.8.8) with ESMTP id KAA11846;
+ Fri, 1 Feb 2002 10:08:01 +0900 (JST)
+Message-ID: <3C59EA75.E117B2FA@tpf.co.jp>
+Date: Fri, 01 Feb 2002 10:08:05 +0900
+From: Hiroshi Inoue <Inoue@tpf.co.jp>
+X-Mailer: Mozilla 4.73 [ja] (Windows NT 5.0; U)
+X-Accept-Language: ja
+MIME-Version: 1.0
+To: Bill Studenmund <wrstuden@netbsd.org>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>,
+ PostgreSQL Development <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] RFD: schemas and different kinds of Postgres objects
+References: <Pine.NEB.4.33.0201310831290.29090-100000@vespasia.home-net.internetconnect.net>
+Content-Type: text/plain; charset=iso-2022-jp
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Bill Studenmund wrote:
+>
+> On Thu, 31 Jan 2002, Hiroshi Inoue wrote:
+> >
+> > I wouldn't complain unless we call the *path*
+> > as SQL-path or an extension of SQL-path.
+>
+> I still don't get this. The path we're talking about is the same thing
+> (with the same envirnment name and operational syntax) as SQL-paths,
+> except that we use it to find tables too. Why does that make it not an SQL
+> path?
+
+I don't think It's always good to follow the standard.
+However it's very wrong to change the meaning of words
+in the standard. It seems impossible to introduce SQL-path
+using our *path*. The *path* is PostgreSQL specific and
+it would be configurable for us to be SQL99-compatible
+(without SQL-path) or SQL99-imcompatible using the *path*.
+
+regards,
+Hiroshi Inoue
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+