git.postgresql.org Git - postgresql.git/log
Add documentation section "Using C++ for Extensibility".
Craig Ringer
Show schema name for REINDEX.
Greg Sabino Mullane
Overflow box is on page after listed page number, per Alvaro.
Update TeX overflow documentation page pattern mask, in docs.
Document how to find TeX overflow boxes in our documentation build, per
details from Alvaro Herrera.
Add error hint that PL/pgSQL "EXECUTE of SELECT ... INTO" can be
performed by "EXECUTE ... INTO".
Jaime Casanova
Add note about database ownership to REASSIGN OWNED command documentation,
per Josh Berkus. Add ALTER DATABASE to the "see also" section, too.
Reword fsync and full_page_writes docs to be clearer about when to turn
them off.
Josh Berkus, with slight wording changes by me.
Send all outstanding WAL before exiting when smart shutdown is requested.
This was broken by my previous patch to send WAL in smaller batches.
Patch by Fujii Masao.
Tom Lane [2010年5月30日 21:59:02 +0000 (21:59 +0000)]
Fix misuse of Lossy Counting (LC) algorithm in compute_tsvector_stats().
We must filter out hashtable entries with frequencies less than those
specified by the algorithm, else we risk emitting junk entries whose
actual frequency is much less than other lexemes that did not get
tabulated. This is bad enough by itself, but even worse is that
tsquerysel() believes that the minimum frequency seen in pg_statistic is a
hard upper bound for lexemes not included, and was thus underestimating
the frequency of non-MCEs.
Also, set the threshold frequency to something with a little bit of theory
behind it, to wit assume that the input distribution is approximately
Zipfian. This might need adjustment in future, but some preliminary
experiments suggest that it's not too unreasonable.
Back-patch to 8.4, where this code was introduced.
Jan Urbanski, with some editorialization by Tom
Tom Lane [2010年5月30日 18:10:41 +0000 (18:10 +0000)]
Change the notation for calling functions with named parameters from
"val AS name" to "name := val", as per recent discussion.
This patch catches everything in the original named-parameters patch,
but I'm not certain that no other dependencies snuck in later (grepping
the source tree for all uses of AS soon proved unworkable).
In passing I note that we've dropped the ball at least once on keeping
ecpg's lexer (as opposed to parser) in sync with the backend. It would
be a good idea to go through all of pgc.l and see if it's in sync now.
I didn't attempt that at the moment.
Clarify the meaning of "trusted language" in the documentation.
Tom Lane [2010年5月29日 21:08:04 +0000 (21:08 +0000)]
Add text to "Populating a Database" pointing out that bulk data load into a
table with foreign key constraints eats memory. Per off-line discussion of
bug #5480 with its reporter. Also do some minor wordsmithing elsewhere in
the same section.
Document that NOT NULL domain constraints are not always honored.
Fix typos in recent doc patch. Fujii Masao
Add C comment that we will have to remove an exclusion constraint check
if we ever implement '<>' index opclasses.
Jeff Davis
Tom Lane [2010年5月28日 20:02:32 +0000 (20:02 +0000)]
Abort a FETCH_COUNT-controlled query if we observe any I/O error on the
output stream. This typically indicates that the user quit out of $PAGER,
or that we are writing to a file and ran out of disk space. In either case
we shouldn't bother to continue fetching data.
Stephen Frost
Tom Lane [2010年5月28日 18:18:19 +0000 (18:18 +0000)]
Fix oversight in the previous patch that made LIKE throw error for \ at the
end of the pattern: the code path that handles \ just after % should throw
error too. As in the previous patch, not back-patching for fear of breaking
apps that worked before.
Document use of VPATH builds.
David Fetter
Tom Lane [2010年5月28日 17:35:23 +0000 (17:35 +0000)]
Rewrite LIKE's %-followed-by-_ optimization so it really works (this time
for sure ;-)). It now also optimizes more cases, such as %_%_. Improve
comments too. Per bug #5478.
In passing, also rename the TCHAR macro to GETCHAR, because pgindent is
messing with the formatting of the former (apparently it now thinks TCHAR
is a typedef name).
Back-patch to 8.3, where the bug was introduced.
PGDLLEXPORT is __declspec (dllexport) only on MSVC,
but is __declspec (dllimport) on other compilers
because cygwin and mingw don't like dllexport.
Update High Availability docs. Clarify terms master/primary standby/slave,
move two paragraphs that apply to log shipping in general from the
"Alternative method for log shipping" section to the earlier sections.
Add varname tags where missing. Some small wording changes.
Tom Lane [2010年5月28日 01:14:03 +0000 (01:14 +0000)]
Rejigger mergejoin logic so that a tuple with a null in the first merge column
is treated like end-of-input, if nulls sort last in that column and we are not
doing outer-join filling for that input. In such a case, the tuple cannot
join to anything from the other input (because we assume mergejoinable
operators are strict), and neither can any tuple following it in the sort
order. If we're not interested in doing outer-join filling we can just
pretend the tuple and its successors aren't there at all. This can save a
great deal of time in situations where there are many nulls in the join
column, as in a recent example from Scott Marlowe. Also, since the planner
tends to not count nulls in its mergejoin scan selectivity estimates, this
is an important fix to make the runtime behavior more like the estimate.
I regard this as an omission in the patch I wrote years ago to teach mergejoin
that tuples containing nulls aren't joinable, so I'm back-patching it. But
only to 8.3 --- in older versions, we didn't have a solid notion of whether
nulls sort high or low, so attempting to apply this optimization could break
things.
Tom Lane [2010年5月27日 19:19:38 +0000 (19:19 +0000)]
Change ps_status.c to explicitly track the current logical length of ps_buffer.
This saves cycles in get_ps_display() on many popular platforms, and more
importantly ensures that get_ps_display() will correctly return an empty
string if init_ps_display() hasn't been called yet. Per trouble report
from Ray Stell, in which log_line_prefix %i produced junk early in backend
startup.
Back-patch to 8.0. 7.4 doesn't have %i and its version of get_ps_display()
makes no pretense of avoiding pad junk anyhow.
Small correction/clarification in discussion of Unicode literals
Tom Lane [2010年5月27日 16:20:11 +0000 (16:20 +0000)]
Fix the volatility marking of textanycat() and anytextcat(): they were marked
immutable, but that is wrong in general because the cast from the polymorphic
argument to text could be stable or even volatile. Mark them volatile for
safety. In the typical case where the cast isn't volatile, the planner will
deduce the correct expression volatility after inlining the function, so
performance is not lost. The just-committed fix in CREATE INDEX also ensures
this won't break any indexing cases that ought to be allowed.
Per discussion, I'm not bumping catversion for this change, as it doesn't
seem critical enough to force an initdb on beta testers.
Tom Lane [2010年5月27日 15:59:10 +0000 (15:59 +0000)]
Make CREATE INDEX run expression preprocessing on a proposed index expression
before it checks whether the expression is immutable. This covers two cases
that were previously handled poorly:
1. SQL function inlining could reduce the apparent volatility of the
expression, allowing an expression to be accepted where it previously would
not have been. As an example, polymorphic functions must be marked with the
worst-case volatility they have for any argument type, but for specific
argument types they might not be so volatile, so indexing could be allowed.
(Since the planner will refuse to inline functions in cases where the
apparent volatility of the expression would increase, this won't break
any cases that were accepted before.)
2. A nominally immutable function could have default arguments that are
volatile expressions. In such a case insertion of the defaults will increase
both the apparent and actual volatility of the expression, so it is
*necessary* to check this before allowing the expression to be indexed.
Back-patch to 8.4, where default arguments were introduced.
Mark PG_MODULE_MAGIC and PG_FUNCTION_INFO_V1 with PGDLLEXPORT
independently from BUILDING_DLL. It is always __declspec(dllexport).
Make it more clear that you need to release savepoint with
RELEASE SAVEPOINT to make an older savepoint with the same name
accessible. It's also possible to implicitly release the savepoint by
rolling back to an earlier savepoint, but mentioning that too would make
the note just more verbose and confusing.
Avoid starting walreceiver in states where it shouldn't be running.
In particular, it's bad to start walreceiver when in state
PM_WAIT_BACKENDS, because we have no provision to kill walreceiver
when in that state.
Fujii Masao
Adjust comment to reflect that we now have Hot Standby. Pointed out by
Robert Haas.
Fix SGML markup
Tom Lane [2010年5月26日 23:49:19 +0000 (23:49 +0000)]
Improve SSL-related documentation. Explain how to deal with certificate
chains, do assorted wordsmithing.
Document pgFouine and check_postgres as log analysis options.
Thinko in previous commit: ensure that MAX_SEND_SIZE is always greater
than XLOG_BLCKSZ, by defining it as 16 * XLOG_BLCKSZ rather than directly
as 128k bytes.
In walsender, don't sleep if there's outstanding WAL waiting to be sent,
otherwise we effectively rate-limit the streaming as pointed out by
Simon Riggs. Also, send the WAL in smaller chunks, to respond to signals
more promptly.
Tom Lane [2010年5月26日 21:39:27 +0000 (21:39 +0000)]
Rearrange libpq's SSL initialization to simplify it and make it handle some
additional cases correctly. The original coding failed to load additional
(chain) certificates from the client cert file, meaning that indirectly signed
client certificates didn't work unless one hacked the server's root.crt file
to include intermediate CAs (not the desired approach). Another problem was
that everything got loaded into the shared SSL_context object, which meant
that concurrent connections trying to use different sslcert settings could
well fail due to conflicting over the single available slot for a keyed
certificate.
To fix, get rid of the use of SSL_CTX_set_client_cert_cb(), which is
deprecated anyway in the OpenSSL documentation, and instead just
unconditionally load the client cert and private key during connection
initialization. This lets us use SSL_CTX_use_certificate_chain_file(),
which does the right thing with additional certs, and is lots simpler than
the previous hacking about with BIO-level access. A small disadvantage is
that we have to load the primary client cert a second time with
SSL_use_certificate_file, so that that one ends up in the correct slot
within the connection's SSL object where it can get paired with the key.
Given the other overhead of making an SSL connection, that doesn't seem
worth worrying about.
Per discussion ensuing from bug #5468.
Tom Lane [2010年5月26日 20:47:13 +0000 (20:47 +0000)]
Fix bogus error message for SSL-cert authentication, due to lack of
a uaCert entry in auth_failed(). Put the switch entries into a sane
order, namely the one the enum is declared in.
HS Defer buffer pin deadlock check until deadlock_timeout has expired.
During Hot Standby we need to check for buffer pin deadlocks when the
Startup process begins to wait, in case it never wakes up again. We
previously made the deadlock check immediately on the basis it was
cheap, though clearer thinking and prima facie evidence shows that
was too simple. Refactor existing code to make it easy to add in
deferral of deadlock check until deadlock_timeout allowing a good
reduction in deadlock checks since far few buffer pins are held for
that duration. It's worth doing anyway, though major goal is to
prevent further reports of context switching with high numbers of
users on occasional tests.
Fix psql help: \da+ is same as \da, but \daS is not.
Noted by Stephen Frost.
Tom Lane [2010年5月26日 16:43:13 +0000 (16:43 +0000)]
The message style police pay a visit to hba.c.
Tom Lane [2010年5月26日 16:15:57 +0000 (16:15 +0000)]
Minor editorialization for be-secure.c: fix comments and some formatting
infelicities.
Tom Lane [2010年5月26日 15:52:37 +0000 (15:52 +0000)]
Tell openssl to include the names of the root certs the server trusts in
requests for client certs. This lets a client with a keystore select the
appropriate client certificate to send. In particular, this is necessary
to get Java clients to work in all but the most trivial configurations.
Per discussion of bug #5468.
Craig Ringer
More fixes for shutdown during recovery.
1. If we receive a fast shutdown request while in the PM_STARTUP state,
process it just as we would in PM_RECOVERY, PM_HOT_STANDBY, or PM_RUN.
Without this change, an early fast shutdown followed by Hot Standby causes
the database to get stuck in a state where a shutdown is pending (so no new
connections are allowed) but the shutdown request is never processed unless
we end Hot Standby and enter normal running.
2. Avoid removing the backup label file when a smart or fast shutdown occurs
during recovery. It makes sense to do this once we've reached normal running,
since we must be taking a backup which now won't be valid. But during
recovery we must be recovering from a previously taken backup, and any backup
label file is needed to restart recovery from the right place.
Fujii Masao and Robert Haas
Tom Lane [2010年5月25日 22:03:27 +0000 (22:03 +0000)]
Add missing newlines to some SSL-related error messages. Noted while testing.
Tom Lane [2010年5月25日 17:44:41 +0000 (17:44 +0000)]
Fix oversight in construction of sort/unique plans for UniquePaths.
If the original IN operator is cross-type, for example int8 = int4,
we need to use int4 < int4 to sort the inner data and int4 = int4
to unique-ify it. We got the first part of that right, but tried to
use the original IN operator for the equality checks. Per bug #5472
from Vlad Romascanu.
Backpatch to 8.4, where the bug was introduced by the patch that unified
SortClause and GroupClause. I was able to take out a whole lot of on-the-fly
calls of get_equality_op_for_ordering_op(), but failed to realize that
I needed to put one back in right here :-(
Replace self written 'long long int' configure test by standard 'AC_TYPE_LONG_LONG_INT' macro call.
Remove IMPLEMENTATION.jp file from pg_upgrade docs; still in pgFoundry
for pg_migrator, per suggestion from Magnus.
Update pg_upgrade IMPLEMENTATION doc file to match current 9.0 behavior.
Modify pg_standby, pgbench, and pg_upgrade manual pages to be consistent
in their display of command-line options with other client applications.
Add pg_upgrade docs about binary compatibility, per Robert Haas.
Added a configure test for "long long" datatypes. So far this is only used in ecpg and replaces the old test that was kind of hackish.
Add Japanese Implementation file to CVS.
Re-order pg_upgrade 'help' options to be alphabetical.
In pg_upgrade, test for datallowconn instead of hardcoding template0.
Update pg_upgrade docs to show options in alphabetical order, and
improve 8.3 doc limitations paragraph.
Split apart pg_upgrade user lookup and root check so '--help' shows
proper default username.
Tom Lane [2010年5月23日 16:54:13 +0000 (16:54 +0000)]
issue_warnings() has no business freeing its parameter, especially not when
its sole caller does that too. Jan Matousek, via Pavel Stehule
Tom Lane [2010年5月23日 16:34:38 +0000 (16:34 +0000)]
Fix oversight in join removal patch: we have to delete the removed relation
from SpecialJoinInfo relid sets as well. Per example from Vaclav Novotny.
Unbreak \h; can't do strlen(NULL).
This was broken by the following commmit. Although the original commit was
backpatched all the way to 7.4, this particular bug exists only in the version
applied to HEAD.
http://archives.postgresql.org/pgsql-committers/2010-05/msg00058.php
Ecpg now accepts "long long" datatypes even if "long" is 64bit wide. This used to cover the equally long "long long" type. This patch closes bug #5464.
Tom Lane [2010年5月20日 20:32:27 +0000 (20:32 +0000)]
Fix index entry for lo_compat_privileges, per bug #5467 from KOIZUMI Satoru.
Change the "N. Central Asia Standard Time" timezone to map to
Asia/Novosibirsk on Windows.
Microsoft changed the behaviour of this zone in the timezone update
from KB976098. The zones differ in handling of DST, and the old
zone was just removed.
Noted by Dmitry Funk
Show oid2name command-line arguments in documentation like we do for
non-contrib command-line tools (no longer in a single table display).
SGML markup cleanup for pg_upgrade.
Doc change: Rename of directory no longer required for pg_migrator 9.0.
Alvaro
pg_upgrade doc cleanup
Stefan Kaltenbrunner
Restore oid2name doc change.
Add command-line documentation for pg_upgrade.
Simplify pg_upgrade queries by using IN instead of multiple OR clauses
comparing the same column to multiple values.
For pg_upgrade, update template0's datfrozenxid and its relfrozenxids to
match the behavior of autovacuum, which does this as the xid advances
even if autovacuum is turned off.
Refer to pg_ident.conf as config file for username mapping, as it's
now used for other things than just ident authentication.
Noted by Stephen Frost
Use a 'datallowconn' check for avoiding 'template0', rather than
hardcoding a 'template0' check, per suggestion from Alvaro.
This might fix a problem where someone has allowed 'template0'
connections, but it is a cleaner approach even if doesn't fix the
bug.
Make pg_upgrade documentation refer to 9.0 instead of 8.4.
Fujii Masao
Fix regression tests to match error message change
Add pg_upgrade TESTING files explaining a testing method.
Move pg_notify() details to a subsection within the NOTIFY reference page.
This allows the index to reference the pg_notify() subsection specifically,
rather than Notes section of the NOTIFY reference page more generally.
Fujii Masao
Make table in example less wide.
Follow up a visit from the style police.
Clarify plperl subroutine name release notes item, remove now redundant Safe.pm item.
Insert line breaks in two places in SQL functions documentation.
This avoids a formatting problem in the PDF output. In the HTML output this
isn't necessary, but we've done similar things elsewhere in the documentation
so I think it's OK to do it here, too. I've refrained from breaking a longish
error message which also causes problems for the PDF output, because that would
make the HTML output look wrong.
Erik Rijkers
Fix longstanding typo in V1 calling conventions documentation.
Erik Rijkers
Tom Lane [2010年5月15日 21:41:16 +0000 (21:41 +0000)]
Ensure that pg_restore -l will output DATABASE entries whether or not -C
is specified. Per bug report from Russell Smith and ensuing discussion.
Since this is a corner case behavioral change, I'm going to be conservative
and not back-patch it.
In passing, also rename the RestoreOptions field for the -C switch to
something less generic than "create".
Rename PM_RECOVERY_CONSISTENT and PMSIGNAL_RECOVERY_CONSISTENT.
The new names PM_HOT_STANDBY and PMSIGNAL_BEGIN_HOT_STANDBY more accurately
reflect their actual function.
Tom Lane [2010年5月15日 18:11:07 +0000 (18:11 +0000)]
Improve documentation of pg_restore's -l and -L switches to point out their
interactions with filtering switches, such as -n and -t. Per a complaint
from Russell Smith.
Tom Lane [2010年5月15日 14:44:13 +0000 (14:44 +0000)]
Spell __NetBSD__ the same way everywhere. Per Giles Lean.
Adjust pg_upgrade BSD defines for scandir(), per report from Giles Lean
Use __bsdi__ consistently.
Change bsdi define to __bsdi__
Fix typos in comments, spotted by Josh Kupershmidt.
Fix bug in processing of checkpoint time for max_standby_delay. Latest
log time was incorrectly set, typically leading to dates in the past,
which would cause more cancellations in Hot Standby on a quiet server.
We now accept read-only connections in state PM_RECOVERY_CONSISTENT.
Remove CRs.
Add many new Asserts in code and fix simple bug that slipped through
without them, related to previous commit. Report by Bruce Momjian.
Tom Lane [2010年5月14日 00:43:42 +0000 (00:43 +0000)]
Fix another obvious bug pointed out by a compiler warning.
Tom Lane [2010年5月14日 00:39:51 +0000 (00:39 +0000)]
Remove another unsafe use of random data as a format string.
Tom Lane [2010年5月14日 00:32:21 +0000 (00:32 +0000)]
Get rid of unsafe sprintf and snprintf usages. Per compiler warnings.
Tom Lane [2010年5月14日 00:19:46 +0000 (00:19 +0000)]
Spell __darwin__ correctly, to suppress compiler warning on OSX.
Use NAMEDATALEN instead of local define.
Modify path separators for Win32.
Per ideas from Takahiro Itagaki
Remove all mentions of EnterpriseDB Advanced Server from pg_upgrade;
EDB must maintain their own patch set for this.
This is the main PostgreSQL git repository.
RSS
Atom