https://github.com/postgres/postgres

sort by:
Revision Author Date Message Commit Date
a5f9640 No release notes update, just advance the date 28 December 2010, 19:19:17 UTC
81a530a Fix ill-advised placement of PGRES_COPY_BOTH enum value. It must be added at the end of the ExecStatusType enum to avoid ABI breakage compared to previous libpq versions. Noted by Magnus. 28 December 2010, 16:02:10 UTC
b4d3792 Another fix for larger postmaster.pid files. 28 December 2010, 14:34:46 UTC
0600431 Fix list of functions that are restricted to superusers Move the list of what's restricted to superusers into the table itself, so it doesn't get missed again. 28 December 2010, 09:46:03 UTC
bada44a Fix code to properly pull out shared memory key now that the postmaster.pid file is larger than in previous major versions. This is a bug introduced when I added lines to the file recently. 28 December 2010, 04:11:33 UTC
c0577c9 Mark unaccent functions as STABLE, rather than defaulting to VOLATILE. 27 December 2010, 20:34:42 UTC
0a023a1 Update SGML docs describing the contents of the postmaster.pid file, per change to the file for pg_ctl. 27 December 2010, 20:20:28 UTC
f791364 Remove -fno-operator-names switch from cpluspluscheck. No longer needed now that bitand() and bitor() have been renamed. 27 December 2010, 20:03:24 UTC
84fc571 Rename the C functions bitand(), bitor() to bit_and(), bit_or(). This is to avoid use of the C++ keywords "bitand" and "bitor" in the header file utils/varbit.h. Note the functions' SQL-level names are not changed, only their C-level names. In passing, make some comments in varbit.c conform to project-standard layout. 27 December 2010, 19:57:41 UTC
8c61f81 Rearrange cpluspluscheck to check just one .h file at a time. This is slower than the original coding but avoids the problem of including files in an unpredictable order. Aside from being more trustworthy, we can get rid of some exclusions that were formerly made for what turn out to be ordering or re-inclusion problems. I also modified it to include libpq's exported files in the check. ecpg should be included as well, but I'm unclear on which ecpg .h files are meant to be included by clients. 27 December 2010, 17:51:44 UTC
37b61a6 Fix failure of executor/hashjoin.h to compile standalone. Noted while experimenting with cpluspluscheck. 27 December 2010, 17:20:09 UTC
a977db6 Tweak cpluspluscheck to avoid directly #include'ing gram.h. gram.h has ordering dependencies, which are satisfied when it's included from gramparse.h, but might not be if it's pulled in directly. 27 December 2010, 16:36:52 UTC
2754119 Fix ill-chosen use of "private" as an argument and struct field name. "private" is a keyword in C++, so this breaks the poorly-enforced policy that header files should be include-able in C++ code. Per report from Craig Ringer and some investigation with cpluspluscheck. 27 December 2010, 16:26:19 UTC
c7f0038 Break up long line, per Leslie S Satenstein. 27 December 2010, 15:36:51 UTC
63676eb Corrections to patch adding SQL/MED error codes. My previous commit, 85cff3ce7f360d139d87aee836d75a6202fee066 on 2010-12-25, failed to update errcodes.sgml or plerrcodes.h. This patch corrects that oversight, per a gripe from Tom Lane, and also corrects a typographical error. 27 December 2010, 02:35:25 UTC
a534728 Only build in crashdump support on Windows if there's a working dbghelp.h. 26 December 2010, 15:34:47 UTC
85cff3c Add foreign data wrapper error code values for SQL/MED. Extracted from a much larger patch by Shigeru Hanada. 25 December 2010, 18:57:39 UTC
4ec92b0 Correct spelling: longjump() -> longjmp(). 25 December 2010, 03:22:44 UTC
79a9dec Fix grammar 24 December 2010, 20:08:50 UTC
04ee0db Allow vpath builds and regression tests to succeed on Mingw. Backpatch to release 8.4 - earlier releases would require more changes and it's not worth the trouble. 24 December 2010, 18:31:28 UTC
5000472 Remove quotes from boolean recovery.conf.sample parameters, now that the quotes are not required. This now matches postgresql.conf's specification of booleans. 24 December 2010, 16:51:51 UTC
075354a Improve "pg_ctl -w start" server detection by writing the postmaster port and socket directory into postmaster.pid, and have pg_ctl read from that file, for use by PQping(). 24 December 2010, 14:45:52 UTC
4b1742a Move the documentation of --no-security-label to a more sensible place The order on the pg_dump/pg_dumpall man pages is not very strict, but surely putting it under connection options was wrong. 24 December 2010, 12:11:11 UTC
b2fd345 Release notes for 9.1alpha3 24 December 2010, 11:50:34 UTC
a1b0035 Document pg_dump(all) --no-security-label instead of --security-label. The former is the option actually supported by these commands. 24 December 2010, 04:22:40 UTC
727a5a1 Added rule to ecpg lexer to accept "Unicode surrogate pair in extended quoted string". This is not really needed because the string gets copied to the output untranslated anyway, but by adding this rule the lexer stays in sync with the backend lexer. 23 December 2010, 19:37:42 UTC
9de3aa6 Rewrite the GiST insertion logic so that we don't need the post-recovery cleanup stage to finish incomplete inserts or splits anymore. There was two reasons for the cleanup step: 1. When a new tuple was inserted to a leaf page, the downlink in the parent needed to be updated to contain (ie. to be consistent with) the new key. Updating the parent in turn might require recursively updating the parent of the parent. We now handle that by updating the parent while traversing down the tree, so that when we insert the leaf tuple, all the parents are already consistent with the new key, and the tree is consistent at every step. 2. When a page is split, we need to insert the downlink for the new right page(s), and update the downlink for the original page to not include keys that moved to the right page(s). We now handle that by setting a new flag, F_FOLLOW_RIGHT, on the non-rightmost pages in the split. When that flag is set, scans always follow the rightlink, regardless of the NSN mechanism used to detect concurrent page splits. That way the tree is consistent right after split, even though the downlink is still missing. This is very similar to the way B-tree splits are handled. When the downlink is inserted in the parent, the flag is cleared. To keep the insertion algorithm simple, when an insertion sees an incomplete split, indicated by the F_FOLLOW_RIGHT flag, it finishes the split before doing anything else. These changes allow removing the whole "invalid tuple" mechanism, but I retained the scan code to still follow invalid tuples correctly. While we don't create any such tuples anymore, we want to handle them gracefully in case you pg_upgrade a GiST index that has them. If we encounter any on an insert, though, we just throw an error saying that you need to REINDEX. The issue that got me into doing this is that if you did a checkpoint while an insert or split was in progress, and the checkpoint finishes quickly so that there is no WAL record related to the insert between RedoRecPtr and the checkpoint record, recovery from that checkpoint would not know to finish the incomplete insert. IOW, we have the same issue we solved with the rm_safe_restartpoint mechanism during normal operation too. It's highly unlikely to happen in practice, and this fix is far too large to backpatch, so we're just going to live with in previous versions, but this refactoring fixes it going forward. With this patch, you don't get the annoying 'index "FOO" needs VACUUM or REINDEX to finish crash recovery' notices anymore if you crash at an unfortunate moment. 23 December 2010, 14:21:47 UTC
7a1ca89 Document that BBU's do not allow partial page writes to be safely turned off unless they guarantee that all writes to the BBU arrive in 8kB chunks. Per discussion with Greg Smith 23 December 2010, 02:12:00 UTC
2a0f13a Typo fix. Noted by Thom Brown. 22 December 2010, 14:33:34 UTC
28d5c56 Wording improvements for pg_ctl manual page. 22 December 2010, 14:11:33 UTC
de9a4c2 Add PQlibVersion() function to libpq This function is like the PQserverVersion() function except it returns the version of libpq, making it possible for a client program or driver to determine which version of libpq is in use at runtime, and not just at link time. Suggested by Harald Armin Massa and several others. 22 December 2010, 13:23:56 UTC
32ba2b5 Use memcmp() rather than strncmp() when shorter string length is known. It appears that this will be faster for all but the shortest strings; at least one some platforms, memcmp() can use word-at-a-time comparisons. Noah Misch, somewhat pared down. 22 December 2010, 03:11:40 UTC
c5160b7 Fix typos. Andreas Karlsson 21 December 2010, 22:58:53 UTC
24ecde7 Work around unfortunate getppid() behavior on BSD-ish systems. On MacOS X, and apparently also on other BSD-derived systems, attaching a debugger causes getppid() to return the pid of the debugging process rather than the actual parent PID. As a result, debugging the autovacuum launcher, startup process, or WAL sender on such systems causes it to exit, because the previous coding of PostmasterIsAlive() detects postmaster death by testing whether getppid() == PostmasterPid. Work around that behavior by checking the return value of getppid() more carefully. If it's PostmasterPid, the postmaster must be alive; if it's 1, assume the postmaster is dead. If it's any other value, assume we've been debugged and fall through to the less-reliable kill() test. Review by Tom Lane. 21 December 2010, 11:30:32 UTC
f6a0863 Allow transactions that don't write WAL to commit asynchronously. This case can arise if a transaction has written data, but only to temporary tables. Loss of the commit record in case of a crash won't matter, because the temporary tables will be lost anyway. Reviewed by Heikki Linnakangas and Simon Riggs. 20 December 2010, 17:59:33 UTC
f9e9763 Fix typo Jaime Casanova 20 December 2010, 15:05:12 UTC
d382828 Remove thread dumping constant that requires newer Platform SDK Since we're not multithreaded it only provides marginally useful information, and it does require a newer version of the Platform SDK than we target. We may want to reconsider this in the future along with a fix for MinGW. 19 December 2010, 20:32:58 UTC
1b19e2c Fix up handling of simple-form CASE with constant test expression. eval_const_expressions() can replace CaseTestExprs with constants when the surrounding CASE's test expression is a constant. This confuses ruleutils.c's heuristic for deparsing simple-form CASEs, leading to Assert failures or "unexpected CASE WHEN clause" errors. I had put in a hack solution for that years ago (see commit 514ce7a331c5bea8e55b106d624e55732a002295 of 2006-10-01), but bug #5794 from Peter Speck shows that that solution failed to cover all cases. Fortunately, there's a much better way, which came to me upon reflecting that Peter's "CASE TRUE WHEN" seemed pretty redundant: we can "simplify" the simple-form CASE to the general form of CASE, by simply omitting the constant test expression from the rebuilt CASE construct. This is intuitively valid because there is no need for the executor to evaluate the test expression at runtime; it will never be referenced, because any CaseTestExprs that would have referenced it are now replaced by constants. This won't save a whole lot of cycles, since evaluating a Const is pretty cheap, but a cycle saved is a cycle earned. In any case it beats kluging ruleutils.c still further. So this patch improves const-simplification and reverts the previous change in ruleutils.c. Back-patch to all supported branches. The bug exists in 8.1 too, but it's out of warranty. 19 December 2010, 20:30:44 UTC
abc1026 Fix erroneous parsing of tsquery input "... & !(subexpression) | ..." After parsing a parenthesized subexpression, we must pop all pending ANDs and NOTs off the stack, just like the case for a simple operand. Per bug #5793. Also fix clones of this routine in contrib/intarray and contrib/ltree, where input of types query_int and ltxtquery had the same problem. Back-patch to all supported versions. 19 December 2010, 17:48:34 UTC
dcb09b5 Support for collecting crash dumps on Windows Add support for collecting "minidump" style crash dumps on Windows, by setting up an exception handling filter. Crash dumps will be generated in PGDATA/crashdumps if the directory is created (the existance of the directory is used as on/off switch for the generation of the dumps). Craig Ringer and Magnus Hagander 19 December 2010, 15:45:28 UTC
7e95337 Properly print the IP number and "localhost" for failed localhost connections when the server is down, on Win32. 18 December 2010, 16:26:17 UTC
4754dbf Make GUC variables for syslog and SSL always visible Make the variables visible (but not used) even when support is not compiled in. 18 December 2010, 15:53:59 UTC
3026027 set_ps_display when calling functions via fastpath This improves tag output by log_line_prefix 17 December 2010, 21:51:22 UTC
b68193c Remove unnecessary definition for autovacuum in SignalSomeChildren. 17 December 2010, 18:59:19 UTC
8bd4b89 Try to save a kernel call in ResolveRecoveryConflictWithVirtualXIDs. If there's no work to be done, just exit quickly, before initialization. 17 December 2010, 16:32:02 UTC
611fed3 Reset 'ps' display just once when resolving VXID conflicts. This prevents the word "waiting" from briefly disappearing from the ps status line when ResolveRecoveryConflictWithVirtualXIDs begins a new iteration of the outer loop. Along the way, remove some useless pgstat_report_waiting() calls; the startup process doesn't appear in pg_stat_activity. Fujii Masao 17 December 2010, 13:30:57 UTC
df142bf Waiting for complete startup is now a well-defined operation. Per report from Fujii Masao, and subsequent discussion. 17 December 2010, 01:57:33 UTC
14ed773 Improve comments around startup_hacks() code. These comments were not updated when we added the EXEC_BACKEND mechanism for Windows, even though it rendered them inaccurate. Also unify two unnecessarily-separate #ifdef __alpha code blocks. 16 December 2010, 22:57:57 UTC
61b5369 Remove optreset from src/port/ implementations of getopt and getopt_long. We don't actually need optreset, because we can easily fix the code to ensure that it's cleanly restartable after having completed a scan over the argv array; which is the only case we need to restart in. Getting rid of it avoids a class of interactions with the system libraries and allows reversion of my change of yesterday in postmaster.c and postgres.c. Back-patch to 8.4. Before that the getopt code was a bit different anyway. 16 December 2010, 21:23:05 UTC
cd1fefa Avoid clobbering errno, per comment from Tom. 16 December 2010, 20:15:37 UTC
83c759e Fix inconsequential FILE pointer leakage 16 December 2010, 19:45:11 UTC
e359b84 Add some minor missing error checks 16 December 2010, 15:23:07 UTC
16ca75b Simplify SignalSomeChildren(BACKEND_TYPE_ALL) to SignalChildren() 16 December 2010, 15:23:07 UTC
48da2b8 Fix crash caused by NULL lookup when reporting IP address of failed libpq connection, per report from Magnus. This happens only on GIT master and only on Win32 because that is the platform where "" maps to an IP address (localhost). 16 December 2010, 15:13:43 UTC
5cdd65f Fix up getopt() reset management so it works on recent mingw. The mingw people don't appear to care about compatibility with non-GNU versions of getopt, so force use of our own copy of getopt on Windows. Also, ensure that we make use of optreset when using our own copy. Per report from Andrew Dunstan. Back-patch to all versions supported on Windows. 16 December 2010, 04:50:41 UTC
2a6ebe7 Fix contrib/seg's GiST picksplit method. This patch replaces Guttman's generalized split method with a simple sort-by-center-points algorithm. Since the data is only one-dimensional we don't really need the slow and none-too-stable Guttman method. This is in part a bug fix, since seg has the same size_alpha versus size_beta typo that was recently fixed in contrib/cube. It seems prudent to apply this rather aggressive fix only in HEAD, though. Back branches will just get the typo fix. Alexander Korotkov, reviewed by Yeb Havinga 16 December 2010, 02:24:47 UTC
290f160 Some copy editing of pg_read_binary_file() patch. 16 December 2010, 02:02:31 UTC
afc8f47 Document timestamptz a little better. 16 December 2010, 01:53:40 UTC
03db44e Add pg_read_binary_file() and whole-file-at-once versions of pg_read_file(). One of the usages of the binary version is to read files in a different encoding from the server encoding. Dimitri Fontaine and Itagaki Takahiro. 15 December 2010, 21:56:28 UTC
16b5e08 Use "upgrade" in preference over "migrate" in pg_upgrade messages and documentation. (Many were left over from the old pg_migrator naming.) 15 December 2010, 12:11:31 UTC
34c70c7 Instrument checkpoint sync calls. Greg Smith, reviewed by Jeff Janes 14 December 2010, 14:26:19 UTC
9878e29 Improved tab completion for views with triggers. Allow INSERT INTO, UPDATE, and DELETE FROM to be completed with either the name of a table (as before) or the name of a view with an appropriate INSTEAD OF rule. Along the way, allow CREATE TRIGGER to be completed with INSTEAD OF, as well as BEFORE and AFTER. David Fetter, reviewed by Itagaki Takahiro 14 December 2010, 03:46:55 UTC
f9224c8 Update release notes for releases 9.0.2, 8.4.6, 8.3.13, 8.2.19, and 8.1.23. 14 December 2010, 01:22:52 UTC
d368e1a Allow plugins to suppress inlining and hook function entry/exit/abort. This is intended as infrastructure to allow an eventual SE-Linux plugin to support trusted procedures. KaiGai Kohei 14 December 2010, 00:15:53 UTC
843a490 Remove recently reintroduced CVS keyword 13 December 2010, 21:22:52 UTC
d26849e Document replacement of pg_class.relistemp with relpersistence. Noted by Tom Lane. 13 December 2010, 18:08:45 UTC
f5e4f74 Update time zone data files to tzdata release 2010o: DST law changes in Fiji and Samoa. Historical corrections for Hong Kong. 13 December 2010, 17:45:31 UTC
5f7b58f Generalize concept of temporary relations to "relation persistence". This commit replaces pg_class.relistemp with pg_class.relpersistence; and also modifies the RangeVar node type to carry relpersistence rather than istemp. It also removes removes rd_istemp from RelationData and instead performs the correct computation based on relpersistence. For clarity, we add three new macros: RelationNeedsWAL(), RelationUsesLocalBuffers(), and RelationUsesTempNamespace(), so that we can clarify the purpose of each check that previous depended on rd_istemp. This is intended as infrastructure for the upcoming unlogged tables patch, as well as for future possible work on global temporary tables. 13 December 2010, 17:34:26 UTC
0c90442 Reset all database-level stats in pgstat_recv_resetcounter(). We were failing to zero out some pg_stat_database counters that have been added since the initial pgstats coding. This is a bug, but not back-patching the fix since changing this behavior in a minor release seems a cure worse than the disease. Report and patch by Tomas Vondra. 12 December 2010, 20:09:53 UTC
5132ad8 Make S_IRGRP etc available in mingw builds as well as MSVC. (Hm, I wonder whether BCC defines them either...) Also label dangling endifs a bit better in this area. 12 December 2010, 18:43:44 UTC
3864afa Clean up some copied-and-pasted code in pg_upgrade. 1. Don't reimplement S_ISDIR() and S_ISREG() badly. 2. Don't reimplement access() badly. This code appears to have been copied from ancient versions of the corresponding backend routines, and not patched to incorporate subsequent fixes (see my commits of 2008-03-31 and 2010-01-14 respectively). It might be a good idea to change it to just *call* those routines, but for now I'll just transpose these fixes over. 11 December 2010, 19:17:46 UTC
1319002 Provide a complete set of file-permission-bit macros in win32.h. My previous patch exposed the fact that we didn't have these. Those hard-wired octal constants were actually wrong on Windows, not just inconsistent. 11 December 2010, 18:11:18 UTC
d3d4146 Allow bidirectional copy messages in streaming replication mode. Fujii Masao. Review by Alvaro Herrera, Tom Lane, and myself. 11 December 2010, 14:27:37 UTC
20f3964 Add required new port files to MSVC builds. 11 December 2010, 13:19:08 UTC
1490946 Minor documentation cleanup. Fujii Masao 11 December 2010, 04:22:50 UTC
6711999 Move a couple of initdb's subroutines into src/port/. mkdir_p and check_data_dir will be useful in CREATE TABLESPACE, since we have agreed that that command should handle subdirectory creation just like initdb creates the PGDATA directory. Push them into src/port/ so that they are available to both initdb and the backend. Rename to pg_mkdir_p and pg_check_dir, just to be on the safe side. Add FreeBSD's copyright notice to pgmkdirp.c, since that's where the code came from originally (this really should have been in initdb.c). Very marginal code/comment cleanup. 11 December 2010, 00:42:44 UTC
04f4e10 Use symbolic names not octal constants for file permission flags. Purely cosmetic patch to make our coding standards more consistent --- we were doing symbolic some places and octal other places. This patch fixes all C-coded uses of mkdir, chmod, and umask. There might be some other calls I missed. Inconsistency noted while researching tablespace directory permissions issue. 10 December 2010, 22:35:33 UTC
244407a Fix efficiency problems in tuplestore_trim(). The original coding in tuplestore_trim() was only meant to work efficiently in cases where each trim call deleted most of the tuples in the store. Which, in fact, was the pattern of the original usage with a Material node supporting mark/restore operations underneath a MergeJoin. However, WindowAgg now uses tuplestores and it has considerably less friendly trimming behavior. In particular it can attempt to trim one tuple at a time off a large tuplestore. tuplestore_trim() had O(N^2) runtime in this situation because of repeatedly shifting its tuple pointer array. Fix by avoiding shifting the array until a reasonably large number of tuples have been deleted. This can waste some pointer space, but we do still reclaim the tuples themselves, so the percentage wastage should be pretty small. Per Jie Li's report of slow percent_rank() evaluation. cume_dist() and ntile() would certainly be affected as well, along with any other window function that has a moving frame start and requires reading substantially ahead of the current row. Back-patch to 8.4, where window functions were introduced. There's no need to tweak it before that. 10 December 2010, 16:33:38 UTC
663fc32 Eliminate O(N^2) behavior in parallel restore with many blobs. With hundreds of thousands of TOC entries, the repeated searches in reduce_dependencies() become the dominant cost. Get rid of that searching by constructing reverse-dependency lists, which we can do in O(N) time during the fix_dependencies() preprocessing. I chose to store the reverse dependencies as DumpId arrays for consistency with the forward-dependency representation, and keep the previously-transient tocsByDumpId[] array around to locate actual TOC entry structs quickly from dump IDs. While this fixes the slow case reported by Vlad Arkhipov, there is still a potential for O(N^2) behavior with sufficiently many tables: fix_dependencies itself, as well as mark_create_done and inhibit_data_for_failed_table, are doing repeated searches to deal with table-to-table-data dependencies. Possibly this work could be extended to deal with that, although the latter two functions are also used in non-parallel restore where we currently don't run fix_dependencies. Another TODO is that we fail to parallelize restore of multiple blobs at all. This appears to require changes in the archive format to fix. Back-patch to 9.0 where the problem was reported. 8.4 has potential issues as well; but since it doesn't create a separate TOC entry for each blob, it's at much less risk of having enough TOC entries to cause real problems. 09 December 2010, 18:03:11 UTC
9975c68 Self review of previous patch. Fix assumption that xmax >= xmin. 09 December 2010, 10:20:49 UTC
b9075a6 Reduce spurious Hot Standby conflicts from never-visible records. Hot Standby conflicts only with tuples that were visible at some point. So ignore tuples from aborted transactions or for tuples updated/deleted during the inserting transaction when generating the conflict transaction ids. Following detailed analysis and test case by Noah Misch. Original report covered btree delete records, correctly observed by Heikki Linnakangas that this applies to other cases also. Fix covers all sources of cleanup records via common code. 09 December 2010, 09:41:47 UTC
576477e Force default wal_sync_method to be fdatasync on Linux. Recent versions of the Linux system header files cause xlogdefs.h to believe that open_datasync should be the default sync method, whereas formerly fdatasync was the default on Linux. open_datasync is a bad choice, first because it doesn't actually outperform fdatasync (in fact the reverse), and second because we try to use O_DIRECT with it, causing failures on certain filesystems (e.g., ext4 with data=journal option). This part of the patch is largely per a proposal from Marti Raudsepp. More extensive changes are likely to follow in HEAD, but this is as much change as we want to back-patch. Also clean up confusing code and incorrect documentation surrounding the fsync_writethrough option. Those changes shouldn't result in any actual behavioral change, but I chose to back-patch them anyway to keep the branches looking similar in this area. In 9.0 and HEAD, also do some copy-editing on the WAL Reliability documentation section. Back-patch to all supported branches, since any of them might get used on modern Linux versions. 09 December 2010, 01:01:09 UTC
e620ee3 Optimize commit_siblings in two ways to improve group commit. First, avoid scanning the whole ProcArray once we know there are at least commit_siblings active; second, skip the check altogether if commit_siblings = 0. Greg Smith 08 December 2010, 18:48:03 UTC
5a031a5 Fix bugs in the hot standby known-assigned-xids tracking logic. If there's an old transaction running in the master, and a lot of transactions have started and finished since, and a WAL-record is written in the gap between the creating the running-xacts snapshot and WAL-logging it, recovery will fail with "too many KnownAssignedXids" error. This bug was reported by Joachim Wieland on Nov 19th. In the same scenario, when fewer transactions have started so that all the xids fit in KnownAssignedXids despite the first bug, a more serious bug arises. We incorrectly initialize the clog code with the oldest still running transaction, and when we see the WAL record belonging to a transaction with an XID larger than one that committed already before the checkpoint we're recovering from, we zero the clog page containing the already committed transaction, leading to data loss. In hindsight, trying to track xids in the known-assigned-xids array before seeing the running-xacts record was too complicated. To fix that, hold XidGenLock while the running-xacts snapshot is taken and WAL-logged. That ensures that no transaction can begin or end in that gap, so that in recvoery we know that the snapshot contains all transactions running at that point in WAL. 07 December 2010, 08:23:30 UTC
8b56928 Add a stack overflow check to copyObject(). There are some code paths, such as SPI_execute(), where we invoke copyObject() on raw parse trees before doing parse analysis on them. Since the bison grammar is capable of building heavily nested parsetrees while itself using only minimal stack depth, this means that copyObject() can be the front-line function that hits stack overflow before anything else does. Accordingly, it had better have a check_stack_depth() call. I did a bit of performance testing and found that this slows down copyObject() by only a few percent, so the hit ought to be negligible in the context of complete processing of a query. Per off-list report from Toshihide Katayama. Back-patch to all supported branches. 07 December 2010, 03:55:43 UTC
af1a614 Allow the low level COPY routines to read arbitrary numbers of fields. This doesn't involve any user-visible change in behavior, but will be useful when the COPY routines are exposed to allow their use by Foreign Data Wrapper routines, which will be able to use these routines to read irregular CSV files, for example. 06 December 2010, 20:31:55 UTC
95e42a2 Fix two typos, by Fujii Masao. 06 December 2010, 11:38:05 UTC
951d786 Put only single space after "Sort Method:", for consistency 06 December 2010, 11:35:47 UTC
d1001a7 Reduce memory consumption inside inheritance_planner(). Avoid eating quite so much memory for large inheritance trees, by reclaiming the space used by temporary copies of the original parsetree and range table, as well as the workspace needed during planning. The cost is needing to copy the finished plan trees out of the child memory context. Although this looks like it ought to slow things down, my testing shows it actually is faster, apparently because fewer interactions with malloc() are needed and/or we can do the work within a more readily cacheable amount of memory. That result might be platform-dependent, but I'll take it. Per a gripe from John Papandriopoulos, in which it was pointed out that the memory consumption actually grew as O(N^2) for sufficiently many child tables, since we were creating N copies of the N-element range table. 05 December 2010, 20:10:28 UTC
d1f5a92 Fix two small bugs in new gistget.c logic. 1. Complain, rather than silently doing nothing, if an "invalid" tuple is found on a leaf page. Per off-list discussion with Heikki. 2. Fix oversight in code that removes a GISTSearchItem from the search queue: we have to reset lastHeap if this was the last heap item in the parent GISTSearchTreeItem. Otherwise subsequent additions will do the wrong thing. This was probably masked in early testing because in typical cases the parent item would now be completely empty and would be deleted on next call. You'd need a queued non-leaf page at exactly the same distance as a heap tuple to expose the bug. 04 December 2010, 18:47:08 UTC
387e468 Make output width consistent for all ways of invoking a regression test run_schedule() and run_single_test() were using different output widths, which would show up in bigcheck/bigtest, for example. 04 December 2010, 15:34:48 UTC
e194a94 Update comment to match later code changes. 04 December 2010, 08:21:49 UTC
b525bf7 Add KNNGIST support to contrib/pg_trgm. Teodor Sigaev, with some revision by Tom 04 December 2010, 05:16:21 UTC
b576757 Add external documentation for KNNGIST. 04 December 2010, 04:49:06 UTC
04910a3 Put back gistgettuple's check for backwards scan request. On reflection it's a bad idea for the KNNGIST patch to have removed that. We don't want it silently returning incorrect answers. 04 December 2010, 03:43:01 UTC
5545068 KNNGIST, otherwise known as order-by-operator support for GIST. This commit represents a rather heavily editorialized version of Teodor's builtin_knngist_itself-0.8.2 and builtin_knngist_proc-0.8.1 patches. I redid the opclass API to add a separate Distance method instead of turning the Consistent method into an illogical mess, fixed some bit-rot in the rbtree interfaces, and generally worked over the code style and comments. There's still no non-code documentation to speak of, but I'll work on that separately. Some contrib-module changes are also yet to come (right now, point <-> point is the only KNN-ified operator). Teodor Sigaev and Tom Lane 04 December 2010, 01:53:29 UTC
c0a4d3e Clarify that LOCK TABLE requires a table-level privilege. 03 December 2010, 14:29:14 UTC
5ef6c91 Remove now-outdated mention of quotes being required in recovery.conf. Noted by Itagaki Takahiro. 03 December 2010, 14:00:18 UTC
970a186 Use GUC lexer for recovery.conf parsing. This eliminates some crufty, special-purpose code and, as a non-trivial side benefit, allows recovery.conf parameters to be unquoted. Dimitri Fontaine, with review and cleanup by Alvaro Herrera, Itagaki Takahiro, and me. 03 December 2010, 13:56:44 UTC
9cea52a Remove misleading comments. Move _Clone and _DeClone functions before the "END OF FORMAT CALLBACKS" comment, because they are format callbacks too. 03 December 2010, 12:58:24 UTC
back to top