Commit Graph

  • 802c7aa30f Fix const cast in get_progname(). Bruce Momjian 2006-02-01 12:41:45 +00:00
  • 5eb493ab98 Set progname early in the postmaster/postgres binary, rather than doing it later. This fixes a problem where EXEC_BACKEND didn't have progname set, causing a segfault if log_min_messages was set below debug2 and our own snprintf.c was being used. Bruce Momjian 2006-02-01 00:47:03 +00:00
  • bc1c9adbda Set progname early in the postmaster/postgres binary, rather than doing it later. This fixes a problem where EXEC_BACKEND didn't have progname set, causing a segfault if log_min_messages was set below debug2 and our own snprintf.c was being used. Bruce Momjian 2006-02-01 00:32:06 +00:00
  • 62a142036b Set progname early in the postmaster/postgres binary, rather than doing it later. This fixes a problem where EXEC_BACKEND didn't have progname set, causing a segfault if log_min_messages was set below debug2 and our own snprintf.c was being used. Bruce Momjian 2006-02-01 00:31:59 +00:00
  • c6ef3264be Move items: Bruce Momjian 2006-02-01 00:07:26 +00:00
  • 5eb29fea25 Add: Bruce Momjian 2006-02-01 00:03:09 +00:00
  • 2aa231be9e Allow %TYPE to be used with SETOF, per gripe from Murat Tasan. Tom Lane 2006-01-31 22:40:12 +00:00
  • 6851baeda1 Allow %TYPE to be used with SETOF, per gripe from Murat Tasan. Tom Lane 2006-01-31 22:40:03 +00:00
  • 8a1468af4e Restructure planner's handling of inheritance. Rather than processing inheritance trees on-the-fly, which pretty well constrained us to considering only one way of planning inheritance, expand inheritance sets during the planner prep phase, and build a side data structure that can be consulted later to find which RTEs are members of which inheritance sets. As proof of concept, use the data structure to plan joins against inheritance sets more efficiently: we can now use indexes on the set members in inner-indexscan joins. (The generated plans could be improved further, but it'll take some executor changes.) This data structure will also support handling UNION ALL subqueries in the same way as inheritance sets, but that aspect of it isn't finished yet. Tom Lane 2006-01-31 21:39:25 +00:00
  • 097df388b7 Removed single quotes from connect to example. Michael Meskes 2006-01-31 13:32:20 +00:00
  • 2426c62140 Fix ALTER COLUMN TYPE bug: it sometimes tried to drop UNIQUE or PRIMARY KEY constraints before FOREIGN KEY constraints that depended on them. Originally reported by Neil Conway on 29-Jun-2005. Patch by Nakano Yoshihisa. Tom Lane 2006-01-30 16:19:12 +00:00
  • ecde4216c9 Fix ALTER COLUMN TYPE bug: it sometimes tried to drop UNIQUE or PRIMARY KEY constraints before FOREIGN KEY constraints that depended on them. Originally reported by Neil Conway on 29-Jun-2005. Patch by Nakano Yoshihisa. Tom Lane 2006-01-30 16:19:04 +00:00
  • 0dd0e289c7 Fix ALTER COLUMN TYPE bug: it sometimes tried to drop UNIQUE or PRIMARY KEY constraints before FOREIGN KEY constraints that depended on them. Originally reported by Neil Conway on 29-Jun-2005. Patch by Nakano Yoshihisa. Tom Lane 2006-01-30 16:18:58 +00:00
  • 0ab9d3a3e1 When building a bitmap scan, must copy the bitmapqualorig expression tree to avoid sharing substructure with the lower-level indexquals. This is currently only an issue if there are SubPlans in the indexquals, which is uncommon but not impossible --- see bug #2218 reported by Nicholas Vinen. We use the same kluge for indexqual vs indexqualorig in the index scans themselves ... would be nice to clean this up someday. Tom Lane 2006-01-29 18:55:55 +00:00
  • 3276e911d1 When building a bitmap scan, must copy the bitmapqualorig expression tree to avoid sharing substructure with the lower-level indexquals. This is currently only an issue if there are SubPlans in the indexquals, which is uncommon but not impossible --- see bug #2218 reported by Nicholas Vinen. We use the same kluge for indexqual vs indexqualorig in the index scans themselves ... would be nice to clean this up someday. Tom Lane 2006-01-29 18:55:48 +00:00
  • 3edec383e1 Fix Assert that's no longer correct now that RowCompareExpr is indexable. Tom Lane 2006-01-29 17:40:00 +00:00
  • 2d98f46255 Fix code that checks to see if an index can be considered to match the query's requested sort order. It was assuming that build_index_pathkeys always generates a pathkey per index column, which was not true if implied equality deduction had determined that two index columns were effectively equated to each other. Simplest fix seems to be to install an option that causes build_index_pathkeys to support this behavior as well as the original one. Per report from Brian Hirt. Tom Lane 2006-01-29 17:27:50 +00:00
  • a1b7e70c5f Fix code that checks to see if an index can be considered to match the query's requested sort order. It was assuming that build_index_pathkeys always generates a pathkey per index column, which was not true if implied equality deduction had determined that two index columns were effectively equated to each other. Simplest fix seems to be to install an option that causes build_index_pathkeys to support this behavior as well as the original one. Per report from Brian Hirt. Tom Lane 2006-01-29 17:27:42 +00:00
  • a021ea021c Undo perl's nasty locale setting on Windows. Since we can't do that as elsewhere by setting the environment appropriately, we make perl do it right after interpreter startup by calling its POSIX::setlocale(). Andrew Dunstan 2006-01-28 16:22:49 +00:00
  • 18d6948858 Undo perl's nasty locale setting on Windows. Since we can't do that as elsewhere by setting the environment appropriately, we make perl do it right after interpreter startup by calling its POSIX::setlocale(). Andrew Dunstan 2006-01-28 16:21:33 +00:00
  • 4400ca2bad Undo perl's nasty locale setting on Windows. Since we can't do that as elsewhere by setting the environment appropriately, we make perl do it right after interpreter startup by calling its POSIX::setlocale(). Andrew Dunstan 2006-01-28 16:20:31 +00:00
  • 81dbda0792 Per a bug report from Theo Schlossnagle, plperl_return_next() leaks memory in the executor's per-query memory context. It also inefficient: it invokes get_call_result_type() and TupleDescGetAttInMetadata() for every call to return_next, rather than invoking them once (per PL/Perl function call) and memoizing the result. Neil Conway 2006-01-28 03:28:19 +00:00
  • ebdefb93b2 Per a bug report from Theo Schlossnagle, plperl_return_next() leaks memory in the executor's per-query memory context. It also inefficient: it invokes get_call_result_type() and TupleDescGetAttInMetadata() for every call to return_next, rather than invoking them once (per PL/Perl function call) and memoizing the result. Neil Conway 2006-01-28 03:28:15 +00:00
  • cab99ec300 Tweak initdb to reduce verbosity of progress messages, by printing just one 'creating subdirectories' message instead of one per subdirectory. The original decision to print something for each subdirectory was made when there were only one or two of 'em; we have way too many now. Per discussion. Tom Lane 2006-01-27 19:01:15 +00:00
  • 5e2707c45f Snowball multibyte. It's a pity, but snowball sources is very diferent for multibyte and singlebyte encodings, so we should have snowball for every encodings. Teodor Sigaev 2006-01-27 16:32:31 +00:00
  • 75c4747156 Suppress signed-vs-unsigned-char warning. Tom Lane 2006-01-26 18:08:10 +00:00
  • 6f2d775218 Fix display of whole-row Var appearing at the top level of a SELECT list. While we normally prefer the notation "foo.*" for a whole-row Var, that does not work at SELECT top level, because in that context the parser will assume that what is wanted is to expand the "*" into a list of separate target columns, yielding behavior different from a whole-row Var. We have to emit just "foo" instead in that context. Per report from Sokolov Yura. Tom Lane 2006-01-26 17:08:34 +00:00
  • 108a2e51c9 Fix display of whole-row Var appearing at the top level of a SELECT list. While we normally prefer the notation "foo.*" for a whole-row Var, that does not work at SELECT top level, because in that context the parser will assume that what is wanted is to expand the "*" into a list of separate target columns, yielding behavior different from a whole-row Var. We have to emit just "foo" instead in that context. Per report from Sokolov Yura. Tom Lane 2006-01-26 17:08:26 +00:00
  • ec057a4380 Fix display of whole-row Var appearing at the top level of a SELECT list. While we normally prefer the notation "foo.*" for a whole-row Var, that does not work at SELECT top level, because in that context the parser will assume that what is wanted is to expand the "*" into a list of separate target columns, yielding behavior different from a whole-row Var. We have to emit just "foo" instead in that context. Per report from Sokolov Yura. Tom Lane 2006-01-26 17:08:19 +00:00
  • 97ec950186 Update btree_gist for CIDR/INET changes --- there's really no need to have a separate set of CIDR code here, either. Tom Lane 2006-01-26 04:22:36 +00:00
  • 3125321934 Done: Bruce Momjian 2006-01-26 02:50:11 +00:00
  • 8d8bf12760 Clean up the INET-vs-CIDR situation. Get rid of the internal is_cidr flag and rely exclusively on the SQL type system to tell the difference between the types. Prevent creation of invalid CIDR values via casting from INET or set_masklen() --- both of these operations now silently zero any bits to the right of the netmask. Remove duplicate CIDR comparison operators, letting the type rely on the INET operators instead. Tom Lane 2006-01-26 02:35:51 +00:00
  • 5997386a0a Remove the no-longer-useful HashItem/HashItemData level of structure. Same motivation as for BTItem. Tom Lane 2006-01-25 23:26:11 +00:00
  • c389760c32 Remove the no-longer-useful BTItem/BTItemData level of structure, and just refer to btree index entries as plain IndexTuples, which is what they have been for a very long time. This is mostly just an exercise in removing extraneous notation, but it does save a palloc/pfree cycle per index insertion. Tom Lane 2006-01-25 23:04:21 +00:00
  • f31a58481c Remove unnecessary PQconsumeInput call from PQputCopyData; it's redundant because pqSendSome will absorb input data anytime it'd be forced to block. Avoiding a kernel call per PQputCopyData call helps COPY speed materially. Tom Lane 2006-01-25 20:44:49 +00:00
  • 9b012311f8 Remove unnecessary PQconsumeInput call from PQputCopyData; it's redundant because pqSendSome will absorb input data anytime it'd be forced to block. Avoiding a kernel call per PQputCopyData call helps COPY speed materially. Tom Lane 2006-01-25 20:44:32 +00:00
  • 3a0a16cb7e Allow row comparisons to be used as indexscan qualifications. This completes the project to upgrade our handling of row comparisons. Tom Lane 2006-01-25 20:29:24 +00:00
  • 06d45e485d Update regression error message for NUMERIC range overflow. Display "1" instead of "10^0". Bruce Momjian 2006-01-25 18:20:22 +00:00
  • 514d0f4db6 Update regression error message for NUMERIC range overflow. Display "1" instead of 10^0. Bruce Momjian 2006-01-25 18:15:03 +00:00
  • cdc15b24be Improve error message when NUMERIC precision is exceeded. Bruce Momjian 2006-01-25 17:54:14 +00:00
  • b34608fbdd Fix unportable usage of socklen_t: should use ACCEPT_TYPE_ARG3 macro provided by configure, instead. Per bug #2205. Tom Lane 2006-01-24 16:38:50 +00:00
  • 7a9d197fda Fix unportable usage of socklen_t: should use ACCEPT_TYPE_ARG3 macro provided by configure, instead. Per bug #2205. Tom Lane 2006-01-24 16:38:42 +00:00
  • 69f9fab197 - Synced parser and keyword list. - Added another test case. Michael Meskes 2006-01-24 11:01:38 +00:00
  • 7ccaf13a06 Instead of using a numberOfRequiredKeys count to distinguish required and non-required keys in a btree index scan, mark the required scankeys with private flag bits SK_BT_REQFWD and/or SK_BT_REQBKWD. This seems at least marginally clearer to me, and it eliminates a wired-into-the- data-structure assumption that required keys are consecutive. Even though that assumption will remain true for the foreseeable future, having it in there makes the code seem more complex than necessary. Tom Lane 2006-01-23 22:31:41 +00:00
  • f6f43e7ee3 Prototype fix for typo. Bruce Momjian 2006-01-23 21:49:39 +00:00
  • 19b1c76f0d Use is_cidr in INET/CIDR structure, rather than the generic 'type'. Bruce Momjian 2006-01-23 21:45:47 +00:00
  • 726b42abd0 Improve wording of descriptions of SIGHUP GUC parameters, as per my suggestion a couple days ago. Fix some cases in which the documentation neglected to mention any restriction on when a parameter can be set. Try to be consistent about calling parameters parameters; use the term option only for command-line switches. Tom Lane 2006-01-23 18:16:41 +00:00
  • 80324fb1e3 Fix typeing as Tom suggest Teodor Sigaev 2006-01-23 14:24:06 +00:00
  • 1bdc5ab2da Done: Bruce Momjian 2006-01-23 02:59:27 +00:00
  • 16c5a471a3 Improve note about not using the target table name in the SET clause. It's not related to whether an alias is used or not. Tom Lane 2006-01-22 20:34:11 +00:00
  • 2647ad6583 Fix alias-for-target-table-of-UPDATE-or-DELETE patch so that alias can be any ColId other than 'SET', rather than only IDENT as originally. Per discussion. Tom Lane 2006-01-22 20:03:16 +00:00
  • 1d763d9107 Allow an optional alias for the target table to be specified for UPDATE and DELETE. If specified, the alias must be used instead of the full table name. Also, the alias currently cannot be used in the SET clause of UPDATE. Neil Conway 2006-01-22 05:20:35 +00:00
  • 57a84ca48e Minor improvements to GEQO documentation. Neil Conway 2006-01-22 03:56:58 +00:00
  • b42f307340 Marginal improvements in the wording of the autovacuum documentation: 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. Tom Lane 2006-01-21 19:34:42 +00:00
  • 27959dd746 Fix broken markup. Tom Lane 2006-01-21 19:05:59 +00:00
  • 3cbc8b6fb4 Repair longstanding bug in slru/clog logic: it is possible for two backends 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. Tom Lane 2006-01-21 04:38:54 +00:00
  • 7da4e7ac6a Repair longstanding bug in slru/clog logic: it is possible for two backends 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. Tom Lane 2006-01-21 04:38:46 +00:00
  • 6a928e11fa Repair longstanding bug in slru/clog logic: it is possible for two backends 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. Tom Lane 2006-01-21 04:38:36 +00:00
  • 16582d3834 Repair longstanding bug in slru/clog logic: it is possible for two backends 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. Tom Lane 2006-01-21 04:38:27 +00:00
  • c89a0dd3bb Repair longstanding bug in slru/clog logic: it is possible for two backends 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. Tom Lane 2006-01-21 04:38:21 +00:00
  • 4789e98801 Add GRANT ON SEQUENCE syntax to support sequence-only permissions. Continue to support GRANT ON [TABLE] for sequences for backward compatibility; issue warning for invalid sequence permissions. Bruce Momjian 2006-01-21 02:16:21 +00:00
  • 4977c2b31b Replace bitwise looping with bytewise looping in hemdistsign and 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. Tom Lane 2006-01-20 22:46:40 +00:00
  • 33feb55c47 Replace bitwise looping with bytewise looping in hemdistsign and 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. Tom Lane 2006-01-20 22:46:16 +00:00
  • 4a651c9705 Update EXPLAIN wording for GEQO usage. Bruce Momjian 2006-01-20 16:42:02 +00:00
  • 138fdf32bb Update EXPLAIN wording for GEQO usage. Bruce Momjian 2006-01-20 16:41:55 +00:00
  • 517056bd08 Fix thinko in autovacuum's test to skip temp tables: want to skip any 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. Tom Lane 2006-01-20 15:17:13 +00:00
  • 413d492d32 Fix thinko in autovacuum's test to skip temp tables: want to skip any 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. Tom Lane 2006-01-20 15:16:56 +00:00
  • 936433ba53 Doc patch that adds an example of a correllated UPDATE. Bruce Momjian 2006-01-19 23:09:46 +00:00
  • cd5d464e9f Doc patch that adds an example of a correllated UPDATE. Bruce Momjian 2006-01-19 23:09:42 +00:00
  • b148ce8a4a Clarify STABLE function documentation to highlight how such functions can be optimized. Bruce Momjian 2006-01-19 22:52:20 +00:00
  • 807cb000f6 Clarify STABLE function documentation to highlight how such functions can be optimized. Bruce Momjian 2006-01-19 22:52:08 +00:00
  • 337cc41236 Add some test scaffolding to allow cache-flush stress testing (and I do mean stress ... system is orders of magnitude slower with this enabled). Tom Lane 2006-01-19 21:49:30 +00:00
  • efbe674e4e Add some test scaffolding to allow cache-flush stress testing (and I do mean stress ... system is orders of magnitude slower with this enabled). Tom Lane 2006-01-19 21:49:21 +00:00
  • 1f57f2e311 Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path for Darwin. Bruce Momjian 2006-01-19 21:20:32 +00:00
  • 36cdb24f31 Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path for AIX and Darwin. Bruce Momjian 2006-01-19 21:19:15 +00:00
  • 248c9bdfcb Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path for AIX and Darwin. Bruce Momjian 2006-01-19 21:19:12 +00:00
  • 128cd9df38 Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path. Bruce Momjian 2006-01-19 20:45:34 +00:00
  • c52bafca45 Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path. Bruce Momjian 2006-01-19 20:45:29 +00:00
  • 2f90c781e8 Remove $(DESTDIR) from the pgxs BE_DLLLIBS= -L path. Bruce Momjian 2006-01-19 20:45:20 +00:00
  • a290087cd1 Avoid crashing if relcache flush occurs while trying to load data into an 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.) Tom Lane 2006-01-19 20:28:57 +00:00
  • ab2cd7266b Avoid crashing if relcache flush occurs while trying to load data into an 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.) Tom Lane 2006-01-19 20:28:48 +00:00
  • ed69cf5d23 Avoid crashing if relcache flush occurs while trying to load data into an 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.) Tom Lane 2006-01-19 20:28:43 +00:00
  • 92d1dd845f Fix pgxs -L library path specification for Win32 and Cygwin, was /bin, now /lib. Bruce Momjian 2006-01-19 20:01:32 +00:00
  • b5dc7165fe Fix pgxs -L library path specification for Win32 and Cygwin, was /bin, now /lib. Bruce Momjian 2006-01-19 20:01:01 +00:00
  • 99e0c54290 Fix pgxs -L library path specification for Win32 and Cygwin, was /bin, now /lib. Bruce Momjian 2006-01-19 20:00:54 +00:00
  • 9fad6e338b It turns out that TablespaceCreateDbspace fails badly if a relcache flush 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. Tom Lane 2006-01-19 04:45:58 +00:00
  • 7618330c6d It turns out that TablespaceCreateDbspace fails badly if a relcache flush 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. Tom Lane 2006-01-19 04:45:47 +00:00
  • 4513d9deda It turns out that TablespaceCreateDbspace fails badly if a relcache flush 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. Tom Lane 2006-01-19 04:45:38 +00:00
  • 49a263011a Fix a tiny memory leak (one List header) in RelationCacheInvalidate(). 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? Tom Lane 2006-01-19 00:27:27 +00:00
  • b0be247e38 Fix a tiny memory leak (one List header) in RelationCacheInvalidate(). 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? Tom Lane 2006-01-19 00:27:08 +00:00
  • 2e2c4f424f Clarify use of btree indexes for ILIKE and ~*. Bruce Momjian 2006-01-18 22:26:01 +00:00
  • 7259cc1e7e Clarify use of btree indexes for ILIKE and ~*. Bruce Momjian 2006-01-18 21:29:45 +00:00
  • ccebb6745e You'll find attached a patch for a fixed explanation on parameter_mode column, OUT and INOUT added. Bruce Momjian 2006-01-18 21:02:55 +00:00
  • 0bfd90ff32 Modify pgstats code to reduce performance penalties from oversized stats data 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. Tom Lane 2006-01-18 20:35:16 +00:00
  • d5db3abfb6 Modify pgstats code to reduce performance penalties from oversized stats data 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. Tom Lane 2006-01-18 20:35:06 +00:00
  • e1af35afac Done: Bruce Momjian 2006-01-18 14:20:22 +00:00
  • 33e06ebccb Add a new system view, pg_cursors, that displays the currently available 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). Neil Conway 2006-01-18 06:49:30 +00:00
  • 9e72b3c2c5 Fix fsync code to test whether F_FULLFSYNC is available, instead of assuming it always is on Darwin. Per report from Neil Brandt. Tom Lane 2006-01-17 23:52:50 +00:00
  • 558bc2584d Fix fsync code to test whether F_FULLFSYNC is available, instead of assuming it always is on Darwin. Per report from Neil Brandt. Tom Lane 2006-01-17 23:52:31 +00:00
  • f3dda5be89 Data transferred binary is now put into the variables verbatim. Also added a test case for a binary cursor. Michael Meskes 2006-01-17 19:49:23 +00:00