OSDN Git Service
Bruce Momjian [Thu, 26 Mar 2009 12:38:03 +0000 (12:38 +0000)]
Correction: ansi-join ->anti-join.
Tom Lane [Thu, 26 Mar 2009 03:46:14 +0000 (03:46 +0000)]
Fix markup so that 'make HISTORY' works. A couple very minor
editorial improvements.
Bruce Momjian [Thu, 26 Mar 2009 02:48:53 +0000 (02:48 +0000)]
Reorder 8.4 release note sections.
Bruce Momjian [Thu, 26 Mar 2009 02:40:37 +0000 (02:40 +0000)]
Re-add release notes for release 8.3.7.
Bruce Momjian [Thu, 26 Mar 2009 01:48:27 +0000 (01:48 +0000)]
Adjust AS OF release notes markup.
Bruce Momjian [Thu, 26 Mar 2009 01:31:15 +0000 (01:31 +0000)]
Mention release note items current as of 2009-03-16.
Bruce Momjian [Thu, 26 Mar 2009 01:19:07 +0000 (01:19 +0000)]
First version of 8.4 release notes; markup/cleanup/reorganization still
required.
Tom Lane [Wed, 25 Mar 2009 23:20:01 +0000 (23:20 +0000)]
Add btree_gin contrib module.
Teodor Sigaev and Oleg Bartunov
Tom Lane [Wed, 25 Mar 2009 22:19:02 +0000 (22:19 +0000)]
Adjust the APIs for GIN opclass support functions to allow the extractQuery()
method to pass extra data to the consistent() and comparePartial() methods.
This is the core infrastructure needed to support the soon-to-appear
contrib/btree_gin module. The APIs are still upward compatible with the
definitions used in 8.3 and before, although *not* with the previous 8.4devel
function definitions.
catversion bump for changes in pg_proc entries (although these are just
cosmetic, since GIN doesn't actually look at the function signature before
calling it...)
Teodor Sigaev and Oleg Bartunov
Tom Lane [Wed, 25 Mar 2009 15:03:13 +0000 (15:03 +0000)]
Fix old thinko in pgp.h: the idea is to declare some named enum types,
not global variables of anonymous enum types. This didn't actually hurt
much because most linkers will just merge the duplicated definitions ...
but some will complain. Per bug #4731 from Ceriel Jacobs.
Backpatch to 8.1 --- the declarations don't exist before that.
Peter Eisentraut [Wed, 25 Mar 2009 14:12:02 +0000 (14:12 +0000)]
Use double quotes instead of single quotes.
Peter Eisentraut [Wed, 25 Mar 2009 14:11:48 +0000 (14:11 +0000)]
Complete list of valid fork names, and use double quotes.
Peter Eisentraut [Wed, 25 Mar 2009 13:15:55 +0000 (13:15 +0000)]
Update line count for \? output (obtained from wc -l)
Peter Eisentraut [Wed, 25 Mar 2009 13:14:17 +0000 (13:14 +0000)]
In the \? output, align the columns consistently.
Peter Eisentraut [Wed, 25 Mar 2009 13:11:43 +0000 (13:11 +0000)]
Polish SQL/MED terminology
Peter Eisentraut [Wed, 25 Mar 2009 13:07:26 +0000 (13:07 +0000)]
No period if it's not a sentence
Tom Lane [Tue, 24 Mar 2009 22:06:03 +0000 (22:06 +0000)]
Install a search tree depth limit in GIN bulk-insert operations, to prevent
them from degrading badly when the input is sorted or nearly so. In this
scenario the tree is unbalanced to the point of becoming a mere linked list,
so insertions become O(N^2). The easiest and most safely back-patchable
solution is to stop growing the tree sooner, ie limit the growth of N. We
might later consider a rebalancing tree algorithm, but it's not clear that
the benefit would be worth the cost and complexity. Per report from Sergey
Burladyan and an earlier complaint from Heikki.
Back-patch to 8.2; older versions didn't have GIN indexes.
Tom Lane [Tue, 24 Mar 2009 21:12:56 +0000 (21:12 +0000)]
Fix stupid parenthesization mistake. Per bug #4728 from Bruce Toll.
Tom Lane [Tue, 24 Mar 2009 20:17:18 +0000 (20:17 +0000)]
Implement "fastupdate" support for GIN indexes, in which we try to accumulate
multiple index entries in a holding area before adding them to the main index
structure. This helps because bulk insert is (usually) significantly faster
than retail insert for GIN.
This patch also removes GIN support for amgettuple-style index scans. The
API defined for amgettuple is difficult to support with fastupdate, and
the previously committed partial-match feature didn't really work with
it either. We might eventually figure a way to put back amgettuple
support, but it won't happen for 8.4.
catversion bumped because of change in GIN's pg_am entry, and because
the format of GIN indexes changed on-disk (there's a metapage now,
and possibly a pending list).
Teodor Sigaev
Peter Eisentraut [Tue, 24 Mar 2009 12:57:31 +0000 (12:57 +0000)]
Fix my typo
Andrew Dunstan [Mon, 23 Mar 2009 21:00:39 +0000 (21:00 +0000)]
Remove munging of xml and xpath params to xpath(). The XML must now be a well formed XML document.
Tom Lane [Mon, 23 Mar 2009 16:36:27 +0000 (16:36 +0000)]
Const-ify the parse table passed to fillRelOptions. The previous coding
meant it had to be built on-the-fly at each entry to default_reloptions.
Bruce Momjian [Mon, 23 Mar 2009 15:14:14 +0000 (15:14 +0000)]
Update constraint_exclusion docs because parameter is now 3-valued, not
just enable/disable.
Peter Eisentraut [Mon, 23 Mar 2009 08:07:32 +0000 (08:07 +0000)]
Add expected file for locale-enabled installations.
Tom Lane [Mon, 23 Mar 2009 01:52:38 +0000 (01:52 +0000)]
More fixes for 8.4 DTrace probes. Remove useless BUFFER_HIT/BUFFER_MISS
probes --- the BUFFER_READ_DONE probe provides the same information and more
besides. Expand the LOCK_WAIT_START/DONE probe arguments so that there's
actually some chance of telling what is being waited for. Update and
clean up the documentation.
Bruce Momjian [Mon, 23 Mar 2009 01:45:29 +0000 (01:45 +0000)]
Clarify libpq 'sslverify' documentation wording.
Tom Lane [Sun, 22 Mar 2009 22:39:05 +0000 (22:39 +0000)]
Add isExtend to the parameters of the buffer_read_start and buffer_read_done
DTrace probes, so that ordinary reads can be distinguished from relation
extension operations. Move buffer_read_start probe to before the
smgrnblocks() call that's needed in the isExtend case, since really that step
should be charged as part of the time needed for the extension operation.
(This makes it slightly harder to match the read_start with the associated
read_done, since now you can't match them on blockNumber, but it should still
be possible since isExtend operations on the same relation can never be
interleaved.) Per recent discussion.
In passing, add the page identity (forkNum/blockNum) to the parameters of the
buffer_flush_start/buffer_flush_done probes, which were unaccountably lacking
the info.
Bruce Momjian [Sun, 22 Mar 2009 21:55:07 +0000 (21:55 +0000)]
Clarify 'cert' authentication documention.
Tom Lane [Sun, 22 Mar 2009 18:06:35 +0000 (18:06 +0000)]
Clean up pg_SSPI_error() coding a little bit: make the messages more
consistent, translate where intended, const-ify declarations.
Resolves a gripe from Alvaro as well as some stuff I didn't like.
Tom Lane [Sun, 22 Mar 2009 16:44:26 +0000 (16:44 +0000)]
Remove the -d and -D options of pg_dump and pg_dumpall. The functionality
is still available, but you must now write the long equivalent --inserts
or --column-inserts. This change is made to eliminate confusion with the
use of -d to specify a database name in most other Postgres client programs.
Original patch by Greg Mullane, modified per subsequent discussion.
Tom Lane [Sun, 22 Mar 2009 01:12:32 +0000 (01:12 +0000)]
Remove the datetime keywords ABSTIME and RELTIME, which we'd been treating as
noise words for the last twelve years, for compatibility with Berkeley-era
output formatting of the special INVALID values for those datatypes.
Considering that the datatypes themselves have been deprecated for awhile,
this is taking backwards compatibility a little far. Per gripe from Josh
Berkus.
Tom Lane [Sat, 21 Mar 2009 00:04:40 +0000 (00:04 +0000)]
Optimize multi-batch hash joins when the outer relation has a nonuniform
distribution, by creating a special fast path for the (first few) most common
values of the outer relation. Tuples having hashvalues matching the MCVs
are effectively forced to be in the first batch, so that we never write
them out to the batch temp files.
Bryce Cutt and Ramon Lawrence, with some editorialization by me.
Peter Eisentraut [Fri, 20 Mar 2009 09:21:09 +0000 (09:21 +0000)]
Rename pg_restore -m to -j, and add documentation about what good numbers
are. per discussion on hackers
Heikki Linnakangas [Wed, 18 Mar 2009 20:30:35 +0000 (20:30 +0000)]
Don't set the signal handler for SIGQUIT on Windows. Buildfarm shows that
reinstalling the default signal handler doesn't work as it is on Windows.
Presumably core dumps on SIGQUIT are not a problem on Windows, so rather
than figure out what header files or other changes are required to make it
work, just don't bother.
Tom Lane [Wed, 18 Mar 2009 20:18:18 +0000 (20:18 +0000)]
Be more clear about when to use gist__int_ops vs. gist__intbig_ops.
Per suggestion from Ron Mayer.
Heikki Linnakangas [Wed, 18 Mar 2009 19:27:28 +0000 (19:27 +0000)]
Don't intercept SIGQUIT as a signal to trigger failover; that's what
postmaster uses for immediate shutdown. Trap SIGUSR1 as the preferred
signal for that.
Per report by Fujii Masao and subsequent discussion on -hackers.
Heikki Linnakangas [Wed, 18 Mar 2009 16:26:18 +0000 (16:26 +0000)]
Fix case of the just resurrected UCS_to_BIG5.pl script, and update
Makefile to use it.
Heikki Linnakangas [Wed, 18 Mar 2009 16:17:58 +0000 (16:17 +0000)]
Add seven kanji characters defined in the Windows 950 codepage to our
big5/win950 <-> UTF8 conversion tables.
Per report by Roger Chang.
Heikki Linnakangas [Wed, 18 Mar 2009 08:44:49 +0000 (08:44 +0000)]
Fix Windows-specific race condition in syslogger. This could've been
the cause of the "could not write to log file: Bad file descriptor"
errors reported at
http://archives.postgresql.org//pgsql-general/2008-06/msg00193.php
Backpatch to 8.3, the race condition was introduced by the CSV logging
patch.
Analysis and patch by Gurjeet Singh.
Tom Lane [Tue, 17 Mar 2009 21:36:21 +0000 (21:36 +0000)]
Add just-assigned CVE number to release notes for recent security issue.
Bruce Momjian [Tue, 17 Mar 2009 18:39:39 +0000 (18:39 +0000)]
Improve zero-year comments.
Bruce Momjian [Tue, 17 Mar 2009 18:35:26 +0000 (18:35 +0000)]
Document that datetime year '0' is considered in a recent century, not
just '00'.
Peter Eisentraut [Tue, 17 Mar 2009 10:10:13 +0000 (10:10 +0000)]
Add -w option to --help output. It was apparently forgotten when -w was
implemented.
Tom Lane [Sun, 15 Mar 2009 22:05:17 +0000 (22:05 +0000)]
Fix contrib/hstore to throw an error for keys or values that don't fit in its
data structure, rather than silently truncating them. Andrew Gierth
Tom Lane [Sun, 15 Mar 2009 20:31:19 +0000 (20:31 +0000)]
Clean up the code for to_timestamp's conversion of year plus ISO day number
to date, as per bug #4702 and subsequent discussion. In particular, make it
work for years specified using AD/BC or CC fields, and fix the test for "no
year specified" so that it doesn't trigger inappropriately for 1 BC (which it
was doing even in code paths that had nothing to do with to_timestamp). I
also did some minor code beautification in the non-ISO-day-number code path.
This area has been busted all along, but because the code has been rewritten
repeatedly, it would be considerable trouble to back-patch. It's such a
corner case that it doesn't seem worth the effort.
Tom Lane [Fri, 13 Mar 2009 22:50:44 +0000 (22:50 +0000)]
Fix identify_locking_dependencies to reflect the fact that fix_dependencies
previously repointed TABLE dependencies to TABLE DATA. Mea culpa.
Tom Lane [Fri, 13 Mar 2009 17:46:21 +0000 (17:46 +0000)]
Restore previous ordering of BUFFER_FLUSH_START probe. I had wanted to
make it include the time for the possible smgropen() call, but that
results in a null pointer dereference :-(.
An alternative solution would be to fetch the buffer tag instead of
looking at *reln, but I'll just put it back as it was for the moment.
BTW, this indicates that DTrace probes evaluate their arguments even
when nominally inactive. What was that about "zero cost", again?
Tom Lane [Thu, 12 Mar 2009 22:35:48 +0000 (22:35 +0000)]
Update back-branch release notes.
Tom Lane [Thu, 12 Mar 2009 00:53:25 +0000 (00:53 +0000)]
Fix core dump due to null-pointer dereference in to_char() when datetime
format codes are misapplied to a numeric argument. (The code still produces
a pretty bogus error message in such cases, but I'll settle for stopping the
crash for now.) Per bug #4700 from Sergey Burladyan.
Problem exists in all supported branches, so patch all the way back.
In HEAD, also clean up some ugly coding in the nearby cache management
code.
Tom Lane [Wed, 11 Mar 2009 23:19:25 +0000 (23:19 +0000)]
Code review for dtrace probes added (so far) to 8.4. Adjust placement of
some bufmgr probes, take out redundant and memory-leak-inducing path arguments
to smgr__md__read__done and smgr__md__write__done, fix bogus attempt to
recalculate space used in sort__done, clean up formatting in places where
I'm not sure pgindent will do a nice job by itself.
Teodor Sigaev [Wed, 11 Mar 2009 16:03:40 +0000 (16:03 +0000)]
Some languages have symbols with zero display's width or/and vowels/signs which
are not an alphabetic character although they are not word-breakers too.
So, treat them as part of word.
Per off-list discussion with Dibyendra Hyoju <dibyendra@gmail.com> and
and Bal Krishna Bal <balkrishna7bal@gmail.com> about Nepali language and
Devanagari alphabet.
Andrew Dunstan [Wed, 11 Mar 2009 03:33:29 +0000 (03:33 +0000)]
Use thread-local storage for querybuffer in fmtId() on Windows, when needed (i.e. when
running pg_restore, which might run in parallel).
Only reopen archive file when we really need to read from it, in parallel code. Otherwise,
close it immediately in a worker, if possible.
Tom Lane [Wed, 11 Mar 2009 03:32:22 +0000 (03:32 +0000)]
Improve match_special_index_operator() to recognize that LIKE with an
exact-match pattern (no wildcard) can be index-optimized in some cases where a
prefix-match pattern cannot; specifically, since the required index clause is
simple equality, it works for regular text/varchar indexes even when the
locale is not C. I'm not sure how often this case really comes up, but since
it requires hardly any additional work to handle it, we might as well get it
right. Motivated by a discussion on the JDBC list.
Tom Lane [Tue, 10 Mar 2009 22:09:26 +0000 (22:09 +0000)]
Make SubPlan nodes carry the result's typmod as well as datatype OID. This is
for consistency with the (relatively) recent addition of typmod to SubLink.
An example of why it's a good idea is to be seen in the recent "failed to
locate grouping columns" bug, which wouldn't have happened if a SubPlan
exposed the same typmod info as the SubLink it was derived from.
This could be back-patched, since it doesn't affect any on-disk data format,
but for the moment it doesn't seem necessary to do so.
Tom Lane [Tue, 10 Mar 2009 20:58:26 +0000 (20:58 +0000)]
Fix set_subquery_pathlist() to copy the RTE's subquery before it gets mangled
by the planning process. This prevents the "failed to locate grouping columns"
error recently reported by Dickson Guedes. That happens because planning
replaces SubLinks by SubPlans in the subquery's targetlist, and exprTypmod()
is smarter about the former than the latter, causing the apparent type of
the subquery's output columns to change. This seems to be a deficiency we
should fix in exprTypmod(), but that will be a much more invasive patch
with possible side-effects elsewhere, so I'll do that only in HEAD.
Back-patch to 8.3. Arguably the lack of a copying step is broken/dangerous
all the way back, but in the absence of known problems I'll refrain from
making the older branches pay the extra cost. (The reason this particular
symptom didn't appear before is that exprTypmod() wasn't smart about SubLinks
either, until 8.3.)
Teodor Sigaev [Tue, 10 Mar 2009 17:32:14 +0000 (17:32 +0000)]
Prevent recursion during parse of email-like string with multiple '@'.
Patch by Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Bruce Momjian [Tue, 10 Mar 2009 00:08:28 +0000 (00:08 +0000)]
Doc patch for the recently added probes.
Robert Lor
Peter Eisentraut [Mon, 9 Mar 2009 16:49:12 +0000 (16:49 +0000)]
In parse_bool_with_len, avoid crash when no result pointer is passed. Probably
an unlikely call mode, but better be safe.
Peter Eisentraut [Mon, 9 Mar 2009 15:04:21 +0000 (15:04 +0000)]
Tweak the regression test case so that the ordering of numbers vs. letters
doesn't matter. This fixes failures in the Czech locale.
Peter Eisentraut [Mon, 9 Mar 2009 14:34:35 +0000 (14:34 +0000)]
Accept 'on' and 'off' as input for boolean data type, unifying the syntax
that the data type and GUC accepts.
ITAGAKI Takahiro
Bruce Momjian [Mon, 9 Mar 2009 13:08:05 +0000 (13:08 +0000)]
Add summarization comment about visibility functions.
Add URL about the Halloween problem.
Alvaro Herrera [Mon, 9 Mar 2009 00:01:32 +0000 (00:01 +0000)]
Revert pg_bind_textdomain_codeset to a existant-but-empty function when
ENABLE_NLS is not defined, for better compatibility of the backend with
modules compiled the other way.
Per note from Tom after my previous commit.
Magnus Hagander [Sun, 8 Mar 2009 19:13:38 +0000 (19:13 +0000)]
Fix MSVC build for new ways to pull in keywords.c and kwlookup.c.
Alvaro Herrera [Sun, 8 Mar 2009 18:10:17 +0000 (18:10 +0000)]
pg_bind_textdomain_codeset must exist only on ENABLE_NLS.
Alvaro Herrera [Sun, 8 Mar 2009 16:53:30 +0000 (16:53 +0000)]
Add comments about kwlookup.c expectations
Alvaro Herrera [Sun, 8 Mar 2009 16:07:12 +0000 (16:07 +0000)]
On Windows, call bind_textdomain_codeset on domains other than the default one,
too, so that the codeset is properly mapped on the newly added PL domains.
Magnus Hagander [Sat, 7 Mar 2009 21:28:00 +0000 (21:28 +0000)]
Make pg_hba parsing report all errors in the file before aborting the load,
instead of just reporting the first one.
Selena Deckelmann
Alvaro Herrera [Sat, 7 Mar 2009 02:09:22 +0000 (02:09 +0000)]
Avoid MSVC breakage caused by my previous commit by not using a variable in
the src/bin/scripts Makefile.
Alvaro Herrera [Sat, 7 Mar 2009 00:13:58 +0000 (00:13 +0000)]
Separate the key word list that lived in keywords.c into a new header file
kwlist.h, to avoid having to link the backend object file into other programs
like pg_dump. We can now simply symlink a single source file from the backend
(kwlookup.c, containing the shared routine ScanKeywordLookup) and compile it
locally, which is a lot cleaner.
Tom Lane [Thu, 5 Mar 2009 23:06:45 +0000 (23:06 +0000)]
Teach the planner to support index access methods that only implement
amgettuple or only implement amgetbitmap, instead of the former assumption
that every AM supports both APIs. Extracted with minor editorialization
from Teodor's fast-GIN-insert patch; whatever becomes of that, this seems
like a simple and reasonable generalization of the index AM interface spec.
Tom Lane [Thu, 5 Mar 2009 19:50:03 +0000 (19:50 +0000)]
Remove documentation of log_restartpoints setting, which is obsoleted
in favor of log_checkpoints. Fujii Masao
Tom Lane [Thu, 5 Mar 2009 17:30:29 +0000 (17:30 +0000)]
Fix column privilege checking for cases where parent and child have different
attribute numbering. Also, a parent whole-row reference should not require
select privilege on child columns that aren't inherited from the parent.
Problem diagnosed by KaiGai Kohei, though this isn't exactly his patch.
Peter Eisentraut [Thu, 5 Mar 2009 14:51:10 +0000 (14:51 +0000)]
Message tuning
Heikki Linnakangas [Thu, 5 Mar 2009 14:27:50 +0000 (14:27 +0000)]
Add MUST (Mauritius Island Summer Time) to the list of known abbreviations.
Mauritius began using DST in the summer 2008-2009; the Olson library has been
updated already.
Xavier Bugaud
Tom Lane [Wed, 4 Mar 2009 22:08:20 +0000 (22:08 +0000)]
Put back our old workaround for machines that declare cbrt() in math.h but
fail to provide the function itself. Not sure how we escaped testing anything
later than 7.3 on such cases, but they still exist, as per André Volpato's
report about AIX 5.3.
Magnus Hagander [Wed, 4 Mar 2009 18:43:38 +0000 (18:43 +0000)]
Change hba load failure message to LOG instead of WARNING.
Per comment from Tom.
Heikki Linnakangas [Wed, 4 Mar 2009 13:56:40 +0000 (13:56 +0000)]
Reload config file in startup process on SIGHUP.
Fujii Masao
Peter Eisentraut [Wed, 4 Mar 2009 13:02:32 +0000 (13:02 +0000)]
Clarify to the translator that yyerror() deals with the translation of
"syntax error", not the literal string. I was previously confused on this
matter, but I have now verified that everything is translated properly.
Peter Eisentraut [Wed, 4 Mar 2009 11:57:00 +0000 (11:57 +0000)]
Provide some proper minimal documentation for the pg_dump(all) --binary-upgrade
option. We don't want to commit to what it does, but hiding it will only
cause confusion.
Heikki Linnakangas [Wed, 4 Mar 2009 11:53:53 +0000 (11:53 +0000)]
Add some sanity checks to CREATE CAST ... WITHOUT FUNCTION. Disallow
composite, enum and array types, as those are surely not binary-compatible
with anything else because of the embedded OIDs.
Inspired by bug report by Oleg Serov.
Peter Eisentraut [Wed, 4 Mar 2009 10:55:00 +0000 (10:55 +0000)]
Add new SQL:2008 error codes for invalid LIMIT and OFFSET values. Remove
unused nonstandard error code that was perhaps intended for this but never
used.
Peter Eisentraut [Wed, 4 Mar 2009 09:12:49 +0000 (09:12 +0000)]
Don't actively violate the system limit of maximum open files (RLIMIT_NOFILE).
This avoids irritating kernel logs (if system overstep violations are enabled)
and also the grsecurity alert when starting PostgreSQL.
original patch by Jacek Drobiecki
References:
http://archives.postgresql.org/pgsql-bugs/2004-05/msg00103.php
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=248967
Magnus Hagander [Wed, 4 Mar 2009 08:43:15 +0000 (08:43 +0000)]
Log a warning instead of shutting down the system if we can't load
pg_hba.conf on reload (for example due to a permission error).
Selena Deckelmann
Heikki Linnakangas [Tue, 3 Mar 2009 10:42:05 +0000 (10:42 +0000)]
Fix copy-pasto in the patch to allow background writer to run during
recovery: if background writer or pgstat process dies during recovery (or
any other child process, but those two are the only ones running), send
SIGQUIT to the startup process using correct pid.
Heikki Linnakangas [Tue, 3 Mar 2009 08:11:24 +0000 (08:11 +0000)]
Remove the placeholder LWLockId in place of the removed FreeSpaceLock.
As pointed out by ITAGAKI Takahiro, we split SInvalLock into two in 8.4,
so to keep the numbers of the rest of the locks unchanged from 8.3, we
don't need a placeholder.
Tom Lane [Mon, 2 Mar 2009 21:18:43 +0000 (21:18 +0000)]
When we are in error recursion trouble, arrange to suppress translation and
encoding conversion of any elog/ereport message being sent to the frontend.
This generalizes a patch that I put in last October, which suppressed
translation of only specific messages known to be associated with recursive
can't-translate-the-message behavior. As shown in bug #4680, we need a more
general answer in order to have some hope of coping with broken encoding
conversion setups. This approach seems a good deal less klugy anyway.
Patch in all supported branches.
Teodor Sigaev [Mon, 2 Mar 2009 15:10:09 +0000 (15:10 +0000)]
Fix usage of char2wchar/wchar2char. Changes:
- pg_wchar and wchar_t could have different size, so char2wchar
doesn't call pg_mb2wchar_with_len to prevent out-of-bound
memory bug
- make char2wchar/wchar2char symmetric, now they should not be
called with C-locale because mbstowcs/wcstombs oftenly doesn't
work correct with C-locale.
- Text parser uses pg_mb2wchar_with_len directly in case of
C-locale and multibyte encoding
Per bug report by Hiroshi Inoue <inoue@tpf.co.jp> and
following discussion.
Backpatch up to 8.2 when multybyte support was implemented in tsearch.
Tom Lane [Sat, 28 Feb 2009 18:49:42 +0000 (18:49 +0000)]
Fix buffer allocations in encoding conversion routines so that they won't
fail on zero-length inputs. This isn't an issue in normal use because the
conversion infrastructure skips calling the converters for empty strings.
However a problem was created by yesterday's patch to check whether the
right conversion function is supplied in CREATE CONVERSION. The most
future-proof fix seems to be to make the converters safe for this corner case.
Tom Lane [Sat, 28 Feb 2009 03:51:05 +0000 (03:51 +0000)]
Shave a few cycles in compare_pathkeys() by checking for pointer-identical
input lists before we grovel through the lists. This doesn't save much,
but testing shows that the case of both inputs NIL is common enough that
it saves something. And this is used enough to be a hotspot.
Tom Lane [Sat, 28 Feb 2009 00:10:52 +0000 (00:10 +0000)]
Reduce the maximum value of vacuum_cost_delay and autovacuum_vacuum_cost_delay
to 100ms (from 1000). This still seems to be comfortably larger than the
useful range of the parameter, and it should help discourage people from
picking uselessly large values. Tweak the documentation to recommend small
values, too. Per discussion of a couple weeks ago.
Tom Lane [Fri, 27 Feb 2009 23:30:29 +0000 (23:30 +0000)]
Temporarily (I hope) disable flattening of IN/EXISTS sublinks that are within
the ON clause of an outer join. Doing so is semantically correct but results
in de-optimizing queries that were structured to take advantage of the sublink
style of execution, as seen in recent complaint from Kevin Grittner. Since
the user can get the other behavior by reorganizing his query, having the
flattening happen automatically is just a convenience, and that doesn't
justify breaking existing applications. Eventually it would be nice to
re-enable this, but that seems to require a significantly different approach
to outer joins in the executor.
Tom Lane [Fri, 27 Feb 2009 22:41:38 +0000 (22:41 +0000)]
Tighten up join ordering rules to account for recent more-careful analysis
of the associativity of antijoins. Also improve optimizer/README discussion
of outer join ordering rules.
Heikki Linnakangas [Fri, 27 Feb 2009 16:35:26 +0000 (16:35 +0000)]
In CREATE CONVERSION, test that the given function is a valid conversion
function for the specified source and destination encodings. We do that by
calling the function with an empty string. If it can't perform the requested
conversion, it will throw an error.
Backport to 7.4 - 8.3. Per bug report #4680 by Denis Afonin.
Peter Eisentraut [Fri, 27 Feb 2009 09:58:09 +0000 (09:58 +0000)]
Add the long options to the psql --help display, where they were curiously
missing.
Since this touches most lines of the help output, also change the mix of
puts and printf calls to printf everywhere, for easier code editing and
reviewing.
Peter Eisentraut [Fri, 27 Feb 2009 09:30:21 +0000 (09:30 +0000)]
Equip the programs installed by contrib with proper --help and --version
options and normally formatted help output.
Peter Eisentraut [Fri, 27 Feb 2009 07:20:00 +0000 (07:20 +0000)]
Fix the inconsistent and wrong claims that the option value in CREATE
FOREIGN DATA WRAPPER/SERVER/USER MAPPING is optional.
Tom Lane [Fri, 27 Feb 2009 00:06:27 +0000 (00:06 +0000)]
Improve create_unique_path to not be fooled by unrelated clauses that happen
to be syntactically part of a semijoin clause. For example given
WHERE EXISTS(SELECT ... WHERE upper.var = lower.var AND some-condition)
where some-condition is just a restriction on the lower relation, we can
use unique-ification on lower.var after having applied some-condition within
the scan on lower.
Tom Lane [Thu, 26 Feb 2009 22:19:20 +0000 (22:19 +0000)]
Remove outdated join_1.out regression test comparison file. This has
been broken for more than a month, so evidently it's not needed, at
least not for any configuration in the buildfarm. We can correct it
and replace it later if we find something that still needs it.
Peter Eisentraut [Thu, 26 Feb 2009 16:20:55 +0000 (16:20 +0000)]
Final removal of -q options, which haven't done anything since 8.3 and
were marked for removal in 8.4.
Peter Eisentraut [Thu, 26 Feb 2009 16:02:39 +0000 (16:02 +0000)]
Add a -w/--no-password option that prevents all password prompts to all
programs that have a -W/--password option.
In passing, remove the ancient PSQL_ALWAYS_GET_PASSWORDS compile option.