Tom Lane [Fri, 5 May 2000 03:08:20 +0000 (03:08 +0000)]
Accept pg_group as well as pg_shadow data from dumpall script.
Rearrange handling of VACUUMs so that they are certain to be executed
as superuser not some random user; also, do not forget to vacuum
template1 itself.
Tatsuo Ishii [Tue, 2 May 2000 08:13:08 +0000 (08:13 +0000)]
Modify getdatabaseencoding(), pg_encoding_to_char()
pg_char_to_encoding() in multibyte disbaled case so that it does not
throw an error, rather return HARD CODED default value (currently SQL_ASCII).
This would solve the "non-mb backend vs. mb-enabled frontend" problem.
Tom Lane [Sun, 30 Apr 2000 21:29:23 +0000 (21:29 +0000)]
Reset CurrentMemoryContext to TopMemoryContext at the beginning of error
cleanup, ie, as soon as we have caught the longjmp. This ensures that
current context will be a valid context throughout error cleanup. Before
it was possible that current context was pointing at a context that would
get deleted during cleanup, leaving any subsequent pallocs in deep
trouble. I was able to provoke an Assert failure when compiled with
asserts + -DCLOBBER_FREED_MEMORY, if I did something that would cause
an error to be reported by the backend large-object code, because indeed
that code operates in a context that gets deleted partway through xact
abort --- and CurrentMemoryContext was still pointing at it! Boo hiss.
Tom Lane [Fri, 28 Apr 2000 05:07:34 +0000 (05:07 +0000)]
Setting statistic options from SET PG_OPTIONS caused a backend crash
because StatFp never got set in that case. Set it immediately before
use to eliminate such problems.
Tom Lane [Fri, 28 Apr 2000 00:12:44 +0000 (00:12 +0000)]
plpgsql RAISE statement was careless about the possibility of a NULL
field value being displayed; produced coredump instead of the expected
<NULL> display.
Tom Lane [Thu, 27 Apr 2000 20:32:41 +0000 (20:32 +0000)]
Except_Intersect_Rewrite() failed to ignore resjunk targetlist entries,
thus causing failure if one sub-select had resjunk entries that the other
did not (cf. bug report from Espinosa 4/27/00).
Tom Lane [Thu, 27 Apr 2000 18:35:04 +0000 (18:35 +0000)]
Repair problem noted by Elphick: make_rels_by_joins failed to handle
cases where joinclauses were present but some joins have to be made
by cartesian-product join anyway. An example is
SELECT * FROM a,b,c WHERE (a.f1 + b.f2 + c.f3) = 0;
Even though all the rels have joinclauses, we must join two of them
in cartesian style before we can use the join clause...
Tom Lane [Thu, 27 Apr 2000 02:59:17 +0000 (02:59 +0000)]
-D switch to postmaster should override any PGDATA environment variable
that might be hanging about. Now it does ... amazing nobody noticed
this before ...
Tom Lane [Wed, 26 Apr 2000 23:39:10 +0000 (23:39 +0000)]
Tweak outUnique to include uniqColIdx[] field in the printout. This does
not cause any compatibility problems because stored rules don't contain
plan nodes --- in fact, we don't even have a readfunc for Unique nodes.
Tom Lane [Wed, 26 Apr 2000 23:35:34 +0000 (23:35 +0000)]
On HPUX, shl_load should be called with options BIND_IMMEDIATE rather
than BIND_DEFERRED. That way, if the loaded library has unresolved
references, shl_load fails cleanly. As we had it, shl_load would
succeed and then the dynlinker would call abort() when we try to call
into the loaded library. abort()ing a backend is uncool.
Tom Lane [Sun, 23 Apr 2000 04:26:32 +0000 (04:26 +0000)]
Our test to see if we had permission to install into Perl5 install area
always failed if Perl makefile's INSTALLSITELIB variable was specified
in terms of another variable. Fix by adding an echo-installdir target
to the Perl makefile, which the upper-level Makefile can invoke.
Tom Lane [Sun, 23 Apr 2000 02:08:33 +0000 (02:08 +0000)]
Update obsolete info in CREATE INDEX ref page. (I had fixed the text
description in indices.sgml, but missed the near-duplicate prose in
the reference page...)
Tom Lane [Sun, 23 Apr 2000 01:44:55 +0000 (01:44 +0000)]
Produce an appropriate error message when opclass is not supported by
specified index access method. Clean up wording of some existing error
messages, too.
Tom Lane [Sat, 22 Apr 2000 22:39:15 +0000 (22:39 +0000)]
Remove broken tracing code (which would be dangerous if it did work...)
libpq++.h contained copies of the class declarations in the other libpq++
include files, which was bogus enough, but the declarations were not
completely in step with the real declarations. Remove these in favor
of including the headers with #include. Make PgConnection destructor
virtual (not absolutely necessary, but seems like a real good idea
considering the number of subclasses derived from it). Give all classes
declared private copy constructors and assignment operators, to prevent
compiler from thinking it can copy these objects safely.
Tom Lane [Fri, 21 Apr 2000 03:28:17 +0000 (03:28 +0000)]
pltcl didn't work well at all when Tcl had been built with a different
compiler than the one selected to build Postgres with. It was trying
to feed Postgres-compiler switches to Tcl's compiler. (Seen this before
with the perl5 interface...) Fix to use only CFLAGS taken from Tcl's
configure information, plus -I which is pretty universal.
Tom Lane [Fri, 21 Apr 2000 03:07:51 +0000 (03:07 +0000)]
Finally figured out that HP's cpp won't do ANSI preprocessing constructs
unless you feed it -Aa or -Ae switch. Autoconf does not know about this,
but we can fix it in the hpux_cc template file. I knew templates were
good for something ;-)
Tom Lane [Fri, 21 Apr 2000 03:01:54 +0000 (03:01 +0000)]
Fix still more static-declaration-vs-nonstatic-definition glitches.
gcc doesn't think these are a problem, but somewhere out there is a
compiler that will spit up.
Tom Lane [Thu, 20 Apr 2000 00:31:49 +0000 (00:31 +0000)]
Correct error in rewriter that caused SELECT count(*) FROM view
to give wrong results: it should be looking at inJoinSet not inFromCl.
Also, make 'modified' flag be local to ApplyRetrieveRule: we should
append a rule's quals to the query iff that particular rule applies,
not if we have fired any previously-considered rule for the query!
Tom Lane [Tue, 18 Apr 2000 05:52:35 +0000 (05:52 +0000)]
Repair coredump seen when a view refers to an inheritance group
(SELECT FROM table*). Cause was reference to 'eref' field of an RTE,
which is null in an RTE loaded from a stored rule parsetree. There
wasn't any good reason to be touching the refname anyway...
Tom Lane [Tue, 18 Apr 2000 05:43:02 +0000 (05:43 +0000)]
Correct oversight in hashjoin cost estimation: nodeHash sizes its hash
table for an average of NTUP_PER_BUCKET tuples/bucket, but cost_hashjoin
was assuming a target load of one tuple/bucket. This was causing a
noticeable underestimate of hashjoin costs.