- 17 Apr, 2008 4 commits
-
-
Tom Lane authored
we had several code paths where a physical tlist could be used for the input to a Sort node, which is a dumb idea because any unneeded table columns will increase the volume of data the sort has to push around. (Unfortunately the easy-looking fix of calling disuse_physical_tlist during make_sort_xxx doesn't work because in most cases we're already committed to the current input tlist --- it's been marked with sort column numbers, or we've built grouping column numbers using it, etc. The tlist has to be selected properly at the calling level before we start constructing sort-col information. This is easy enough to do, we were just failing to take the point into consideration.) Back-patch to 8.3. I believe the problem probably exists clear back to 7.4 when the physical tlist optimization was added, but I'm afraid to back-patch further than 8.3 without a great deal more study than I want to put into it. The code in this area has drifted a lot over time. The real-world importance of these code paths is uncertain anyway --- I think in many cases we'd probably prefer hash-based methods.
-
Bruce Momjian authored
> * -Allow administrators to safely terminate individual sessions
-
Bruce Momjian authored
needed.
-
Tom Lane authored
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.
-
- 16 Apr, 2008 9 commits
-
-
Tom Lane authored
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.
-
Andrew Dunstan authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Tom Lane authored
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.
-
Bruce Momjian authored
Bryce Nesbitt
-
Bruce Momjian authored
-
Bruce Momjian authored
> * Implement the non-threaded Avahi service discovery protocol > http://archives.postgresql.org/pgsql-hackers/2008-02/msg00939.php > http://archives.postgresql.org/pgsql-patches/2008-02/msg00097.php > http://archives.postgresql.org/pgsql-hackers/2008-03/msg01211.php > http://archives.postgresql.org/pgsql-patches/2008-04/msg00001.php
-
Andrew Dunstan authored
-
- 15 Apr, 2008 9 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Andrew Dunstan authored
-
Bruce Momjian authored
< * Allow NOTIFY in rules involving conditionals > > o Allow NOTIFY in rules involving conditionals > o Improve LISTEN concurrency > > http://archives.postgresql.org/pgsql-hackers/2008-02/msg01106.php
-
Bruce Momjian authored
-
Bruce Momjian authored
> * Allow XML to accept more liberal DOCTYPE specifications > > http://archives.postgresql.org/pgsql-general/2008-02/msg00347.php
-
Bruce Momjian authored
> * -Allow administrators to safely terminate individual sessions either
-
Bruce Momjian authored
-
Andrew Dunstan authored
-
- 14 Apr, 2008 3 commits
-
-
Tom Lane authored
"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.
-
Alvaro Herrera authored
-
Bruce Momjian authored
* Consider automatic caching of statements at various levels: > http://archives.postgresql.org/pgsql-hackers/2008-04/msg00823.php
-
- 13 Apr, 2008 3 commits
-
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
- 12 Apr, 2008 2 commits
-
-
Tom Lane authored
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
-
Tom Lane authored
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.
-
- 11 Apr, 2008 8 commits
-
-
Tom Lane authored
pgwin32_safestat remains to be determined, but in any case the current code is not tolerable.
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
Bruce Momjian authored
< * Allow functions to control the transaction state > * Allow calling of a procedure outside a SELECT that can control the > transaction state
-
Bruce Momjian authored
< * Support procedures, which return no value > * Allow functions to control the transaction state
-
Bruce Momjian authored
> * Support procedures, which return no value > > http://archives.postgresql.org/pgsql-hackers/2007-10/msg01375.php
-
Bruce Momjian authored
-
Bruce Momjian authored
Brendan Jurd
-
- 10 Apr, 2008 2 commits
-
-
Tom Lane authored
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.
-
Bruce Momjian authored
> http://archives.postgresql.org/pgsql-hackers/2007-03/msg00265.php > http://archives.postgresql.org/pgsql-hackers/2007-03/msg01214.php > http://archives.postgresql.org/pgsql-patches/2007-05/msg00013.php > http://archives.postgresql.org/pgsql-hackers/2007-07/msg00741.php > http://archives.postgresql.org/pgsql-hackers/2007-08/msg00014.php > http://archives.postgresql.org/pgsql-hackers/2007-08/msg00487.php > * Allow index scans to return matching index keys > > http://archives.postgresql.org/pgsql-hackers/2007-03/msg01079.php > > http://archives.postgresql.org/pgsql-patches/2007-10/msg00166.php > http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php
-