| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Lists, and use that for user validation.
Bruce Momjian
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rather than deleting them only to have to create more. Steady state
is 2*CHECKPOINT_SEGMENTS + WAL_FILES + 1 segment files, which will
simply be renamed rather than constantly deleted and recreated.
To make this safe, added current XLOG file/offset number to page
header of XLOG pages, so that an un-overwritten page from an old
incarnation of a logfile can be reliably told from a valid page.
This change means that if you try to restart postmaster in a CVS-tip
database after installing the change, you'll get a complaint about
bad XLOG page magic number. If you don't want to initdb, run
contrib/pg_resetxlog (and be sure you shut down the old postmaster
cleanly).
|
|
|
|
| |
if there were no deletions to do.
|
|
|
|
| |
predicates. Per suggestion from Hiroshi.
|
|
|
|
|
|
|
|
| |
in GetSnapshotData, GetNewTransactionId, CommitTransaction, AbortTransaction,
etc. Correct race condition in transaction status testing in
HeapTupleSatisfiesVacuum --- this wasn't important for old VACUUM with
exclusive lock on its table, but it sure is important now. All per
pghackers discussion 7/11/01 and 7/12/01.
|
|
|
|
| |
Martijn van Oosterhout
|
|
|
|
|
| |
since the added qual could change the set of rows that get past the
LIMIT. Per discussion on pgsql-sql 7/15/01.
|
|
|
|
|
|
| |
Note: I didn't force an initdb, figuring that one today was enough.
However, there is a new function in pg_proc.h, and pg_dump won't be
able to dump partial indexes until you add that function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
per previous discussion on pghackers. Most of the duplicate code in
different AMs' ambuild routines has been moved out to a common routine
in index.c; this means that all index types now do the right things about
inserting recently-dead tuples, etc. (I also removed support for EXTEND
INDEX in the ambuild routines, since that's about to go away anyway, and
it cluttered the code a lot.) The retail indextuple deletion routines have
been replaced by a "bulk delete" routine in which the indexscan is inside
the access method. I haven't pushed this change as far as it should go yet,
but it should allow considerable simplification of the internal bookkeeping
for deletions. Also, add flag columns to pg_am to eliminate various
hardcoded tests on AM OIDs, and remove unused pg_am columns.
Fix rtree and gist index types to not attempt to store NULLs; before this,
gist usually crashed, while rtree managed not to crash but computed wacko
bounding boxes for NULL entries (which might have had something to do with
the performance problems we've heard about occasionally).
Add AtEOXact routines to hash, rtree, and gist, all of which have static
state that needs to be reset after an error. We discovered this need long
ago for btree, but missed the other guys.
Oh, one more thing: concurrent VACUUM is now the default.
|
|
|
|
| |
* Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes
|
|
|
|
|
| |
because index locking issues are not handled correctly yet. Need to go
work on the index AMs next.
|
| |
|
| |
|
|
|
|
| |
From Vince Vielhaber.
|
| |
|
|
|
|
|
|
| |
validity checking rules for VACUUM. Make some other rearrangements of the
VACUUM code to allow more code to be shared between full and lazy VACUUM.
Minor code cleanups and added comments for TransactionId manipulations.
|
|
|
|
|
|
| |
> > for docs, hope he does not mind ;)
Marko Kreen
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
a lie on many Unixen), invoke listen() with MIN(MaxBackends*2, 10000).
The clamp value 10000 is configurable in config.h.in, if that proves
to be necessary --- hopefully it won't.
|
|
|
|
|
|
|
| |
This makes VACUUM work properly with partial indexes, and avoids memory
leakage with functional indexes. Also, suppress complaint about fewer
index tuples than heap tuples when the index is a partial index.
From Martijn van Oosterhout.
|
|
|
|
|
|
|
|
| |
USER and ALTER USER to appear in any order, not only the fixed order
they used to be required to appear in.
Also, some changes from Tom Lane to create a FULL option for VACUUM;
it doesn't do anything yet, but I needed to change many of the same
files to make that happen, so now seemed like a good time.
|
|
|
|
|
| |
Enforce MAXTZLEN for all datestyles, not just some. Remove macro
definitions that were redundant with datetime.h.
|
|
|
|
| |
IS NULL, IS TRUE, and friends (my fault...)
|
|
|
|
|
|
| |
in cases of qualified rules as well as unqualified ones. Tweak rules
test to avoid cluttering output with dummy SELECT results. Update
documentation to match code.
|
|
|
|
| |
Name chosen per pghackers discussion around 6/22/01.
|
|
|
|
|
| |
to wait until it's safe to remove tuples and compact free space in a
shared buffer page. Miscellaneous small code cleanups in bufmgr, too.
|
|
|
|
| |
Jan
|
| |
|
|
|
|
|
| |
not holding a pin on the page. Use double instead of long to count
rows in relation, so that code still works for > LONG_MAX rows in rel.
|
|
|
|
| |
Jan
|
|
|
|
|
|
|
|
|
|
| |
constraint. This case (a) is useless, (b) violates SQL92, and
(c) is certain to cause a failure downstream when we try to create
an index with duplicated column names. So give an appropriate error
message instead of letting the index failure occur. Per report from
Colin Strickland. NOTE: currently, CREATE INDEX fooi ON foo(f1,f1)
still fails with 'cannot insert duplicate key' error. Should we
change that too? What about functional indexes?
|
| |
|
|
|
|
|
| |
to start it before we have acquired the data directory lock; also a
bad idea to start it before we have set up to catch SIGCHLD signals.
|
|
|
|
| |
not writable.
|
|
|
|
|
|
| |
useful as yet, since its primary source of information is (full) VACUUM,
which makes a concerted effort to get rid of free space before telling
the map about it ... next stop is concurrent VACUUM ...
|
|
|
|
|
| |
actually work. It had been throwing an Assert as of my recent changes
to bufmgr.c, but was not really right even before that AFAICT.
|
|
|
|
|
|
|
|
|
|
|
| |
immediately, we will fork a child even if the database state does not
permit connections to be accepted (eg, we are in recovery mode).
The child process will correctly reject the connection and exit as
soon as it's finished collecting the connection request message.
However, this means that reaper() must be prepared to see child
process exit signals even while it's waiting for startup or shutdown
process to finish. As was, a connection request arriving during a
database recovery or shutdown would cause postmaster abort.
|
|
|
|
| |
characteristics) to be set through GUC.
|
| |
|
|
|
|
|
|
|
|
| |
stub) into the rest of the system. Adopt a cleaner approach to preventing
deadlock in concurrent heap_updates: allow RelationGetBufferForTuple to
select any page of the rel, and put the onus on it to lock both buffers
in a consistent order. Remove no-longer-needed isExtend hack from
API of ReleaseAndReadBuffer.
|
|
|
|
|
|
|
|
|
| |
have any newly-dead tuples on them. This is a longstanding deficiency
that prevents VACUUM from compacting a file as much as one would expect.
Change requires fixing repair_frag to not assume that fraged_pages is
a subset of vacuum_pages.
Also make some further cleanups of places that assumed page numbers fit
in int and tuple counts fit in uint32.
|
|
|
|
|
| |
after writing/unpinning it. An actual failure is unlikely, unless the
system is tremendously short of buffers ... but a bug is a bug.
|
|
|
|
|
|
| |
for speed.
Jan
|
| |
|
| |
|