< failure.
> failure. This could be triggered by a user command or a timer.
< * Force archiving of partially-full WAL files when pg_stop_backup() is
< called or the server is stopped
> * Automatically force archiving of partially-filled WAL files when
> pg_stop_backup() is called or the server is stopped
indexes. Extend the macros in include/catalog/*.h to carry the info
about hand-assigned OIDs, and adjust the genbki script and bootstrap
code to make the relations actually get those OIDs. Remove the small
number of RelOid_pg_foo macros that we had in favor of a complete
set named like the catname.h and indexing.h macros. Next phase will
get rid of internal use of names for looking up catalogs and indexes;
but this completes the changes forcing an initdb, so it looks like a
good place to commit.
Along the way, I made the shared relations (pg_database etc) not be
'bootstrap' relations any more, so as to reduce the number of hardwired
entries and simplify changing those relations in future. I'm not
sure whether they ever really needed to be handled as bootstrap
relations, but it seems to work fine to not do so now.
avoid encroaching on the 'user' range of OIDs by allowing automatic
OID assignment to use values below 16k until we reach normal operation.
initdb not forced since this doesn't make any incompatible change;
however a lot of stuff will have different OIDs after your next initdb.
be supported for all datatypes. Add CREATE AGGREGATE and pg_dump support
too. Add specialized min/max aggregates for bpchar, instead of depending
on text's min/max, because otherwise the possible use of bpchar indexes
cannot be recognized.
initdb forced because of catalog changes.
the long-term plan for this behavior for quite some time, but it is only
possible now that DELETE has a USING clause so that the user can join
other tables in a DELETE statement without relying on this behavior.
output parameters or VOID or a set. There seems no particular reason to
insist on a RETURN in these cases, since the function return value is
determined by other elements anyway. Per recent discussion.
in UPDATE. We also now issue a NOTICE if a query has _any_ implicit
range table entries -- in the past, we would only warn about implicit
RTEs in SELECTs with at least one explicit RTE.
As a result of the warning change, 25 of the regression tests had to
be updated. I also took the opportunity to remove some bogus whitespace
differences between some of the float4 and float8 variants. I believe
I have correctly updated all the platform-specific variants, but let
me know if that's not the case.
Original patch for DELETE ... USING from Euler Taveira de Oliveira,
reworked by Neil Conway.
OPENed on non-SELECT commands such as EXPLAIN or SHOW (anything that
returns tuples is allowed). This flexibility already existed for
bound cursors, but OPEN was artificially restricting what it would
take. Per a gripe some months back.
proposal for OUT parameter support. The columns don't actually *do*
anything yet, they are just left NULLs. But I thought I'd commit this
part separately as a fairly pure example of the tasks needed when adding
a column to pg_proc or one of the other core system tables.
change saves a great deal of space in pg_proc and its primary index,
and it eliminates the former requirement that INDEX_MAX_KEYS and
FUNC_MAX_ARGS have the same value. INDEX_MAX_KEYS is still embedded
in the on-disk representation (because it affects index tuple header
size), but FUNC_MAX_ARGS is not. I believe it would now be possible
to increase FUNC_MAX_ARGS at little cost, but haven't experimented yet.
There are still a lot of vestigial references to FUNC_MAX_ARGS, which
I will clean up in a separate pass. However, getting rid of it
altogether would require changing the FunctionCallInfoData struct,
and I'm not sure I want to buy into that.
access: define new index access method functions 'amgetmulti' that can
fetch multiple TIDs per call. (The functions exist but are totally
untested as yet.) Since I was modifying pg_am anyway, remove the
no-longer-needed 'rel' parameter from amcostestimate functions, and
also remove the vestigial amowner column that was creating useless
work for Alvaro's shared-object-dependencies project.
Initdb forced due to changes in pg_am.
executing a statement that fires triggers. Formerly this time was
included in "Total runtime" but not otherwise accounted for.
As a side benefit, we avoid re-opening relations when firing non-deferred
AFTER triggers, because the trigger code can re-use the main executor's
ResultRelInfo data structure.
currently does. This is now the default Win32 wal sync method because
we perfer o_datasync to fsync.
Also, change Win32 fsync to a new wal sync method called
fsync_writethrough because that is the behavior of _commit, which is
what is used for fsync on Win32.
Backpatch to 8.0.X.
< * Add ANSI INTERVAL handling
> * Add ISo INTERVAL handling
< o Interpret syntax that isn't uniquely ANSI or PG, like '1:30' or
< '1' as ANSI syntax, e.g. interpret '1:30' MINUTE TO SECOND as
> o Interpret syntax that isn't uniquely ISO or PG, like '1:30' or
> '1' as ISO syntax, e.g. interpret '1:30' MINUTE TO SECOND as
649c649
< * Add pre-parsing phase that converts non-ANSI syntax to supported
> * Add pre-parsing phase that converts non-ISO syntax to supported
< o Process mixed ANSI/PG syntax, and round value to requested
< precision or generate an error
< o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS
< INTERVAL MONTH), and this should return '12 months'
194a191,194
> o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS
> INTERVAL MONTH), and this should return '12 months'
> o Round or truncate values to the requested precision, e.g.
> INTERVAL '11 months' AS YEAR should return one or zero
< o Add support for day-time syntax, INTERVAL '1 2:03:04'
> o Add support for day-time syntax, INTERVAL '1 2:03:04'
192c192,194
< o Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds'
> o Interpret syntax that isn't uniquely ANSI or PG, like '1:30' or
> '1' as ANSI syntax, e.g. interpret '1:30' MINUTE TO SECOND as
> '1 minute 30 seconds'
< * Add support for ANSI time INTERVAL syntax, INTERVAL '1 2:03:04' DAY TO SECOND
< * Add support for ANSI date INTERVAL syntax, INTERVAL '20-6' YEAR TO MONTH
< * Process mixed ANSI/PG INTERVAL syntax, and round value to requested precision
<
< Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS INTERVAL
< MONTH), and this should return '12 months'
<
< * Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds'
> * Add ANSI INTERVAL handling
> o Add support for day-time syntax, INTERVAL '1 2:03:04'
> DAY TO SECOND
> o Add support for year-month syntax, INTERVAL '50-6' YEAR TO MONTH
> o Process mixed ANSI/PG syntax, and round value to requested
> precision or generate an error
> o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS
> INTERVAL MONTH), and this should return '12 months'
> o Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds'
> o Support precision, CREATE TABLE foo (a INTERVAL MONTH(3))
< * Add support for ANSI date INTERVAL syntax, INTERVAL '9-3' YEAR TO MONTH
> * Add support for ANSI date INTERVAL syntax, INTERVAL '20-6' YEAR TO MONTH
< * Add support for ANSI date INTERVAL syntax, INTERVAL '1-2' YEAR TO MONTH
> * Add support for ANSI date INTERVAL syntax, INTERVAL '9-3' YEAR TO MONTH
ExclusiveLock rather than AccessExclusiveLock. This will allow concurrent
SELECT queries to proceed on the table. Per discussion with Andrew at
SuperNews.
> * Add support for ANSI time INTERVAL syntax, INTERVAL '1 2:03:04' DAY TO SECOND
> * Add support for ANSI date INTERVAL syntax, INTERVAL '1-2' YEAR TO MONTH
> * Process mixed ANSI/PG INTERVAL syntax, and round value to requested precision
184a188,189
> Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS INTERVAL
> MONTH), and this should return '12 months'
>
> * Support table partitioning that allows a single table to be stored
> in subtables that are partitioned based on the primary key or a WHERE
> clause
convention for isnull flags. Also, remove the useless InsertIndexResult
return struct from index AM aminsert calls --- there is no reason for
the caller to know where in the index the tuple was inserted, and we
were wasting a palloc cycle per insert to deliver this uninteresting
value (plus nontrivial complexity in some AMs).
I forced initdb because of the change in the signature of the aminsert
routines, even though nothing really looks at those pg_proc entries...
< SQL-spec compliant, so allow such handling to be disabled.
> SQL-spec compliant, so allow such handling to be disabled. However,
> disabling backslashes could break many third-party applications and tools.
of tuples when passing data up through multiple plan nodes. A slot can now
hold either a normal "physical" HeapTuple, or a "virtual" tuple consisting
of Datum/isnull arrays. Upper plan levels can usually just copy the Datum
arrays, avoiding heap_formtuple() and possible subsequent nocachegetattr()
calls to extract the data again. This work extends Atsushi Ogawa's earlier
patch, which provided the key idea of adding Datum arrays to TupleTableSlots.
(I believe however that something like this was foreseen way back in Berkeley
days --- see the old comment on ExecProject.) A test case involving many
levels of join of fairly wide tables (about 80 columns altogether) showed
about 3x overall speedup, though simple queries will probably not be
helped very much.
I have also duplicated some code in heaptuple.c in order to provide versions
of heap_formtuple and friends that use "bool" arrays to indicate null
attributes, instead of the old convention of "char" arrays containing either
'n' or ' '. This provides a better match to the convention used by
ExecEvalExpr. While I have not made a concerted effort to get rid of uses
of the old routines, I think they should be deprecated and eventually removed.
< o Disallow encodings like UTF8 which PostgreSQL supports
< but the operating system does not (already disallowed by
< pginstaller)
> o Add support for Unicode
< To fix UTF8, the data needs to be converted to UTF16 and then
< the Win32 wcscoll() can be used, and perhaps other functions
> To fix this, the data needs to be converted to/from UTF16/UTF8
> so the Win32 wcscoll() can be used, and perhaps other functions
< locales but provides no ordering.
<
> locales but provides no ordering or character set classes.
whether or not it is a security definer. Changing a function's strictness
is required by SQL2003, and the other capabilities make sense. Also, allow
an optional RESTRICT noise word to be specified, for SQL conformance.
Some trivial regression tests added and the documentation has been
updated.
can tell whether it is being used as an aggregate or not. This allows
such a function to avoid re-pallocing a pass-by-reference transition
value; normally it would be unsafe for a function to scribble on an input,
but in the aggregate case it's safe to reuse the old transition value.
Make int8inc() do this. This gets a useful improvement in the speed of
COUNT(*), at least on narrow tables (it seems to be swamped by I/O when
the table rows are wide). Per a discussion in early December with
Neil Conway. I also fixed int_aggregate.c to check this, thereby
turning it into something approaching a supportable technique instead
of being a crude hack.
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.
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.
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
! 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">).
< * Allow server configuration parameters to be remotely modified
> * Allow pg_hba.conf settings to be controlled via SQL
>
> This would require a new global table that is dumped to flat file for
> use by the postmaster. We do a similar thing for pg_shadow currently.
>
< * Consider use of open/fcntl(O_DIRECT) to minimize OS caching
> * Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
> especially for WAL writes
in GetNewTransactionId(). Since the limit value has to be computed
before we run any real transactions, this requires adding code to database
startup to scan pg_database and determine the oldest datfrozenxid.
This can conveniently be combined with the first stage of an attack on
the problem that the 'flat file' copies of pg_shadow and pg_group are
not properly updated during WAL recovery. The code I've added to
startup resides in a new file src/backend/utils/init/flatfiles.c, and
it is responsible for rewriting the flat files as well as initializing
the XID wraparound limit value. This will eventually allow us to get
rid of GetRawDatabaseInfo too, but we'll need an initdb so we can add
a trigger to pg_database.
more variables can be found in the libpq manual section.
Mention .pgpass in the psql manual page section dealing with connection
parameters and point to the libpq section for more details.
Backpatch to 8.0.X.
the item:
< o Automatic failover
<
< The proper solution to this will probably the use of a master/slave
< replication solution like Sloney and a connection pooling tool like
< pgpool.
<
< all temporary tables, removal of any NOTIFYs, etc. This could be used
< for connection pooling. We could also change RESET ALL to have this
< functionality.
> all temporary tables, removal of any NOTIFYs, cursors, prepared
> queries(?), currval()s, etc. This could be used for connection pooling.
> We could also change RESET ALL to have this functionality.
tests. Contributed by Koju Iijima, review from Neil Conway, Gavin Sherry
and Tom Lane.
Also, fix error in description of WITH CHECK OPTION clause in the CREATE
VIEW reference page: it should be "CASCADED", not "CASCADE".
command. This is useful because we can allow truncation of tables
referenced by foreign keys, so long as the referencing table is
truncated in the same command.
Alvaro Herrera
to avoid problems when a cursor depends on objects created or changed in
the same subtransaction. We'd like to do better someday, but this seems
the only workable answer for 8.0.1.
< BY col {DESC} LIMIT 1. Completing this item involves making this
> BY col {DESC} LIMIT 1. Completing this item involves doing this
< invalidated if anyone modifies the table.
<
> invalidated if anyone modifies the table. Another idea is to
> get a count directly from a unique index, but for this to be
> faster than a sequential scan it must avoid access to the heap
> to obtain tuple visibility information.
>
> * Allow data to be pulled directly from indexes
>
> Currently indexes do not have enough tuple tuple visibility
> information to allow data to be pulled from the index without
> also accessing the heap. One way to allow this is to set a bit
> to index tuples to indicate if a tuple is currently visible to
> all transactions when the first valid heap lookup happens. This
> bit would have to be cleared when a heap tuple is expired.
>
discussion on pgsql-hackers-win32 list. Documentation still needs to
be tweaked --- I'm not sure how to refer to the APPDATA folder in
user documentation.
< * Allow building with directories containing spaces
> * Allow building in directories containing spaces
< There are two capabilities here, first the ability to build from a
< source directory that contains spaces, and second the ability to install
< into a directory that contains spaces. The first is probably not
< possible because 'gmake' and other compiler tools do not fully support
< spaces in path names. The second is possible with proper quoting in
< the makefiles. Because PostgreSQL supports relocatable installs, it
< is possible to install into a directory that doesn't contain spaces and
< then copy the install to a directory with spaces.
> This is probably not possible because 'gmake' and other compiler tools
> do not fully support quoting of paths with spaces.
>
> * Allow installing to directories containing spaces
>
> This is possible if proper quoting is added to the makefiles for the
> install targets. Because PostgreSQL supports relocatable installs, it
> is already possible to install into a directory that doesn't contain
> spaces and then copy the install to a directory with spaces.
> There are two capabilities here, first the ability to build from a
> source directory that contains spaces, and second the ability to install
> into a directory that contains spaces. The first is probably not
> possible because 'gmake' and other compiler tools do not fully support
> spaces in path names. The second is possible with proper quoting in
> the makefiles. Because PostgreSQL supports relocatable installs, it
> is possible to install into a directory that doesn't contain spaces and
> then copy the install to a directory with spaces.
< o Disallow encodings like UTF8 which which PostgreSQL supports
> o Disallow encodings like UTF8 which PostgreSQL supports
914a915,917
>
> To fix UTF8, the data needs to be converted to UTF16 and then
> the Win32 strcoll() can be used.
Also performed an initial run through of upgrading our Copyright date to
extend to 2005 ... first run here was very simple ... change everything
where: grep 1996-2004 && the word 'Copyright' ... scanned through the
generated list with 'less' first, and after, to make sure that I only
picked up the right entries ...
> * Improve the background writer
>
> Allow the background writer to more efficiently write dirty buffers
> from the end of the LRU cache and use a clock sweep algorithm to
> write other dirty buffers to reduced checkpoint I/O
that is, files are sought in the same directory as the referencing file.
Also allow absolute paths in @file constructs. Improve documentation
to actually say what is allowed in an included file.
numbering is different than TO_CHAR's ditto. EXTRACT starts at 0==Sunday
while TO_CHAR starts at 1==Sunday.
A suggestion for two documentation notes is attached as a patch to
current CVS HEAD.
Troels Arvin
several reports of users being confused when they attempt to use ELSEIF
and run into trouble due to PL/PgSQL's lax parser. The parser will be
improved for 8.1, but we can fix most of the problem by allowing ELSEIF
for now.
>
> * Allow the size of the buffer cache used by temporary objects to be
> specified as a GUC variable
>
> Larger local buffer cache sizes requires more efficient handling of
> local cache lookups.
reasons I outlined in pghackers a few days ago.
Also, undo someone's overly optimistic decision to reduce tuple state
checks from if (...) elog() to Asserts. If I trusted this code more,
I might think it was a good idea to disable these checks in production
installations. But I don't.
a relation's number of blocks, rather than the possibly-obsolete value
in pg_class.relpages. Scale the value in pg_class.reltuples correspondingly
to arrive at a hopefully more accurate number of rows. When pg_class
contains 0/0, estimate a tuple width from the column datatypes and divide
that into current file size to estimate number of rows. This improved
methodology allows us to jettison the ancient hacks that put bogus default
values into pg_class when a table is first created. Also, per a suggestion
from Simon, make VACUUM (but not VACUUM FULL or ANALYZE) adjust the value
it puts into pg_class.reltuples to try to represent the mean tuple density
instead of the minimal density that actually prevails just after VACUUM.
These changes alter the plans selected for certain regression tests, so
update the expected files accordingly. (I removed join_1.out because
it's not clear if it still applies; we can add back any variant versions
as they are shown to be needed.)
< * Make log_min_duration_statement output when the duration is reached rather
< than when the statement completes
<
< This prints long queries while they are running, making trouble shooting
< easier. Also, it eliminates the need for log_statement because it
< would now be the same as a log_min_duration_statement of zero.
> * Make log_min_duration_statement output when the duration is reached rather
> than when the statement completes
>
> This prints long queries while they are running, making trouble shooting
> easier. Also, it eliminates the need for log_statement because it
> would now be the same as a log_min_duration_statement of zero.
9c5
< Last updated: Mon Nov 29 23:33:09 EST 2004
> Last updated: Tue Nov 30 00:03:37 EST 2004
13a10,16
> #A hyphen, "-", marks changes that will appear in the upcoming 8.1 release.#
>
> Bracketed items, "[]", have more detail.
>
> This list contains all known PostgreSQL bugs and feature requests. If
> you would like to work on an item, please read the developer's FAQ
> first.
> * Auto-vacuum
> o Move into the backend code
> o Scan the buffer cache to find free space or use background writer
> o Use free-space map information to guide refilling
< information, either by name or offset from UTC
> information, either zone name or offset from UTC
>
> If the TIMESTAMP value is stored with a time zone name, interval
> computations should adjust based on the time zone rules, e.g. adding
> 24 hours to a timestamp would yield a different result from adding one
> day.
>
operations are now run as subtransactions, so that errors in them
can be reported as ordinary Perl or Tcl errors and caught by the
normal error handling convention of those languages. Also do some
minor code cleanup in pltcl.c: extract a large chunk of duplicated
code in pltcl_SPI_execute and pltcl_SPI_execute_plan into a shared
subroutine.
plain SUSET instead. Also delay processing of options received in
client connection request until after we know if the user is a superuser,
so that SUSET values can be set that way by legitimate superusers.
Per recent discussion.
< * Eliminate WAL logging for CREATE INDEX/REINDEX/CREATE TABLE AS when
< not doing WAL archiving
> * Eliminate WAL logging for CREATE TABLE AS when not doing WAL archiving
< * Allow GRANT/REVOKE permissions to be given to all schema objects with one
> * Allow GRANT/REVOKE permissions to be applied to all schema objects with one
60c60
< specifications. This is because new databases are created by copying
> specifications. This is because new databases are created by copying
63c63
< directory would create a new database with tables that had incorrect
> directory would create a new database with tables that had incorrect
72c72
<
>
85c85
< By not showing commented-out variables, we discourage people from
> By not showing commented-out variables, we discourage people from
91c91
< * Allow point-in-time recovery to archive partially filled write-ahead
> * Allow point-in-time recovery to archive partially filled write-ahead
102c102
< Currently all schemas are owned by the super-user because they are
> Currently all schemas are owned by the super-user because they are
128c128
< * Allow INET subnet tests with non-constants to be indexed
> * Allow INET subnet tests using non-constants to be indexed
143,144c143,144
< * Allow to_char to print localized month names
< * Allow functions to have a search path specified at creation time
> * Allow to_char() to print localized month names
> * Allow functions to have a schema search path specified at creation time
146c146
< * Add GUC variable to allow output of interval values in ISO8601 format
> * Add a GUC variable to allow output of interval values in ISO8601 format
154,155c154,155
< * Prevent inet cast to cidr if the unmasked bits are not zero, or
< zero bits
> * Prevent INET cast to CIDR if the unmasked bits are not zero, or
> zero the bits
158c158
< o Allow nulls in arrays
> o Allow NULLs in arrays
160,161c160,161
< o Delay resolution of array expression type so assignment coercion
< can be performed on empty array expressions
> o Delay resolution of array expression's data type so assignment
> coercion can be performed on empty array expressions
218,219c218,219
< key, foreign key [inheritance]
< * UNIQUE INDEX on base column not honored on inserts/updates from
> key, foreign key
> * UNIQUE INDEX on base column not honored on INSERTs/UPDATEs from
221c221
< (dup) should fail [inheritance]
> (dup) should fail
246c246
< * Fetch heap pages matching index entries in sequential order [performance]
> * Fetch heap pages matching index entries in sequential order
307c307
< functionality in DELETE. It's been agreed that the keyword should
> functionality in DELETE. It's been agreed that the keyword should
318c318
< * Allow PREPARE to automatically determine parameter types based on the SQL
> * Allow PREPARE to automatically determine parameter types based on the SQL
340,342d339
< * Allow CREATE TABLE foo (f1 INT CHECK (f1 > 0) CHECK (f1 < 10)) to work
< by searching for non-conflicting constraint names, and prefix with
< table name?
347c344
< new database.
> a new database.
350,351d346
< * Ignore temporary tables from other sessions when processing
< inheritance?
354,355c349,351
< * Add a session mode to warn about non-standard SQL usage in queries
< * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, triggers?)
> * Add a GUC variable to warn about non-standard SQL usage in queries
> * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules,
> triggers?)
357,359c353,356
< * Add NOVICE output level for helpful messages like automatic sequence/index creation
< * Add COMMENT ON for all cluster global objects (users, groups,
< databases and tablespaces)
> * Add NOVICE output level for helpful messages like automatic sequence/index
> creation
> * Add COMMENT ON for all cluster global objects (users, groups, databases
> and tablespaces)
363c360
< When enabled, this would allow errors in multi-statement transactions
> When enabled, this would allow errors in multi-statement transactions
417c414
< o Allow COPY to optionally include column headings as the first line
> o Allow COPY to optionally include column headings in the first line
450c447
<
>
462c459
< o Handle references to temporary tables that are created, destroyed,
> o Handle references to temporary tables that are created, destroyed,
464c461
<
>
469d465
< o Improve PL/PgSQL exception handling using savepoints
488c484
<
>
503d498
<
518c513
< o Add pg_dumpall custom format dumps.
> o Add pg_dumpall custom format dumps.
520c515
< This is probably best done by combining pg_dump and pg_dumpall
> This is probably best done by combining pg_dump and pg_dumpall
532d526
< o Improve error handling (?)
555c549
< Adding shared locks requires recording the table/rows numbers in a
> Adding shared locks requires recording the table/rows numbers in a
643c637
< Posix_fadvise() can control both sequential/random file caching and
> Posix_fadvise() can control both sequential/random file caching and
703c697
< from distributted.net, http://www1.distributed.net/source,
> from distributted.net, http://www1.distributed.net/source,
729c723
< * Add connection pooling [pool]
> * Add connection pooling
755d748
<
759c752
<
>
768c761
< so an abrupt operating system restart might lose a few seconds of
> so an abrupt operating system restart might lose a few seconds of
785c778
< * Add utility to compute accurate random_page_cost value
> * Create utility to compute accurate random_page_cost value
787,789d779
< * Allow sorting, temp files, temp tables to use multiple work directories
<
< This allows the I/O load to be spread across multiple disk drives.
795a786
>
808,809c799,800
<
< * Use mmap() rather than SYSV shared memory or to write WAL files (?) [mmap]
>
> * Use mmap() rather than SYSV shared memory or to write WAL files (?)
812,813c803,804
< portability issues. Anonymous mmap (or mmap to /dev/zero) is required
< to prevent I/O overhead.
> portability issues. Anonymous mmap (or mmap to /dev/zero) is required
> to prevent I/O overhead.
817,819c808,810
< Doing I/O to large tables would consume a lot of address space or
< require frequent mapping/unmapping. Extending the file also causes
< mapping problems that might require mapping only individual pages,
> Doing I/O to large tables would consume a lot of address space or
> require frequent mapping/unmapping. Extending the file also causes
> mapping problems that might require mapping only individual pages,
821c812
< way to _prevent_ I/O to disk from the dirty shared buffers so changes
> way to _prevent_ I/O to disk from the dirty shared buffers so changes
826c817
< tuple overhead
> per-tuple overhead
829,831c820,822
< This would involve using multiple threads or processes to do optimization,
< sorting, or execution of single query. The major advantage of such a
< feature would be to allow multiple CPUs to work together to process a
> This would involve using multiple threads or processes to do optimization,
> sorting, or execution of single query. The major advantage of such a
> feature would be to allow multiple CPUs to work together to process a
834c825
< * Research the use of larger pages sizes
> * Research the use of larger page sizes
842a834
> * Move some /contrib modules out to their own project sites
845d836
< * Improve access-permissions check on data directory in Cygwin (Tom)
847,848c838
< * Clarify use of 'application' and 'command' tags in SGML docs
< * Better document ability to build only certain interfaces (Marc)
> * Improve documentation to build only interfaces (Marc)
852,853d841
< * Research interaction of setitimer() and sleep() used by statement_timeout
< * Rename /scripts directory because they are all C programs now
856,857d843
< * Allow binaries to be statically linked so they are more easily relocated
< * Move some /contrib modules out to their own project sites
862c848
< o Remove per-backend parameter file and move into shared memory?
> o Remove per-backend parameter file and move into shared memory
877,878c863,864
< o Update clients to use data types, typmod, schema.table.column names of
< result sets using new query protocol
> o Update clients to use data types, typmod, schema.table.column names
> of result sets using new query protocol
900d885
< * Kris is Kris Jurka
910c895
< * Simon is Simon Riggs
> * Simon is Simon Riggs <simon@2ndquadrant.com>
913d897
< * Teodor is
<
< * psql tab completion
<
< o Provide a list of conversions after ALTER CONVERSION?
< o Support for ALTER SEQUENCE clauses
< o Add RENAME TO to ALTER TRIGGER
< o Support for ALTER USER
< o Fix ALTER (GROUP|DOMAIN|...) <sth> DROP
< o Support for ALTER LANGUAGE <sth> RENAME TO
< o Improve support for COPY
< o Improve support for ALTER TABLE