summaryrefslogtreecommitdiff
path: root/src/include
AgeCommit message (Collapse)Author
2001-03-30Add appropriately ifdef'd hack to make ARM compiler allocate ItemPointerDataTom Lane
as six bytes not eight. This fixes a regression test failure but more importantly avoids wasting four bytes of pad space in every tuple header. Also add some commentary about what's going on.
2001-03-26Add #define HAVE_ATEXIT, per report from Magnus.Tom Lane
2001-03-25Improve comments for xlog item size #defines.Tom Lane
2001-03-25Re-order declarations to un-break the non-HAS_TEST_AND_SET case.Tom Lane
2001-03-23When using 'long long int' for int64 type, check to see if the compilerTom Lane
accepts nnnLL syntax for long long constants. If so, decorate the CRC64 constants with LL to avoid warnings and/or erroneous results from certain non-standards-compliant compilers.
2001-03-23Mark exception and assert global variables as DLLIMPORT, so that plpgsqlTom Lane
can be compiled with asserts enabled on Windoze.
2001-03-23Fix comments that were mis-wrapped, for Tom Lane.Bruce Momjian
2001-03-22Remove dashes in comments that don't need them, rewrap with pgindent.Bruce Momjian
2001-03-22pgindent run. Make it all clean.Bruce Momjian
2001-03-18Remove NEXTXID xlog record type to avoid three-way deadlock risk.Tom Lane
NEXTXID isn't really necessary, per previous discussion in pghackers, but I mulishy insisted we should put it in anyway. Mea culpa.
2001-03-18Patches from Cyril Velter to make shared-memory-conflict-detection codeTom Lane
work in BeOS port.
2001-03-16Support syncing WAL log to disk using either fsync(), fdatasync(),Tom Lane
O_SYNC, or O_DSYNC (as available on a given platform). Add GUC parameter to control sync method. Also, add defense to XLogWrite to prevent it from going nuts if passed a target write position that's past the end of the buffers so far filled by XLogInsert.
2001-03-14Reduce amount of memory used per tuple for after-event triggers. ThisTom Lane
is still a memory leak, but a little less bad than it was.
2001-03-14Remove obsolete PowerPC-specific hack for comparisons to DBL_MINTom Lane
(per recent discussion with Tatsuo). Hopefully the compilers with that old bug are all long gone.
2001-03-13Change xlog page-header format to include StartUpID. Use the SUI toTom Lane
detect case that next page in log came from an older run than the prior page. This avoids the necessity to re-zero the log after recovery from a crash, which is good because we need not risk destroying valuable log information. This forces another initdb since yesterday :-(. Need to get that log reset utility done...
2001-03-13XLOG (and related) changes:Tom Lane
* Store two past checkpoint locations, not just one, in pg_control. On startup, we fall back to the older checkpoint if the newer one is unreadable. Also, a physical copy of the newest checkpoint record is kept in pg_control for possible use in disaster recovery (ie, complete loss of pg_xlog). Also add a version number for pg_control itself. Remove archdir from pg_control; it ought to be a GUC parameter, not a special case (not that it's implemented yet anyway). * Suppress successive checkpoint records when nothing has been entered in the WAL log since the last one. This is not so much to avoid I/O as to make it actually useful to keep track of the last two checkpoints. If the things are right next to each other then there's not a lot of redundancy gained... * Change CRC scheme to a true 64-bit CRC, not a pair of 32-bit CRCs on alternate bytes. Polynomial borrowed from ECMA DLT1 standard. * Fix XLOG record length handling so that it will work at BLCKSZ = 32k. * Change XID allocation to work more like OID allocation. (This is of dubious necessity, but I think it's a good idea anyway.) * Fix a number of minor bugs, such as off-by-one logic for XLOG file wraparound at the 4 gig mark. * Add documentation and clean up some coding infelicities; move file format declarations out to include files where planned contrib utilities can get at them. * Checkpoint will now occur every CHECKPOINT_SEGMENTS log segments or every CHECKPOINT_TIMEOUT seconds, whichever comes first. It is also possible to force a checkpoint by sending SIGUSR1 to the postmaster (undocumented feature...) * Defend against kill -9 postmaster by storing shmem block's key and ID in postmaster.pid lockfile, and checking at startup to ensure that no processes are still connected to old shmem block (if it still exists). * Switch backends to accept SIGQUIT rather than SIGUSR1 for emergency stop, for symmetry with postmaster and xlog utilities. Clean up signal handling in bootstrap.c so that xlog utilities launched by postmaster will react to signals better. * Standalone bootstrap now grabs lockfile in target directory, as added insurance against running it in parallel with live postmaster.
2001-03-09Don't choke on superuser names containing random punctuation.Tom Lane
2001-03-04Update mysql converter, new version released.Bruce Momjian
2001-03-01Add missing semicolon required by QNX shell.Peter Eisentraut
from "Tegge, Bernd" <tegge@repas-aeg.de>
2001-03-01Remove HAVE_OPTARG per discussion in hackers list.Tatsuo Ishii
2001-02-27Tweak portal (cursor) code so that it will not call the executor againTom Lane
when user does another FETCH after reaching end of data, or another FETCH backwards after reaching start. This is needed because some plan nodes are not very robust about being called again after they've already returned NULL; for example, MergeJoin will crash in some states but not others. While the ideal approach would be for them all to handle this correctly, it seems foolish to assume that no such bugs would creep in again once cleaned up. Therefore, the most robust answer is to prevent the situation from arising at all.
2001-02-27Mark new text<->date, text<->time, text<->timetz conversion functions asTom Lane
noncachable, so that CURRENT_DATE and CURRENT_TIME work as functions again, rather than being collapsed to constants immediately. Marking the reverse conversions noncachable might be overkill, but I'm not sure; do these datatypes have the notion of a CURRENT value? Better safe than sorry, for now.
2001-02-27Massive commits for SunOS4 port.Tatsuo Ishii
2001-02-26Implement COMMIT_SIBLINGS parameter to allow pre-commit delay to occurTom Lane
only if at least N other backends currently have open transactions. This is not a great deal of intelligence about whether a delay might be profitable ... but it beats no intelligence at all. Note that the default COMMIT_DELAY is still zero --- this new code does nothing unless that setting is changed. Also, mark ENABLEFSYNC as a system-wide setting. It's no longer safe to allow that to be set per-backend, since we may be relying on some other backend's fsync to have synced the WAL log.
2001-02-23Update comments on locks.Bruce Momjian
2001-02-23Bruce Momjian <pgman@candle.pha.pa.us> writes:Bruce Momjian
> Is there one LOCKMETHODCTL for every backend? I thought there was only > one of them. >> >> You're right, that line is erroneous; it should read >> >> size += MAX_LOCK_METHODS * MAXALIGN(sizeof(LOCKMETHODCTL)); >> >> Not a significant error but it should be changed for clarity ...
2001-02-22More comment improvements.Bruce Momjian
2001-02-22Clean up index/btree comments/macros, as approved.Bruce Momjian
2001-02-22Change /*---- commants to /* where appropriate. pgindent will tightenBruce Momjian
up the comments later.
2001-02-22Add _REGEX_UTILS_H to avoid duplication.Tatsuo Ishii
2001-02-21Comment improvements.Bruce Momjian
2001-02-20Clean out any old versions of no-longer-installed header files that mayTom Lane
be lurking in the install target directory. But don't zap up-to-date headers (so install-all-headers before regular install will work). Per suggestion from Larry Rosenman.
2001-02-20Remove inclusion of <varargs.h> on SunOS; this does not work since weTom Lane
use the ANSI varargs style (<stdarg.h>) not the old style. Tatsuo had reported this change was necessary back in the 7.0 beta cycle (4/13/00) but for some reason, making the edit never got done.
2001-02-19Change plpgsql's GET DIAGNOSTICS statement to use SQL99-compatibleTom Lane
syntax. Fix the RESULT_OID case, which never worked. Add documentation.
2001-02-18Change s_lock to not use any zero-delay select() calls; these are just aTom Lane
waste of cycles on single-CPU machines, and of dubious utility on multi-CPU machines too. Tweak s_lock_stuck so that caller can specify timeout interval, and increase interval before declaring stuck spinlock for buffer locks and XLOG locks. On systems that have fdatasync(), use that rather than fsync() to sync WAL log writes. Ensure that WAL file is entirely allocated during XLogFileInit.
2001-02-16Just noticed that use of 'volatile' in HPPA S_UNLOCK() was causing gccTom Lane
to generate unnecessarily stupid code. Tweak macro to describe a series of store-constant ops, not store/load/store/load/store/load/store.
2001-02-16Clean up two rather nasty bugs in operator selection code.Tom Lane
1. If there is exactly one pg_operator entry of the right name and oprkind, oper() and related routines would return that entry whether its input type had anything to do with the request or not. This is just premature optimization: we shouldn't return the single candidate until after we verify that it really is a valid candidate, ie, is at least coercion-compatible with the given types. 2. oper() and related routines only promise a coercion-compatible result. Unfortunately, there were quite a few callers that assumed the returned operator is binary-compatible with the given datatype; they would proceed to call it without making any datatype coercions. These callers include sorting, grouping, aggregation, and VACUUM ANALYZE. In general I think it is appropriate for these callers to require an exact or binary-compatible match, so I've added a new routine compatible_oper() that only succeeds if it can find an operator that doesn't require any run-time conversions. Callers now call oper() or compatible_oper() depending on whether they are prepared to deal with type conversion or not. The upshot of these bugs is revealed by the following silliness in PL/Tcl's selftest: it creates an operator @< on int4, and then tries to use it to sort a char(N) column. The system would let it do that :-( (and evidently has done so since 6.3 :-( :-(). The result in this case was just a silly sort order, but the reverse combination would've provoked coredump from trying to dereference integers. With this fix you get more reasonable behavior: pltcl_test=# select * from T_pkey1 order by key1, key2 using @<; ERROR: Unable to identify an operator '@<' for types 'bpchar' and 'bpchar' You will have to retype this query using an explicit cast
2001-02-16Take OUTER JOIN semantics into account when estimating the size of joinTom Lane
relations. It's not very bright, but at least it now knows that A LEFT JOIN B must produce at least as many rows as are in A ...
2001-02-15Although we can't support out-of-line TOAST storage in indexes (yet),Tom Lane
compressed storage works perfectly well. Might as well have a coherent strategy for applying it, rather than the haphazard store-what-you-get approach that was in the code before. The strategy I've set up here is to attempt compression of any compressible index value exceeding BLCKSZ/16, or about 500 bytes by default.
2001-02-14Change scoping of table and join refnames to conform to SQL92: a JOINTom Lane
clause with an alias is a <subquery> and therefore hides table references appearing within it, according to the spec. This is the same as the preliminary patch I posted to pgsql-patches yesterday, plus some really grotty code in ruleutils.c to reverse-list a query tree with the correct alias name depending on context. I'd rather not have done that, but unless we want to force another initdb for 7.1, there's no other way for now.
2001-02-13Please apply the following patch to fix AIX and IRIX timestamp behaviorBruce Momjian
as previously discussed. It makes AIX and IRIX not use DST for dates before 1970. The following expected files need to be removed from the regression tests, they contain wrong results and are not needed any more. src/test/regress/expected/horology-1947-PDT.out src/test/regress/expected/tinterval-1947-PDT.out src/test/regress/expected/abstime-1947-PDT.out Zeugswetter Andreas
2001-02-13Clean up portability problems in regexp package: change all routineTom Lane
definitions from K&R to ANSI C style, and fix broken assumption that int and long are the same datatype. This repairs problems observed on Alpha with regexps having between 32 and 63 states.
2001-02-12Hmm, this isn't used either.Tom Lane
2001-02-12Remove unused and largely-broken-anyway compatibility defs.Tom Lane
2001-02-12Rearrange order of operations in heap_create_with_catalog so that ifTom Lane
two transactions create the same table name concurrently, the one that fails will complain about unique index pg_class_relname_index, rather than about pg_type_typname_index which'll confuse most people. Free side benefit: pg_class.reltype is correctly linked to the pg_type entry now. It's been zero in all but the preloaded pg_class entries since who knows when.
2001-02-10Fix byte-vs-word-width oversight in m68k TAS() code.Tom Lane
Man, this brings back some old memories ...
2001-02-10Restructure the key include files per recent pghackers discussion: thereTom Lane
are now separate files "postgres.h" and "postgres_fe.h", which are meant to be the primary include files for backend .c files and frontend .c files respectively. By default, only include files meant for frontend use are installed into the installation include directory. There is a new make target 'make install-all-headers' that adds the whole content of the src/include tree to the installed fileset, for use by people who want to develop server-side code without keeping the complete source tree on hand. Cleaned up a whole lot of crufty and inconsistent header inclusions.
2001-02-09I have deleted the include of termios.h in include/port/qnx4.h.Bruce Momjian
Then I recompiled pgsql and I have compiled a program with ecpg. I have removed the termios.h, and the ECHO hack. Thanks Maurizio
2001-02-09plpgsql's private copy of xlateSqlType was out of sync. Again. ThisTom Lane
is clearly not maintainable, so dike it out in favor of calling the real version in the backend's gram.y.
2001-02-07Macro for btree runtime fix.Vadim B. Mikheev