aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Fix free space map to correctly track the total amount of FSM space neededTom Lane2006-09-21
| | | | | | | even when a single relation requires more than max_fsm_pages pages. Also, make VACUUM emit a warning in this case, since it likely means that VACUUM FULL or other drastic corrective measure is needed. Per reports from Jeff Frost and others of unexpected changes in the claimed max_fsm_pages need.
* Change patternsel (LIKE/regex selectivity estimation) so that if thereTom Lane2006-09-20
| | | | | | | | | is a large enough histogram, it will use the number of matches in the histogram to derive a selectivity estimate, rather than the admittedly pretty bogus heuristics involving examining the pattern contents. I set 'large enough' at 100, but perhaps we should change that later. Also apply the same technique in contrib/ltree's <@ and @> estimator. Per discussion with Stefan Kaltenbrunner and Matteo Beccati.
* Improve usage of effective_cache_size parameter by assuming that all theTom Lane2006-09-19
| | | | | | | | | | | tables in the query compete for cache space, not just the one we are currently costing an indexscan for. This seems more realistic, and it definitely will help in examples recently exhibited by Stefan Kaltenbrunner. To get the total size of all the tables involved, we must tweak the handling of 'append relations' a bit --- formerly we looked up information about the child tables on-the-fly during set_append_rel_pathlist, but it needs to be done before we start doing any cost estimation, so push it into the add_base_rels_to_query scan.
* Add built-in userlock manipulation functions to replace the formerTom Lane2006-09-18
| | | | | | | contrib functionality. Along the way, remove the USER_LOCKS configuration symbol, since it no longer makes any sense to try to compile that out. No user documentation yet ... mmoncure has promised to write some. Thanks to Abhijit Menon-Sen for creating a first draft to work from.
* Fix problems with column name list of CREATE TABLE AS being applied toTom Lane2006-09-18
| | | | | the input query's target list too soon, causing it to affect processing of ORDER BY in the input query.
* Fix CREATE TABLE ... AS VALUES ... to work rather than Assert'ing;Tom Lane2006-09-18
| | | | | | oversight in original implementation of VALUES. Also fix an oversight in recent addition of options to CREATE TABLE AS: they weren't getting propagated if the query was a set-operation such as UNION.
* Change ANALYZE to take ShareUpdateExclusiveLock not AccessShareLock onTom Lane2006-09-17
| | | | | | | | | | | | the table being analyzed. This prevents two ANALYZEs from running concurrently on the same table and possibly suffering concurrent-update failures while trying to store their results into pg_statistic. The downside is that a database-wide ANALYZE executed within a transaction block will hold ShareUpdateExclusiveLock on many tables simultaneously, which could lead to concurrency issues or even deadlock against another such ANALYZE. However, this seems a corner case of less importance than getting unexpected errors from a foreground ANALYZE when autovacuum elects to analyze the same table concurrently. Per discussion.
* Marginal cleanup in arrangements for ensuring StrategyHintVacuum is clearedTom Lane2006-09-17
| | | | | | | | | after an error during VACUUM. We have a PG_TRY block anyway around the only call sites, so just reset it in the CATCH clause instead of having AtEOXact_Buffers blindly do it during xact end. I think the old code was actively wrong for the case of a failure during ANALYZE inside a subtransaction --- the flag wouldn't get cleared until main transaction end. Probably not worth back-patching though.
* Rename the recently-added pg_timezonenames view to pg_timezone_abbrevs,Tom Lane2006-09-16
| | | | | | and create a new view pg_timezone_names that provides information about the zones known in the 'zic' database. Magnus Hagander, with some additional work by Tom Lane.
* Remove WINLDAPAPI decoration from ldap_start_tls_sA typedef, per Magnus.Tom Lane2006-09-15
|
* Improve confusing comment for HeapTupleSatisfiesNow, per gripe from Greg Stark.Tom Lane2006-09-15
|
* Make postgresql.conf.sample match the initdb defaults. This fixesBruce Momjian2006-09-14
| | | | comment alignment on most systems.
* Add a couple of information functions to support direct checks on whetherTom Lane2006-09-14
| | | | | | a schema is our own temp schema or another backend's temp schema, and use these in place of some former kluges in information_schema. Per my proposal of yesterday.
* Improve error message. Per discussionTeodor Sigaev2006-09-14
| | | | http://archives.postgresql.org/pgsql-general/2006-09/msg00186.php
* Make logging of extended-protocol commands a bit more consistent, perTom Lane2006-09-13
| | | | discussion with Guillaume Smet.
* Code review for patch to avoid second scan when vacuuming index-lessTom Lane2006-09-13
| | | | | table: avoid invoking LockBufferForCleanup without need, put out the same log message we would have before, minor code beautification.
* Remove unnecessary brace pair.Bruce Momjian2006-09-10
|
* Back out patch added during 8.2.X development:Bruce Momjian2006-09-10
| | | | | | | Allow to_char() "D" format specifiers for interval/time. It doesn't work, and I doubt it is useful enough to fix ("D" = day of week).
* If we're going to advertise the array overlap/containment operators,Tom Lane2006-09-10
| | | | | | we probably should make them work reliably for all arrays. Fix code to handle NULLs and multidimensional arrays, move it into arrayfuncs.c. GIN is still restricted to indexing arrays with no null elements, however.
* Rename contains/contained-by operators to @> and <@, per discussion thatTom Lane2006-09-10
| | | | | | | | agreed these symbols are less easily confused. I made new pg_operator entries (with new OIDs) for the old names, so as to provide backward compatibility while making it pretty easy to remove the old names in some future release cycle. This commit only touches the core datatypes, contrib will be fixed separately.
* Revise OpenLDAP configuration and linking to work on more platformsTom Lane2006-09-09
| | | | | than before. Albe Laurenz (but editorialized heavily by me, so if it doesn't work it's my fault).
* Put back plan-time check for trying to apply SELECT FOR UPDATE/SHARETom Lane2006-09-08
| | | | | | to a relation on the nullable side of an outer join. I had removed this during the outer join planning rewrite a few months ago ... I think I intended to put it somewhere else, but forgot ...
* Tweak the behavior of log_duration as proposed by Guillaume Smet: ratherTom Lane2006-09-08
| | | | | | | than being equivalent to setting log_min_duration_statement to zero, this option now forces logging of all query durations, but doesn't force logging of query text. Also, add duration logging coverage for fastpath function calls.
* Clean up logging for extended-query-protocol operations, as per my recentTom Lane2006-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | proposal. Parameter logging works even for binary-format parameters, and logging overhead is avoided when disabled. log_statement = all output for the src/test/examples/testlibpq3.c example now looks like LOG: statement: execute <unnamed>: SELECT * FROM test1 WHERE t = $1 DETAIL: parameters: $1 = 'joe''s place' LOG: statement: execute <unnamed>: SELECT * FROM test1 WHERE i = $1::int4 DETAIL: parameters: $1 = '2' and log_min_duration_statement = 0 results in LOG: duration: 2.431 ms parse <unnamed>: SELECT * FROM test1 WHERE t = $1 LOG: duration: 2.335 ms bind <unnamed> to <unnamed>: SELECT * FROM test1 WHERE t = $1 DETAIL: parameters: $1 = 'joe''s place' LOG: duration: 0.394 ms execute <unnamed>: SELECT * FROM test1 WHERE t = $1 DETAIL: parameters: $1 = 'joe''s place' LOG: duration: 1.251 ms parse <unnamed>: SELECT * FROM test1 WHERE i = $1::int4 LOG: duration: 0.566 ms bind <unnamed> to <unnamed>: SELECT * FROM test1 WHERE i = $1::int4 DETAIL: parameters: $1 = '2' LOG: duration: 0.173 ms execute <unnamed>: SELECT * FROM test1 WHERE i = $1::int4 DETAIL: parameters: $1 = '2' (This example demonstrates the folly of ignoring parse/bind steps for duration logging purposes, BTW.) Along the way, create a less ad-hoc mechanism for determining which commands are logged by log_statement = mod and log_statement = ddl. The former coding was actually missing quite a few things that look like ddl to me, and it did not handle EXECUTE or extended query protocol correctly at all. This commit does not do anything about the question of whether log_duration should be removed or made less redundant with log_min_duration_statement.
* Specify lo_write() to take a _const_ buffer, to match documentation.Bruce Momjian2006-09-07
|
* Change processing of extended-Query mode so that an unnamed statementTom Lane2006-09-06
| | | | | | | | that has parameters is always planned afresh for each Bind command, treating the parameter values as constants in the planner. This removes the performance penalty formerly often paid for using out-of-line parameters --- with this definition, the planner can do constant folding, LIKE optimization, etc. After a suggestion by Andrew@supernews.
* Get rid of the separate RULE privilege for tables: now only a table's ownerTom Lane2006-09-05
| | | | | | | | | | | | | can create or modify rules for the table. Do setRuleCheckAsUser() while loading rules into the relcache, rather than when defining a rule. This ensures that permission checks for tables referenced in a rule are done with respect to the current owner of the rule's table, whereas formerly ALTER TABLE OWNER would fail to update the permission checking for associated rules. Removal of separate RULE privilege is needed to prevent various scenarios in which a grantee of RULE privilege could effectively have any privilege of the table owner. For backwards compatibility, GRANT/REVOKE RULE is still accepted, but it doesn't do anything. Per discussion here: http://archives.postgresql.org/pgsql-hackers/2006-04/msg01138.php
* Make Gen_fmgrtab.sh locale-proof. Per report from Marko Kreen andTom Lane2006-09-05
| | | | fix suggestion from Peter.
* Fix Intel compiler bug. Per discussionTeodor Sigaev2006-09-05
| | | | | 'GIN FailedAssertions on Itanium2 with Intel compiler' in pgsql-hackers, http://archives.postgresql.org/pgsql-hackers/2006-08/msg01914.php
* Fix imprecision from interval rounding of multiplication/division.Bruce Momjian2006-09-05
| | | | Bruce, Michael Glaesemann
* Fix information_schema.key_column_usage to show correct value ofTom Lane2006-09-04
| | | | | position_in_unique_constraint (column newly added per SQL2003). Greg Mullane
* Trivial patch to double vacuum speed on tables with no indexes (preventBruce Momjian2006-09-04
| | | | | | second scan of table). Gregory Stark
* Disallow TRUNCATE when there are any pending after-trigger events forTom Lane2006-09-04
| | | | | | | the target relation(s). There might be some cases where we could discard the pending event instead, but for the moment a conservative approach seems sufficient. Per report from Markus Schiltknecht and subsequent discussion.
* Sequences were not being shown due to the use of lowercase 's' insteadBruce Momjian2006-09-04
| | | | | | | of 'S', and the views were not checking for table visibility with regards to temporary tables and sequences. Greg Sabino Mullane
* Change ILIKE to invoke lower() and then do plain LIKE comparison whenTom Lane2006-09-04
| | | | | | | working in a multibyte encoding. This fixes the problems exhibited in bug #1931 and other reports of ILIKE misbehavior in UTF8 encoding. It's a pretty grotty solution though --- should rethink how to do it after we install better locale support, someday.
* Add missing gettext calls for some SSL errors.Peter Eisentraut2006-09-04
|
* Fix interval input parser so that fractional weeks and months areTom Lane2006-09-04
| | | | | | | cascaded first to days and only what is leftover into seconds. This seems to satisfy the principle of least surprise given the general conversion to three-part interval values --- it was an oversight that these cases weren't dealt with in 8.1. Michael Glaesemann
* Code review for UPDATE SET (columnlist) patch. Make it handle as muchTom Lane2006-09-03
| | | | | | of the syntax as this fundamentally dead-end approach can, in particular combinations of single and multi column assignments. Improve rather inadequate documentation and provide some regression tests.
* Arrange for GetSnapshotData to copy live-subtransaction XIDs from theTom Lane2006-09-03
| | | | | | | | | | PGPROC array into snapshots, and use this information to avoid visits to pg_subtrans in HeapTupleSatisfiesSnapshot. This appears to solve the pg_subtrans-related context swap storm problem that's been reported by several people for 8.1. While at it, modify GetSnapshotData to not take an exclusive lock on ProcArrayLock, as closer analysis shows that shared lock is always sufficient. Itagaki Takahiro and Tom Lane
* Properly round months into days and into seconds for intervalBruce Momjian2006-09-03
| | | | | | | multiplication/division queries like select '41 mon 10:00:00'::interval / 10 as "pos". Report from Michael Glaesemann
* Revert FETCH/MOVE int64 patch. Was using incorrect checks forBruce Momjian2006-09-03
| | | | fetch/move in scan.l.
* Fix case where "PM" to_timestamp() mask was eating too many characters.Bruce Momjian2006-09-03
| | | | Report from Josh Tolley.
* Fix LLONG_MAX define used by new int64 FETCH/MOVE patch.Bruce Momjian2006-09-03
|
* Remove unnecessary copyObject() call in update (values) code.Bruce Momjian2006-09-03
|
* Make autovacuum behavior more agressive, per discussion on hackers listBruce Momjian2006-09-02
| | | | | | | --- was part of autovacuum default 'on' patch that was reverted, but we want this part. Peter Eisentraut
* Update postgresql.conf line for default superuser_reserved_connections.Bruce Momjian2006-09-02
|
* Change "superuser_reserved_connections" default to 3, because ofBruce Momjian2006-09-02
| | | | possible autovacuum use.
* Small code cleanup for recent UPDATE SET (values) patch.Bruce Momjian2006-09-02
|
* Add UPDATE tab SET ROW (col, ...) = (val, ...) for updatingBruce Momjian2006-09-02
| | | | | | multiple columns Susanne Ebrecht
* Change FETCH/MOVE to use int8.Bruce Momjian2006-09-02
| | | | Dhanaraj M