summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-01-24Get pg_utf_mblen(), pg_utf2wchar_with_len(), and utf2ucs() all on the sameTom Lane
page about the maximum UTF8 sequence length we support (4 bytes since 8.1, 3 before that). pg_utf2wchar_with_len never got updated to support 4-byte characters at all, and in any case had a buffer-overrun risk in that it could produce multiple pg_wchars from what mblen claims to be just one UTF8 character. The only reason we don't have a major security hole is that most callers allocate worst-case output buffers; the sole exception in released versions appears to be pre-8.2 iwchareq() (ie, ILIKE), which can be crashed due to zeroing out its return address --- but AFAICS that can't be exploited for anything more than a crash, due to inability to control what gets written there. Per report from James Russell and Michael Fuhr. Pre-8.1 the risk is much less, but I still think pg_utf2wchar_with_len's behavior given an incomplete final character risks buffer overrun, so back-patch that logic change anyway. This patch also makes sure that UTF8 sequences exceeding the supported length (whichever it is) are consistently treated as error cases, rather than being treated like a valid shorter sequence in some places.
2007-01-24Relax an Assert() that has been found to be too strict in some situationsTom Lane
involving unions of types having typmods. Variants of the failure are known to occur in 8.1 and up; not sure if it's possible in 8.0 and 7.4, but since the code exists that far back, I'll just patch 'em all. Per report from Brian Hurt.
2007-01-23Simplify handling of XML error messages: Just use the string provided byPeter Eisentraut
libxml as the detail message. As per <http://archives.postgresql.org/pgsql-hackers/2006-12/msg01087.php>. For converting error codes to messages, we only need to cover those codes that we raise ourselves now.
2007-01-23Update pg_dump to support dumping operator families.Tom Lane
2007-01-23Add comment about exception lists in both winnt.h and ntstatus.h.Bruce Momjian
2007-01-23This patch is required for vcbuild to work after the changes toAlvaro Herrera
pg_proc.h (it's the same changes that's in gen_fmgrtab.sh in the unix build). Patch from Magnus Hagander.
2007-01-23Add CREATE/ALTER/DROP OPERATOR FAMILY commands, also COMMENT ON OPERATORTom Lane
FAMILY; and add FAMILY option to CREATE OPERATOR CLASS to allow adding a class to a pre-existing family. Per previous discussion. Man, what a tedious lot of cutting and pasting ...
2007-01-23Remove newline from error message because URL is gone.Bruce Momjian
2007-01-23Back out use of FormatMessage(), does error values, not exceptionBruce Momjian
values. Point to /include/ntstatus.h for an exception list, rather than a URL.
2007-01-23Print meaningfull error text for abonormal process exit on Win32, ratherBruce Momjian
than hex codes, using FormatMessage().
2007-01-22Put back planner's ability to cache the results of mergejoinscansel(),Tom Lane
which I had removed in the first cut of the EquivalenceClass rewrite to simplify that patch a little. But it's still important --- in a four-way join problem mergejoinscansel() was eating about 40% of the planning time according to gprof. Also, improve the EquivalenceClass code to re-use join RestrictInfos rather than generating fresh ones for each join considered. This saves some memory space but more importantly improves the effectiveness of caching planning info in RestrictInfos.
2007-01-22Use errhint() for WIN32 SIGTERM message, where possible.Bruce Momjian
2007-01-22Uppercase hex value.Bruce Momjian
2007-01-22When system() fails in Win32, report it as an exception, print theBruce Momjian
exception value in hex, and give a URL where the value can be looked-up.
2007-01-22Add COST and ROWS options to CREATE/ALTER FUNCTION, plus underlying pg_procTom Lane
columns procost and prorows, to allow simple user adjustment of the estimated cost of a function call, as well as control of the estimated number of rows returned by a set-returning function. We might eventually wish to extend this to allow function-specific estimation routines, but there seems to be consensus that we should try a simple constant estimate first. In particular this provides a relatively simple way to control the order in which different WHERE clauses are applied in a plan node, which is a Good Thing in view of the fact that the recent EquivalenceClass planner rewrite made that much less predictable than before.
2007-01-21Remove some unused variablesPeter Eisentraut
2007-01-21Put back libpq link, but make sure that libpq's in-tree directory isPeter Eisentraut
mentioned before the system directories.
2007-01-21Refactor some lsyscache routines to eliminate duplicate code and saveTom Lane
a couple of syscache lookups in make_pathkey_from_sortinfo().
2007-01-20Simplify pg_am representation of ordering-capable access methods:Tom Lane
provide just a boolean 'amcanorder', instead of fields that specify the sort operator strategy numbers. We have decided to require ordering-capable AMs to use btree-compatible strategy numbers, so the old fields are overkill (and indeed misleading about what's allowed).
2007-01-20Make setseed() return void, rather than an int4 without any use. PerNeil Conway
pgsql-patches discussion of September 20, 2006. Bump the catversion.
2007-01-20Add documentation of memory and time units to postgresql.conf.Bruce Momjian
Backpatch to 8.2.X for new initdbs.
2007-01-20Don't use 'int' where you mean 'bool'.Tom Lane
2007-01-20List disabled triggers separately in psql's "\d <table>" output.Neil Conway
Previously, disabled triggers were not displayed any differently than enabled ones, which was quite misleading. Patch from Brendan Jurd.
2007-01-20Refactor planner's pathkeys data structure to create a separate, explicitTom Lane
representation of equivalence classes of variables. This is an extensive rewrite, but it brings a number of benefits: * planner no longer fails in the presence of "incomplete" operator families that don't offer operators for every possible combination of datatypes. * avoid generating and then discarding redundant equality clauses. * remove bogus assumption that derived equalities always use operators named "=". * mergejoins can work with a variety of sort orders (e.g., descending) now, instead of tying each mergejoinable operator to exactly one sort order. * better recognition of redundant sort columns. * can make use of equalities appearing underneath an outer join.
2007-01-20Refactor the index AM API slightly: move currentItemData andNeil Conway
currentMarkData from IndexScanDesc to the opaque structs for the AMs that need this information (currently gist and hash). Patch from Heikki Linnakangas, fixes by Neil Conway.
2007-01-20Remove remains of old depend target.Peter Eisentraut
2007-01-20Regression tests for large objects. Patch from Jeremy Drake.Neil Conway
2007-01-20Modify max_fsm_pages in postgresql.conf.sample to show a typical value,Bruce Momjian
rather than a value too high.
2007-01-20Teach psql's \lo slash commands to respect quiet mode, and to outputNeil Conway
HTML in HTML mode. Patch from Jeremy Drake.
2007-01-20The libpq library directory was mentioned here in the wrong place, whichPeter Eisentraut
might lead to a previously installed libpq being used instead. But we don't actually have to link with libpq here at all, so remove it.
2007-01-20Only build ecpg test code when the test is to be performed, in line withPeter Eisentraut
other test code.
2007-01-20Move code that places LOG error level between ERROR and PANIC into newBruce Momjian
function is_log_level_output(), for code clarity.
2007-01-20Fix xmlconcat regression testPeter Eisentraut
2007-01-20Fix xmlconcat by properly merging the XML declarations. Add aggregatePeter Eisentraut
function xmlagg.
2007-01-20Add missing copyright blurb, make ruleutils.c use the standard layoutNeil Conway
for its header comment.
2007-01-19Fix pg_regress breakage for PL and contrib tests, by not requiring thatAlvaro Herrera
"input" and "output" dirs be necessarily present.
2007-01-19Add support for converting binary values (i.e. bytea) into xml values,Peter Eisentraut
with new GUC parameter "xmlbinary" that controls the output encoding, as per SQL/XML standard.
2007-01-19Change the sed rules in the regression test for pg_regress hackery to createAlvaro Herrera
the generated files, to help Visual C++ to run these tests. The tests still pass in VPATH and normal builds. Patch from Magnus Hagander, editorialized by me.
2007-01-18Clean up encoding issues in the xml type: In text mode, encodingPeter Eisentraut
declarations are ignored and removed, in binary mode they are honored as specified by the XML standard.
2007-01-17Add a note pointing out that is_pseudo_constant_clause() doesn't checkTom Lane
for aggregates. This is OK for current uses but could burn somebody someday...
2007-01-17Extend yesterday's patch so that the bgwriter is also told to forgetTom Lane
pending fsyncs during DROP DATABASE. Obviously necessary in hindsight :-(
2007-01-17Tweak the width_bucket() regression tests to avoid an unnecessaryNeil Conway
dependency on the platform's floating point implementation. Per report from Stefan Kaltenbrunner.
2007-01-17Revise bgwriter fsync-request mechanism to improve robustness when a tableTom Lane
is deleted. A backend about to unlink a file now sends a "revoke fsync" request to the bgwriter to make it clean out pending fsync requests. There is still a race condition where the bgwriter may try to fsync after the unlink has happened, but we can resolve that by rechecking the fsync request queue to see if a revoke request arrived meanwhile. This eliminates the former kluge of "just assuming" that an ENOENT failure is okay, and lets us handle the fact that on Windows it might be EACCES too without introducing any questionable assumptions. After an idea of mine improved by Magnus. The HEAD patch doesn't apply cleanly to 8.2, but I'll see about a back-port later. In the meantime this could do with some testing on Windows; I've been able to force it through the code path via ENOENT, but that doesn't prove that it actually fixes the Windows problem ...
2007-01-16vcbuild updates from Magnus:Neil Conway
* After Markos patch, now builds pgcrypto without zlib again * Updates README with xml info * xml requires xslt and iconv * disable unnecessary warning about __cdecl() * Add a buildenv.bat called from all other bat files to set up things like PATH for flex/bison. (Can't just set it before calling, doesn't always work when building from the GUI)
2007-01-16Implement width_bucket() for the float8 data type.Neil Conway
The implementation is somewhat ugly logic-wise, but I don't see an easy way to make it more concise. When writing this, I noticed that my previous implementation of width_bucket() doesn't handle NaN correctly: postgres=# select width_bucket('NaN', 1, 5, 5); width_bucket -------------- 6 (1 row) AFAICS SQL:2003 does not define a NaN value, so it doesn't address how width_bucket() should behave here. The patch changes width_bucket() so that ereport(ERROR) is raised if NaN is specified for the operand or the lower or upper bounds to width_bucket(). For float8, NaN is disallowed for any of the floating-point inputs, and +/- infinity is disallowed for the histogram bounds (but allowed for the operand). Update docs and regression tests, bump the catversion.
2007-01-16Fix incorrect permissions check in information_schema.key_column_usage view:Tom Lane
it was checking a pg_constraint OID instead of pg_class OID, resulting in "relation with OID nnnnn does not exist" failures for anyone who wasn't owner of the table being examined. Per bug #2848 from Laurence Rowe. Note: for existing 8.2 installations a simple version update won't fix this; the easiest fix is to CREATE OR REPLACE this view with the corrected definition.
2007-01-16Enable autovacuum in the default configuration, per discussion.Alvaro Herrera
2007-01-16Arrange for autovacuum to be killed when another operation wants to be aloneAlvaro Herrera
accessing it, like DROP DATABASE. This allows the regression tests to pass with autovacuum enabled, which open the gates for finally enabling autovacuum by default.
2007-01-14Fix reverse compilation of IS DOCUMENT expression.Peter Eisentraut
2007-01-14Add support for xmlval IS DOCUMENT expression.Peter Eisentraut