aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
...
* Fix statement_timeout on Win32 so that it properly treats micro-secondsBruce Momjian2006-08-09
| | | | | | | | as micro-seconds, rather than as 100 microseconds, as it does now. This actually fixes all setitimer calls on Win32, but statement_timeout is the most visible fix. Backpatch to 8.1.X. 8.0 works as documented.
* Formatting improvement.Bruce Momjian2006-08-09
|
* Add a feature for automatic initialization and finalization of dynamicallyTom Lane2006-08-08
| | | | | | | | | loaded libraries: call functions _PG_init() and _PG_fini() if the library defines such symbols. Hence we no longer need to specify an initialization function in preload_libraries: we can assume that the library used the _PG_init() convention, instead. This removes one source of pilot error in use of preloaded libraries. Original patch by Ralf Engelschall, preload_libraries changes by me.
* For protocol-level prepare/bind/execute:Bruce Momjian2006-08-08
| | | | | | | | o print user name for all o print portal name if defined for all o print query for all o reduce log_statement header to single keyword o print bind parameters as DETAIL if text mode
* Put back another improperly-removed #include.Tom Lane2006-08-07
|
* On some platforms, pg_usleep isn't interruptible by signals; fixTom Lane2006-08-07
| | | | | archiver to behave per original coder's expectation on these machines. We already know this everywhere else AFAICT.
* Make recovery from WAL be restartable, by executing a checkpoint-likeTom Lane2006-08-07
| | | | | | | | | | operation every so often. This improves the usefulness of PITR log shipping for hot standby: formerly, if the standby server crashed, it was necessary to restart it from the last base backup and replay all the WAL since then. Now it will only need to reread about the same amount of WAL as the master server would. The behavior might also come in handy during a long PITR replay sequence. Simon Riggs, with some editorialization by Tom Lane.
* Add support for forcing a switch to a new xlog file; cause such a switchTom Lane2006-08-06
| | | | | | | to happen automatically during pg_stop_backup(). Add some functions for interrogating the current xlog insertion point and for easily extracting WAL filenames from the hex WAL locations displayed by pg_stop_backup and friends. Simon Riggs with some editorialization by Tom Lane.
* Use better named loop variable for large loop, rather than 'i'.Bruce Momjian2006-08-06
|
* Fix inheritance_planner() to delete dummy subplans from its Append planTom Lane2006-08-05
| | | | | | | list, when some of the child rels have been excluded by constraint exclusion. This doesn't save a huge amount of time but it'll save some, and it makes the EXPLAIN output look saner. We already did the equivalent thing in set_append_rel_pathlist(), but not here.
* Extend relation_excluded_by_constraints() to check for mutuallyTom Lane2006-08-05
| | | | | | | contradictory WHERE-clauses applied to a relation. This makes the GUC variable constraint_exclusion rather inappropriately named, but I've refrained for the moment from renaming it. Per example from Martin Lesser.
* Teach predicate_refuted_by() how to do proofs involving NOT-clauses.Tom Lane2006-08-05
| | | | | | This doesn't matter too much for ordinary NOTs, since prepqual.c does its best to get rid of those, but it helps with IS NOT TRUE clauses which the rule rewriter likes to insert. Per example from Martin Lesser.
* Fix domain_in() bug exhibited by Darcy Buskermolen. The idea of an EStateTom Lane2006-08-04
| | | | | | | | | | | | | that's shorter-lived than the expression state being evaluated in it really doesn't work :-( --- we end up with fn_extra caches getting deleted while still in use. Rather than abandon the notion of caching expression state across domain_in calls altogether, I chose to make domain_in a bit cozier with ExprContext. All we really need for evaluating variable-free expressions is an ExprContext, not an EState, so I invented the notion of a "standalone" ExprContext. domain_in can prevent resource leakages by doing a ReScanExprContext on this rather than having to free it entirely; so we can make the ExprContext have the same lifespan (and particularly the same per_query memory context) as the expression state structs.
* Improve logging of protocol-level prepared statements.Bruce Momjian2006-08-04
|
* Fix missing 'static' keywords --- some compilers gripe about this.Tom Lane2006-08-04
|
* Teach eval_const_expressions to simplify BooleanTest nodes that haveTom Lane2006-08-04
| | | | | constant input. Seems worth doing because rule rewriter inserts IS NOT TRUE tests into WHERE clauses.
* Cause ALTER TABLE to perform ALTER COLUMN DROP DEFAULT operations duringTom Lane2006-08-03
| | | | | | | | | the DROP pass rather than the ADD_CONSTR pass. On examining the code I think this was just an oversight rather than intentional, and it seems to satisfy the principle of least surprise better than the alternative solution that was discussed. Add an example to the ref page showing how to do ALTER TYPE and update the default in one command. Per gripe from Markus Bertheau that that wasn't possible.
* Fix AfterTriggerExecute() to pass tg_trigtuple and tg_newtuple as NULLsTom Lane2006-08-03
| | | | | rather than pointers to garbage, when calling AFTER STATEMENT triggers. Michael Fuhr
* Add missing pgstat_count_index_scan(), per Andreas Seltenreich.Tom Lane2006-08-03
|
* Move 'ddl' right after 'none' in postgresql.conf. It used to be betweenBruce Momjian2006-08-02
| | | | | 'mod' and 'all', which is not the right order. SGML documentation order was correct. Report from Chander Ganesan.
* Arrange for ValuesScan to keep per-sublist expression eval state in aTom Lane2006-08-02
| | | | | | | temporary context that can be reset when advancing to the next sublist. This is faster and more thorough at recovering space than the previous method; moreover it will do the right thing if something in the sublist tries to register an expression context callback.
* Wups, got the test for contain_vars_of_level-not-needed wrong inTom Lane2006-08-02
| | | | transformInsertStmt: the target table is already in p_rtable at that point.
* Add a HINT per suggestion from Michael Glaesemann. Also, tweak OLD/NEWTom Lane2006-08-02
| | | | | test to avoid expensive contain_vars_of_level() scan in the normal case where we're not inside a rule.
* Add support for multi-row VALUES clauses as part of INSERT statementsJoe Conway2006-08-02
| | | | | | (e.g. "INSERT ... VALUES (...), (...), ...") and elsewhere as allowed by the spec. (e.g. similar to a FROM clause subselect). initdb required. Joe Conway and Tom Lane.
* Add support for loadable modules to allocated shared memory andBruce Momjian2006-08-01
| | | | | | lightweight locks. Marc Munro
* Change the relation_open protocol so that we obtain lock on a relationTom Lane2006-07-31
| | | | | | | | | | | | (table or index) before trying to open its relcache entry. This fixes race conditions in which someone else commits a change to the relation's catalog entries while we are in process of doing relcache load. Problems of that ilk have been reported sporadically for years, but it was not really practical to fix until recently --- for instance, the recent addition of WAL-log support for in-place updates helped. Along the way, remove pg_am.amconcurrent: all AMs are now expected to support concurrent update.
* Change the bootstrap sequence so that toast tables for system catalogs areTom Lane2006-07-31
| | | | | | | | | | created in the bootstrap phase proper, rather than added after-the-fact by initdb. This is cleaner than before because it allows us to retire the undocumented ALTER TABLE ... CREATE TOAST TABLE command, but the real reason I'm doing it is so that toast tables of shared catalogs will now have predetermined OIDs. This will allow a reasonably clean solution to the problem of locking tables before we load their relcache entries, to appear in a forthcoming patch.
* Fix a couple of comments.Tom Lane2006-07-30
|
* Modify snapshot definition so that lazy vacuums are ignored by otherAlvaro Herrera2006-07-30
| | | | | | | | | vacuums. This allows a OLTP-like system with big tables to continue regular vacuuming on small-but-frequently-updated tables while the big tables are being vacuumed. Original patch from Hannu Krossing, rewritten by Tom Lane and updated by me.
* prevent multiplexing Windows kernel event objects we listen for across ↵Andrew Dunstan2006-07-29
| | | | various sockets - should fix the occasional stats test regression failures we see.
* Adjust initialization sequence for timezone_abbreviations so thatTom Lane2006-07-29
| | | | | | | | | it's handled just about like timezone; in particular, don't try to read anything during InitializeGUCOptions. Should solve current startup failure on Windows, and avoid wasted cycles if a nondefault setting is specified in postgresql.conf too. Possibly we need to think about a more general solution for handling 'expensive to set' GUC options.
* SQL2003-standard statistical aggregates, by Sergey Koposov. I've added onlyTom Lane2006-07-28
| | | | | | | the float8 versions of the aggregates, which is all that the standard requires. Sergey's original patch also provided versions using numeric arithmetic, but given the size and slowness of the code, I doubt we ought to include those in core.
* Aggregate functions now support multiple input arguments. I also tookTom Lane2006-07-27
| | | | | | | | the opportunity to treat COUNT(*) as a zero-argument aggregate instead of the old hack that equated it to COUNT(1); this is materially cleaner (no more weird ANYOID cases) and ought to be at least a tiny bit faster. Original patch by Sergey Koposov; review, documentation, simple regression tests, pg_dump and psql support by moi.
* Allow units to be specified with configuration settings.Peter Eisentraut2006-07-27
|
* Code review for bigint-LIMIT patch. Fix missed planner dependency,Tom Lane2006-07-26
| | | | | | eliminate unnecessary code, force initdb because stored rules change (limit nodes are now supposed to be int8 not int4 expressions). Update comments and error messages, which still all said 'integer'.
* Work around bug in strxfmt() but in MS VS2005.Bruce Momjian2006-07-26
| | | | William ZHANG
* When a GUC string variable is not set, print the empty string (in SHOW etc.),Peter Eisentraut2006-07-26
| | | | | | not "unset". An "unset" state doesn't really exist; all variables behave like an empty string value if the string being pointed to has not been initialized.
* Convert effective_cache_size to an integer, for better integration withPeter Eisentraut2006-07-26
| | | | upcoming units feature.
* Change LIMIT/OFFSET to use int8Bruce Momjian2006-07-26
| | | | Dhanaraj M
* Modify btree to delete known-dead index entries without an actual VACUUM.Tom Lane2006-07-25
| | | | | | | | | | When we are about to split an index page to do an insertion, first look to see if any entries marked LP_DELETE exist on the page, and if so remove them to try to make enough space for the desired insert. This should reduce index bloat in heavily-updated tables, although of course you still need VACUUM eventually to clean up the heap. Junji Teramoto
* Remove hard-wired lists of timezone abbreviations in favor of providingTom Lane2006-07-25
| | | | | | | | | configuration files that can be altered by a DBA. The australian_timezones GUC setting disappears, replaced by a timezone_abbreviations setting (set this to 'Australia' to get the effect of australian_timezones). The list of zone names defined by default has undergone a bit of cleanup, too. Documentation still needs some work --- in particular, should we fix Table B-4, or just get rid of it? Joachim Wieland, with some editorializing by moi.
* Make the order of operations in PostmasterMain a bit saner ... someTom Lane2006-07-25
| | | | recent patches had added stuff in rather random spots.
* DTrace support, with a small initial set of probesPeter Eisentraut2006-07-24
| | | | by Robert Lor
* Mark postgresql.conf entries that require server restart; some minorPeter Eisentraut2006-07-24
| | | | editing and reformatting.
* Add a fudge factor to genericcostestimate() to prevent the planner fromTom Lane2006-07-24
| | | | | | | thinking that indexes of different sizes are equally attractive. Per gripe from Jim Nasby. (I remain unconvinced that there's such a problem in existing releases, but CVS HEAD definitely has got a problem because of its new count-only-leaf-pages approach to indexscan costing.)
* Convert the lock manager to use the new dynahash.c support for partitionedTom Lane2006-07-23
| | | | | hash tables, instead of the previous kluge involving multiple hash tables. This partially undoes my patch of last December.
* Fix oversight in sizing of shared buffer lookup hashtable. BecauseTom Lane2006-07-23
| | | | | | | | | BufferAlloc tries to insert a new mapping entry before deleting the old one for a buffer, we have a transient need for more than NBuffers entries --- one more in 8.1, and as many as NUM_BUFFER_PARTITIONS more in CVS HEAD. In theory this could lead to an "out of shared memory" failure if shmem had already been completely claimed by the time the extra entries were needed.
* Split the buffer mapping table into multiple separately lockableTom Lane2006-07-23
| | | | | partitions, as per discussion. Passes functionality checks, but I don't have any performance data yet.
* Add support to dynahash.c for partitioning shared hashtables accordingTom Lane2006-07-22
| | | | | | to the low-order bits of the entry hash value. Also make some incidental cleanups in the dynahash API, such as not exporting the hash header structs to the world.
* Hmm, seems --disable-spinlocks has been broken for awhile and nobodyTom Lane2006-07-22
| | | | | noticed. Fix SpinlockSemas() to report the correct count considering that PG 8.1 adds a spinlock to each shared-buffer header.