summaryrefslogtreecommitdiff
path: root/src/include
AgeCommit message (Collapse)Author
2007-02-07Stamp releases 8.2.3, 8.1.8, 8.0.12. No release notes yet.Bruce Momjian
2007-02-02Stamp release 8.0.11.REL8_0_11Tom Lane
Security: CVE-2007-0555, CVE-2007-0556
2007-01-05Stamp release 8.0.10.Bruce Momjian
2007-01-03Fix regex_fixed_prefix() to cope reasonably well with regex patterns of theTom Lane
form '^(foo)$'. Before, these could never be optimized into indexscans. The recent changes to make psql and pg_dump generate such patterns (for \d commands and -t and related switches, respectively) therefore represented a big performance hit for people with large pg_class catalogs, as seen in recent gripe from Erik Jones. While at it, be more paranoid about case-sensitivity checking in multibyte encodings, and fix some other corner cases in which a regex might be interpreted too liberally.
2006-11-28Mark to_number() and the numeric-type variants of to_char() as stable, notTom Lane
immutable, because their results depend on lc_numeric; this is a longstanding oversight. We cannot force initdb for this in the back branches, but we can at least provide correct catalog entries for future installations.
2006-10-09Stamp releases 7.3.16, 7.4.14, 8.0.9, and 8.1.5.Bruce Momjian
2006-10-06Fix SysCacheGetAttr() to handle the case where the specified syscache has notTom Lane
been initialized yet. This can happen because there are code paths that call SysCacheGetAttr() on a tuple originally fetched from a different syscache (hopefully on the same catalog) than the one specified in the call. It doesn't seem useful or robust to try to prevent that from happening, so just improve the function to cope instead. Per bug#2678 from Jeff Trout. The specific example shown by Jeff is new in 8.1, but to be on the safe side I'm backpatching 8.0 as well. We could patch 7.x similarly but I think that's probably overkill, given the lack of evidence of old bugs of this ilk.
2006-05-21Stamp releases 7.3.15, 7.4.13, and 8.0.8.Bruce Momjian
2006-05-21Add a new GUC parameter backslash_quote, which determines whether the SQLTom Lane
parser will allow "\'" to be used to represent a literal quote mark. The "\'" representation has been deprecated for some time in favor of the SQL-standard representation "''" (two single quote marks), but it has been used often enough that just disallowing it immediately won't do. Hence backslash_quote allows the settings "on", "off", and "safe_encoding", the last meaning to allow "\'" only if client_encoding is a valid server encoding. That is now the default, and the reason is that in encodings such as SJIS that allow 0x5c (ASCII backslash) to be the last byte of a multibyte character, accepting "\'" allows SQL-injection attacks as per CVE-2006-2314 (further details will be published after release). The "on" setting is available for backward compatibility, but it must not be used with clients that are exposed to untrusted input. Thanks to Akio Ishida and Yasuo Ohgaki for identifying this security issue.
2006-05-21Change the backend to reject strings containing invalidly-encoded multibyteTom Lane
characters in all cases. Formerly we mostly just threw warnings for invalid input, and failed to detect it at all if no encoding conversion was required. The tighter check is needed to defend against SQL-injection attacks as per CVE-2006-2313 (further details will be published after release). Embedded zero (null) bytes will be rejected as well. The checks are applied during input to the backend (receipt from client or COPY IN), so it no longer seems necessary to check in textin() and related routines; any string arriving at those functions will already have been validated. Conversion failure reporting (for characters with no equivalent in the destination encoding) has been cleaned up and made consistent while at it. Also, fix a few longstanding errors in little-used encoding conversion routines: win1251_to_iso, win866_to_iso, euc_tw_to_big5, euc_tw_to_mic, mic_to_euc_tw were all broken to varying extents. Patches by Tatsuo Ishii and Tom Lane. Thanks to Akio Ishida and Yasuo Ohgaki for identifying the security issues.
2006-03-05Check for "msys" so it doesn't use 'con' by checking for an evironmentBruce Momjian
variable.
2006-03-04Use DEVTTY as 'con' on Win32 as a replacement for /dev/tty.Bruce Momjian
2006-02-12Fix bug in SET SESSION AUTHORIZATION that allows unprivileged users to crashTom Lane
the server, if it has been compiled with Asserts enabled (CVE-2006-0553). Thanks to Akio Ishida for reporting this problem.
2006-02-12Stamp releases for 2006-02-14 releaseBruce Momjian
2006-02-10Change search for default operator classes so that it examines all opclassesTom Lane
regardless of the current schema search path. Since CREATE OPERATOR CLASS only allows one default opclass per datatype regardless of schemas, this should have minimal impact, and it fixes problems with failure to find a desired opclass while restoring dump files. Per discussion at http://archives.postgresql.org/pgsql-hackers/2006-02/msg00284.php. Remove now-redundant-or-unused code in typcache.c and namespace.c, and backpatch as far as 8.0.
2006-02-01Set progname early in the postmaster/postgres binary, rather than doingBruce Momjian
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. Also alway strdup() progname. Backpatch to 8.1.X and 8.0.X.
2006-01-19It turns out that TablespaceCreateDbspace fails badly if a relcache flushTom Lane
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.
2006-01-12Repair "Halloween problem" in EvalPlanQual: a tuple that's been inserted byTom Lane
our own command (or more generally, xmin = our xact and cmin >= current command ID) should not be seen as good. Else we may try to update rows we already updated. This error was inserted last August while fixing the even bigger problem that the old coding wouldn't see *any* tuples inserted by our own transaction as good. Per report from Euler Taveira de Oliveira.
2006-01-05Stamp relesae 8.0.6.Bruce Momjian
2006-01-05Arrange to set the LC_XXX environment variables to match our locale setup.Tom Lane
Back-patch of previous fix in HEAD for plperl-vs-locale issue.
2005-12-14Defend against crash while processing Describe Statement or Describe PortalTom Lane
messages, when client attempts to execute these outside a transaction (start one) or in a failed transaction (reject message, except for COMMIT/ROLLBACK statements which we can handle). Per report from Francisco Figueiredo Jr.
2005-12-09Stamp 8.0.5.Tom Lane
2005-11-05Repair an error introduced by log_line_prefix patch: it is not acceptableTom Lane
to assume that the string pointer passed to set_ps_display is good forever. There's no need to anyway since ps_status.c itself saves the string, and we already had an API (get_ps_display) to return it. I believe this explains Jim Nasby's report of intermittent crashes in elog.c when %i format code is in use in log_line_prefix. While at it, repair a previously unnoticed problem: on some platforms such as Darwin, the string returned by get_ps_display was blank-padded to the maximum length, meaning that lock.c's attempt to append " waiting" to it never worked.
2005-10-03Stamp release 8.0.4.Tom Lane
2005-09-28Repair planning bug introduced in 7.4: outer-join ON clauses that referencedTom Lane
only the inner-side relation would be considered as potential equijoin clauses, which is wrong because the condition doesn't necessarily hold above the point of the outer join. Per test case from Kevin Grittner (bug#1916).
2005-08-29Sigh, looks like you need '.set mips2' before you can access MIPSTom Lane
SYNC instruction.
2005-08-28Add a SYNC instruction to the S_UNLOCK sequence for MIPS.Tom Lane
2005-08-27Get the MIPS assembler syntax right. Also add a separate sync command;Tom Lane
the reference I consulted yesterday said SC does a SYNC, but apparently this is not true on newer MIPS processors, so be safe.
2005-08-26Another try at the inlined MIPS spinlock code. Can't test this myself,Tom Lane
but for sure it's not any more broken than the prior version.
2005-08-26Back-port recent MIPS and M68K spinlock improvements to 8.0 branch.Tom Lane
2005-08-25Back-patch fixes for problems with VACUUM destroying t_ctid chains too soon,Tom Lane
and with insufficient paranoia in code that follows t_ctid links. This patch covers the 8.0 branch.
2005-07-18MemSet() must not cast its pointer argument to int32* until after it hasTom Lane
checked that the pointer is actually word-aligned. Casting a non-aligned pointer to int32* is technically illegal per the C spec, and some recent versions of gcc actually generate bad code for the memset() when given such a pointer. Per report from Andrew Morrow.
2005-06-18When using C-string lookup keys in a dynahash.c hash table, use strncpy()Tom Lane
not memcpy() to copy the offered key into the hash table during HASH_ENTER. This avoids possible core dump if the passed key is located very near the end of memory. Per report from Stefan Kaltenbrunner.
2005-06-02Push enable/disable of notify and catchup interrupts all the way downTom Lane
to just around the bare recv() call that gets a command from the client. The former placement in PostgresMain was unsafe because the intermediate processing layers (especially SSL) use facilities such as malloc that are not necessarily re-entrant. Per report from counterstorm.com.
2005-05-26Adjust datetime parsing to be more robust. We now pass the length of theNeil Conway
working buffer into ParseDateTime() and reject too-long input there, rather than checking the length of the input string before calling ParseDateTime(). The old method was bogus because ParseDateTime() can use a variable amount of working space, depending on the content of the input string (e.g. how many fields need to be NUL terminated). This fixes a minor stack overrun -- I don't _think_ it's exploitable, although I won't claim to be an expert. Along the way, fix a bug reported by Mark Dilger: the working buffer allocated by interval_in() was too short, which resulted in rejecting some perfectly valid interval input values. I added a regression test for this fix.
2005-05-05Stamp release 8.0.3.Tom Lane
2005-04-11Fix interaction between materializing holdable cursors and firingTom Lane
deferred triggers: either one can create more work for the other, so we have to loop till it's all gone. Per example from andrew@supernews. Add a regression test to help spot trouble in this area in future.
2005-04-07Stamp 8.0.2.REL8_0_2Tom Lane
2005-03-26Tag for 8.0.2beta1PostgreSQL Daemon
2005-03-25Add missing min/max parameters to DefineCustomIntVariable() andTom Lane
DefineCustomRealVariable(). Thomas Hallgren
2005-03-25Kerberos fixes from Magnus Hagander --- in theory Kerberos 5 authTom Lane
should work on Windows now. Also, rename set_noblock to pg_set_noblock; since it is included in libpq, the former name polluted application namespace.
2005-03-24array_map can't use the fn_extra field of the provided fcinfo struct asTom Lane
its private storage, because that belongs to the function that it is supposed to call. Per report from Ezequiel Tolnay.
2005-03-24Change Win32 O_SYNC method to O_DSYNC because that is what the methodBruce Momjian
currently does. This is now the default Win32 wal sync method because we perfer o_datasync to fsync. Also, change Win32 fsync to a new wal sync method called fsync_writethrough because that is the behavior of _commit, which is what is used for fsync on Win32. Backpatch to 8.0.X.
2005-03-23WAL must log CREATE and DROP DATABASE operations *without* using anyTom Lane
explicit paths, so that the log can be replayed in a data directory with a different absolute path than the original had. To avoid forcing initdb in the 8.0 branch, continue to accept the old WAL log record types; they will never again be generated however, and the code can be dropped after the next forced initdb. Per report from Oleg Bartunov. We still need to think about what it really means to WAL-log CREATE TABLESPACE commands: we more or less have to put the absolute path into those, but how to replay in a different context??
2005-03-18Need to reset local buffer pin counts, not only shared buffer pins,Tom Lane
before we attempt any file deletions in ShutdownPostgres. Per Tatsuo.
2005-03-17Backpatch to 8.0.X, already in HEAD:Bruce Momjian
Allow Win32 to support the O_SYNC open flag as an wal_sync_method method.
2005-03-16Prevent locale-aware handling of upper, lower, and initcap when theBruce Momjian
locale is C. Backpatch to 8.0.X because some operating systems were throwing errors for such operations, rather than ignoring the locale when it was C.
2005-02-03Ensure that all details of the ARC algorithm are hidden within freelist.c.Tom Lane
This refactoring does not change any algorithms or data structures, just remove visibility of the ARC datastructures from other source files.
2005-01-30Stamp 8.0 branch as 8.0.1.Tom Lane
2005-01-28Improve planner's estimation of the space needed for HashAgg plans:Tom Lane
look at the actual aggregate transition datatypes and the actual overhead needed by nodeAgg.c, instead of using pessimistic round numbers. Per a discussion with Michael Tiemann.