summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2008-04-17Re-enable pg_terminate_backend() using SIGTERM. SIGTERM testing stillBruce Momjian
needed.
2008-04-17Add some code to EXPLAIN to show the targetlist (ie, output columns)Tom Lane
of each plan node. For the moment this is debug support only and is not enabled unless EXPLAIN_PRINT_TLISTS is defined at build time. Later I'll see about the idea of letting EXPLAIN VERBOSE do it.
2008-04-16Repair two places where SIGTERM exit could leave shared memory stateTom Lane
corrupted. (Neither is very important if SIGTERM is used to shut down the whole database cluster together, but there's a problem if someone tries to SIGTERM individual backends.) To do this, introduce new infrastructure macros PG_ENSURE_ERROR_CLEANUP/PG_END_ENSURE_ERROR_CLEANUP that take care of transiently pushing an on_shmem_exit cleanup hook. Also use this method for createdb cleanup --- that wasn't a shared-memory-corruption problem, but SIGTERM abort of createdb could leave orphaned files lying around. Backpatch as far as 8.2. The shmem corruption cases don't exist in 8.1, and the createdb usage doesn't seem important enough to risk backpatching further.
2008-04-16Fix MinGW warnings re formats and unused variables. per ITAGAKI TakahiroAndrew Dunstan
2008-04-16Ignore blank lines in typedef file.Bruce Momjian
2008-04-16Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system indexTom Lane
it is trying to build a relcache entry for. This is an oversight in my 8.2 patch that tried to ensure we always took a lock on a relation before trying to build its relcache entry. The implication is that if someone committed a reindex of a critical system index at about the same time that some other backend were starting up without a valid pg_internal.init file, the second one might PANIC due to not seeing any valid version of the index's pg_class row. Improbable case, but definitely not impossible.
2008-04-16Fix comment typo.Bruce Momjian
Bryce Nesbitt
2008-04-16Avoid using unnecessary pgwin32_safestat in libpq.Andrew Dunstan
2008-04-15Revert addition of pg_terminate_backend() because of race conditions.Bruce Momjian
2008-04-15Add multi-line flag to regex that needs it. Backpatch to 8.2. Fix from ↵Andrew Dunstan
Andreas Zeugswetter
2008-04-15Add pg_terminate_backend() to allow terminating only a single session.Bruce Momjian
2008-04-15Make integer_datetimes the default for MSVC even if not mentioned in config.pl.Andrew Dunstan
2008-04-14Push index operator lossiness determination down to GIST/GIN opclassTom Lane
"consistent" functions, and remove pg_amop.opreqcheck, as per recent discussion. The main immediate benefit of this is that we no longer need 8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery searches on GIN indexes. In future it should be possible to optimize some other queries better than is done now, by detecting at runtime whether the index match is exact or not. Tom Lane, after an idea of Heikki's, and with some help from Teodor.
2008-04-14Fix indentation in new REFERENCED BY psql output, per Brendan Jurd.Alvaro Herrera
2008-04-13Since createplan.c no longer cares whether index operators are lossy, it hasTom Lane
no particular need to do get_op_opfamily_properties() while building an indexscan plan. Postpone that lookup until executor start. This simplifies createplan.c a lot more than it complicates nodeIndexscan.c, and makes things more uniform since we already had to do it that way for RowCompare expressions. Should be a bit faster too, at least for plans that aren't re-used many times, since we avoid palloc'ing and perhaps copying the intermediate list data structure.
2008-04-13Phase 2 of project to make index operator lossiness be determined at runtimeTom Lane
instead of plan time. Extend the amgettuple API so that the index AM returns a boolean indicating whether the indexquals need to be rechecked, and make that rechecking happen in nodeIndexscan.c (currently the only place where it's expected to be needed; other callers of index_getnext are just erroring out for now). For the moment, GIN and GIST have stub logic that just always sets the recheck flag to TRUE --- I'm hoping to get Teodor to handle pushing that control down to the opclass consistent() functions. The planner no longer pays any attention to amopreqcheck, and that catalog column will go away in due course.
2008-04-13Turn the -i/--ignore-version options of pg_dump and pg_dumpall into no-ops:Tom Lane
the server version check is now always enforced. Relax the version check to allow a server that is of pg_dump's own major version but a later minor version; this is the only case that -i was at all safe to use in. pg_restore already enforced only a very weak version check, so this is really just a documentation change for it. Per discussion.
2008-04-12Clean up a few places where Datums were being treated as pointers withoutTom Lane
going through DatumGetPointer or some other "official" conversion macro. Not actually a bug, since Datum the same size as pointer is the only supported case at the moment, but good cleanup for the future. Gavin Sherry
2008-04-12Create new routines systable_beginscan_ordered, systable_getnext_ordered,Tom Lane
systable_endscan_ordered that have API similar to systable_beginscan etc (in particular, the passed-in scankeys have heap not index attnums), but guarantee ordered output, unlike the existing functions. For the moment these are just very thin wrappers around index_beginscan/index_getnext/etc. Someday they might need to get smarter; but for now this is just a code refactoring exercise to reduce the number of direct callers of index_getnext, in preparation for changing that function's API. In passing, remove index_getnext_indexitem, which has been dead code for quite some time, and will have even less use than that in the presence of run-time-lossy indexes.
2008-04-11A quick try at un-breaking the Cygwin build. Whether it needs theTom Lane
pgwin32_safestat remains to be determined, but in any case the current code is not tolerable.
2008-04-11Add some debug support code to try to catch future mistakes in the area ofTom Lane
input functions that include garbage bytes in their results. Provide a compile-time option RANDOMIZE_ALLOCATED_MEMORY to make palloc fill returned blocks with variable contents. This option also makes the parser perform conversions of literal constants twice and compare the results, emitting a WARNING if they don't match. (This is the code I used to catch the input function bugs fixed in the previous commit.) For the moment, I've set it to be activated automatically by --enable-cassert.
2008-04-11Fix several datatype input functions that were allowing unused bytes in theirTom Lane
results to contain uninitialized, unpredictable values. While this was okay as far as the datatypes themselves were concerned, it's a problem for the parser because occurrences of the "same" literal might not be recognized as equal by datumIsEqual (and hence not by equal()). It seems sufficient to fix this in the input functions since the only critical use of equal() is in the parser's comparisons of ORDER BY and DISTINCT expressions. Per a trouble report from Marc Cousin. Patch all the way back. Interestingly, array_in did not have the bug before 8.2, which may explain why the issue went unnoticed for so long.
2008-04-10Replace "amgetmulti" AM functions with "amgetbitmap", in which the wholeTom Lane
indexscan always occurs in one call, and the results are returned in a TIDBitmap instead of a limited-size array of TIDs. This should improve speed a little by reducing AM entry/exit overhead, and it is necessary infrastructure if we are ever to support bitmap indexes. In an only slightly related change, add support for TIDBitmaps to preserve (somewhat lossily) the knowledge that particular TIDs reported by an index need to have their quals rechecked when the heap is visited. This facility is not really used yet; we'll need to extend the forced-recheck feature to plain indexscans before it's useful, and that hasn't been coded yet. The intent is to use it to clean up 8.3's horrid @@@ kluge for text search with weighted queries. There might be other uses in future, but that one alone is sufficient reason. Heikki Linnakangas, with some adjustments by me.
2008-04-10Create wrapper pgwin32_safestat() and redefine stat() to itMagnus Hagander
on win32, because the stat() function in the runtime cannot be trusted to always update the st_size field. Per report and research by Sergey Zubkovsky.
2008-04-10Make parameters in implementation have same const:ness as the ones inMagnus Hagander
the prototype. Silences msvc build warning.
2008-04-10PGTYPEStimestamp_sub should use the values and not the pointers to substract.Michael Meskes
2008-04-09Small wording improvements for source code READMEs.Bruce Momjian
2008-04-09Revert README cleanups.Bruce Momjian
2008-04-09Revert sentence removal from nickname in FAQ.Bruce Momjian
2008-04-08Fix tsvector_update_trigger() to be domain-friendly: it needs to allow allTom Lane
the columns it works with to be domains over the expected type, not just exactly the expected type. In passing, fix ts_stat() the same way. Per report from Markus Wollny.
2008-04-08On cygwin and win32, don't override the shlib name when building a module.Peter Eisentraut
Should fix regression test failures on those platforms.
2008-04-08Make integer_datetimes the default on msvc as well, to have the sameMagnus Hagander
default as other platforms.
2008-04-07Always define stlib, since some platforms need it for building modules.Peter Eisentraut
Should fix build failures on AIX.
2008-04-07Implement a few changes to how shared libraries and dynamically loadablePeter Eisentraut
modules are built. Foremost, it creates a solid distinction between these two types of targets based on what had already been implemented and duplicated in ad hoc ways before. Specifically, - Dynamically loadable modules no longer get a soname. The numbers previously set in the makefiles were dummy numbers anyway, and the presence of a soname upset a few packaging tools, so it is nicer not to have one. - The cumbersome detour taken on installation (build a libfoo.so.0.0.0 and then override the rule to install foo.so instead) is removed. - Lots of duplicated code simplified.
2008-04-06Make plpgsql support FOR over a query specified by a cursor declaration,Tom Lane
for improved compatibility with Oracle. Pavel Stehule, with some fixes by me.
2008-04-06Improve hash_any() to use word-wide fetches when hashing suitably alignedTom Lane
data. This makes for a significant speedup at the cost that the results now vary between little-endian and big-endian machines; which forces us to add explicit ORDER BYs in a couple of regression tests to preserve machine-independent comparison results. Also, force initdb by bumping catversion, since the contents of hash indexes will change (at least on big-endian machines). Kenneth Marshall and Tom Lane, based on work from Bob Jenkins. This commit does not adopt Bob's new faster mix() algorithm, however, since we still need to convince ourselves that that doesn't degrade the quality of the hashing.
2008-04-05A small visit from the portability and localization police.Tom Lane
2008-04-05Defend against JOINs having more than 32K columns altogether. We cannotTom Lane
currently support this because we must be able to build Vars referencing join columns, and varattno is only 16 bits wide. Perhaps this should be improved in future, but considering that it never came up before, I'm not sure the problem is worth much effort. Per bug #4070 from Marcello Ceschia. The problem seems largely academic in 8.0 and 7.4, because they have (different) O(N^2) performance issues with such wide joins, but back-patch all the way anyway.
2008-04-05Have pg_stop_backup() wait for all archive files to be sent, rather thanBruce Momjian
returing right away. This guarantees that when pg_stop_backup() returns, you have a valid backup. Simon Riggs
2008-04-04Re-implement division for numeric values using the traditional "schoolbook"Tom Lane
algorithm. This is a good deal slower than our old roundoff-error-prone code for long inputs, so we keep the old code for use in the transcendental functions, where everything is approximate anyway. Also create a user-accessible function div(numeric, numeric) to provide access to the exact result of trunc(x/y) --- since the regular numeric / operator will round off its result, simply computing that expression in SQL doesn't reliably give the desired answer. This fixes bug #3387 and various related corner cases, and improves the usefulness of PG for high-precision integer arithmetic.
2008-04-04Have psql command 'help' suggest the use of \?, updated version.Bruce Momjian
Greg Sabino Mullane
2008-04-04Allow 'help' in psql to show \? help, for novice assistance.Bruce Momjian
Greg Sabino Mullane
2008-04-04Remove no-longer-used function assign_backslash_quote()Tom Lane
2008-04-04Implement current_query(), that shows the currently executing query.Bruce Momjian
At the same time remove dblink/dblink_current_query() as it is no longer necessary *BACKWARD COMPATIBILITY ISSUE* for dblink Tomas Doran
2008-04-04Oops, change should go in scan.l to survive a clean checkout and not justMagnus Hagander
a make clean...
2008-04-04Convert backslash_quote guc to use enum.Magnus Hagander
2008-04-04Turn xmlbinary and xmloption GUC variables into enumsTurn xmlbinary andMagnus Hagander
xmloption GUC variables into enums..
2008-04-03Remove heap_release_fetch, which is no longer used anywhere; this simplifiesTom Lane
heap_fetch a little.
2008-04-03Teach ANALYZE to distinguish dead and in-doubt tuples, which it formerlyTom Lane
classed all as "dead"; also get it to count DEAD item pointers as dead rows, instead of ignoring them as before. Also improve matters so that tuples previously inserted or deleted by our own transaction are handled nicely: the stats collector's live-tuple and dead-tuple counts will end up correct after our transaction ends, regardless of whether we end in commit or abort. While there's more work that could be done to improve the counting of in-doubt tuples in both VACUUM and ANALYZE, this commit is enough to alleviate some known bad behaviors in 8.3; and the other stuff that's been discussed seems like research projects anyway. Pavan Deolasee and Tom Lane
2008-04-03Oops, add proper #ifdef for systems without support for syslog.Magnus Hagander
Per buildfarm member mastodon.