| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
inconsistent coding practices for handling Index values and booleans,
too.
|
|
|
|
|
|
|
|
|
| |
before calling RelationInvalidateHeapTuple(), which is bad because the
latter needs to look at the tuple data, which is in the shared disk
buffer. If another backend manages to recycle the buffer while this
is going on, we will compute the wrong hashindex for the tuple or
maybe even crash outright. Must hold buffer refcount until afterwards.
(This bug is not in 7.0.*; seems to be have introduced during WAL changes.)
|
|
|
|
| |
that leftover cancel/die requests cannot interfere with exit activities.
|
|
|
|
| |
of 6 Jan 2001 21:55.
|
|
|
|
|
|
|
|
| |
and burn. Just for added luck, change reading of CONST nodes so that
we do not need to consult pg_type rows while reading them; this means
that no database access occurs during stringToNode. This requires
changing the order in which const-node fields are written, which means
an initdb is forced.
|
|
|
|
|
| |
Disallow cases like adding constraints to sequences :-(, and eliminate
now-unnecessary search of pg_rewrite to decide if a relation is a view.
|
|
|
|
| |
error, so as to provide a starting point for debugging.
|
|
|
|
|
|
| |
in per-entry sub-memory-context, where they were supposed to go, rather
than in CacheMemoryContext where the code was putting them. Must've
suffered a severe brain fade when I wrote this :-(
|
|
|
|
|
| |
no longer the case). Add AND and TRAILING to ColLabel. All key words
except AS are now at least ColLabel's.
|
|
|
|
|
|
|
|
| |
sequences. This is done by disabling multi-byte awareness when it's
not necessary. This is kind of a workaround, not a perfect solution.
However, there is no ideal way to parse broken multi-byte character
sequences. So I guess this is the best way what we could do right
now...
|
|
|
|
| |
so that transactional control could guarantee the consistency.
|
|
|
|
|
| |
they don't themselves flush any cache entries, only add to to-do lists
that will be processed later.
|
|
|
|
|
|
|
|
|
|
|
| |
and revert documentation to describe the existing INHERITS clause
instead, per recent discussion in pghackers. Also fix implementation
of SQL_inheritance SET variable: it is not cool to look at this var
during the initial parsing phase, only during parse_analyze(). See
recent bug report concerning misinterpretation of date constants just
after a SET TIMEZONE command. gram.y really has to be an invariant
transformation of the query string to a raw parsetree; anything that
can vary with time must be done during parse analysis.
|
|
|
|
| |
table, per pghackers discussion around 22-Dec-00.
|
|
|
|
| |
used before ...
|
| |
|
|
|
|
| |
from sergiop@sinectis.com.ar.
|
|
|
|
| |
of early December 2000. COPY BINARY is now TOAST-safe.
|
|
|
|
| |
to it. Bad dog.
|
|
|
|
|
|
|
| |
Previous result did not have correct month boundaries so anything near edge
cases was suspect (e.g. April was in Q1 and July, August were lumped into
Q2).
Thanks to Denis Osadchy <osadchy@turbo.nsk.su> for the report.
|
|
|
|
|
|
|
|
| |
starting a new hashtable search no longer clobbers any other search
active anywhere in the system. Fix RelationCacheInvalidate() so that
it will not crash or go into an infinite loop if invoked recursively,
as for example by a second SI Reset message arriving while we are still
processing a prior one.
|
| |
|
|
|
|
| |
tuples for a relation. Needed to prevent Assert failure in CLUSTER.
|
| |
|
|
|
|
| |
of-others.
|
| |
|
|
|
|
| |
Bug is revealed by OID regress test on 64-bit platforms.
|
|
|
|
|
| |
2. Log record for PageRepaireFragmentation now keeps array
of !LP_USED offnums to redo cleanup properly.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
NEW page content if WAL will decide to backup page.
|
| |
|
| |
|
|
|
|
| |
for 64-bit platforms ...
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
nodes.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.)
|
|
|
|
| |
64-bit machines. Also, make oidvectorin use the same code as oidin.
|
| |
|
|
|
|
| |
table has a child table.
|
|
|
|
|
| |
semantics of RI operations. Eventually we ought to look at making RI
work properly across inheritance trees, but not for 7.1 ...
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
will not accept types named with operator names or vice versa.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|