aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Fix calculation of plan node extParams to account for the possibility that oneTom Lane2006-05-03
| | | | | | | | | | | | initPlan sets a parameter for another. This could not (I think) happen before 8.1, but it's possible now because the initPlans generated by MIN/MAX optimization might themselves use initPlans. We attach those initPlans as siblings of the MIN/MAX ones, not children, to avoid duplicate computation when multiple MIN/MAX aggregates are present; so this leads to the case of an initPlan needing the result of a sibling initPlan, which is not possible with ordinary query nesting. Hadn't been noticed because in most contexts having too much stuff listed in extParam is fairly harmless. Fixes "plan should not reference subplan's variable" bug reported by Catalin Pitis.
* Clean up API for ambulkdelete/amvacuumcleanup as per today's discussion.Tom Lane2006-05-02
| | | | | | This formulation requires every AM to provide amvacuumcleanup, unlike before, but it's surely a whole lot cleaner. Also, add an 'amstorage' column to pg_am so that we can get rid of hardwired knowledge in DefineOpClass().
* Suppress some gcc warnings.Tom Lane2006-05-02
|
* Fix grammar of new error message.Tom Lane2006-05-02
|
* GIN: Generalized Inverted iNdex.Teodor Sigaev2006-05-02
| | | | text[], int4[], Tsearch2 support for GIN.
* Avoid assuming that statistics for a parent relation reflect the properties ofTom Lane2006-05-02
| | | | | | | | | | | | | the union of its child relations as well. This might have been a good idea when it was originally coded, but it's a fatally bad idea when inheritance is being used for partitioning. It's better to have no stats at all than completely misleading stats. Per report from Mark Liberman. The bug arguably exists all the way back, but I've only patched HEAD and 8.1 because we weren't particularly trying to support partitioning before 8.1. Eventually we ought to look at deriving union statistics instead of just punting, but for now the drop kick looks good.
* Provide a namespace.c function for lookup of an operator with exactTom Lane2006-05-01
| | | | | | | | input datatypes given, and use this before trying OpernameGetCandidates. This is faster than the old method when there's an exact match, and it does not seem materially slower when there's not. And it definitely makes some of the callers cleaner, because they didn't really want to know about a list of candidates anyway. Per discussion with Atsushi Ogawa.
* Code review for GRANT CONNECT patch. Spell the privilege as CONNECT notTom Lane2006-04-30
| | | | | CONNECTION, fix a number of places that were missed (eg pg_dump support), avoid executing an extra search of pg_database during startup.
* Improve the representation of FOR UPDATE/FOR SHARE so that we canTom Lane2006-04-30
| | | | | | support both FOR UPDATE and FOR SHARE in one command, as well as both NOWAIT and normal WAIT behavior. The more general code is actually simpler and cleaner.
* Add GRANT CONNECTION ON DATABASE, to be used in addition to pg_hba.conf.Bruce Momjian2006-04-30
| | | | Gevik Babakhani
* Revert patch pending more discussion:Bruce Momjian2006-04-30
| | | | Disallow changing DEFAULT expression of a SERIAL column.
* Remove sema.c, superseded by win32_sema.c.Tom Lane2006-04-29
|
* Disallow changing DEFAULT expression of a SERIAL column.Bruce Momjian2006-04-29
| | | | Dhanaraj M
* Add Win32 semaphore implementation, rather than mimicking SysVBruce Momjian2006-04-29
| | | | | | semaphores. Qingqing Zhou
* Fix s_lock_test to use tas.o file, if needed.Bruce Momjian2006-04-28
|
* Remove the restriction originally coded into optimize_minmax_aggregates() thatTom Lane2006-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | MIN/MAX not be converted to use an index if the query WHERE clause contains any volatile functions or subplans. I had originally feared that the conversion might alter the behavior of such a query with respect to a volatile function. Well, so it might, but only in the sense that the function would get evaluated at a subset of the table rows rather than all of them --- and we have never made any such guarantee anyway. (For instance, we don't refuse to use an index for an ordinary non-aggregate query when one of the non-indexable filter conditions contains a volatile function.) The prohibition against subplans was because of worry that that case wasn't adequately tested, which it wasn't, but it turns out to be possible to make 8.1 fail anyway: regression=# select o.ten, (select max(unique2) from tenk1 i where ten = o.ten or ten = (select f1 from int4_tbl limit 1)) from tenk1 o; ERROR: direct correlated subquery unsupported as initplan This is due to bogus code in SS_make_initplan_from_plan (it's an initplan, ergo it can't have any parParams). Having fixed that, we might as well allow subplans as well as initplans.
* Modify Solaris compiler build rules to use the cpp preprocessor, the theBruce Momjian2006-04-28
| | | | x86 file.
* Rewrite Solaris compiler tas() assembly routines, merge i386 and x86_64Bruce Momjian2006-04-27
| | | | | | assembler files, renamed as solaris_x86.s. Theo Schlossnagle
* Generalize mcv_selectivity() to support both VAR OP CONST and CONST OP VARTom Lane2006-04-27
| | | | | | cases. This was not needed in the existing uses within selfuncs.c, but if we're gonna export it for general use, the extra generality seems helpful. Motivated by looking at ltree example.
* Change log message about vacuuming database name from LOG to DEBUG1.Bruce Momjian2006-04-27
| | | | Prevents duplicate meaningless log messsages.
* On second thought, keep SSL CRL as a log, and wait for feedback from 8.2.Bruce Momjian2006-04-27
|
* Downgrade SSL CRL file missing message from LOG to DEBUG1.Bruce Momjian2006-04-27
|
* Add support for SSL Certificate Revocation List (CRL) files, root.crl.Bruce Momjian2006-04-27
| | | | Libor Hoho?
* If we're going to expose VariableStatData for contrib modules to use,Tom Lane2006-04-27
| | | | then we should export a reasonable set of the supporting routines too.
* Use schema search path to find the first matching contraint name for SETBruce Momjian2006-04-27
| | | | | | | CONSTRAINT, rather than affecting all constraints in all schemas (which is what we used to do). Also allow schema specifications. Kris Jurka
* Delay write of pg_stats file to once every five minutes, duringBruce Momjian2006-04-27
| | | | | | | | | | | | | | shutdown, or when requested by a backend: It changes so the file is only written once every 5 minutes (changeable of course, I just picked something) instead of once every half second. It's still written when the stats collector shuts down, just as before. And it is now also written on backend request. A backend requests a rewrite by simply sending a special stats message. It operates on the assumption that the backends aren't actually going to read the statistics file very often, compared to how frequent it's written today. Magnus Hagander
* Move ltree parentsel() selectivity function into /contrib/ltree.Bruce Momjian2006-04-26
|
* Enhanced containment selectivity function for /contrib/ltreeBruce Momjian2006-04-26
| | | | Matteo Beccati
* Revise large-object access routines to avoid running with CurrentMemoryContextTom Lane2006-04-26
| | | | | | | | | | | | | set to the large object context ("fscxt"), as this is inevitably a source of transaction-duration memory leaks. Not sure why we'd not noticed it before; maybe people weren't touching a whole lot of LOs in the same transaction before the 8.1 pg_dump changes. Per report from Wayne Conrad. Backpatched as far as 8.1, but the problem doubtless goes all the way back. I'm disinclined to spend the time to try to verify that the older branches would still work if patched, seeing that this code was significantly modified for 8.0 and again for 8.1, and that we don't have any trouble reports before 8.1. (Maybe the leaks were smaller before?)
* Arrange to cache btree metapage data in the relcache entry for the index,Tom Lane2006-04-25
| | | | | | | thereby saving a visit to the metapage in most index searches/updates. This wouldn't actually save any I/O (since in the old regime the metapage generally stayed in cache anyway), but it does provide a useful decrease in bufmgr traffic in high-contention scenarios. Per my recent proposal.
* The 8.1 planner removes WHERE quals from the plan when the quals areTom Lane2006-04-25
| | | | | | | implied by the predicate of a partial index being used to scan a table. However, this optimization is unsafe in an UPDATE, DELETE, or SELECT FOR UPDATE query, because the quals need to be rechecked by EvalPlanQual if there's an update conflict. Per example from Jean-Samuel Reynaud.
* Back out RESET CONNECTION until there is more discussion.Bruce Momjian2006-04-25
|
* Add RESET CONNECTION, to reset all aspects of a session.Bruce Momjian2006-04-25
| | | | Hans-J?rgen Sch?nig
* Add statement_timestamp(), clock_timestamp(), andBruce Momjian2006-04-25
| | | | | | | | | transaction_timestamp() (just like now()). Also update statement_timeout() to mention it is statement arrival time that is measured. Catalog version updated.
* Back out patch, unintended.Bruce Momjian2006-04-24
|
* Done:Bruce Momjian2006-04-24
| | | | | o -Add support for day-time syntax, INTERVAL '1 2:03:04' DAY TO SECOND
* Improve our private implementation of cbrt() to give results of theTom Lane2006-04-24
| | | | | accuracy expected by the regression tests. Per suggestion from Martijn van Oosterhout.
* Remove compiler warning by casting SNPRINTF() call to void.Bruce Momjian2006-04-24
| | | | Report from Gevik Babakhani.
* Don't add a shared dependency on the owner of a composite type in pg_class.Alvaro Herrera2006-04-24
| | | | | We track the owner in pg_type instead, as that is the place where the owner is changed on ALTER TYPE ... OWNER TO.
* Simplify ParamListInfo data structure to support only numbered parameters,Tom Lane2006-04-22
| | | | | | | not named ones, and replace linear searches of the list with array indexing. The named-parameter support has been dead code for many years anyway, and recent profiling suggests that the searching was costing a noticeable amount of performance for complex queries.
* Add some optional code (conditionally compiled under #ifdef LWLOCK_STATS)Tom Lane2006-04-21
| | | | | | to track the number of LWLock acquisitions and the number of times we block waiting for an LWLock, on a per-process basis. After having needed this twice in the past few months, seems like it should go into CVS.
* Eliminate some no-longer-needed workarounds for palloc's old behaviorTom Lane2006-04-20
| | | | | | | | of rejecting palloc(0). Also, tweak like_selectivity() to avoid assuming the presented pattern is nonempty; although that assumption is valid, it doesn't really help much, and the new coding is more correct anyway since it properly handles redundant wildcards. In combination these changes should eliminate a Coverity warning noted by Martijn.
* Add "retry another address" log message on statistics collector socketBruce Momjian2006-04-20
| | | | failure, to reduce confusion in the log file.
* Ensure that we validate the page header of the first page of a WAL fileTom Lane2006-04-20
| | | | | | | | | whenever we start to read within that file. The first page carries extra identification information that really ought to be checked, but as the code stood, this was only checked when we switched sequentially into a new WAL file, or if by chance the starting checkpoint record was within the first page. This patch ensures that we will detect bogus 'long header' information before we start replaying the WAL sequence.
* Fix problem that sscanf(buf, "%d", &val) eats leading white space, butBruce Momjian2006-04-19
| | | | our to_* functions were not handling that.
* C code whitespace inprovement for formatting.c.Bruce Momjian2006-04-19
|
* Document that errors are not output by log_statement (was they were inBruce Momjian2006-04-18
| | | | | | | | | 8.0), and add as suggestion to use log_min_error_statement for this purpose. I also fixed the code so the first EXECUTE has it's prepare, rather than the last which is what was in the current code. Also remove "protocol" prefix for SQL EXECUTE output because it is not accurate. Backpatch to 8.1.X.
* Fix the torn-page hazard for PITR base backups by forcing full page writesTom Lane2006-04-17
| | | | | | | | | to occur between pg_start_backup() and pg_stop_backup(), even if the GUC setting full_page_writes is OFF. Per discussion, doing this in combination with the already-existing checkpoint during pg_start_backup() should ensure safety against partial page updates being included in the backup. We do not have to force full page writes to occur during normal PITR operation, as I had first feared.
* Support the syntaxTom Lane2006-04-15
| | | | | | | | | | | | | | CREATE AGGREGATE aggname (input_type) (parameter_list) along with the old syntax where the input type was named in the parameter list. This fits more naturally with the way that the aggregate is identified in DROP AGGREGATE and other utility commands; furthermore it has a natural extension to handle multiple-input aggregates, where the basetype-parameter method would get ugly. In fact, this commit fixes the grammar and all the utility commands to support multiple-input aggregates; but DefineAggregate rejects it because the executor isn't fixed yet. I didn't do anything about treating agg(*) as a zero-input aggregate instead of artificially making it a one-input aggregate, but that should be considered in combination with supporting multi-input aggregates.
* Make the world safe for full_page_writes. Allow XLOG records that try toTom Lane2006-04-14
| | | | | | | | | update no-longer-existing pages to fall through as no-ops, but make a note of each page number referenced by such records. If we don't see a later XLOG entry dropping the table or truncating away the page, complain at the end of XLOG replay. Since this fixes the known failure mode for full_page_writes = off, revert my previous band-aid patch that disabled that GUC variable.