git.postgresql.org Git - postgresql.git/log
Add to TODO:
>
> * Consider being smarter about memory and external files used during
> sorts
>
> http://archives.postgresql.org/pgsql-hackers/2007-11/msg01101.php
> http://archives.postgresql.org/pgsql-hackers/2007-12/msg00045.php
Add URL for:
* Consider allowing control of upper/lower case folding of unquoted
identifiers
> http://archives.postgresql.org/pgsql-hackers/2008-03/msg00849.php
Tom Lane [2008年3月27日 19:06:14 +0000 (19:06 +0000)]
When we have successfully optimized a MIN or MAX aggregate into an indexscan,
the query result must be exactly one row (since we don't do this when there's
any GROUP BY). Therefore any ORDER BY or DISTINCT attached to the query is
useless and can be dropped. Aside from saving useless cycles, this protects
us against problems with matching the hacked-up tlist entries to sort clauses,
as seen in a bug report from Taiki Yamaguchi. We might need to work harder
if we ever try to optimize grouped queries with this approach, but this
solution will do for now.
Remove ipcclean utility command --- didn't work on all Unixes and on
Windows. Users should use their operating system tools instead.
Sorry, copied wrong files.
- Moved from PQsetdbLogin to PQconnectDB.
- Correctly parse connect options.
- Changed regression tests accordingly.
Tom Lane [2008年3月27日 03:57:34 +0000 (03:57 +0000)]
Reduce the need for frontend programs to include "postgres.h" by refactoring
inclusions in src/include/catalog/*.h files. The main idea here is to push
function declarations for src/backend/catalog/*.c files into separate headers,
rather than sticking them into the corresponding catalog definition file as
has been done in the past. This commit only carries out that idea fully for
pg_proc, pg_type and pg_conversion, but that's enough for the moment ---
if pg_list.h ever becomes unsafe for frontend code to include, we'll need
to work a bit more.
Zdenek Kotala
Move the HTSU_Result enum definition into snapshot.h, to avoid including
tqual.h into heapam.h. This makes all inclusion of tqual.h explicit.
I also sorted alphabetically the includes on some source files.
Rename snapmgmt.c/h to snapmgr.c/h, for consistency with other files.
Per complaint from Tom Lane.
Tom Lane [2008年3月26日 16:34:47 +0000 (16:34 +0000)]
Fix bad spelling and worse grammar in recent doc commits. Propagate
pg_dump --ignore-version comments into pg_dumpall and pg_restore pages.
Separate snapshot management code from tuple visibility code, create a
snapmgmt.c file for the former. The header files have also been reorganized
in three parts: the most basic snapshot definitions are now in a new file
snapshot.h, and the also new snapmgmt.h keeps the definitions for snapmgmt.c.
tqual.h has been reduced to the bare minimum.
This patch is just a first step towards managing live snapshots within a
transaction; there is no functionality change.
Per my proposal to pgsql-patches on
20080318191940.GB27458@alvh.no-ip.org and
subsequent discussion.
Include \password in the psql help.
While at it, change the order of the documented options to be
alphabetically again.
Improve documentation for odd array slice behavior.
Strengthen warnings about using pg_dump's -i option.
Update TODO:
< o Consider invalidating the cache or keeping seperate cached
< copies when search_path changes
> o Consider keeping seperate cached copies when search_path changes
Added to TODO:
>
> * Consider transaction start/end performance improvements
>
> http://archives.postgresql.org/pgsql-hackers/2007-07/msg00948.php
> http://archives.postgresql.org/pgsql-hackers/2008-03/msg00361.php
Tom Lane [2008年3月26日 01:19:04 +0000 (01:19 +0000)]
Fix core dump in contrib/xml2's xpath_table() when the input query returns
a NULL value. Per bug #4058.
Update documentation for recent DTrace changes. Patch from Robert Lor.
Tom Lane [2008年3月25日 22:42:46 +0000 (22:42 +0000)]
Simplify and standardize conversions between TEXT datums and ordinary C
strings. This patch introduces four support functions cstring_to_text,
cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and
two macros CStringGetTextDatum and TextDatumGetCString. A number of
existing macros that provided variants on these themes were removed.
Most of the places that need to make such conversions now require just one
function or macro call, in place of the multiple notational layers that used
to be needed. There are no longer any direct calls of textout or textin,
and we got most of the places that were using handmade conversions via
memcpy (there may be a few still lurking, though).
This commit doesn't make any serious effort to eliminate transient memory
leaks caused by detoasting toasted text objects before they reach
text_to_cstring. We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few
places where it was easy, but much more could be done.
Brendan Jurd and Tom Lane
Done:
> * -Avoid tuple some tuple copying in sort routines
Add a new tuplestore API function, tuplestore_putvalues(). This is
identical to tuplestore_puttuple(), except it operates on arrays of
Datums + nulls rather than a fully-formed HeapTuple. In several places
that use the tuplestore API, this means we can avoid creating a
HeapTuple altogether, saving a copy.
Update TODO wording:
* Simplify integer cross-data-type operators
Reword Win32 rint() item, per Tom.
Add URLs to previous discussions, per Simon.
added ECPGget_PGconn to exports.txt
Add to TODO:
>
> * Add SQL-standard array_agg() and unnest() array functions
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg01017.php
>
Add to pl/pgsql TODO:
>
> o Consider invalidating the cache or keeping seperate cached
> copies when search_path changes
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg01009.php
Add to TODO:
>
> * Add more cross-data-type operators
>
> http://archives.postgresql.org/pgsql-bugs/2008-01/msg00189.php
Add to TODO:
> * Detect deadlocks involving LockBufferForCleanup()
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00873.php
Add to psql TODO:
>
> o Improve display if enums
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00826.php
>
>
Add to TODO:
>
> o Fix port/rint.c to be spec-compliant
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00808.php
Add to TODO:
>
> * Consider sorting entries before inserting into btree index
>
> http://archives.postgresql.org/pgsql-general/2008-01/msg01010.php
Add to TODO:
>
> * Improve detection of shared memory segments being used by other
> FreeBSD jails
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00656.php
Add to TODO:
>
> * Move pgfoundry's xlogdump to /contrib and have it rely more closely
> on the WAL backend code
>
> http://archives.postgresql.org/pgsql-hackers/2007-11/msg00035.php
>
Add to TODO:
>
> * Have resource managers report the duration of their status changes
>
> http://archives.postgresql.org/pgsql-hackers/2007-10/msg01468.php
Add to TODO:
>
> * Be more aggressive about creating WAL files
>
> http://archives.postgresql.org/pgsql-hackers/2007-10/msg01325.php
Add:
> o Prevent concurrent CREATE TABLE table1 from sometimes returning
> a cryptic error message
>
> http://archives.postgresql.org/pgsql-bugs/2007-10/msg00169.php
Add to TODO:
>
> * Have /contrib/dblink reuse unnamed connections
>
> http://archives.postgresql.org/pgsql-hackers/2007-10/msg00895.php
Add to TODO:
> * Remove old-style routines for manipulating tuples
>
> http://archives.postgresql.org/pgsql-hackers/2007-10/msg00851.php
Add to TODO:
>
> * Create three versions of libpgport to simplify client code
>
> http://archives.postgresql.org/pgsql-hackers/2007-10/msg00154.php
>
Add to TODO:
>
> * Fix regular expression bug when using complex back-references
>
> http://archives.postgresql.org/pgsql-bugs/2007-10/msg00000.php
Add to TODO:
>
> * Allow xml arrays to be cast to other data types
>
> http://archives.postgresql.org/pgsql-hackers/2007-09/msg00981.php
> http://archives.postgresql.org/pgsql-hackers/2007-10/msg00231.php
> http://archives.postgresql.org/pgsql-hackers/2007-11/msg00471.php
>
Tom Lane [2008年3月24日 21:53:04 +0000 (21:53 +0000)]
When a relation has been proven empty by constraint exclusion, propagate that
knowledge up through any joins it participates in. We were doing that already
in some special cases but not in the general case. Also, defend against zero
row estimates for the input relations in cost_mergejoin --- this fix may have
eliminated the only scenario in which that can happen, but be safe. Per
report from Alex Solovey.
Tom Lane [2008年3月24日 19:47:35 +0000 (19:47 +0000)]
Use new errdetail_log() mechanism to provide a less klugy way of reporting
large numbers of dependencies on a role that couldn't be dropped.
Per a comment from Alvaro.
Tom Lane [2008年3月24日 19:12:49 +0000 (19:12 +0000)]
Fix various infelicities that have snuck into usage of errdetail() and
friends. Avoid double translation of some messages, ensure other messages
are exposed for translation (and make them follow the style guidelines),
avoid unsafe passing of an unpredictable message text as a format string.
Add to TODO:
>
> * Research reducing deTOASTing in more places
>
> http://archives.postgresql.org/pgsql-hackers/2007-09/msg00895.php
Tom Lane [2008年3月24日 18:22:36 +0000 (18:22 +0000)]
Adjust the recent patch for reporting of deadlocked queries so that we report
query texts only to the server log. This eliminates the issue of possible
leaking of security-sensitive data in other sessions' queries. Since the
log is presumed secure, we can now log the queries of all sessions involved
in the deadlock, whether or not they belong to the same user as the one
reporting the failure.
Tom Lane [2008年3月24日 18:08:47 +0000 (18:08 +0000)]
Add a new ereport auxiliary function errdetail_log(), which works the same as
errdetail except the string goes only to the server log, replacing the normal
errdetail there. This provides a reasonably clean way of dealing with error
details that are too security-sensitive or too bulky to send to the client.
This commit just adds the infrastructure --- actual uses to follow.
Add URL for:
* SMP scalability improvements
> http://archives.postgresql.org/pgsql-hackers/2007-09/msg00206.php
Add URL to:
* SMP scalability improvements
> http://archives.postgresql.org/pgsql-hackers/2008-03/msg00361.php
Add to TODO:
>
> * SMP scalability improvements
>
> http://archives.postgresql.org/pgsql-hackers/2007-07/msg00439.php
Add URL:
* Allow statistics last vacuum/analyze execution times to be displayed
without requiring stats_row_level to be enabled
>
> http://archives.postgresql.org/pgsql-docs/2007-04/msg00028.php
>
Add to TODO:
> * Improve reporting of UNION type mismatches
>
> http://archives.postgresql.org/pgsql-hackers/2007-04/msg00944.php
> http://archives.postgresql.org/pgsql-hackers/2008-03/msg00597.php
Update wording:
< o Allow pre/data/post files when dumping a single object, for
< performance reasons
> o Allow pre/data/post files when schema and data are dumped
> separately, for performance reasons
Update text:
< o Support pgxs
> o Support pgxs when using MSVC
Add:
> http://archives.postgresql.org/pgsql-patches/2008-02/msg00176.php
Re-add:
>
> * Avoid tuple some tuple copying in sort routines
>
> http://archives.postgresql.org/pgsql-hackers/2008-02/msg01206.php
Add:
>
> * Sort large UPDATE/DELETEs so it is done in heap order
>
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg01119.php
Add URL for:
* Do async I/O for faster random read-ahead of data
Async I/O allows multiple I/O requests to be sent to the disk with
results coming back asynchronously.
> http://archives.postgresql.org/pgsql-patches/2008-01/msg00170.php
Done:
<
< * Avoid tuple some tuple copying in sort routines
<
< http://archives.postgresql.org/pgsql-hackers/2008-02/msg01206.php
Tom Lane [2008年3月23日 00:54:04 +0000 (00:54 +0000)]
Avoid a useless tuple copy within nodeMaterial. Neil Conway
Add to pg_dump TODO:
> o Allow pre/data/post files when dumping a single object, for
> performance reasons
>
> http://archives.postgresql.org/pgsql-hackers/2008-02/msg00205.php
>
Tom Lane [2008年3月23日 00:24:20 +0000 (00:24 +0000)]
Create a function quote_nullable(), which works the same as quote_literal()
except that it returns the string 'NULL', rather than a SQL null, when called
with a null argument. This is often a much more useful behavior for
constructing dynamic queries. Add more discussion to the documentation
about how to use these functions.
Brendan Jurd
Add to Win3 TODO:
>
> o Fix MSVC NLS support, like for to_char()
>
> http://archives.postgresql.org/pgsql-hackers/2008-02/msg00485.php
> http://archives.postgresql.org/pgsql-patches/2008-02/msg00038.php
Add to TODO:
>
> * Improve WAL concurrency by increasing lock granularity
>
> http://archives.postgresql.org/pgsql-hackers/2008-02/msg00556.php
>
Add to Win32 TODO
>
> o Support pgxs
Add to TODO:
>
> * Avoid tuple some tuple copying in sort routines
>
> http://archives.postgresql.org/pgsql-hackers/2008-02/msg01206.php
Add URL for TODO:
o Add checks to prevent a CREATE RULE views on inherited tables
> http://archives.postgresql.org/pgsql-general/2008-03/msg00077.php
Tom Lane [2008年3月22日 22:32:19 +0000 (22:32 +0000)]
Refactor to_char/to_date formatting code; primarily, replace DCH_processor
with two new functions DCH_to_char and DCH_from_char that have less confusing
APIs. Brendan Jurd
Add to TODO:
>
> o Add checks to prevent a CREATE RULE views on inherited tables
>
> http://archives.postgresql.org/pgsql-general/2008-02/msg01420.php
Add server side lo_import(filename, oid) function.
Add URL for:
* Simplify ability to create partitioned tables
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00387.php
Add URL for:
* Simplify ability to create partitioned tables
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00248.php
Add TODO:
>
> * Improve performance of shared invalidation queue for multiple CPUs
>
> http://archives.postgresql.org/pgsql-performance/2008-01/msg00023.php
Add URLs for:
* Simplify ability to create partitioned tables
This would allow creation of partitioned tables without requiring
creation of triggers or rules for INSERT/UPDATE/DELETE, and constraints
for rapid partition selection. Options could include range and hash
partition selection.
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00028.php
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00413.php
Tom Lane [2008年3月21日 22:41:48 +0000 (22:41 +0000)]
Remove TypeName struct's timezone flag, which has been write-only storage
for a very long time --- in current usage it's entirely redundant with the
name field.
Tom Lane [2008年3月21日 22:10:56 +0000 (22:10 +0000)]
Give an explicit error for serial[], rather than silently ignoring
the array decoration as the code had been doing.
Tom Lane [2008年3月21日 21:08:31 +0000 (21:08 +0000)]
Report the current queries of all backends involved in a deadlock
(if they'd be visible to the current user in pg_stat_activity).
This might look like it's subject to race conditions, but it's actually
pretty safe because at the time DeadLockReport() is constructing the
report, we haven't yet aborted our transaction and so we can expect that
everyone else involved in the deadlock is still blocked on some lock.
(There are corner cases where that might not be true, such as a statement
timeout triggering in another backend before we finish reporting; but at
worst we'd report a misleading activity string, so it seems acceptable
considering the usefulness of reporting the queries.)
Original patch by Itagaki Takahiro, heavily modified by me.
Add:
>
> * Convert single quotes to apostrophes in the PDF documentation
>
> http://archives.postgresql.org/pgsql-docs/2007-12/msg00059.php
>
Add:
>
> * Fix inconsistent precedence of =, >, and < compared to <>, >=, and <=
>
> http://archives.postgresql.org/pgsql-bugs/2007-12/msg00145.php
Add:
>
> o Prevent SSL from sending network packets to avoid interference
> with Win32 signal emulation
>
> http://archives.postgresql.org/pgsql-hackers/2007-12/msg00455.php
Corrected version number.
Document that soft-mounting NFS is not recommended.
More README src cleanups.
Tom Lane [2008年3月21日 03:23:30 +0000 (03:23 +0000)]
Adjust pgstatindex() to give correct answers for indexes larger than
2^31 blocks. Also fix pg_relpages() for the same case.
Tatsuhito Kasahara
Generate dummy probes.h for MSVC builds.
Tom Lane [2008年3月21日 01:31:43 +0000 (01:31 +0000)]
Get rid of a bunch of #ifdef HAVE_INT64_TIMESTAMP conditionals by inventing
a new typedef TimeOffset to represent an intermediate time value. It's
either int64 or double as appropriate, and in most usages will be measured
in microseconds or seconds the same as Timestamp. We don't call it
Timestamp, though, since the value doesn't necessarily represent an absolute
time instant.
Warren Turkal
Tom Lane [2008年3月20日 21:42:48 +0000 (21:42 +0000)]
Arrange for an explicit cast applied to an ARRAY[] constructor to be applied
directly to all the member expressions, instead of the previous implementation
where the ARRAY[] constructor would infer a common element type and then we'd
coerce the finished array after the fact. This has a number of benefits,
one being that we can allow an empty ARRAY[] construct so long as its
element type is specified by such a cast.
Brendan Jurd, minor fixes by me.
Add a couple of missing FreeQueryDesc calls. Noticed while testing a
framework to keep track of snapshots in use.
Make source code READMEs more consistent. Add CVS tags to all README files.
Tom Lane [2008年3月20日 17:42:51 +0000 (17:42 +0000)]
Dept of second thoughts: --no-tablespaces had better also prevent
pg_dumpall from attaching TABLESPACE options to CREATE DATABASE commands.
Tom Lane [2008年3月20日 17:36:58 +0000 (17:36 +0000)]
Support a --no-tablespaces option in pg_dump/pg_dumpall/pg_restore, so that
dumps can be loaded into databases without the same tablespaces that the
source had. The option acts by suppressing all "SET default_tablespace"
commands, and also CREATE TABLESPACE commands in pg_dumpall's case.
Gavin Roy, with documentation and minor fixes by me.
Added ECPGget_PGconn() function to ecpglib, courtesy of Mike Aubury.
Removed one include file from connect-test1.
Changed statement escaping to not escape continuation line markers.
Add the missing cyrillic "Yo" characters ('e' and 'E' with two dots) to the
ISO_8859-5 <-> MULE_INTERNAL conversion tables.
This was discovered when trying to convert a string containing those characters
from ISO_8859-5 to Windows-1251, because we use MULE_INTERNAL/KOI8R as an
intermediate encoding between those two.
While the missing "Yo" was just an omission in the conversion tables, there are
a few other characters like the "Numero" sign ("No" as a single character) that
exists in all the other cyrillic encodings (win1251, ISO_8859-5 and cp866), but
not in KOI8R. Added comments about that.
Patch by Sergey Burladyan. Back-patch to 7.4.
Remove another useless snapshot creation.
Tom Lane [2008年3月19日 18:38:30 +0000 (18:38 +0000)]
Support ALTER TYPE RENAME. Petr Jelinek
We no longer need a snapshot set after opening the finishing transaction: this
is redundant because autovacuum now always analyzes a single table per
transaction.
Add -M (query mode) option per ITAGAKI Takahiro
Tom Lane [2008年3月19日 02:40:37 +0000 (02:40 +0000)]
Fix regexp substring matching (substring(string from pattern)) for the corner
case where there is a match to the pattern overall but the user has specified
a parenthesized subexpression and that subexpression hasn't got a match.
An example is substring('foo' from 'foo(bar)?'). This should return NULL,
since (bar) isn't matched, but it was mistakenly returning the whole-pattern
match instead (ie, 'foo'). Per bug #4044 from Rui Martins.
This has been broken since the beginning; patch in all supported versions.
The old behavior was sufficiently inconsistent that it's impossible to believe
anyone is depending on it.
This is the main PostgreSQL git repository.
RSS
Atom