1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-10 17:42:29 +03:00
Commit Graph

3951 Commits

Author SHA1 Message Date
Tom Lane
ad0169b1b7 CLUSTER forgot to create a TOAST table for the clustered relation. 2001-01-01 21:35:00 +00:00
Tom Lane
9315ff5549 Ensure attcacheoff is written out as -1 when writing pg_attribute
tuples for a relation.  Needed to prevent Assert failure in CLUSTER.
2001-01-01 21:33:31 +00:00
Tom Lane
473763e676 Update comment. 2001-01-01 21:22:54 +00:00
Tom Lane
ff6012e275 Reverse #if test to be defined(__osf__) rather than not-any-of-a-lot-
of-others.
2000-12-31 18:04:35 +00:00
Tom Lane
fada8ee41f NetBSD/Alpha porting fixes from tom@minnesota.com. 2000-12-31 03:34:01 +00:00
Tom Lane
4723b2b99b Be more careful about the difference between signed and unsigned ints.
Bug is revealed by OID regress test on 64-bit platforms.
2000-12-30 19:17:47 +00:00
Vadim B. Mikheev
3e059b3802 1. WAL needs in zero-ed content of newly initialized page.
2. Log record for PageRepaireFragmentation now keeps array
   of !LP_USED offnums to redo cleanup properly.
2000-12-30 15:19:57 +00:00
Vadim B. Mikheev
c193f19a39 Fixed misprint in heap update WALoging. 2000-12-30 06:52:34 +00:00
Tom Lane
c23851bbe0 Paranoia about possible values of errno after a shmget/semget failure.
In theory we should always get EEXIST if there's a key collision, but
if the kernel code tests error conditions in a weird order, perhaps
EACCES or EIDRM could occur too.
2000-12-30 01:20:55 +00:00
Tom Lane
7f60b81e1a Fix failure in CreateCheckPoint on some Alpha boxes --- it's not OK to
assume that TAS() will always succeed the first time, even if the lock
is known to be free.  Also, make sure that code will eventually time out
and report a stuck spinlock, rather than looping forever.  Small cleanups
in s_lock.h, too.
2000-12-29 21:31:21 +00:00
Vadim B. Mikheev
7d363c4c33 MUST update (in-memory) data page BEFORE XLogInsert to log
NEW page content if WAL will decide to backup page.
2000-12-29 20:47:17 +00:00
Vadim B. Mikheev
b3c4f03c9c nbtree_xlog_newroot: set meta flag in meta page opaque. 2000-12-29 08:08:59 +00:00
Vadim B. Mikheev
7ceeeb662f New WAL version - CRC and data blocks backup. 2000-12-28 13:00:29 +00:00
Tom Lane
c996c7f573 Let's try this again on accepting the correct range of Oid input values
for 64-bit platforms ...
2000-12-28 01:51:15 +00:00
Tom Lane
8609d4abf2 Fix portability problems recently exposed by regression tests on Alphas.
1. Distinguish cases where a Datum representing a tuple datatype is an OID
from cases where it is a pointer to TupleTableSlot, and make sure we use
the right typlen in each case.
2. Make fetchatt() and related code support 8-byte by-value datatypes on
machines where Datum is 8 bytes.  Centralize knowledge of the available
by-value datatype sizes in two macros in tupmacs.h, so that this will be
easier if we ever have to do it again.
2000-12-27 23:59:14 +00:00
Tom Lane
7df721af0e Compute reasonable cost and output-row-count estimates for LIMIT plan
nodes.
2000-12-23 18:49:41 +00:00
Tom Lane
a412749812 Replace overly-cute coding with code that (a) has defined behavior
according to the ANSI C spec, (b) gets the boundary conditions right,
and (c) is about a third as long and three times more intelligible.
2000-12-23 04:05:31 +00:00
Tom Lane
90f42847b5 Small cleanup of temp-table handling. Disallow creation of a non-temp
table that inherits from a temp table.  Make sure the right things happen
if one creates a temp table, creates another temp that inherits from it,
then renames the first one.  (Previously, system would end up trying to
delete the temp tables in the wrong order.)
2000-12-22 23:12:07 +00:00
Tom Lane
0db1a951d5 Repair not-too-well-thought-out code to do rangechecking of OIDs on
64-bit machines.  Also, make oidvectorin use the same code as oidin.
2000-12-22 21:36:09 +00:00
Vadim B. Mikheev
369aace5f3 Avoid XLogFlush for clean buffers in BufferSync. 2000-12-22 20:04:43 +00:00
Tom Lane
046848c272 Improve error message for case where DROP TABLE is rejected because
table has a child table.
2000-12-22 19:21:37 +00:00
Tom Lane
04b31609b6 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 ...
2000-12-22 18:35:09 +00:00
Tom Lane
61784c54b5 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.
2000-12-22 18:00:24 +00:00
Tom Lane
317215fc55 Clean up CREATE TYPE/OPERATOR/AGGREGATE productions, so that parser
will not accept types named with operator names or vice versa.
2000-12-22 07:07:58 +00:00
Tom Lane
6cc842abd3 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.
2000-12-22 00:51:54 +00:00
Tom Lane
0e952cdb90 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.
2000-12-21 17:36:15 +00:00
Tom Lane
e6e9e18e9e Remove multi.c and single.c, which have been dead code for
over two years.
2000-12-20 22:54:02 +00:00
Tom Lane
39b547f430 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.
2000-12-20 21:51:52 +00:00
Bruce Momjian
1f159e562b >> 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

