https://github.com/postgres/postgres

sort by:
Revision Author Date Message Commit Date
668396e tag 8.3.3 09 June 2008, 00:38:40 UTC
f1869c7 Stamp 8.3.3 (except for configure.in/configure) 08 June 2008, 22:14:09 UTC
c10ad86 Update release notes for ALTER AGGREGATE fix. 08 June 2008, 21:46:16 UTC
54dd1ff ALTER AGGREGATE OWNER seems to have been missed by the last couple of patches that dealt with object ownership. It wasn't updating pg_shdepend nor adjusting the aggregate's ACL. In 8.2 and up, fix this permanently by making it use AlterFunctionOwner_oid. In 8.1, the function code wasn't factored that way, so just copy and paste. 08 June 2008, 21:09:52 UTC
bab4c41 Update release notes for 8.3.3 et al. 07 June 2008, 22:10:47 UTC
1bec411 Fix pg_get_ruledef() so that negative numeric constants are parenthesized. This is needed because :: casting binds more tightly than minus, so for example -1::integer is not the same as (-1)::integer, and there are cases where the difference is important. In particular this caused a failure in SELECT DISTINCT ... ORDER BY ... where expressions that should have matched were seen as different by the parser; but I suspect that there could be other cases where failure to parenthesize leads to subtler semantic differences in reloaded rules. Per report from Alexandr Popov. 06 June 2008, 17:59:37 UTC
21cb675 tag for 8.3.2 06 June 2008, 03:56:39 UTC
6deaeb3 Stamp 8.3.2 (except for configure.in/configure) 05 June 2008, 23:55:26 UTC
2d28965 Translation updates. 05 June 2008, 23:36:45 UTC
4b79171 Fix missing "not", per Frank Millman (bug #4212). 05 June 2008, 19:56:14 UTC
bf3bf90 Added symbol SQL to list of allowed variables. 04 June 2008, 12:26:14 UTC
ad6acfd Draft release notes for upcoming back-branch updates. 04 June 2008, 03:16:11 UTC
3ea40a1 Remove unused variable (was already done in HEAD) 03 June 2008, 20:55:41 UTC
bc0c7e9 Fix initdb to reject a relative path for -X (--xlogdir) argument. This doesn't work, and the real reason why not is it's unclear where the path is relative to (initdb's CWD, or the data directory?). We could make an arbitrary decision, but it seems best to make the user be unambiguous. Per gripe from Devrim. 02 June 2008, 03:48:07 UTC
77241fe Update time zone data files to tzdata release 2008c (DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, Argentina/San_Luis). 01 June 2008, 18:23:07 UTC
8146f89 Make 8.3.x psql print tab characters as an appropriate number of spaces, rather than "\x09". Before 8.3 we just printed tabs as-is, leading to poor formatting of subsequent columns, but consensus is that "\x09" is not an improvement over that. Back-patch of fix that's already in HEAD. 29 May 2008, 19:34:44 UTC
fe4f286 Fix some bugs introduced by the 8.2-era conversion of cube functions to V1 calling convention. cube_inter and cube_distance could attempt to pfree their input arguments, and cube_dim returned a value from a struct it might have just pfree'd (which would only really cause a problem in a debug build, but it's still wrong). Per bug #4208 and additional code reading. In HEAD and 8.3, I also made a batch of cosmetic changes to bring these functions into line with the preferred coding style for V1 functions, ie declare and fetch all the arguments at the top so readers can easily see what they are. 29 May 2008, 18:46:46 UTC
f26cbca Backpatch Zdenek Kotala's fix to prevent pglz_decompress from stomping on memory if the compressed data is corrupt. Backpatch as far as 8.2. The issue exists in older branches too, but given the lack of field reports, it's not clear it's worth any additional effort to adapt the patch to the slightly different code in older branches. 28 May 2008, 21:58:03 UTC
85a24f0 Improve GRANT documentation to point out that UPDATE and DELETE typically require SELECT privilege as well, since you normally need to read existing column values within such commands. This behavior is according to spec, but we'd never documented it before. Per gripe from Volkan Yazici. 28 May 2008, 00:45:47 UTC
dcab19c Require bind_textdomain_codeset() not just gettext() to enable NLS support. GNU gettext before 0.10.36 does not have that function, and is generally too incomplete to be usable. 27 May 2008, 22:18:11 UTC
764b10c Clarify description of typmod input function, per Jeff Davis. 27 May 2008, 18:05:20 UTC
4bdc742 Explicitly bind gettext() to the UTF8 locale when in use. This is required on Windows due to the special locale handling for UTF8 that doesn't change the full environment. Fixes crash with translated error messages per bugs 4180 and 4196. Tom Lane 27 May 2008, 12:24:46 UTC
ed91252 Fix an old corner-case bug in set_config_option: push_old_value has to be called before, not after, calling the assign_hook if any. This is because push_old_value might fail (due to palloc out-of-memory), and in that case there would be no stack entry to tell transaction abort to undo the GUC assignment. Of course the actual assignment to the GUC variable hasn't happened yet --- but the assign_hook might have altered subsidiary state. Without a stack entry we won't call it again to make it undo such actions. So this is necessary to make the world safe for assign_hooks with side effects. Per a discussion a couple weeks ago with Magnus. Back-patch to 8.0. 7.x did not have the problem because it did not have allocatable stacks of GUC values. 26 May 2008, 18:54:36 UTC
888706a Adjust timestamp regression tests to prevent two low-probability failure cases. Recent buildfarm experience shows that it is sometimes possible to execute several SQL commands in less time than the granularity of Windows' not-very-high-resolution gettimeofday(), leading to a failure because the tests expect the value of now() to change and it doesn't. Also, it was recognized some time ago that the same area of the tests could fail if local midnight passes between the insertion and the checking of the values for 'yesterday', 'tomorrow', etc. Clean all this up per ideas from myself and Greg Stark. There remains a window for failure if the transaction block is entered exactly at local midnight (so that 'now' and 'today' have the same value), but that seems low-probability enough to live with. Since the point of this change is mostly to eliminate buildfarm noise, back-patch to all versions we are still actively testing. 25 May 2008, 21:51:11 UTC
2035da3 Remove arbitrary 10MB limit on two-phase state file size. It's not that hard to go beoynd 10MB, as demonstrated by Gavin Sharry's example of dropping a schema with ~25000 objects. The really bogus thing about the limit was that it was enforced when a state file file was read in, not when it was written, so you would end up with a prepared transaction that you can't commit or abort, and the only recourse was to shut down the server and remove the file by hand. Raise the limit to MaxAllocSize, and enforce it also when a state file is written. We could've removed the limit altogether, but reading in a file larger than MaxAllocSize would fail anyway because we read it into a palloc'd buffer. Backpatch down to 8.1, where 2PC and this issue was introduced. 19 May 2008, 18:16:46 UTC
7e1cb82 Coercion sanity check in ri_HashCompareOp failed to allow for enums, as per example from Rod Taylor. On reflection the correct test here is for any polymorphic type, not specifically ANYARRAY as in the original coding. 19 May 2008, 04:14:33 UTC
2d7a219 Add code to eval_const_expressions() to support const-simplification of CoerceViaIO nodes. This improves the ability of the planner to deal with cases where the node input is a constant. Per bug #4170. 15 May 2008, 17:37:57 UTC
53397b1 Don't try to close negative file descriptors, since this can cause crashes on certain platforms. In particular, the MSVC runtime is known to do this. Fixes bug #4162, reported and diagnosed by Javier Pimas 13 May 2008, 20:54:02 UTC
f496eb3 Check for non-existant connection in prepare statement handling. Do not close files that weren't opened. 12 May 2008, 16:30:17 UTC
cc22720 Backpatch fixes for contrib makefiles. 10 May 2008, 16:07:56 UTC
2773195 Fix an ancient oversight in change_varattnos_of_a_node: it neglected to update varoattno along with varattno. This resulted in having Vars that were not seen as equal(), causing inheritance of the "same" constraint from different parent relations to fail. An example is create table pp1 (f1 int check (f1>0)); create table cc1 (f2 text, f3 int) inherits (pp1); create table cc2(f4 float) inherits(pp1,cc1); Backpatch as far as 7.4. (The test case still fails in 7.4, for reasons that I don't feel like investigating at the moment.) This is a backpatch commit only. The fix will be applied in HEAD as part of the upcoming pg_constraint patch. 09 May 2008, 22:37:34 UTC
1a10736 Fix Assert introduced in previous patch. 09 May 2008, 15:28:01 UTC
48bf664 Fix incorrect archive truncation point calculation in the %r recovery_command parameter. This fixes bug 4137 reported by Wojciech Strzalka, where a WAL file is deleted too early when starting the recovery of a warm standby server. Also add a sanity check in pg_standby so that it will refuse to delete anything earlier than the file being restored, and improve the debug message in case nothing is deleted. Simon Riggs. Backpatch to 8.3, which is where %r was introduced. 09 May 2008, 14:28:08 UTC
65a1e96 Fix contrib/xml2 makefile to not override CFLAGS, and in passing make it auto-configure properly for libxslt present or not. 08 May 2008, 16:49:48 UTC
d67134d Add Simon Riggs' email address. 07 May 2008, 22:06:11 UTC
2804eb2 Add more dependencies from libpgport required by standalone msvc build of libpq. Hiroshi Saito 05 May 2008, 19:31:45 UTC
5c27e39 The 8.2 patch that added support for an alias on the target table of UPDATE/DELETE forgot to teach ruleutils.c to display the alias. Per bug #4141 from Mathias Seiler. 03 May 2008, 23:19:27 UTC
90cdbe4 Fix nodeTidscan.c to not trigger an error if the block number portion of a user-supplied TID is out of range for the relation. This is needed to preserve compatibility with our pre-8.3 behavior, and it is sensible anyway since if the query were implemented by brute force rather than optimized into a TidScan, the behavior for a non-existent TID would be zero rows out, never an error. Per gripe from Gurjeet Singh. 30 April 2008, 23:28:37 UTC
6750c7a Fix REASSIGN OWNED so that it works on procedural languages too. The capability for changing language owners is new in 8.3, so that's how far back this needs to be backpatched. Per bug #4132 by Kirill Simonov. 29 April 2008, 19:37:13 UTC
8209e1a Fix broken configure test for libxslt: it was probing for xsltLibxmlVersion, which is a global variable not a function, and so the probe failed on machines where the linker makes a distinction (cf. Red Hat bug #444317). Probe for an actual function instead. 28 April 2008, 22:47:11 UTC
f7288cd Back-patch Heikki's fix to make TransactionIdIsCurrentTransactionId() use binary search instead of linear search when checking child-transaction XIDs. Per example from Robert Treat, the speed of TransactionIdIsCurrentTransactionId is significantly more important in 8.3 than it was in prior releases, so this seems worth taking back-patching risk for. 26 April 2008, 23:35:33 UTC
701e71c Fix ALTER TABLE ADD COLUMN ... PRIMARY KEY so that the new column is correctly checked to see if it's been initialized to all non-nulls. The implicit NOT NULL constraint was not being checked during the ALTER (in fact, not even if there was an explicit NOT NULL too), because ATExecAddColumn neglected to set the flag needed to make the test happen. This has been broken since the capability was first added, in 8.0. Brendan Jurd, per a report from Kaloyan Iliev. 24 April 2008, 20:17:59 UTC
dcd4075 Fix using too many LWLocks bug, reported by Craig Ringer <craig@postnewspapers.com.au>. It was my mistake, I missed limitation of number of held locks, now GIN doesn't use continiuous locks, but still hold buffers pinned to prevent interference with vacuum's deletion algorithm. 22 April 2008, 17:54:19 UTC
cebc3c4 Replace developer FAQ with a reference to the wiki, which is where it now lives (per discussion). Leave the other FAQs alone for now. 22 April 2008, 09:26:45 UTC
5f26db5 Fix convert_IN_to_join to properly handle the case where the subselect's output is not of the same type that's needed for the IN comparison (ie, where the parser inserted an implicit coercion above the subselect result). We should record the coerced expression, not just a raw Var referencing the subselect output, as the quantity that needs to be unique-ified if we choose to implement the IN as Unique followed by a plain join. As of 8.3 this error was causing crashes, as seen in bug #4113 from Javier Hernandez, because the executor was being told to hash or sort the raw subselect output column using operators appropriate to the coerced type. In prior versions there was no crash because the executor chose the hash or sort operators for itself based on the column type it saw. However, that's still not really right, because what's unique for one data type might not be unique for another. In corner cases we could get multiple outputs of a row that should appear only once, as demonstrated by the regression test case included in this commit. However, this patch doesn't apply cleanly to 8.2 or before, and the code involved has shifted enough over time that I'm hesitant to try to back-patch. Given the lack of complaints from the field about such corner cases, I think the bug may not be important enough to risk breaking other things with a back-patch. 21 April 2008, 20:54:24 UTC
2b63d64 Fix typo, noted by Stefan Kaltenbrunner. 21 April 2008, 11:06:23 UTC
117f3a8 Add link to major version release notes at the top of the minor version ones, to make it clear to users just browsing the notes that there are a lot more changes available from whatever version they are at than what's in the minor version release notes. 21 April 2008, 09:45:20 UTC
86c6538 Fix a couple of places in execMain that erroneously assumed that SELECT FOR UPDATE/SHARE couldn't occur as a subquery in a query with a non-SELECT top-level operation. Symptoms included outright failure (as in report from Mark Mielke) and silently neglecting to take the requested row locks. Back-patch to 8.3, because the visible failure in the INSERT ... SELECT case is a regression from 8.2. I'm a bit hesitant to back-patch further given the lack of field complaints. 21 April 2008, 03:49:51 UTC
254d66e Fix broken compare function for tsquery_ops. Per Tom's report. I never understood why initial authors GiST in pgsql choose so stgrange signature for 'same' method: bool *sameFn(Datum a, Datum b, bool* result) instead of simple, logical bool sameFn(Datum a, Datum b) This change will break any existing GiST extension, so we still live with it and will live. 20 April 2008, 09:29:48 UTC
2101518 Fix rmtree() so that it keeps going after failure to remove any individual file; the idea is that we should clean up as much as we can, even if there's some problem removing one file. Make the error messages a bit less misleading, too. In passing, const-ify function arguments. 18 April 2008, 17:05:53 UTC
b8c5823 Fix two race conditions between the pending unlink mechanism that was put in place to prevent reusing relation OIDs before next checkpoint, and DROP DATABASE. First, if a database was dropped, bgwriter would still try to unlink the files that the rmtree() call by the DROP DATABASE command has already deleted, or is just about to delete. Second, if a database is dropped, and another database is created with the same OID, bgwriter would in the worst case delete a relation in the new database that happened to get the same OID as a dropped relation in the old database. To fix these race conditions: - make rmtree() ignore ENOENT errors. This fixes the 1st race condition. - make ForgetDatabaseFsyncRequests forget unlink requests as well. - force checkpoint on in dropdb on all platforms Since ForgetDatabaseFsyncRequests() is asynchronous, the 2nd change isn't enough on its own to fix the problem of dropping and creating a database with same OID, but forcing a checkpoint on DROP DATABASE makes it sufficient. Per Tom Lane's bug report and proposal. Backpatch to 8.3. 18 April 2008, 06:48:50 UTC
d64a547 Fix a couple of oversights associated with the "physical tlist" optimization: we had several code paths where a physical tlist could be used for the input to a Sort node, which is a dumb idea because any unneeded table columns will increase the volume of data the sort has to push around. (Unfortunately the easy-looking fix of calling disuse_physical_tlist during make_sort_xxx doesn't work because in most cases we're already committed to the current input tlist --- it's been marked with sort column numbers, or we've built grouping column numbers using it, etc. The tlist has to be selected properly at the calling level before we start constructing sort-col information. This is easy enough to do, we were just failing to take the point into consideration.) Back-patch to 8.3. I believe the problem probably exists clear back to 7.4 when the physical tlist optimization was added, but I'm afraid to back-patch further than 8.3 without a great deal more study than I want to put into it. The code in this area has drifted a lot over time. The real-world importance of these code paths is uncertain anyway --- I think in many cases we'd probably prefer hash-based methods. 17 April 2008, 21:22:23 UTC
d5249bb Repair two places where SIGTERM exit could leave shared memory state corrupted. (Neither is very important if SIGTERM is used to shut down the whole database cluster together, but there's a problem if someone tries to SIGTERM individual backends.) To do this, introduce new infrastructure macros PG_ENSURE_ERROR_CLEANUP/PG_END_ENSURE_ERROR_CLEANUP that take care of transiently pushing an on_shmem_exit cleanup hook. Also use this method for createdb cleanup --- that wasn't a shared-memory-corruption problem, but SIGTERM abort of createdb could leave orphaned files lying around. Backpatch as far as 8.2. The shmem corruption cases don't exist in 8.1, and the createdb usage doesn't seem important enough to risk backpatching further. 16 April 2008, 23:59:51 UTC
95b7a87 Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system index it is trying to build a relcache entry for. This is an oversight in my 8.2 patch that tried to ensure we always took a lock on a relation before trying to build its relcache entry. The implication is that if someone committed a reindex of a critical system index at about the same time that some other backend were starting up without a valid pg_internal.init file, the second one might PANIC due to not seeing any valid version of the index's pg_class row. Improbable case, but definitely not impossible. 16 April 2008, 18:23:12 UTC
547f61f Avoid using unnecessary pgwin32_safestat in libpq. 16 April 2008, 14:21:23 UTC
990344b Add multi-line flag to regex that needs it. Backpatch to 8.2. Fix from Andreas Zeugswetter 15 April 2008, 16:23:21 UTC
0b7afed A quick try at un-breaking the Cygwin build. Whether it needs the pgwin32_safestat remains to be determined, but in any case the current code is not tolerable. 11 April 2008, 23:59:49 UTC
5629541 Fix several datatype input functions that were allowing unused bytes in their results to contain uninitialized, unpredictable values. While this was okay as far as the datatypes themselves were concerned, it's a problem for the parser because occurrences of the "same" literal might not be recognized as equal by datumIsEqual (and hence not by equal()). It seems sufficient to fix this in the input functions since the only critical use of equal() is in the parser's comparisons of ORDER BY and DISTINCT expressions. Per a trouble report from Marc Cousin. Patch all the way back. Interestingly, array_in did not have the bug before 8.2, which may explain why the issue went unnoticed for so long. 11 April 2008, 22:52:17 UTC
36146d4 Create wrapper pgwin32_safestat() and redefine stat() to it on win32, because the stat() function in the runtime cannot be trusted to always update the st_size field. Per report and research by Sergey Zubkovsky. 10 April 2008, 16:59:10 UTC
4fcff62 Fixed bug in PGTYPEStimestamp_sub that used pointers instead of the values to substract. 10 April 2008, 10:46:22 UTC
1c3722f Fix tsvector_update_trigger() to be domain-friendly: it needs to allow all the columns it works with to be domains over the expected type, not just exactly the expected type. In passing, fix ts_stat() the same way. Per report from Markus Wollny. 08 April 2008, 18:20:34 UTC
5e8146c Defend against JOINs having more than 32K columns altogether. We cannot currently support this because we must be able to build Vars referencing join columns, and varattno is only 16 bits wide. Perhaps this should be improved in future, but considering that it never came up before, I'm not sure the problem is worth much effort. Per bug #4070 from Marcello Ceschia. The problem seems largely academic in 8.0 and 7.4, because they have (different) O(N^2) performance issues with such wide joins, but back-patch all the way anyway. 05 April 2008, 01:58:28 UTC
affdd52 Teach ANALYZE to distinguish dead and in-doubt tuples, which it formerly classed all as "dead"; also get it to count DEAD item pointers as dead rows, instead of ignoring them as before. Also improve matters so that tuples previously inserted or deleted by our own transaction are handled nicely: the stats collector's live-tuple and dead-tuple counts will end up correct after our transaction ends, regardless of whether we end in commit or abort. While there's more work that could be done to improve the counting of in-doubt tuples in both VACUUM and ANALYZE, this commit is enough to alleviate some known bad behaviors in 8.3; and the other stuff that's been discussed seems like research projects anyway. Pavan Deolasee and Tom Lane 03 April 2008, 16:27:32 UTC
db6c80d Remove -C from rsync call, because it omits directories named "core". 03 April 2008, 09:51:53 UTC
ab2071b Revert my bad decision of about a year ago to make PortalDefineQuery responsible for copying the query string into the new Portal. Such copying is unnecessary in the common code path through exec_simple_query, and in this case it can be enormously expensive because the string might contain a large number of individual commands; we were copying the entire, long string for each command, resulting in O(N^2) behavior for N commands. (This is the cause of bug #4079.) A second problem with it is that PortalDefineQuery really can't risk error, because if it elog's before having set up the Portal, we will leak the plancache refcount that the caller is trying to hand off to the portal. So go back to the design in which the caller is responsible for making sure everything is copied into the portal if necessary. 02 April 2008, 18:32:00 UTC
e3a4748 Fix an oversight I made in a cleanup patch over a year ago: eval_const_expressions needs to be passed the PlannerInfo ("root") structure, because in some cases we want it to substitute values for Param nodes. (So "constant" is not so constant as all that ...) This mistake partially disabled optimization of unnamed extended-Query statements in 8.3: in particular the LIKE-to-indexscan optimization would never be applied if the LIKE pattern was passed as a parameter, and constraint exclusion depending on a parameter value didn't work either. 01 April 2008, 00:48:44 UTC
f82277c Apply my original fix for Taiki Yamaguchi's bug report about DISTINCT MAX(). Add some regression tests for plausible failures in this area. 31 March 2008, 16:59:33 UTC
793c583 Fix a number of places that were making file-type tests infelicitously. The places that did, eg, (statbuf.st_mode & S_IFMT) == S_IFDIR were correct, but there is no good reason not to use S_ISDIR() instead, especially when that's what the other 90% of our code does. The places that did, eg, (statbuf.st_mode & S_IFDIR) were flat out *wrong* and would fail in various platform-specific ways, eg a symlink could be mistaken for a regular file on most Unixen. The actual impact of this is probably small, since the problem cases seem to always involve symlinks or sockets, which are unlikely to be found in the directories that PG code might be scanning. But it's clearly trouble waiting to happen, so patch all the way back anyway. (There seem to be no occurrences of the mistake in 7.4.) 31 March 2008, 01:32:01 UTC
92c3a80 Revert my erroneous fix for Taiki Yamaguchi's DISTINCT MAX() bug. Whatever we do about that, this isn't the path to the solution. 29 March 2008, 00:15:37 UTC
707867e When we have successfully optimized a MIN or MAX aggregate into an indexscan, the query result must be exactly one row (since we don't do this when there's any GROUP BY). Therefore any ORDER BY or DISTINCT attached to the query is useless and can be dropped. Aside from saving useless cycles, this protects us against problems with matching the hacked-up tlist entries to sort clauses, as seen in a bug report from Taiki Yamaguchi. We might need to work harder if we ever try to optimize grouped queries with this approach, but this solution will do for now. 27 March 2008, 19:06:23 UTC
1c0e618 Include \password in the psql help. While at it, change the order of the documented options to be alphabetically again. 26 March 2008, 15:52:36 UTC
a07375e Fix core dump in contrib/xml2's xpath_table() when the input query returns a NULL value. Per bug #4058. 26 March 2008, 01:19:11 UTC
e5fab26 added ECPGget_PGconn to exports.txt 25 March 2008, 12:45:33 UTC
6644be6 When a relation has been proven empty by constraint exclusion, propagate that knowledge up through any joins it participates in. We were doing that already in some special cases but not in the general case. Also, defend against zero row estimates for the input relations in cost_mergejoin --- this fix may have eliminated the only scenario in which that can happen, but be safe. Per report from Alex Solovey. 24 March 2008, 21:53:12 UTC
63995f0 Fix various infelicities that have snuck into usage of errdetail() and friends. Avoid double translation of some messages, ensure other messages are exposed for translation (and make them follow the style guidelines), avoid unsafe passing of an unpredictable message text as a format string. 24 March 2008, 19:12:58 UTC
4866b52 Corrected version number. 21 March 2008, 16:10:10 UTC
94a7105 Added ECPGget_PGconn() function to ecpglib, courtesy of Mike Aubury. Bumped library version to 6.1. 20 March 2008, 16:30:14 UTC
6a78d75 Changed statement escaping to not escape continuation line markers. Bumped precompiler patchlevel. 20 March 2008, 16:04:52 UTC
59c4fc5 Add the missing cyrillic "Yo" characters ('e' and 'E' with two dots) to the ISO_8859-5 <-> MULE_INTERNAL conversion tables. This was discovered when trying to convert a string containing those characters from ISO_8859-5 to Windows-1251, because we use MULE_INTERNAL/KOI8R as an intermediate encoding between those two. While the missing "Yo" was just an omission in the conversion tables, there are a few other characters like the "Numero" sign ("No" as a single character) that exists in all the other cyrillic encodings (win1251, ISO_8859-5 and cp866), but not in KOI8R. Added comments about that. Patch by Sergey Burladyan. Back-patch to 7.4. 20 March 2008, 10:35:45 UTC
7c5fcbf Fix regexp substring matching (substring(string from pattern)) for the corner case where there is a match to the pattern overall but the user has specified a parenthesized subexpression and that subexpression hasn't got a match. An example is substring('foo' from 'foo(bar)?'). This should return NULL, since (bar) isn't matched, but it was mistakenly returning the whole-pattern match instead (ie, 'foo'). Per bug #4044 from Rui Martins. This has been broken since the beginning; patch in all supported versions. The old behavior was sufficiently inconsistent that it's impossible to believe anyone is depending on it. 19 March 2008, 02:40:43 UTC
9217c26 cvsweb lives on anoncvs.postgresql.org these days. 18 March 2008, 16:05:09 UTC
b4a2dae Wiki page about cvs now lives in the main wiki, the one on developer.postgresql.org is going away. 18 March 2008, 16:02:29 UTC
2059a5a Fix inappropriately-timed memory context switch in autovacuum_do_vac_analyze. This accidentally failed to fail before 8.3, because the context we were switching back to was long-lived anyway; but it sure looks risky as can be now. Well spotted by Pavan Deolasee. 14 March 2008, 23:49:33 UTC
e5ecea0 Fix duplicate word, per Guillaume Lelarge. 14 March 2008, 17:28:24 UTC
9c37a48 Fix vacuum so that autovacuum is really not cancelled when doing an emergency job (i.e. to prevent Xid wraparound problems.) Bug reported by ITAGAKI Takahiro in 20080314103837.63D3.52131E4D@oss.ntt.co.jp, though I didn't use his patch. 14 March 2008, 17:26:01 UTC
c666edb Translation updates 14 March 2008, 04:46:30 UTC
fdd23cd update configure for 8.3.1 prior to tag 14 March 2008, 03:23:22 UTC
eb66892 Stamp version 8.3.1, except for configure.in/configure. 13 March 2008, 23:57:34 UTC
8de5f59 Update release notes for 8.3.1 and 8.2.7 releases. 13 March 2008, 23:47:59 UTC
1cf866a Update to tzdata 2008a distribution (Chilean DST law change). 13 March 2008, 19:21:49 UTC
96e420a Fix varstr_cmp's special case for UTF8 encoding on Windows so that strings that are reported as "equal" by wcscoll() are checked to see if they really are bitwise equal, and are sorted per strcmp() if not. We made this happen a couple of years ago in the regular code path, but it unaccountably got left out of the Windows/UTF8 case (probably brain fade on my part at the time). As in the prior set of changes, affected users may need to reindex indexes on textual columns. Backpatch as far as 8.2, which is the oldest release we are still supporting on Windows. 13 March 2008, 18:32:02 UTC
8efc131 Fix heap_page_prune's problem with failing to send cache invalidation messages if the calling transaction aborts later on. Collapsing out line pointer redirects is a done deal as soon as we complete the page update, so syscache *must* be notified even if the VACUUM FULL as a whole doesn't complete. To fix, add some functionality to inval.c to allow the pending inval messages to be sent immediately while heap_page_prune is still running. The implementation is a bit chintzy: it will only work in the context of VACUUM FULL. But that's all we need now, and it can always be extended later if needed. Per my trouble report of a week ago. 13 March 2008, 18:00:39 UTC
1dd56fd Fix pg_plan_queries() to restore the previous setting of ActiveSnapshot (probably NULL) before exiting. Up to now it's just left the variable as it set it, which means that after we're done processing the current client message, ActiveSnapshot is probably pointing at garbage (because this function is typically run in MessageContext which will get reset). There doesn't seem to have been any code path in which that mattered before 8.3, but now the plancache module might try to use the stale value if the next client message is a Bind for a prepared statement that is in need of replanning. Per report from Alex Hunsaker. 12 March 2008, 23:58:35 UTC
d2ab94d Fix LISTEN/NOTIFY race condition reported by Laurent Birtz, by postponing pg_listener modifications commanded by LISTEN and UNLISTEN until the end of the current transaction. This allows us to hold the ExclusiveLock on pg_listener until after commit, with no greater risk of deadlock than there was before. Aside from fixing the race condition, this gets rid of a truly ugly kludge that was there before, namely having to ignore HeapTupleBeingUpdated failures during NOTIFY. There is a small potential incompatibility, which is that if a transaction issues LISTEN or UNLISTEN and then looks into pg_listener before committing, it won't see any resulting row insertion or deletion, where before it would have. It seems unlikely that anyone would be depending on that, though. This patch also disallows LISTEN and UNLISTEN inside a prepared transaction. That case had some pretty undesirable properties already, such as possibly allowing pg_listener entries to be made for PIDs no longer present, so disallowing it seems like a better idea than trying to maintain the behavior. 12 March 2008, 20:11:54 UTC
32aaf48 Add to documentation: + Setting <varname>statement_timeout</> in + <filename>postgresql.conf</> is not recommended because it + affects all sessions. Backpatch to 8.3.X. 11 March 2008, 16:59:09 UTC
ff0e149 Back out doc addition that statement_timeout affects autovacuum. 11 March 2008, 15:49:52 UTC
3d5bc6d Document that statement_timeout is not recommended in postgresql.conf because it affects all sessions, including autovacuum. 11 March 2008, 15:39:33 UTC
899b9c3 Use -fwrapv in CFLAGS if we are using a version of gcc that accepts this flag. This prevents compiler optimizations that assume overflow won't occur, which breaks numerous overflow tests that we need to have working. It is known that gcc 4.3 causes problems and possible that 4.1 does. Per my proposal of some time ago and a recent report from Kris Jurka. Backpatch as far as 8.0, which is as far as the patch conveniently goes. 7.x was pretty short of overflow tests anyway, so it may not matter there, even assuming that anyone cares whether 7.x builds on recent gcc. 10 March 2008, 21:50:23 UTC
d19d354 Revert changes of CompareTSQ: it affects existing btree indexes. 09 March 2008, 10:42:48 UTC
f647ed4 Refactor heap_page_prune so that instead of changing item states on-the-fly, it accumulates the set of changes to be made and then applies them. It had to accumulate the set of changes anyway to prepare a WAL record for the pruning action, so this isn't an enormous change; the only new complexity is to not doubly mark tuples that are visited twice in the scan. The main advantage is that we can substantially reduce the scope of the critical section in which the changes are applied, thus avoiding PANIC in foreseeable cases like running out of memory in inval.c. A nice secondary advantage is that it is now far clearer that WAL replay will actually do the same thing that the original pruning did. This commit doesn't do anything about the open problem that CacheInvalidateHeapTuple doesn't have the right semantics for a CTID change caused by collapsing out a redirect pointer. But whatever we do about that, it'll be a good idea to not do it inside a critical section. 08 March 2008, 21:58:07 UTC
back to top