Kris Jurka [Thu, 4 Mar 2004 03:25:10 +0000 (03:25 +0000)]
Update build number in anticipation of 7.4.2 release. With no
currently outstanding issues we'll flag now, so the release doesn't
slip out the door without it.
Tom Lane [Tue, 2 Mar 2004 21:14:59 +0000 (21:14 +0000)]
Always schema-qualify the name of a function referenced in CREATE CAST.
The former coding failed if the cast function was not in the pg_catalog
schema. How'd this escape detection?
Tom Lane [Tue, 2 Mar 2004 18:56:28 +0000 (18:56 +0000)]
Junkfilter logic to force a projection step during SELECT INTO was too
simplistic; it recognized SELECT * FROM but not SELECT * FROM LIMIT.
Per bug report from Jeff Bohmer.
Tom Lane [Sun, 29 Feb 2004 17:36:48 +0000 (17:36 +0000)]
make_sort_from_pathkeys()'s method for choosing which of several
equivalent sort expressions to use was broken: you can't just look
at the relation membership, you have to actually grovel over the
individual Vars in each expression. I think this did work when it
was written, but it was broken by subsequent optimizations that made
join relations not propagate every single input variable upward.
Must find the Var that got propagated, not choose one at random.
Per bug report from Daniel O'Neill.
Tom Lane [Fri, 27 Feb 2004 21:44:44 +0000 (21:44 +0000)]
genericcostestimate() neglected to include qual startup cost in
indexTotalCost. I think this may not make any real difference in 7.4,
but it definitely is a problem with CVS tip's new equation.
Tom Lane [Fri, 27 Feb 2004 21:42:10 +0000 (21:42 +0000)]
process_implied_equality must copy the substructure of the clauses it
is generating, to avoid problems when subselects are involved. Per
report from Damon Hart.
Tom Lane [Tue, 24 Feb 2004 22:59:22 +0000 (22:59 +0000)]
anyarray really needs to be declared with typalign = 'd', so that entries
in pg_statistic are correctly aligned if they contain values that require
double alignment. Too bad we cannot force initdb for this in 7.4 branch.
Joe Conway [Tue, 24 Feb 2004 06:07:34 +0000 (06:07 +0000)]
When returning type "record", replace use of pgresultGetTupleDesc
with ReturnSetInfo->expectedDesc. This allows custom datatypes
(e.g. from tsearch2) to be returned at runtime. Previous behavior
depended on the type oid to match between the remote and local
database, which obviously doesn't work well for custom types.
Per report from Mark Gibson.
Tom Lane [Tue, 24 Feb 2004 03:35:45 +0000 (03:35 +0000)]
Cause pg_dump to emit a 'SET client_encoding' command at the start of
any restore operation, thereby ensuring that dumped data is interpreted
the same way it was dumped even if the target database has a different
encoding. Per suggestions from Pavel Stehule and others. Also,
simplify scheme for handling check_function_bodies ... we may as well
just set that at the head of the script.
Tom Lane [Mon, 23 Feb 2004 23:03:43 +0000 (23:03 +0000)]
Replace opendir/closedir calls throughout the backend with AllocateDir
and FreeDir routines modeled on the existing AllocateFile/FreeFile.
Like the latter, these routines will avoid failing on EMFILE/ENFILE
conditions whenever possible, and will prevent leakage of directory
descriptors if an elog() occurs while one is open.
Also, reduce PANIC to ERROR in MoveOfflineLogs() --- this is not
critical code and there is no reason to force a DB restart on failure.
All per recent trouble report from Olivier Hubaut.
Tom Lane [Mon, 23 Feb 2004 20:46:16 +0000 (20:46 +0000)]
Do a direct probe during postmaster startup to determine the maximum
number of openable files and the number already opened. This eliminates
depending on sysconf(_SC_OPEN_MAX), and allows much saner behavior on
platforms where open-file slots are used up by semaphores.
Tom Lane [Sat, 21 Feb 2004 00:35:13 +0000 (00:35 +0000)]
Implement a solution to the 'Turkish locale downcases I incorrectly'
problem, per previous discussion. Make some additional changes to
centralize the knowledge of just how identifier downcasing is done,
in hopes of simplifying any future tweaking in this area.
Tom Lane [Fri, 13 Feb 2004 22:26:43 +0000 (22:26 +0000)]
Repair optimization bug I introduced in a moment of brain fade back in
Nov 2002: when constant-expression simplification removes all the
aggregate function calls from a query, that doesn't mean we can act as
though there never were any aggregates. Per bug report from Gabor Szucs.
Bruce Momjian [Fri, 13 Feb 2004 04:40:43 +0000 (04:40 +0000)]
Tom Lane wrote:
> momjian@svr1.postgresql.org (Bruce Momjian) writes:
>> someone asked me about the FK deadlock fix, mentioned in the 7.3.3
>> release notes as 3rd change:
>> http://www.postgresql.org/docs/current/static/release-7-3-3.html
>> Actually, that fix was available with 7.4, not 7.3. Don't know if we can
>> retroactively change the release-notes though.
>
> This is completely erroneous, please undo it.
>
> 2003-05-21 14:14 tgl
>
> * src/: backend/utils/adt/ri_triggers.c,
> test/regress/expected/foreign_key.out (REL7_3_STABLE): Back-patch
> Jan's fix to avoid primary key lookup (and lock) if foreign key
> does not change on UPDATE.
Oh ... didn't know that you did a backpatch. Sorry
Kris Jurka [Tue, 3 Feb 2004 05:43:24 +0000 (05:43 +0000)]
V3 NotificationResonse messages were trying to be received as V2
messages. Also the PID was being read in the wrong byte order.
Finally add a test case for listen/notify.
Kris Jurka [Tue, 3 Feb 2004 05:28:17 +0000 (05:28 +0000)]
ConnectionPool and SimpleDataSource are marked Serializable, but their
superclass (which contains a number of state variables) is not. To
correctly serialize these objects we need to manually implement
writeObject and readObject.
Kris Jurka [Tue, 3 Feb 2004 05:25:38 +0000 (05:25 +0000)]
ResultSet.next() and previous() incremented or decremented the
internal current_row variable regardless of wether they succeeded or
not. This generated some ArrayIndexOutOfBoundsExceptions when the
errorneous adjustment current_row led to out of range values.
Kris Jurka [Tue, 3 Feb 2004 05:13:56 +0000 (05:13 +0000)]
Fix the setXXXStream methods. If passed a null InputStream, convert
this to a setNull call. The code originally would try to read the
whole stream in one call to read(), but this doesn't work. The
InputStream API makes it clear you must be prepared to loop and
continue reading if you didn't get the whole request on the first
try.
Neil Conway [Mon, 2 Feb 2004 01:00:58 +0000 (01:00 +0000)]
Use Tcl_PutEnv() in place of putenv() in libpgtcl, as the latter can
apparently corrupt the Tcl runtime. Per suggestion from Michael
Brusser <michael@synchronicity.com>
Tom Lane [Wed, 28 Jan 2004 07:47:07 +0000 (07:47 +0000)]
Fix oversight in check_ungrouped_columns optimization that avoids
unnecessary checks for complex grouping expressions: we cannot check
whether the expressions are simple Vars until after we apply
flatten_join_alias_vars, because in the case of FULL JOIN that routine
can introduce non-Var expressions. Per example from Joel Knight.
Tom Lane [Wed, 28 Jan 2004 00:05:25 +0000 (00:05 +0000)]
simplify_function() mustn't try to evaluate functions that return
composite types, because TupleTableSlots aren't Datums and can't be
stored in Const nodes. We can remove this restriction if we ever
adopt a cleaner runtime representation for whole-tuple results, but
at the moment it's broken. Per example from Thomas Hallgren.
Tom Lane [Tue, 27 Jan 2004 00:50:52 +0000 (00:50 +0000)]
Run stats test separately, not as part of a parallel group, to avoid
possible failures due to stats collector not updating fast enough under
heavy load. Per report from Jeremy Yoder.
Tom Lane [Mon, 26 Jan 2004 19:16:23 +0000 (19:16 +0000)]
Repair incorrect order of operations in GetNewTransactionId(). We must
complete ExtendCLOG() before advancing nextXid, so that if that routine
fails, the next incoming transaction will try it again. Per trouble
report from Christopher Kings-Lynne.
Tom Lane [Sat, 24 Jan 2004 00:37:42 +0000 (00:37 +0000)]
Repair planner failure for cases involving Cartesian products inside
IN (sub-SELECT) constructs. We must force a clauseless join of the
sub-select member relations, but it wasn't happening because the code
thought it would be able to use the join clause arising from the IN.
Tom Lane [Thu, 22 Jan 2004 02:23:35 +0000 (02:23 +0000)]
Fix oversight in optimization that avoids an unnecessary projection step
when scanning a table that we need all the columns from. In case of
SELECT INTO, we have to check that the hasoids flag matches the desired
output type, too. Per report from Mike Mascari.
Tom Lane [Sun, 18 Jan 2004 02:15:57 +0000 (02:15 +0000)]
Don't use %s-with-precision format spec to truncate data being displayed
in a COPY error message. It seems that glibc gets indigestion if it is
asked to truncate strings that contain invalid UTF-8 encoding sequences.
vsnprintf will return -1 in such cases, leading to looping and eventual
memory overflow in elog.c. Instead use our own, more robust pg_mbcliplen
routine. I believe this problem accounts for several recent reports of
unexpected 'out of memory' errors during COPY IN.
Tom Lane [Sun, 18 Jan 2004 00:31:53 +0000 (00:31 +0000)]
Repair faulty plan generation in cases where we choose to implement an
IN clause by mergejoin, and a type coercion is needed just above the subplan.
A more extensive patch will follow in HEAD.
Tom Lane [Wed, 14 Jan 2004 03:47:12 +0000 (03:47 +0000)]
pg_settings should have UPDATE privilege allowed to public.
(Can't force initdb for this in 7.4 branch, but we can at least see to it
that post-7.4.2 installations will get it right.)
Tom Lane [Wed, 14 Jan 2004 03:39:29 +0000 (03:39 +0000)]
Revert ill-starred change of 13-Feb-02: it appeared to fix a problem of
incorrect permissions checking, but in fact disabled most all permissions
checks for view updates. This corrects problems reported by Sergey
Yatskevich among others, at the cost of re-introducing the problem
previously reported by Tim Burgess. However, since we'd lived with that
problem for quite awhile without knowing it, we can live with it awhile
longer until a proper fix can be made in 7.5.
Tom Lane [Sat, 10 Jan 2004 00:30:39 +0000 (00:30 +0000)]
Fix subquery pullup logic to not be fooled when a view that appears
'simple' references another view that is not simple. Must recheck
conditions after performing recursive pullup. Per example from
Laurent Perez, 9-Jan-04.
Tom Lane [Thu, 8 Jan 2004 23:40:36 +0000 (23:40 +0000)]
Remove broken (and unnecessary) definition of operator <> for _int4
datatype; the generic array comparators added in 7.4 supersede this.
Per report and patch from Korea PostgreSQL Users' Group.
Tom Lane [Thu, 1 Jan 2004 19:27:28 +0000 (19:27 +0000)]
Do an explicit fflush after writing a progress message with puts.
This ensures stdout is kept in sync with messages on stderr.
Per report from Olaf Ferger.
Tom Lane [Tue, 30 Dec 2003 20:05:15 +0000 (20:05 +0000)]
Avoid running out of memory during hash_create, by not passing a
number-of-buckets that exceeds the size we actually plan to allow
the hash table to grow to. Per trouble report from Sean Shanny.