OSDN Git Service
Neil Conway [Sat, 12 Mar 2005 06:53:54 +0000 (06:53 +0000)]
Some builds (depends on crypto engine support?) of OpenSSL
0.9.7x have EVP_DigestFinal function which which clears all of
EVP_MD_CTX. This makes pgcrypto crash in functions which
re-use one digest context several times: hmac() and crypt()
with md5 algorithm.
Following patch fixes it by carring the digest info around
EVP_DigestFinal and re-initializing cipher.
Marko Kreen.
Bruce Momjian [Sat, 12 Mar 2005 06:28:17 +0000 (06:28 +0000)]
Documention all our supported encodings.
Bruce Momjian [Sat, 12 Mar 2005 05:41:38 +0000 (05:41 +0000)]
Done:
< o Allow COPY FROM ... CSV to interpret newlines and carriage
> o -Allow COPY FROM ... CSV to interpret newlines and carriage
Bruce Momjian [Sat, 12 Mar 2005 05:41:34 +0000 (05:41 +0000)]
Handle carriage returns and line feeds in COPY CSV mode.
Andrew Dunstan
Bruce Momjian [Sat, 12 Mar 2005 05:25:49 +0000 (05:25 +0000)]
Done:
* -Add a warning when the free space map is too small
Bruce Momjian [Sat, 12 Mar 2005 05:21:52 +0000 (05:21 +0000)]
Add warning about the need to increase "max_fsm_relations" and
"max_fsm_relations" for vacuums. Also improve VACUUM VERBOSE final
message text.
Ron Mayer
Bruce Momjian [Sat, 12 Mar 2005 04:00:56 +0000 (04:00 +0000)]
Fix snprintf() to properly handle precision specification for %f.
Tom Lane [Sat, 12 Mar 2005 01:54:44 +0000 (01:54 +0000)]
Fix problem with infinite recursion between write_syslogger_file and
elog if the former has trouble writing its file. Code review for
Magnus' patch to redirect stderr to syslog on Windows (Bruce's version
seems right, but did some minor prettification).
Backpatch both changes to 8.0 branch.
Bruce Momjian [Fri, 11 Mar 2005 21:46:54 +0000 (21:46 +0000)]
Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
change content (at least not supposed to).
Magnus Hagander
Bruce Momjian [Fri, 11 Mar 2005 19:13:43 +0000 (19:13 +0000)]
Add fprintf() custom version to libpgport.
Document use of macros for pg_printf functions.
Bump major versions of all interfaces to handle movement of get_progname
from libpq to libpgport in 8.0, and probably other libpgport changes in 8.1.
Bruce Momjian [Fri, 11 Mar 2005 17:20:35 +0000 (17:20 +0000)]
Define snprintf() to call pg_snprintf() so our own snprintf-like
implementation doesn't export out via libpq and get used by a user
application.
Bruce Momjian [Fri, 11 Mar 2005 15:36:27 +0000 (15:36 +0000)]
Add 'static' to initdb.c file-global variables.
Bruce Momjian [Fri, 11 Mar 2005 15:25:31 +0000 (15:25 +0000)]
Mark file-global function and variables as static.
Bruce Momjian [Fri, 11 Mar 2005 13:09:39 +0000 (13:09 +0000)]
Fix typos.
Hashem Masoud
Bruce Momjian [Fri, 11 Mar 2005 11:59:16 +0000 (11:59 +0000)]
Fix typos.
Robert Treat
Bruce Momjian [Fri, 11 Mar 2005 11:43:45 +0000 (11:43 +0000)]
Fix typos.
Robert Treat
Bruce Momjian [Fri, 11 Mar 2005 11:42:03 +0000 (11:42 +0000)]
Fix typo.
Neil Conway [Fri, 11 Mar 2005 03:52:06 +0000 (03:52 +0000)]
Slight refactoring and optimization of some code in WaitOnLock().
Bruce Momjian [Fri, 11 Mar 2005 03:45:25 +0000 (03:45 +0000)]
Add:
> * Fix cross-compiling of time zone database via 'zic'
Tom Lane [Thu, 10 Mar 2005 23:21:26 +0000 (23:21 +0000)]
Make the behavior of HAVING without GROUP BY conform to the SQL spec.
Formerly, if such a clause contained no aggregate functions we mistakenly
treated it as equivalent to WHERE. Per spec it must cause the query to
be treated as a grouped query of a single group, the same as appearance
of aggregate functions would do. Also, the HAVING filter must execute
after aggregate function computation even if it itself contains no
aggregate functions.
Bruce Momjian [Thu, 10 Mar 2005 21:41:01 +0000 (21:41 +0000)]
Add spinlock support for Itanium processor with Intel compiler.
Vikram Kalsi
Neil Conway [Thu, 10 Mar 2005 07:14:03 +0000 (07:14 +0000)]
Refactor fork()-related code. We need to do various housekeeping tasks
before we can invoke fork() -- flush stdio buffers, save and restore the
profiling timer on Linux with LINUX_PROFILE, and handle BeOS stuff. This
patch moves that code into a single function, fork_process(), instead of
duplicating it at the various callsites of fork().
This patch doesn't address the EXEC_BACKEND case; there is room for
further cleanup there.
Bruce Momjian [Tue, 8 Mar 2005 13:27:31 +0000 (13:27 +0000)]
Add comma.
Bruce Momjian [Tue, 8 Mar 2005 03:52:57 +0000 (03:52 +0000)]
Fix markup of URL.
Bruce Momjian [Tue, 8 Mar 2005 01:15:33 +0000 (01:15 +0000)]
Add URL for patches queues.
Neil Conway [Mon, 7 Mar 2005 23:18:06 +0000 (23:18 +0000)]
Unbreak out-of-tree builds, by fixing a typo.
Neil Conway [Mon, 7 Mar 2005 22:59:43 +0000 (22:59 +0000)]
Replace an instance of $Id$ and an instance of $Header$ with $PostgreSQL$
Bruce Momjian [Mon, 7 Mar 2005 21:10:58 +0000 (21:10 +0000)]
Properly implement "Response files" for bcc. Add URL's to describe the
feature for Win32 and bcc.
Tom Lane [Mon, 7 Mar 2005 04:42:17 +0000 (04:42 +0000)]
Adjust creation/destruction of TupleDesc data structure to reduce the
number of palloc calls. This has a salutory impact on plpgsql operations
with record variables (which create and destroy tupdescs constantly)
and probably helps a bit in some other cases too.
Bruce Momjian [Mon, 7 Mar 2005 04:30:55 +0000 (04:30 +0000)]
Rename canonical encodings, per Peter:
UNICODE => UTF8
ALT => WIN866
WIN => WIN1251
TCVN => WIN1258
The old codes continue to work.
Neil Conway [Mon, 7 Mar 2005 04:15:34 +0000 (04:15 +0000)]
Here's a tiny fix for a harmless typo in catalog.c:
Too much space is allocated for tablespace file path, I guess the
directory name used to be "pg_tablespaces" instead of "pg_tblspc" at
some point.
Heikki Linnakangas
Tom Lane [Mon, 7 Mar 2005 02:00:28 +0000 (02:00 +0000)]
Add a note that regression test row ordering differences can be caused
by non-default planner parameter settings.
Tom Lane [Sun, 6 Mar 2005 22:15:05 +0000 (22:15 +0000)]
Revise hash join code so that we can increase the number of batches
on-the-fly, and thereby avoid blowing out memory when the planner has
underestimated the hash table size. Hash join will now obey the
work_mem limit with some faithfulness. Per my recent proposal
(hash aggregate part isn't done yet though).
Teodor Sigaev [Sat, 5 Mar 2005 15:48:32 +0000 (15:48 +0000)]
Prevent rank change in case of duplicate search terms
Tom Lane [Fri, 4 Mar 2005 20:21:07 +0000 (20:21 +0000)]
Replace the BufMgrLock with separate locks on the lookup hashtable and
the freelist, plus per-buffer spinlocks that protect access to individual
shared buffer headers. This requires abandoning a global freelist (since
the freelist is a global contention point), which shoots down ARC and 2Q
as well as plain LRU management. Adopt a clock sweep algorithm instead.
Preliminary results show substantial improvement in multi-backend situations.
Bruce Momjian [Wed, 2 Mar 2005 23:56:53 +0000 (23:56 +0000)]
Move snprintf int64 compatibility letters into a NOT_USED block.
Tom Lane [Wed, 2 Mar 2005 19:58:54 +0000 (19:58 +0000)]
Fix misspelling of sysctl, per Stefan Hans.
Bruce Momjian [Wed, 2 Mar 2005 15:42:35 +0000 (15:42 +0000)]
Use test && test rather than test -a, per Peter.
Bruce Momjian [Wed, 2 Mar 2005 15:32:39 +0000 (15:32 +0000)]
Fix for %I64d snprintf.
Bruce Momjian [Wed, 2 Mar 2005 15:07:09 +0000 (15:07 +0000)]
snprintf() %I64d code fix.
Bruce Momjian [Wed, 2 Mar 2005 14:48:22 +0000 (14:48 +0000)]
Use our own snprintf() only if NLS is enabled, and support %qd and %I64d.
Bruce Momjian [Wed, 2 Mar 2005 05:22:22 +0000 (05:22 +0000)]
Prevent large allocation in snprintf to hold positional parameters.
Allocated size based on format string.
Tom Lane [Wed, 2 Mar 2005 04:10:53 +0000 (04:10 +0000)]
Another go at making pred_test() handle all reasonable combinations
of AND and OR clauses. The key point here is that an OR on the
predicate side has to be treated gingerly: we may be able to prove
that the OR is implied even when no one of its components is implied.
For example (x OR y) implies (x OR y OR z) even though no one of x,
y, or z can be individually proven. This code handles both the
example shown recently by Sergey Koshcheyev and the one shown last
October by Dawid Kuroczko.
Bruce Momjian [Wed, 2 Mar 2005 03:21:52 +0000 (03:21 +0000)]
Fix snprintf on Win32:
* If vsnprintf() is not before snprintf() in this file, snprintf()
* will call the system vsnprintf() on MinGW.
Bruce Momjian [Wed, 2 Mar 2005 00:02:13 +0000 (00:02 +0000)]
Make port snprintf.c finally thread-safe.
Neil Conway [Tue, 1 Mar 2005 23:45:00 +0000 (23:45 +0000)]
SGML improvements to the DML chapter.
Tom Lane [Tue, 1 Mar 2005 21:14:59 +0000 (21:14 +0000)]
Release proclock immediately in RemoveFromWaitQueue() if it represents
no held locks. This maintains the invariant that proclocks are present
only for procs that are holding or awaiting a lock; when this is not
true, LockRelease will fail. Per report from Stephen Clouse.
Tom Lane [Tue, 1 Mar 2005 20:23:34 +0000 (20:23 +0000)]
Allow Trace_lock_oidmin to be set to zero; this is a reasonable
representation of not wanting tracing to be limited by object OID.
Teodor Sigaev [Tue, 1 Mar 2005 15:40:04 +0000 (15:40 +0000)]
Simplify/clean up code for varlena types
Bruce Momjian [Tue, 1 Mar 2005 05:47:28 +0000 (05:47 +0000)]
Make snprintf() use already-defined int64/uint64 typedefs rather than
defining its own.
Bruce Momjian [Tue, 1 Mar 2005 05:00:20 +0000 (05:00 +0000)]
Done:
> * -Make src/port/snprintf.c thread-safe
Tom Lane [Tue, 1 Mar 2005 01:40:05 +0000 (01:40 +0000)]
Adjust OR indexscan logic to not generate redundant condition-free OR
indexscans involving partial indexes. These would always be dominated
by a simple indexscan on such an index, so there's no point in considering
them. Fixes overoptimism in a patch I applied last October.
Bruce Momjian [Tue, 1 Mar 2005 00:38:11 +0000 (00:38 +0000)]
And while we are on it, I would like to submit minor
changes to make snprintf() vsnprintf() and printf()
functions in src/port/snprintf.c thread-safe.
Nicolai Tufar
Tom Lane [Tue, 1 Mar 2005 00:24:52 +0000 (00:24 +0000)]
Revert the logic for expanding AND/OR conditions in pred_test() to what
it was in 7.4, and add some comments explaining why it has to be this way.
I broke it for OR'd index predicates in a fit of code cleanup last summer.
Per example from Sergey Koshcheyev.
Tom Lane [Mon, 28 Feb 2005 20:55:18 +0000 (20:55 +0000)]
Un-break configure snprintf tests (partly my fault, partly Bruce's).
Bruce Momjian [Mon, 28 Feb 2005 20:36:05 +0000 (20:36 +0000)]
Move PGAC_FUNC_PRINTF_ARG_CONTROL to just above snprintf 64-bit tests so
its output can be used to select the proper printf outputs.
Bruce Momjian [Mon, 28 Feb 2005 14:16:16 +0000 (14:16 +0000)]
snprintf.c has no sys/ioctl.h. Trivial patch below:
Magnus Hagander
Neil Conway [Mon, 28 Feb 2005 03:45:24 +0000 (03:45 +0000)]
Implement max() and min() aggregates for array types. Patch from Koju
Iijima, reviewed by Neil Conway. Catalog version number bumped,
regression tests updated.
Bruce Momjian [Sun, 27 Feb 2005 22:57:17 +0000 (22:57 +0000)]
Because the change to gettext. Needs a bunch of new includes. Patch
follows:
Magnus Hagander
Bruce Momjian [Sun, 27 Feb 2005 22:39:52 +0000 (22:39 +0000)]
Tab indent all actions in bcc32.mak, and do it on win32.mak too for
consistency. Backpatch only bcc32.mak to 8.0.X.
Neil Conway [Sun, 27 Feb 2005 08:31:30 +0000 (08:31 +0000)]
Add explicit casts between int4 and boolean. Patch from Sean Chittenden,
editorializing by Neil Conway. Catalog version bumped.
Bruce Momjian [Sun, 27 Feb 2005 01:17:34 +0000 (01:17 +0000)]
Rename planner stats detail to avoid label confict.
Bruce Momjian [Sun, 27 Feb 2005 01:02:57 +0000 (01:02 +0000)]
Cause Win32 to output to the event log rather than stderr by default.
Magnus Hagander
Bruce Momjian [Sun, 27 Feb 2005 00:53:29 +0000 (00:53 +0000)]
Allow Win32 to support the O_SYNC open flag as an wal_sync_method method.
Magnus Hagander
Bruce Momjian [Sun, 27 Feb 2005 00:49:28 +0000 (00:49 +0000)]
Add documentation on how statistics are used by the planner.
Mark Kirkwood
Bruce Momjian [Sat, 26 Feb 2005 23:31:15 +0000 (23:31 +0000)]
Add routines to dbsize to return the index size and total relation size.
Improve documentation.
Ed L.
Bruce Momjian [Sat, 26 Feb 2005 23:19:05 +0000 (23:19 +0000)]
Adjust OS-specific kernel settings to mention old and new BSD methods of
adjusting values:
> But to be on the safe side, it would make sense to do something similar
> to the BSD section, and comment about older distributions maybe needing
> to manipulate /proc/kernel/* directly.
Mark Kirkwood
Tom Lane [Sat, 26 Feb 2005 18:43:34 +0000 (18:43 +0000)]
Finish up the flat-files project: get rid of GetRawDatabaseInfo() hack
in favor of looking at the flat file copy of pg_database during backend
startup. This should finally eliminate the various corner cases in which
backend startup fails unexpectedly because it isn't able to distinguish
live and dead tuples in pg_database. Simplify locking on pg_database
to be similar to the rules used with pg_shadow and pg_group, and eliminate
FlushRelationBuffers operations that were used only to reduce the odds
of failure of GetRawDatabaseInfo.
initdb forced due to addition of a trigger to pg_database.
Bruce Momjian [Sat, 26 Feb 2005 18:39:04 +0000 (18:39 +0000)]
Clarify PGPASSWORD usage:
! authentication. Use of this environment variable is not
! recommended for security reasons (some operating systems
! allow non-root users to see process environment variables via
! <application>ps</>); instead consider using the
! <filename>~/.pgpass</> file (see <xref linkend="libpq-pgpass">).
Tom Lane [Sat, 26 Feb 2005 18:37:17 +0000 (18:37 +0000)]
Correct overstatement in locking docs: we said ExclusiveLock is never
taken automatically, but this is only true with respect to user tables.
Bruce Momjian [Sat, 26 Feb 2005 14:21:40 +0000 (14:21 +0000)]
State PGPASSWORD is "not recommended" rather than "depricated".
Teodor Sigaev [Fri, 25 Feb 2005 16:13:29 +0000 (16:13 +0000)]
In accordance to
http://www.pgsql.ru/db/mw/msg.html?mid=
2045361
change TimeATD to/from Datum macros.
Re-initdb is needed.
Bruce Momjian [Fri, 25 Feb 2005 15:57:33 +0000 (15:57 +0000)]
Add linking from /port to bcc makefile.
Teodor Sigaev [Fri, 25 Feb 2005 14:03:04 +0000 (14:03 +0000)]
Fix float8->int64 transformation
Bruce Momjian [Fri, 25 Feb 2005 04:56:01 +0000 (04:56 +0000)]
Please find enclosed a patch, per Dennis Bj<C3><B6>rklund, that uses -f
for input files rather than <. This makes error messages, &c. more
expressive.
David Fetter
Bruce Momjian [Fri, 25 Feb 2005 04:18:27 +0000 (04:18 +0000)]
Fix plpgsql error message for dropped temporary tables.
Bruce Momjian [Fri, 25 Feb 2005 02:34:56 +0000 (02:34 +0000)]
Clarify object ownership language to prevent confusion with database
ownership.
Bruce Momjian [Fri, 25 Feb 2005 00:45:30 +0000 (00:45 +0000)]
Updatge wording.
Bruce Momjian [Fri, 25 Feb 2005 00:32:55 +0000 (00:32 +0000)]
Fix markup.
Bruce Momjian [Fri, 25 Feb 2005 00:32:15 +0000 (00:32 +0000)]
Fix HTML markup and add NULL sorting item to existing NULL FAQ item.
Greg Sabino Mullan
Bruce Momjian [Fri, 25 Feb 2005 00:24:10 +0000 (00:24 +0000)]
Add:
> * Improve psql's handling of multi-line queries
Bruce Momjian [Thu, 24 Feb 2005 23:39:29 +0000 (23:39 +0000)]
Add wording about UTF8:
< like towupper().
> like towupper(). However, UTF8 already works with normal
> locales but provides no ordering.
Bruce Momjian [Thu, 24 Feb 2005 14:14:41 +0000 (14:14 +0000)]
Done:
> o -Change PL/PgSQL to use palloc() instead of malloc()
Tom Lane [Thu, 24 Feb 2005 02:12:15 +0000 (02:12 +0000)]
We aren't supposed to try to run test programs until after we've
verified that AC_TRY_RUN works.
Tom Lane [Thu, 24 Feb 2005 01:34:45 +0000 (01:34 +0000)]
Clean up printf arg-control test, per Kurt Roeckx.
Tom Lane [Thu, 24 Feb 2005 01:11:40 +0000 (01:11 +0000)]
My patch this morning was overly hasty; revert code to original state.
Neil Conway [Wed, 23 Feb 2005 23:27:54 +0000 (23:27 +0000)]
Minor code cleanup: remove a variable that was assigned to but never
subsequently referenced.
Found by: Coverity
Fixed by: Sean Chittenden
Neil Conway [Wed, 23 Feb 2005 22:46:17 +0000 (22:46 +0000)]
This patch optimizes the md5_text() function (which is used to
implement the md5() SQL-level function). The old code did the
following:
1. de-toast the datum
2. convert it to a cstring via textout()
3. get the length of the cstring via strlen()
Since we are treating the datum context as a blob of binary data,
the latter two steps are unnecessary. Once the data has been
detoasted, we can just use it as-is, and derive its length from
the varlena metadata.
This patch improves some run-of-the-mill md5() computations by
just under 10% in my limited tests, and passes the regression tests.
I also noticed that md5_text() wasn't checking the return value
of md5_hash(); encountering OOM at precisely the right moment
could result in returning a random md5 hash. This patch corrects
that. A better fix would be to make md5_hash() only return on
success (and/or allocate via palloc()), but since it's used in
the frontend as well I don't see an easy way to do that.
Tom Lane [Wed, 23 Feb 2005 16:23:07 +0000 (16:23 +0000)]
Un-break plpgsql build by removing unwanted _() usage.
This would be a completely inappropriate place to apply localization
anyway.
Bruce Momjian [Wed, 23 Feb 2005 04:34:21 +0000 (04:34 +0000)]
Properly undef _(x) gettext macro.
Tom Lane [Tue, 22 Feb 2005 19:06:18 +0000 (19:06 +0000)]
Document that only a table's owner may TRUNCATE it. Per Keith Worthington.
Neil Conway [Tue, 22 Feb 2005 07:18:27 +0000 (07:18 +0000)]
This patch changes makes some significant changes to how compilation
and parsing work in PL/PgSQL:
- memory management is now done via palloc(). The compiled representation
of each function now has its own memory context. Therefore, the storage
consumed by a function can be reclaimed via MemoryContextDelete().
During compilation, the CurrentMemoryContext is the function's memory
context. This means that a palloc() is sufficient to allocate memory
that will have the same lifetime as the function itself. As a result,
code invoked during compilation should be careful to pfree() temporary
allocations to avoid leaking memory. Since a lot of the code in the
backend is not careful about releasing palloc'ed memory, that means
we should switch into a temporary memory context before invoking
backend functions. A temporary context appropriate for such allocations
is `compile_tmp_cxt'.
- The ability to use palloc() allows us to simply a lot of the code in
the parser. Rather than representing lists of elements via ad hoc
linked lists or arrays, we can use the List type. Rather than doing
malloc followed by memset(0), we can just use palloc0().
- We now check that the user has supplied the right number of parameters
to a RAISE statement. Supplying either too few or too many results in
an error (at runtime).
- PL/PgSQL's parser needs to accept arbitrary SQL statements. Since we
do not want to duplicate the SQL grammar in the PL/PgSQL grammar, this
means we need to be quite lax in what the PL/PgSQL grammar considers
a "SQL statement". This can lead to misleading behavior if there is a
syntax error in the function definition, since we assume a malformed
PL/PgSQL construct is a SQL statement. Furthermore, these errors were
only detected at runtime (when we tried to execute the alleged "SQL
statement" via SPI).
To rectify this, the patch changes the parser to invoke the main SQL
parser when it sees a string it believes to be a SQL expression. This
means that synctically-invalid SQL will be rejected during the
compilation of the PL/PgSQL function. This is only done when compiling
for "validation" purposes (i.e. at CREATE FUNCTION time), so it should
not impose a runtime overhead.
- Fixes for the various buffer overruns I've patched in stable branches
in the past few weeks. I've rewritten code where I thought it was
warranted (unlike the patches applied to older branches, which were
minimally invasive).
- Various other minor changes and cleanups.
- Updates to the regression tests.
Bruce Momjian [Tue, 22 Feb 2005 04:57:24 +0000 (04:57 +0000)]
Add semicolon so snprintf.c goto has a statement to attach to:
nochar:
/* nothing */
; /* semicolon required because a goto has to be attached to a statement */
Bruce Momjian [Tue, 22 Feb 2005 04:43:23 +0000 (04:43 +0000)]
Use _() macro consistently rather than gettext(). Add translation
macros around strings that were missing them.
Bruce Momjian [Tue, 22 Feb 2005 04:08:01 +0000 (04:08 +0000)]
Add:
> * Add internationalized message strings
Bruce Momjian [Tue, 22 Feb 2005 03:56:22 +0000 (03:56 +0000)]
Add support to port/snprintf.c for position parameter specification:
+ # Determine if printf supports %1$ argument selection, e.g. %5$ selects
+ # the fifth argument after the printf print string.
+ # This is not in the C99 standard, but in the Single Unix Specification (SUS).
+ # It is used in our langauge translation strings.
Nicolai Tufar with configure changes by Bruce.
Bruce Momjian [Tue, 22 Feb 2005 02:54:19 +0000 (02:54 +0000)]
Update initdb locale/encoding documentation description. Backpatch to
8.0.X.
Bruce Momjian [Mon, 21 Feb 2005 21:22:32 +0000 (21:22 +0000)]
Try to get Borland CC to compile.
Backpatch to 8.0.X which doesn't work right now.
Bruce Momjian [Mon, 21 Feb 2005 18:51:07 +0000 (18:51 +0000)]
Add port mention:
< * Add the client IP address to pg_stat_activity
> * Add the client IP address and port to pg_stat_activity
Bruce Momjian [Mon, 21 Feb 2005 17:33:54 +0000 (17:33 +0000)]
Update Russian FAQ.
Viktor Vislobokov