| Commit message (Collapse) | Author | Age |
|
|
|
| |
are running.
|
|
|
|
|
|
| |
Without this, an elog during cache-entry load leaves that catcache
unusable. elog in that segment of code is pretty unusual but it can
happen.
|
|
|
|
|
|
|
|
|
| |
trying to toast tuples inserted into toast tables! Fix is two-pronged:
first, ensure all columns of a toast table are marked attstorage='p',
and second, alter the target chunk size so that it's less than the
threshold for trying to toast a tuple. (Code tried to do that but the
expression was wrong.) A few cosmetic cleanups in tuptoaster too.
NOTE: initdb forced due to change in toaster chunk-size.
|
|
|
|
|
|
|
|
|
| |
These two routines will now ALWAYS elog() on failure, whether you ask for
a lock or not. If you really want to get a NULL return on failure, call
the new routines heap_open_nofail()/heap_openr_nofail(). By my count there
are only about three places that actually want that behavior. There were
rather more than three places that were missing the check they needed to
make under the old convention :-(.
|
|
|
|
|
| |
We're reaching the mopup stage here (good thing too, this is getting
tedious).
|
|
|
|
|
| |
compressible but not externally storable (since we're not sure about
whether creating a toast relation for pg_class would work).
|
|
|
|
|
|
|
|
| |
allows fixing problems with operators that expected to be able to
return a NULL, such as the '#' line-segment-intersection operator
that tried to return NULL when the two segments don't intersect.
(See, eg, bug report from 1-Nov-99 on pghackers.) Fix some other
bugs in passing, such as backwards comparison in path_distance().
|
|
|
|
|
| |
updated to new fmgr style. Deleted hoary old functions for compatibility
with pre-6.1 representations of these datatypes.
|
|
|
|
| |
nor any OID in the reserved range (1-16383).
|
| |
|
|
|
|
|
|
| |
actually, but who could understand it with no comments? Fix bug
while at it: _bt_orderkeys would try to invoke comparisons on
NULL inputs, given the right sort of redundant quals.
|
|
|
|
|
|
| |
by Tom.
Jan
|
|
|
|
|
|
| |
left keys during bottom-up index build, and leave some free space
instead of packing the pages to the brim (so as to avoid vast numbers
of page splits during the first interactive insertions).
|
|
|
|
|
| |
calculation, also make it stop when it has a 'good enough' split instead
of exhaustively trying all split points.
|
|
|
|
|
|
| |
one with the plain one.
Jan
|
|
|
|
|
|
|
| |
in memory (plain or compressed) in the tuple returned from the heap-am.
So no index will ever contain an external reference.
Jan
|
|
|
|
|
|
|
|
|
|
|
|
| |
duplicate keys by letting search go to the left rather than right when an
equal key is seen at an upper tree level. Fix poor choice of page split
point (leading to insertion failures) that was forced by chaining logic.
Don't store leftmost key in non-leaf pages, since it's not necessary.
Don't create root page until something is first stored in the index, so an
unused index is now 8K not 16K. (Doesn't seem to be as easy to get rid of
the metadata page, unfortunately.) Massive cleanup of unreadable code,
fix poor, obsolete, and just plain wrong documentation and comments.
See src/backend/access/nbtree/README for the gory details.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pass-by-ref data types --- eg, an index on lower(textfield) --- no longer
leak memory during index creation or update. Clean up a lot of redundant
code ... did you know that copy, vacuum, truncate, reindex, extend index,
and bootstrap each basically duplicated the main executor's logic for
extracting information about an index and preparing index entries?
Functional indexes should be a little faster now too, due to removal
of repeated function lookups.
CREATE INDEX 'opt_type' clause is deimplemented by these changes,
but I haven't removed it from the parser yet (need to merge with
Thomas' latest change set first).
|
|
|
|
| |
Make Gen_fmgrtab.sh reasonably robust against concurrent invocation.
|
|
|
|
|
|
| |
memory contexts. Currently, only leaks in expressions executed as
quals or projections are handled. Clean up some old dead cruft in
executor while at it --- unused fields in state nodes, that sort of thing.
|
|
|
|
|
|
| |
when fetching toasted values.
Jan
|
|
|
|
|
|
| |
a wrong pointer causing the bitmap overwriting the tuple header.
Jan
|
|
|
|
| |
Jan
|
|
|
|
| |
in the infomask of the provided tuple.
|
| |
|
|
|
|
| |
+unlock buffer in heap_fetch under !ItemIdIsUsed().
|
| |
|
|
|
|
|
|
|
|
| |
WARNING: This is actually broken - we have self-deadlocks
due to concurrent changes in buffer management.
Vadim and me are working on it.
Jan
|
| |
|
|
|
|
|
|
| |
regression tests).
Chris Bitmead
|
|
|
|
| |
there is no open transaction.
|
|
|
|
|
|
|
|
| |
Don't use DISABLE_COMPLEX_MACRO on Solaris. Don't define the
replacement function in the header file. Use -KPIC, not -K PIC.
Use CC to link C++ libraries, not ld/ar.
Eliminate file not found warnings in tcl build code.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for details). It doesn't really do that much yet, since there are no
short-term memory contexts in the executor, but the infrastructure is
in place and long-term contexts are handled reasonably. A few long-
standing bugs have been fixed, such as 'VACUUM; anything' in a single
query string crashing. Also, out-of-memory is now considered a
recoverable ERROR, not FATAL.
Eliminate a large amount of crufty, now-dead code in and around
memory management.
Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and
backend startup.
|
|
|
|
|
|
|
| |
entries now for int8 and network hash indexes. int24_ops and int42_ops
are gone. pg_opclass no longer contains multiple entries claiming to be
the default opclass for the same datatype. opr_sanity regress test
extended to catch errors like these in the future.
|
|
|
|
|
|
|
|
|
|
| |
materialized tupleset is small enough) instead of a temporary relation.
This was something I was thinking of doing anyway for performance, and Jan
says he needs it for TOAST because he doesn't want to cope with toasting
noname relations. With this change, the 'noname table' support in heap.c
is dead code, and I have accordingly removed it. Also clean up 'noname'
plan handling in planner --- nonames are either sort or materialize plans,
and it seems less confusing to handle them separately under those names.
|
|
|
|
|
|
|
| |
passing the index-is-unique flag to index build routines (duh! ...
why wasn't it done this way to begin with?). Aside from eliminating
an eyesore, this should save a few milliseconds in btree index creation
because a full scan of pg_index is not needed any more.
|
| |
|
| |
|
|
|
|
|
|
| |
--- ie, they're only called for side-effects. Add a PG_RETURN_VOID()
macro and use it where appropriate. This probably doesn't change the
machine code by a single bit ... it's just for documentation.
|
|
|
|
|
| |
functions that take pass-by-value datatypes. Should be ready for
port testing ...
|
| |
|
| |
|
|
|
|
|
|
|
| |
inputs have been converted to newstyle. This should go a long way towards
fixing our portability problems with platforms where char and short
parameters are passed differently from int-width parameters. Still
more to do for the Alpha port however.
|
|
|
|
| |
"rb" and "wb".
|
| |
|
|
|
|
|
|
|
|
|
|
| |
it will close VFDs if necessary to surmount ENFILE or EMFILE failures.
Make use of this in md.c, xlog.c, and user.c routines that were
formerly vulnerable to these failures. In particular, this should
handle failures of mdblindwrt() that have been observed under heavy
load conditions. (By golly, every other process on the system may
crash after Postgres eats up all the kernel FDs, but Postgres will
keep going!)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That means you can now set your options in either or all of $PGDATA/configuration,
some postmaster option (--enable-fsync=off), or set a SET command. The list of
options is in backend/utils/misc/guc.c, documentation will be written post haste.
pg_options is gone, so is that pq_geqo config file. Also removed were backend -K,
-Q, and -T options (no longer applicable, although -d0 does the same as -Q).
Added to configure an --enable-syslog option.
changed all callers from TPRINTF to elog(DEBUG)
|
|
|
|
|
| |
fmgr_faddr() in favor of new-style calls. Lots of cleanup of
sloppy casts to use XXXGetDatum and DatumGetXXX ...
|
| |
|
|
|
|
|
| |
the src/include tree, so that -I backend is no longer necessary anywhere.
Also, clean up some bit rot in contrib tree.
|