Cyril VELTER
2000-12-18 18:45:05 +00:00
Tom Lane
5491233f52 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.
2000-12-18 17:33:42 +00:00
Tom Lane
97cfb9d606 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.
2000-12-18 06:50:51 +00:00
Tom Lane
42d5e34e77 Repair mishandling of PRIMARY KEY declaration that references an
inherited column, per bug report from Elphick 12/15/00.
2000-12-18 01:37:56 +00:00
Tom Lane
a626b78c89 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.
2000-12-18 00:44:50 +00:00
Tom Lane
cfa4d4d040 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.
2000-12-17 04:32:29 +00:00
Bruce Momjian
85934d1bdb Remove current->old mapping. 2000-12-15 23:36:20 +00:00
Tom Lane
7d6af50f43 Make algorithm for resolving UNKNOWN function/operator inputs be
insensitive to the order of arguments.  Per pghackers discussion 12/10/00.
2000-12-15 19:22:03 +00:00
Bruce Momjian
ff783fbae0 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').

                                        Karel
2000-12-15 19:15:09 +00:00
Tom Lane
b260c18cbc Remove obsolete comment. 2000-12-15 18:02:47 +00:00
Tom Lane
352cd1f1c5 Remove a few remaining vestiges of elog(WARN). 2000-12-15 04:08:15 +00:00
Jan Wieck
4ea746a84f Bugfix
Trying to connect to template0 left a global referenced buffer
because the scan of pg_database wasn't ended properly before
elog(FATAL).

Jan
2000-12-14 23:51:35 +00:00
Tom Lane
ea166f1146 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.
2000-12-14 22:30:45 +00:00
Hiroshi Inoue
db11f4382a Make sure to not handle deactivated system indexes 2000-12-14 07:02:42 +00:00
Tom Lane
468a970409 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.
2000-12-14 00:41:09 +00:00
Tom Lane
780992316f Fix thinko for case of outer join where inner table is empty: should
output first outer tuple before advancing...
2000-12-13 23:45:46 +00:00
Tom Lane
17b843d677 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.
2000-12-12 23:33:34 +00:00
Vadim B. Mikheev
5bb4f723d2 Remove elog for online log files. 2000-12-11 19:27:42 +00:00
Vadim B. Mikheev
dae369d390 elog(LOG)-->elog(DEBUG) for skipped logs. 2000-12-11 18:02:25 +00:00
Tom Lane
2cf8064af8 Tweak Darwin patch to get right include order. 2000-12-11 16:35:59 +00:00
Hiroshi Inoue
6ef0219c34 Resolve complie error(was my fault). 2000-12-11 09:14:03 +00:00
Hiroshi Inoue
a8824ff257 *redo: Heap move* neglects to set t_cmin for MOVED_IN tuples. 2000-12-11 05:25:23 +00:00