aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Minor improvements to GEQO documentation.Neil Conway2006-01-22
|
* Marginal improvements in the wording of the autovacuum documentation:Tom Lane2006-01-21
| | | | | | | | be consistent about whether it's called a daemon or a subprocess, and don't describe the autovacuum setting in exactly the same way as the stats_start_collector setting, because that leaves people thinking (if they aren't paying close attention) that autovacuum can't be changed on the fly.
* Fix broken markup.Tom Lane2006-01-21
|
* Repair longstanding bug in slru/clog logic: it is possible for two backendsTom Lane2006-01-21
| | | | | | | | | | to try to create a log segment file concurrently, but the code erroneously specified O_EXCL to open(), resulting in a needless failure. Before 7.4, it was even a PANIC condition :-(. Correct code is actually simpler than what we had, because we can just say O_CREAT to start with and not need a second open() call. I believe this accounts for several recent reports of hard-to-reproduce "could not create file ...: File exists" errors in both pg_clog and pg_subtrans.
* Add GRANT ON SEQUENCE syntax to support sequence-only permissions.Bruce Momjian2006-01-21
| | | | | | | | | | | | | Continue to support GRANT ON [TABLE] for sequences for backward compatibility; issue warning for invalid sequence permissions. [Backward compatibility warning message.] Add USAGE permission for sequences that allows only currval() and nextval(), not setval(). Mention object name in grant/revoke warnings because of possible multi-object operations.
* Replace bitwise looping with bytewise looping in hemdistsign andTom Lane2006-01-20
| | | | | | | sizebitvec of tsearch2, as well as identical code in several other contrib modules. This provided about a 20X speedup in building a large tsearch2 index ... didn't try to measure its effects for other operations. Thanks to Stephan Vollmer for providing a test case.
* Update EXPLAIN wording for GEQO usage.Bruce Momjian2006-01-20
|
* Fix thinko in autovacuum's test to skip temp tables: want to skip anyTom Lane2006-01-20
| | | | | | temp table not only our own process' tables. It's not real important since vacuum.c will skip temp tables anyway, but might as well make the code do what it claims to do.
* Doc patch that adds an example of a correllated UPDATE.Bruce Momjian2006-01-19
| | | | David Fetter
* Clarify STABLE function documentation to highlight how such functionsBruce Momjian2006-01-19
| | | | can be optimized.
* Add some test scaffolding to allow cache-flush stress testing (and I doTom Lane2006-01-19
| | | | mean stress ... system is orders of magnitude slower with this enabled).
* Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path for AIX and Darwin.Bruce Momjian2006-01-19
|
* Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path.Bruce Momjian2006-01-19
|
* Avoid crashing if relcache flush occurs while trying to load data into anTom Lane2006-01-19
| | | | | | | | | | | | | | | index's support-function cache (in index_getprocinfo). Since none of that data can change for an index that's in active use, it seems sufficient to treat all open indexes the same way we were treating "nailed" system indexes --- that is, just re-read the pg_class row and leave the rest of the relcache entry strictly alone. The pg_class re-read might not be strictly necessary either, but since the reltablespace and relfilenode can change in normal operation it seems safest to do it. (We don't support changing any of the other info about an index at all, at the moment.) Back-patch as far as 8.0. It might be possible to adapt the patch to 7.4, but it would take more work than I care to expend for such a low-probability problem. 7.3 is out of luck for sure.
* Fix pgxs -L library path specification for Win32 and Cygwin, was /bin,Bruce Momjian2006-01-19
| | | | now /lib.
* It turns out that TablespaceCreateDbspace fails badly if a relcache flushTom Lane2006-01-19
| | | | | | | | | | | | | | occurs when it tries to heap_open pg_tablespace. When control returns to smgrcreate, that routine will be holding a dangling pointer to a closed SMgrRelation, resulting in mayhem. This is of course a consequence of the violation of proper module layering inherent in having smgr.c call a tablespace command routine, but the simplest fix seems to be to change the locking mechanism. There's no real need for TablespaceCreateDbspace to touch pg_tablespace at all --- it's only opening it as a way of locking against a parallel DROP TABLESPACE command. A much better answer is to create a special-purpose LWLock to interlock these two operations. This drops TablespaceCreateDbspace quite a few layers down the food chain and makes it something reasonably safe for smgr to call.
* Fix a tiny memory leak (one List header) in RelationCacheInvalidate().Tom Lane2006-01-19
| | | | | | | This is utterly insignificant in normal operation, but it becomes a problem during cache inval stress testing. The original coding in fact had no leak --- the 8.0 List rewrite created the issue. I wonder whether list_concat should pfree the discarded header?
* Clarify use of btree indexes for ILIKE and ~*.Bruce Momjian2006-01-18
|
* You'll find attached a patch for a fixed explanation on parameter_modeBruce Momjian2006-01-18
| | | | | | column, OUT and INOUT added. Guillaume LELARGE
* Modify pgstats code to reduce performance penalties from oversized stats dataTom Lane2006-01-18
| | | | | | | | | | | | | files: avoid creating stats hashtable entries for tables that aren't being touched except by vacuum/analyze, ensure that entries for dropped tables are removed promptly, and tweak the data layout to avoid storing useless struct padding. Also improve the performance of pgstat_vacuum_tabstat(), and make sure that autovacuum invokes it exactly once per autovac cycle rather than multiple times or not at all. This should cure recent complaints about 8.1 showing much higher stats I/O volume than was seen in 8.0. It'd still be a good idea to revisit the design with an eye to not re-writing the entire stats dataset every half second ... but that would be too much to backpatch, I fear.
* Done:Bruce Momjian2006-01-18
| | | | > o -Allow pooled connections to list all open WITH HOLD cursors
* Add a new system view, pg_cursors, that displays the currently availableNeil Conway2006-01-18
| | | | | | | | | | | | | | | | | | | | | cursors. Patch from Joachim Wieland, review and ediorialization by Neil Conway. The view lists cursors defined by DECLARE CURSOR, using SPI, or via the Bind message of the frontend/backend protocol. This means the view does not list the unnamed portal or the portal created to implement EXECUTE. Because we do list SPI portals, there might be more rows in this view than you might expect if you are using SPI implicitly (e.g. via a procedural language). Per recent discussion on -hackers, the query string included in the view for cursors defined by DECLARE CURSOR is based on debug_query_string. That means it is not accurate if multiple queries separated by semicolons are submitted as one query string. However, there doesn't seem a trivial fix for that: debug_query_string is better than nothing. I also changed SPI_cursor_open() to include the source text for the portal it creates: AFAICS there is no reason not to do this. Update the documentation and regression tests, bump the catversion.
* Fix fsync code to test whether F_FULLFSYNC is available, instead ofTom Lane2006-01-17
| | | | assuming it always is on Darwin. Per report from Neil Brandt.
* Data transferred binary is now put into the variables verbatim.Michael Meskes2006-01-17
| | | | Also added a test case for a binary cursor.
* Improve comments about btree's use of ScanKey data structures: thereTom Lane2006-01-17
| | | | | | | | are two basically different kinds of scankeys, and we ought to try harder to indicate which is used in each place in the code. I've chosen the names "search scankey" and "insertion scankey", though you could make about as good an argument for "operator scankey" and "comparison function scankey".
* Improve constraint_name wording.Bruce Momjian2006-01-16
|
* Add markup for new constraint_name mention.Bruce Momjian2006-01-16
|
* Add documentaiotn mention that constraint names can be sentences thatBruce Momjian2006-01-16
| | | | can convey information to clients on constraint violation.
* Change the parameter_types column of the pg_prepared_statements to beNeil Conway2006-01-16
| | | | | | | | an array of regtype, rather than an array of OIDs. This is likely to be more useful to user, and the type OID can easily be obtained by casting a regtype value to OID. Per suggestion from Tom. Update the documentation and regression tests, and bump the catversion.
* When using GCC on AMD64 and PPC, ECPGget_variable() takes a va_list *, notNeil Conway2006-01-15
| | | | | | a va_list. Christof Petig's previous patch made this change, but neglected to update ecpglib/descriptor.c, resulting in a compiler warning (and a likely runtime crash) on AMD64 and PPC.
* Add regression tests to verify that domain constraints on parametersNeil Conway2006-01-15
| | | | | to prepared statements with unknown type are correctly enforced, per recent bug report.
* Allow the types of parameters to PREPARE to be inferred. If a parameter'sNeil Conway2006-01-15
| | | | | | data type is unspecified or is declared to be "unknown", the type will be inferred from the context in which the parameter is used. This was already possible for protocol-level prepared statements.
* Some minor code cleanup, falling out from the removal of rtree. SK_NEGATETom Lane2006-01-14
| | | | | | | | | | | | isn't being used anywhere anymore, and there seems no point in a generic index_keytest() routine when two out of three remaining access methods aren't using it. Also, add a comment documenting a convention for letting access methods define private flag bits in ScanKey sk_flags. There are no such flags at the moment but I'm thinking about changing btree's handling of "required keys" to use flag bits in the keys rather than a count of required key positions. Also, if some AM did still want SK_NEGATE then it would be reasonable to treat it as a private flag bit.
* Fix pg_ctl crash on "unregister" when a data directory is not specified.Peter Eisentraut2006-01-14
| | | | by Magnus Hagander
* Add selectivity-calculation code for RowCompareExpr nodes. Simplistic,Tom Lane2006-01-14
| | | | but a lot better than nothing at all ...
* Remove logic in XactLockTableWait() that attempted to mark a crashedTom Lane2006-01-13
| | | | | | | | | | | | | | transaction as aborted. Since we only call XactLockTableWait on XIDs that we believe to be currently running, the odds of this code ever actually firing are minimal. It's certainly unnecessary, since a transaction that's not either running or committed will be presumed aborted anyway. What's more, it's not hard to imagine scenarios where this could result in corrupting pg_clog: for instance, if a bogus XID somehow got passed to XactLockTableWait. I think the code probably dates from the ancient era when we didn't have TransactionIdIsInProgress; back then it may have been necessary, but now I think it's a waste of cycles and potentially dangerous. Per discussion with Qingqing Zhou and Karsten Hilbert.
* Document that CREATE OPERATOR CLASS amounts to granting public executeTom Lane2006-01-13
| | | | | | | | | | permissions on the functions and operators contained in the opclass. Since we already require superuser privilege to create an operator class, there's no expansion-of-privilege hazard here, but if someone were to get the idea of building an opclass containing functions that need security restrictions, we'd better warn them off. Also, change the permission checks from have-execute-privilege to have-ownership, and then comment them all out since they're dead code anyway under the superuser restriction.
* Require the issuer of CREATE TYPE to own the functions mentioned in theTom Lane2006-01-13
| | | | | | | | | | | | type definition. Because use of a type's I/O conversion functions isn't access-checked, CREATE TYPE amounts to granting public execute permissions on the functions, and so allowing it to anybody means that someone could theoretically gain access to a function he's not supposed to be able to execute. The parameter-type restrictions already enforced by CREATE TYPE make it fairly unlikely that this oversight is meaningful in practice, but still it seems like a good idea to plug the hole going forward. Also, document the implicit grant just in case anybody gets the idea of building I/O functions that might need security restrictions.
* We neglected to apply domain constraints on UNKNOWN parameters toNeil Conway2006-01-12
| | | | prepared statements, per report from David Wheeler.
* Clear up remaining compile warning for plperl on Windows.Andrew Dunstan2006-01-12
|
* mbutils was previously doing some allocations, including invokingNeil Conway2006-01-12
| | | | | | | | | | fmgr_info(), in the TopMemoryContext. I couldn't see that the code actually leaked, but in general I think it's fragile to assume that pfree'ing an FmgrInfo along with its fn_extra field is enough to reclaim all the resources allocated by fmgr_info(). I changed the code to do its allocations in a new child context of TopMemoryContext, MbProcContext. When we want to release the allocations we can just reset the context, which is cleaner.
* Repair "Halloween problem" in EvalPlanQual: a tuple that's been inserted byTom Lane2006-01-12
| | | | | | | | our own command (or more generally, xmin = our xact and cmin >= current command ID) should not be seen as good. Else we may try to update rows we already updated. This error was inserted last August while fixing the even bigger problem that the old coding wouldn't see *any* tuples inserted by our own transaction as good. Per report from Euler Taveira de Oliveira.
* Use a more bulletproof test for whether finite() and isinf() are present.Tom Lane2006-01-12
| | | | | | | | It seems that recent gcc versions can optimize away calls to these functions even when the functions do not exist on the platform, resulting in a bogus positive result. Avoid this by using a non-constant argument and ensuring that the function result is not simply discarded. Per report from François Laupretre.
* Remove extraneous backslash from 'fixseq.sql' example --- mea culpaTom Lane2006-01-12
| | | | certainly. Per report from George Woodring.
* Update comment about outer joins in description of geqo_threshold.Tom Lane2006-01-11
|
* Documentation tweak: add spaces around the brackets in the descriptionNeil Conway2006-01-11
| | | | | of the CREATE CONVERSION syntax, for consistency with the other SQL reference pages.
* Brace cleanup.Bruce Momjian2006-01-11
|
* Done:Bruce Momjian2006-01-11
| | | | > * -Add sleep() function, remove from regress.c
* Create a standard function pg_sleep() to sleep for a specified amount of time.Tom Lane2006-01-11
| | | | | Replace the former ad-hoc implementation used in the regression tests. Joachim Wieland
* Cosmetic code cleanup: fix a bunch of places that used "return (expr);"Neil Conway2006-01-11
| | | | | | rather than "return expr;" -- the latter style is used in most of the tree. I kept the parentheses when they were necessary or useful because the return expression was complex.