| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
do anything yet, but it has the necessary connections to initialization
and so forth. Make some gestures towards allowing number of blocks in
a relation to be BlockNumber, ie, unsigned int, rather than signed int.
(I doubt I got all the places that are sloppy about it, yet.) On the
way, replace the hardwired NLOCKS_PER_XACT fudge factor with a GUC
variable.
|
|
|
|
| |
directly, rather than through SetConfigOption().
|
|
|
|
| |
directly, rather than through SetConfigOption().
|
|
|
|
|
|
|
|
| |
IS TRUE, etc, with some degree of verisimilitude. Split out
selectivity support functions from builtins.h into a new header
file selfuncs.h, so as to reduce the number of header files builtins.h
must depend on. Fix a few missing inclusions exposed thereby.
From Joe Conway, with some kibitzing from Tom Lane.
|
| |
|
| |
|
|
|
|
| |
message in that case.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> > secure_ctx changes too. it will be PGC_BACKEND after '-p'.
>
> Oh, okay, I missed that part. Could we see the total state of the
> patch --- ie, a diff against current CVS, not a bunch of deltas?
> I've gotten confused about what's in and what's out.
Ok, here it is. Cleared the ctx comment too - after -p
it will be PGC_BACKEND in any case.
Marko Kreen
|
|
|
|
| |
sequence.
|
|
|
|
| |
Alex Pilosov
|
|
|
|
| |
Jan
|
|
|
|
|
|
|
| |
it's hard to keep such massive changes in sync with the tree
so I need to get it in and work from there now).
Jan
|
|
|
|
|
| |
return without waiting if we can't get the lock immediately).
Not used yet, but will be needed for concurrent VACUUM.
|
| |
|
| |
|
|
|
|
| |
ordering of startup operations in one or two places.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
a new postmaster child process. This should eliminate problems with
authentication blocking (e.g., ident, SSL init) and also reduce problems
with the accept queue filling up under heavy load.
The option to send elog output to a different file per backend (postgres -o)
has been disabled for now because the initialization would have to happen
in a different order and it's not clear we want to keep this anyway.
|
| |
|
|
|
|
|
|
|
| |
tests to return the correct results per SQL9x when given NULL inputs.
Reimplement these tests as well as IS [NOT] NULL to have their own
expression node types, instead of depending on special functions.
From Joe Conway, with a little help from Tom Lane.
|
|
|
|
|
|
|
|
|
|
|
|
| |
SI messages now include the relevant database OID, so that operations
in one database do not cause useless cache flushes in backends attached
to other databases. Declare SI messages properly using a union, to
eliminate the former assumption that Oid is the same size as int or Index.
Rewrite the nearly-unreadable code in inval.c, and document it better.
Arrange for catcache flushes at end of command/transaction to happen before
relcache flushes do --- this avoids loading a new tuple into the catcache
while setting up new relcache entry, only to have it be flushed again
immediately.
|
|
|
|
|
|
|
|
|
|
| |
Here is Tomified version of my 2 pending patches.
Dropped the set_.._real change as it is not needed.
Desc would be:
* use GUC for settings from cmdline
Marko Kreen
|
|
|
|
|
| |
functions to clear date cache. Allow regression tests to pass when
timezone set.
|
|
|
|
| |
pgsql_tmp.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CatalogCacheFlushRelation (formerly called SystemCacheRelationFlushed)
how to distinguish tuples it should flush from those it needn't; this
means a relcache flush event now only removes the catcache entries
it ought to, rather than zapping the caches completely as it used to.
Testing with the regression tests indicates that this considerably
improves the lifespan of catcache entries. Also, rearrange catcache
data structures so that the limit on number of cached tuples applies
globally across all the catcaches, rather than being per-catcache.
It was a little silly to have the same size limit on both, say,
pg_attribute caches and pg_am caches (there being only four possible
rows in the latter...). Doing LRU removal across all the caches
instead of locally in each one should reduce cache reload traffic
in the more heavily used caches and improve the efficiency of
cache memory use.
|
|
|
|
|
|
|
| |
TopTransactionContext, rather than using Dllist. This simplifies and
speeds up the code, and eliminates a former risk of coredump when
out of memory (since the old code didn't bother to check for malloc
failure). It also moves us one step closer to retiring Dllist...
|
|
|
|
| |
<alex@pilosoft.com>.
|
|
|
|
|
|
|
|
|
|
| |
detected sooner in backend startup, and is treated as an expected error
(it gives 'Sorry, too many clients already' now). This allows us not
to have to enforce the MaxBackends limit exactly in the postmaster.
Also, remove ProcRemove() and fold its functionality into ProcKill().
There's no good reason for a backend not to be responsible for removing
its PROC entry, and there are lots of good reasons for the postmaster
not to be touching shared-memory data structures.
|
|
|
|
|
|
|
| |
rules and triggers by OID. So, even though we have no cross-references
in the system catalogs to pg_rewrite.oid or pg_trigger.oid, we'd better
have unique indexes on them. Put back pg_rewrite_oid_index, which I
mistakenly removed a few days ago, and add pg_trigger_oid_index.
|
| |
|
|
|
|
|
|
| |
Tom Lane). For the moment, only the OID/name variants are provided.
I didn't force initdb, but the additions to the 'privileges' regress
test won't pass until you do one.
|
|
|
|
|
|
|
| |
database, including system catalogs (but not the shared catalogs,
since they don't really belong to his database). This is per recent
mailing list discussion. Clean up some other code that also checks
for database ownerness by introducing a test function is_dbadmin().
|
|
|
|
|
|
|
|
|
| |
inet(text), cidr(text): convert a text value into inet/cidr
set_masklen(inet): set masklen on the inet value
Patch also contains regression checks for these functions.
Alex Pilosov
|