On Fri, Feb 19, 2010 at 01:34:46PM -0500, Robert Haas wrote:
> On Thu, Feb 18, 2010 at 11:38 PM, Tom Lane <[email protected]> wrote:
> > Takahiro Itagaki <[email protected]> writes:
> >> David Fetter <[email protected]> wrote:
> >>> support both pre-9.0 and post-9.0 PostgreSQLs. David Wheeler has
> >>> suggested that we special-case PL/pgsql for 9.0 and greater, as it's
> >>> in template0, where those tests are based.
> >
> >> +1 for the CREATE LANGUAGE IF NOT EXISTS behavior.
> >
> >> The regression test in the core is targeting only its version,
> >> but some external projects have version-independent tests.
> >
> > I think it's more like "are under the fond illusion that their
> > tests are version-independent". Are we going to back out the next
> > incompatible change we choose to make as soon as somebody notices
> > that it breaks a third-party test case? I don't think so. Let me
> > point out that choosing to install plpgsql by default has already
> > broken "--single" restore of practically every pg_dump out there.
> > Nobody batted an eye about that. Why are we suddenly so
> > concerned about its effects on unnamed test suites?
>
> I am still of the opinion that changing this was a bad idea for
> exactly this reason. We could perhaps ameliorate this problem by
> implementing CREATE OR REPLACE for languages and emitting that
> instead; then the command in the dump would be a noop.
CREATE OR REPLACE LANGUAGE is an even bigger tar pit.
For example:
http://archives.postgresql.org/pgsql-hackers/2009-10/msg00386.php
Please find attached a patch which does this check in pg_regress.
Cheers,
David.
--
David Fetter <[email protected]> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: [email protected]
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index 991bb17..45aad00 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -1795,8 +1795,12 @@ create_database(const char *dbname)
*/
for (sl = loadlanguage; sl != NULL; sl = sl->next)
{
- header(_("installing %s"), sl->str);
- psql_command(dbname, "CREATE LANGUAGE \"%s\"", sl->str);
+ if ((pg_strncasecmp(sl->str, "plpgsql", sizeof("plpgsql")) !=
0) &&
+ (pg_strncasecmp(sl->str, "pl/pgsql",
sizeof("pl/pgsql")) != 0))
+ {
+ header(_("installing %s"), sl->str);
+ psql_command(dbname, "CREATE LANGUAGE \"%s\"", sl->str);
+ }
}
}
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers