Tom Lane [Fri, 22 Dec 2000 18:35:09 +0000 (18:35 +0000)]
Add 'ONLY' to queries generated by RI triggers, so as to preserve pre-7.1
semantics of RI operations. Eventually we ought to look at making RI
work properly across inheritance trees, but not for 7.1 ...
Tom Lane [Fri, 22 Dec 2000 18:00:24 +0000 (18:00 +0000)]
Change default output formatting for CIDR to be unabbreviated, per
recommendation from Paul Vixie. Add a new abbrev() function to produce
abbreviated format as text. No forced initdb, but new function is not
available unless you do an initdb or add the pg_proc row manually.
If pghost == "" and pgport == "" then PQsetdbLogin() fails with a
error message:
Is the postmaster running locally
and accepting connections on Unix socket '/tmp/.s.PGSQL.0'?
I see many applications such as PHP fails due to this behavior.
Now if pgport == "", then it is assumed to be a DEF_PGPORT_STR. This
is the same behavior as the version prior 7.1.
Bruce Momjian [Fri, 22 Dec 2000 03:08:52 +0000 (03:08 +0000)]
In looking at the 7.1beta1 code for JDBC, I noticed that support was
added to support character set encodings. However I noticed that the
encoding that is used isn't obtained from the DB. Since Java uses
unicode UCS2 internally the character set encoding is used to translate
strings from/to the DB encoding. So it seems logical that the code
would get the encoding from the DB instead of the current method of
requiring the user pass it as a parameter.
Attached is a patch that gets the DB encoding from the DB in the same
manner as is done in libpq/fe-connect.c. The patch is created off of
the latest CVS sources (Connection.java version 1.10).
Tom Lane [Fri, 22 Dec 2000 00:51:54 +0000 (00:51 +0000)]
Revise lock manager to support "session level" locks as well as "transaction
level" locks. A session lock is not released at transaction commit (but it
is released on transaction abort, to ensure recovery after an elog(ERROR)).
In VACUUM, use a session lock to protect the master table while vacuuming a
TOAST table, so that the TOAST table can be done in an independent
transaction.
I also took this opportunity to do some cleanup and renaming in the lock
code. The previously noted bug in ProcLockWakeup, that it couldn't wake up
any waiters beyond the first non-wakeable waiter, is now fixed. Also found
a previously unknown bug of the same kind (failure to scan all members of
a lock queue in some cases) in DeadLockCheck. This might have led to failure
to detect a deadlock condition, resulting in indefinite waits, but it's
difficult to characterize the conditions required to trigger a failure.
Bruce Momjian [Thu, 21 Dec 2000 19:45:07 +0000 (19:45 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.307
diff -r1.307 TODO
3c3
< Last updated: Thu Dec 21 14:12:04 EST 2000
---
> Last updated: Thu Dec 21 14:45:00 EST 2000
32d31
< * Prevent BETWEEN from using duplicate nodes
Bruce Momjian [Thu, 21 Dec 2000 19:12:11 +0000 (19:12 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.306
diff -r1.306 TODO
3c3
< Last updated: Fri Dec 15 17:44:57 EST 2000
---
> Last updated: Thu Dec 21 14:12:04 EST 2000
31a32
> * Prevent BETWEEN from using duplicate nodes
Tom Lane [Thu, 21 Dec 2000 17:36:15 +0000 (17:36 +0000)]
Fix longstanding bug with VIEW using BETWEEN: OffsetVarNodes would get
applied to the duplicated subtree twice. Probably someday we should
fix the parser not to generate multiple links to the same subtree,
but for now a quick copyObject() is the path of least resistance.
Tom Lane [Wed, 20 Dec 2000 21:51:52 +0000 (21:51 +0000)]
Prevent freshly-started backend from ignoring SIGUSR1, per race condition
observed by Inoue. Also, don't call ProcRemove() from postmaster if we
have detected a backend crash --- too risky if shared memory is corrupted.
It's not needed anyway, considering we are going to reinitialize shared
memory and semaphores as soon as the last child is dead.
Bruce Momjian [Wed, 20 Dec 2000 03:19:24 +0000 (03:19 +0000)]
On Sunday 17 December 2000 15:07, Bruce Momjian wrote:
> We need additions to alter_table.sgml for the new OWNER option mention
> in the features list.
Bruce Momjian [Mon, 18 Dec 2000 18:45:05 +0000 (18:45 +0000)]
>> Here is a patch for the beos port (All regression tests are OK).
>> xlog.c : special case for beos to avoid 'link' which does not work yet
>> beos/sem.c : implementation of new sem_ctl call (GETPID) and a new
>sem_op
>> flag (IPCNOWAIT)
>> dynloader/beos.c : add a verification of symbol validity (seem that
the
>> loader sometime return OK with an invalid symbol)
>> postmaster.c : add beos forking support for the new checkpoint
process
>> postgres.c : remove beos special case for getrusage
>> beos.h : Correction of a bas definition of AF_UNIX, misc defnitions
>>
>>
>> thanks
>>
>>
>> cyril
Tom Lane [Mon, 18 Dec 2000 17:33:42 +0000 (17:33 +0000)]
Ensure that 'errno' is saved and restored by all signal handlers that
might change it. Experimentation shows that the signal handler call
mechanism does not save/restore errno for you, at least not on Linux
or HPUX, so this is definitely a real risk.
Tom Lane [Mon, 18 Dec 2000 06:50:51 +0000 (06:50 +0000)]
Make sure make_rels_by_clause_joins doesn't return multiple references
to same joinrel. Although make_rels_by_joins doesn't mind, GEQO has
an Assert that doesn't like this.
Tom Lane [Mon, 18 Dec 2000 00:44:50 +0000 (00:44 +0000)]
Clean up backend-exit-time cleanup behavior. Use on_shmem_exit callbacks
to ensure that we have released buffer refcounts and so forth, rather than
putting ad-hoc operations before (some of the calls to) proc_exit. Add
commentary to discourage future hackers from repeating that mistake.
Tom Lane [Sun, 17 Dec 2000 04:32:29 +0000 (04:32 +0000)]
Tweak select_common_type() to deal with possibility of multiple preferred
types in a category --- it was taking the last preferred type among the
inputs, rather than the first one as intended.
Peter Eisentraut [Sat, 16 Dec 2000 13:03:25 +0000 (13:03 +0000)]
Fix rules to re-generate config.h. The examples in the Autoconf manual are
flawed because the timestamp file is already updated when Makefile.global
is remade, and the rule for config.h never gets run.
Tom Lane [Sat, 16 Dec 2000 02:29:36 +0000 (02:29 +0000)]
Restructure performance tips into a single chapter ('populating a
database' was way too small to make a chapter). Add a section about
using JOIN syntax to direct the planner.
Bruce Momjian [Fri, 15 Dec 2000 22:45:09 +0000 (22:45 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.305
diff -r1.305 TODO
3c3
< Last updated: Fri Dec 15 17:40:22 EST 2000
---
> Last updated: Fri Dec 15 17:44:57 EST 2000 312a313
> * Mark is Mark Hollomon <mhh@mindspring.com> 326a328
> \9b5~
Bruce Momjian [Fri, 15 Dec 2000 22:40:34 +0000 (22:40 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.304
diff -r1.304 TODO
3c3
< Last updated: Fri Dec 15 17:03:28 EST 2000
---
> Last updated: Fri Dec 15 17:40:22 EST 2000 318a319
> * Ross is Ross J. Reedstrom <reedstrm@wallace.ece.rice.edu>
Bruce Momjian [Fri, 15 Dec 2000 22:03:40 +0000 (22:03 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.303
diff -r1.303 TODO
3c3
< Last updated: Fri Dec 15 16:46:43 EST 2000
---
> Last updated: Fri Dec 15 17:03:28 EST 2000 319a320
> * Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
Bruce Momjian [Fri, 15 Dec 2000 21:46:54 +0000 (21:46 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.302
diff -r1.302 TODO
3c3
< Last updated: Tue Dec 12 23:01:53 EST 2000
---
> Last updated: Fri Dec 15 16:46:43 EST 2000
Bruce Momjian [Fri, 15 Dec 2000 21:46:41 +0000 (21:46 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.301
diff -r1.301 TODO 306d305
< * Bryan is Bryan Henderson<bryanh@giraffe.netgate.net> 308d306
< * David is David Hartwig <daveh@insightdist.com> 311c309,310
< * Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
---
> * Hiroshi is Hiroshi Inoue <Inoue@tpf.co.jp>
> * Karel is Karel Zak <zakkr@zf.jcu.cz> 314c313
< * Massimo Dal Zotto <dz@cs.unitn.it>
---
> * Massimo is Massimo Dal Zotto <dz@cs.unitn.it> 318c317
< * Philip Warner <pjw@rhyme.com.au>
---
> * Philip is Philip Warner <pjw@rhyme.com.au> 321d319
< * Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at> 326c324
< * Vadim is "Vadim B. Mikheev" <vadim4o@email.com>
---
> * Vadim is Vadim B. Mikheev <vadim4o@email.com>
Bruce Momjian [Fri, 15 Dec 2000 19:15:09 +0000 (19:15 +0000)]
here is a patch fixing today's bug report:
> Date: Thu, 14 Dec 2000 12:44:47 +0100 (CET)
> From: Kovacs Zoltan Sandor <tip@pc10.radnoti-szeged.sulinet.hu>
> To: pgsql-bugs@postgresql.org
> Subject: [BUGS] to_char() causes backend to close connection
>
> Hi, this query gives different strange results:
>
> select to_char(now()::abstime,'YYMMDDHH24MI');
>
> I get e.g. a "backend closed the channel unexpectedly..." error with
> successful or failed resetting attempt (indeterministic)
Again thanks Kovacs, you found really designing bug, that appear
if anyone write bad format template to "number" version of to_char()
(as you with 'DD').
Bruce Momjian [Fri, 15 Dec 2000 19:11:28 +0000 (19:11 +0000)]
there is one problem with Zoltan patches commited into the tree:
if we set autocommit off and issued COMMIT (or ROLLBACK) on a connection
new transaction is not started
Tom Lane [Thu, 14 Dec 2000 22:30:45 +0000 (22:30 +0000)]
Planner speedup hacking. Avoid saving useless pathkeys, so that path
comparison does not consider paths different when they differ only in
uninteresting aspects of sort order. (We had a special case of this
consideration for indexscans already, but generalize it to apply to
ordered join paths too.) Be stricter about what is a canonical pathkey
to allow faster pathkey comparison. Cache canonical pathkeys and
dispersion stats for left and right sides of a RestrictInfo's clause,
to avoid repeated computation. Total speedup will depend on number of
tables in a query, but I see about 4x speedup of planning phase for
a sample seven-table query.
Tom Lane [Thu, 14 Dec 2000 00:41:09 +0000 (00:41 +0000)]
Change StoreCatalogInheritance() to work from a list of parent relation
OIDs rather than names. Aside from being simpler and faster, this way
doesn't blow up in the face of 'create temp table foo () inherits (foo)'.
Which is a rather odd thing to do, but it seems some people want to.
Bruce Momjian [Wed, 13 Dec 2000 04:02:15 +0000 (04:02 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.300
diff -r1.300 TODO
3c3
< Last updated: Tue Dec 12 23:01:04 EST 2000
---
> Last updated: Tue Dec 12 23:01:53 EST 2000
21d20
< * test to show diffs for TODO changes
Bruce Momjian [Wed, 13 Dec 2000 04:01:27 +0000 (04:01 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.299
diff -r1.299 TODO
3c3
< Last updated: Tue Dec 12 15:27:50 EST 2000
---
> Last updated: Tue Dec 12 23:01:04 EST 2000
20a21
> * test to show diffs for TODO changes
Tom Lane [Tue, 12 Dec 2000 23:33:34 +0000 (23:33 +0000)]
Cache eval cost of qualification expressions in RestrictInfo nodes to
avoid repeated evaluations in cost_qual_eval(). This turns out to save
a useful fraction of planning time. No change to external representation
of RestrictInfo --- although that node type doesn't appear in stored
rules anyway.
Bruce Momjian [Tue, 12 Dec 2000 16:47:52 +0000 (16:47 +0000)]
In 'Joins between classes' in Section 5 of the tutorial we have, in
the first paragraph:
As an example, say we wish to find all the records that
are in the temperature range of other records. In
effect, we need to compare the temp_lo and temp_hi
attributes of each EMP instance to the temp_lo and
temp_hi attributes of all other EMP instances.
I believe that EMP should read WEATHER, as the example query that
follows joins WEATHER to itself.
Tom Lane [Tue, 12 Dec 2000 05:07:59 +0000 (05:07 +0000)]
Revise SELECT reference page for outer joins, subselect in FROM,
ISO-compliant UNION/INTERSECT/EXCEPT. Revise discussion of rule
rewriter to reflect new subselect-in-FROM implementation of views.
Miscellaneous other cleanups.