<HTML>
<HEAD>
<TITLE>PostgreSQL TODO list</TITLE>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#A00000"\
ALINK="#0000FF">
<META NAME="generator" CONTENT="txt2html v1.25">
</HEAD>
<BODY>
<H1><A NAME="section-1">TODO list for PostgreSQL</A></H1>
Last updated: Tue Sep 28 00:34:21 EDT 1999
<P>
Current maintainer: Bruce Momjian (<A HREF="mailto:maillist@candle.pha.pa.us">maillist@candle.pha.pa.us</A>)
<P>
The most recent version of this document can be viewed at<BR>
the PostgreSQL web site, <A HREF="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>.
<P>
A dash(-) marks changes that will appear in the next release.
<P>
Names in brackets "[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/"></A>]" indicate more detailed information is available in<BR>
the directory pgsql/doc/TODO.detail/ under that name.
<H2><A NAME="section-1.1">RELIABILITY</A></H2>
<P>
<STRONG>RESOURCES</STRONG>
<UL>
<LI> Elog() does not free all its memory(Jan)
<LI> spinlock stuck problem when elog(FATAL) and elog(ERROR) inside bufmgr
<LI> Recover or force failure when disk space is exhausted
</UL>
<P>
<STRONG>PARSER</STRONG>
<UL>
<LI> Disallow inherited columns with the same name as new columns
<LI> INSERT INTO ... SELECT with AS columns matching result columns problem
<LI> SELECT pg<U>class FROM pg</U>class generates strange error
<LI> Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
<LI> Do not allow bpchar column creation without length
<LI> -Select a[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/1">1</A>] FROM test fails, it needs test.a[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/1">1</A>]
<LI> -Array index references without table name cause problems [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/array">array</A>]
<LI> Update table SET table.value = 3 fails(SQL standard says this is OK)
<LI> Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas)
<LI> SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo
<LI> -INSERT ... SELECT ... GROUP BY groups by target columns not source columns
<LI> -CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT
<LI> UNION with LIMIT fails
<LI> Unique index on base column not honored on inserts from inherited table
INSERT INTO inherit_table (unique<U>index</U>col) VALUES (dup) should fail
[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/inherit">inherit</A>]
<LI> CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails
<LI> CREATE TABLE test(col char(2) DEFAULT user) fails in length restriction
<LI> mismatched types in CREATE TABLE ... DEFAULT causes problems [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/default">default</A>]
<LI> SELECT ... UNION ... ORDER BY fails when sort expr not in result list
<LI> Be smarter about promoting types when UNION merges different data types
<LI> SELECT ... UNION ... GROUP BY fails if column types disagree
<LI> redesign INSERT ... SELECT to have two levels of target list
<LI> -select * from pg_class where oid in (0,-1)
<LI> have INTERSECT/EXCEPT prevent duplicates unless ALL is specified
<LI> prevent primary key of nine columns [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/primary">primary</A>]
<LI> SELECT COUNT('asdf') FROM pg_class WHERE oid=12 crashes
<LI> SELECT DISTINCT ON col1 col1 col2 FROM tab1 is broken [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/distinct">distinct</A>]
<LI> -When using aggregates + GROUP BY, no rows in should yield no rows out
</UL>
<P>
<STRONG>VIEWS</STRONG>
<UL>
<LI> Views containing aggregates sometimes fail(Jan)
<LI> Views with spaces in view name fail when referenced
</UL>
<P>
<STRONG>MISC</STRONG>
<UL>
<LI> User who can create databases can modify pg_database table
<LI> Plpgsql does not handle quoted mixed-case identifiers
<LI> Fix btree to give a useful elog when key > 1/2 (page - overhead)
<LI> pg_dump should preserve primary key information
<LI> plpgsql regression tests fail on BSD/OS
</UL>
<H2><A NAME="section-1.2">ENHANCEMENTS</A></H2>
<P>
<STRONG>URGENT</STRONG>
<UL>
<LI> Add referential integrity(Jan?)[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/primary">primary</A>]
<LI> Add OUTER joins, left and right[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/outer">outer</A>](Thomas, Bruce)
<LI> Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
<LI> Eliminate limits on query length
<LI> Fix memory leak for expressions?[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/memory">memory</A>](Tom?)
<LI> -Fix memory leak for aggregates?
</UL>
<P>
<STRONG>ADMIN</STRONG>
<UL>
<LI> Better interface for adding to pg_group
<LI> More access control over who can create tables and access the database
<LI> Test syslog functionality
<LI> Allow elog() to return error codes, not just messages
<LI> Allow international error message support and add error codes
<LI> Generate postmaster pid file and remove flock/fcntl lock code [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/flock">flock</A>]
<LI> Add ability to specifiy location of lock/socket files [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/flock">flock</A>]
</UL>
<P>
<STRONG>TYPES</STRONG>
<UL>
<LI> Add BIT, BIT VARYING
<LI> Nchar (as distinguished from ordinary varchar),
<LI> Domain capability
<LI> Add STDDEV/VARIANCE() function for standard deviation computation/variance
<LI> Allow compression of large fields or a compressed field type
<LI> Large objects
<UL>
<LI> Fix large object mapping scheme, own typeid or reltype(Peter)
<LI> Allow large text type to use large objects(Peter)
<LI> Not to stuff everything as files in a single directory, hash dirs
<LI> Allow large object vacuuming
<LI> Tables that start with xinv confused to be large objects
</UL>
<LI> Allow pg_descriptions when creating types, tables, columns, and functions
<LI> Add IPv6 capability to INET/CIDR types
<LI> Make a separate SERIAL type?
<LI> Store binary-compatible type information in the system
<LI> Allow user to define char1 column
<LI> Add support for & operator
<LI> Allow LOCALE on a per-column basis, default to ASCII
<LI> Allow array on int8[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/"></A>]
<LI> Allow nulls in arrays
<LI> Allow arrays to be ORDER'ed
<LI> Remove Money type, add money formatting for decimal type
<LI> Declare typein/out functions in pg_proc with a special "C string" data type
<LI> Add non-large-object binary field
<LI> Add index on NUMERIC/DECIMAL type
<LI> Make Absolutetime/Relativetime int4 because time_t can be int8 on some ports
<LI> Functions returning sets don't really work right[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/function">function</A>]
</UL>
<P>
<STRONG>VIEWS</STRONG>
<UL>
<LI> Allow DISTINCT on views
<LI> Allow views of aggregate columns
<LI> Allow views with subselects
</UL>
<P>
<STRONG>INDEXES</STRONG>
<UL>
<LI> Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
fails index can't store constant parameters
<LI> Allow creation of functional indexes to use default types
<LI> Permissions on indexes - prevent them?
<LI> Allow SQL function indexes
<LI> Add FILLFACTOR to index creation
<LI> Allow indexing of LIKE with localle character sets
<LI> Allow indexing of more than eight columns
</UL>
<P>
<STRONG>COMMANDS</STRONG>
<UL>
<LI> ALTER TABLE ADD COLUMN to inherited table put column in wrong place [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/inherit">inherit</A>]
<LI> Add ALTER TABLE DROP/ALTER COLUMN feature
<LI> Allow CLUSTER on all tables at once, and improve CLUSTER, loses NOT
<P>
NULL specification on table [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/cluster">cluster</A>]
<LI> Add SIMILAR TO to allow character classes, 'pg_[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/a-c">a-c</A>]%'
<LI> Auto-destroy sequence on DROP of table with SERIAL(Ryan)
<LI> Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
<LI> Allow INSERT/UPDATE of system-generated oid value for a row
<LI> Allow ESCAPE '\' at the end of LIKE for ANSI compliance [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/like">like</A>]
<LI> Rewrite the LIKE handling by rewriting the user string with the
supplied ESCAPE [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/like">like</A>]
<LI> -Move LIKE index optimization handling to the optimizer
<LI> Allow RULE recompilation
<LI> Support UNION/INTERSECT/EXCEPT in sub-selects
<LI> Allow DELETE and UPDATE to use inheritance using tablename*
</UL>
<P>
<STRONG>CLIENTS</STRONG>
<UL>
<LI> Make NULL's come out at the beginning or end depending on the
ORDER BY direction
<LI> Allow flag to control COPY input/output of NULLs
<LI> Update reltuples from COPY command
<LI> Allow psql \copy to allow delimiters
<LI> Add a function to return the last inserted oid, for use in psql scripts
<LI> Allow psql to print nulls as distinct from "" [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/null">null</A>]
</UL>
<P>
<STRONG>EXOTIC FEATURES</STRONG>
<UL>
<LI> Add sql3 recursive unions
<LI> Add the concept of dataspaces
<LI> Add replication of distributed databases
<LI> Allow queries across multiple databases
</UL>
<P>
<STRONG>MISC</STRONG>
<UL>
<LI> Increase identifier length(NAMEDATALEN) if small performance hit
<LI> Allow row re-use without vacuum(Vadim)
<LI> Create a background process for each database that runs while
database is idle, finding superceeded rows, gathering stats and vacuuming
<LI> Add UNIQUE capability to non-btree indexes
<LI> -Certain indexes will not shrink, i.e. oid indexes with many inserts
<LI> Restore unused oid's on backend exit if no one else has gotten oids
<LI> Have UPDATE/DELETE clean out indexes
<LI> Allow WHERE restriction on ctid
<LI> Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
<LI> Allow PQrequestCancel() to terminate when in waiting-for-lock state
<LI> -Transaction log, so re-do log can be on a separate disk by
with after-row images(Vadim) [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/logging">logging</A>]
<LI> Populate backend status area and write program to dump status data
<LI> Make oid use unsigned int more reliably, pg_atoi()
<LI> Allow subqueries in target list
<LI> Put sort files, large objects in their own directory
<LI> Do autocommit so always in a transaction block(?)
<LI> Show location of syntax error in query [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/yacc">yacc</A>]
<LI> Redesign the function call interface to handle NULLs better [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/function">function</A>]
<LI> Document/trigger/rule so changes to pg<U>shadow recreate pg</U>pwd [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/pg_shadow">pg_shadow</A>]
<LI> Missing optimizer selectivities for date, r-tree, etc. [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/optimizer">optimizer</A>]
<LI> Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
<LI> Overhaul bufmgr/lockmgr/transaction manager
<LI> Add PL/Perl(Mark Hollomon)
<LI> Make postgres user have a password by default
<LI> Add configure test to check for C++ need for *.h and namespaces
<LI> Allow BLCKSZ <= 64k, not <= 32k
<LI> redesign UNION structures to have separarate target lists
<LI> Allow multi-level query trees for INSERT INTO ... SELECT
</UL>
<H2><A NAME="section-1.3">PERFORMANCE</A></H2>
<P>
<STRONG>FSYNC</STRONG>
<UL>
<LI> -Allow transaction commits with rollback with no-fsync performance [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/fsync">fsync</A>]
<LI> -Prevent fsync in SELECT-only queries
</UL>
<P>
<STRONG>INDEXES</STRONG>
<UL>
<LI> Use indexes in ORDER BY for restrictive data sets, min(), max()
<LI> Pull requested data directly from indexes, bypassing heap data
<LI> Use index to restrict rows returned by multi-key index when used with
non-consecutive keys or OR clauses, so fewer heap accesses
<LI> -Convert function(constant) into a constant for index use
<LI> Allow LIMIT ability on single-table queries that have no ORDER BY to use
a matching index [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/limit">limit</A>]
<LI> Improve LIMIT processing by using index to limit rows processed [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/limit">limit</A>]
<LI> Have optimizer take LIMIT into account when considering index scans [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/limit">limit</A>]
<LI> Make index creation use psort code, because it is now faster(Vadim)
<LI> Allow creation of sort temp tables > 1 Gig
<LI> Create more system table indexes for faster cache lookups
<LI> fix indexscan() so it does leak memory by not requiring caller to free
<LI> Improve <U>bt</U>binsrch() to handle equal keys better, remove <U>bt</U>firsteq()(Tom)
<LI> Allow SELECT * FROM tab WHERE int2col = 4 use int2col index, int8,
float4, numeric/decimal too [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/optimizer">optimizer</A>]
<LI> -Allow optimizer to prefer plans that match ORDER BY
</UL>
<P>
<STRONG>CACHE</STRONG>
<UL>
<LI> Cache most recent query plan(s) [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/prepare">prepare</A>]
<LI> Shared catalog cache, reduce lseek()'s by caching table size in shared area
<LI> elog() flushes cache, try invalidating just entries from current xact,
perhaps using invalidation cache
</UL>
<P>
<STRONG>MISC</STRONG>
<UL>
<LI> Allow compression of log and meta data
<LI> Allow char() not to use variable-sized header to reduce disk size
<LI> Do async I/O to do better read-ahead of data
<LI> -Fix memory exhaustion when using many OR's [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/cnfify">cnfify</A>]
<LI> Get faster regex() code from Henry Spencer <<A HREF="mailto:henry@zoo.utoronto.ca">henry@zoo.utoronto.ca</A>>
when it is available
<LI> Use mmap() rather than SYSV shared memory(?)
<LI> -Process const = const parts of OR clause in separate pass
<LI> Make oid use oidin/oidout not int4in/int4out in pg_type.h
<LI> Improve Subplan list handling
<LI> Allow Subplans to use efficient joins(hash, merge) with upper variable
[<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/subquery">subquery</A>]
<LI> use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic
places, like GROUP BY, UNIQUE, index processing, etc.
<LI> improve dynamic memory allocation by introducing tuple-context memory
allocation [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/memory">memory</A>]
<LI> fix memory leak in cache code when non-existant table is referenced
<LI> In WHERE tab1.x=3 AND tab1.x=tab2.y, add tab2.y=3
<LI> pass atttypmod through parser in more cases [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/atttypmod">atttypmod</A>]
<LI> remove duplicate type in/out functions for disk and net
<LI> Allow persistent backends [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/persistent">persistent</A>]
<LI> Misc [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/performance">performance</A>]
</UL>
<H2><A NAME="section-1.4">SOURCE CODE</A></H2>
<UL>
<LI> Add use of 'const' for varibles in source tree
<LI> Fix C optimizer problem where fmgr_ptr calls return different types [<A HREF="http://www.postgresql.org/docs/pgsql/doc/TODO.detail/alpha">alpha</A>]
<LI> -Add needed includes and removed unneeded include files(Bruce)
<LI> Make configure --enable-debug add -g on compile line
<LI> Does Mariposa source contain any other bug fixes?
<LI> Remove SET KSQO option if OR processing is improved(Tom)
</UL>
<HR>
<H3><A NAME="section-1.4.1">Developers who have claimed items are:</A></H3>
<UL>
<LI> Billy is Billy G. Allie <<A HREF="mailto:Bill.Allie@mug.org">Bill.Allie@mug.org</A>>
<LI> Brook is Brook Milligan <<A HREF="mailto:brook@trillium.NMSU.Edu">brook@trillium.NMSU.Edu</A>>
<LI> Bruce is Bruce Momjian<<A HREF="mailto:maillist@candle.pha.pa.us">maillist@candle.pha.pa.us</A>>
<LI> Bryan is Bryan Henderson<<A HREF="mailto:bryanh@giraffe.netgate.net">bryanh@giraffe.netgate.net</A>>
<LI> D'Arcy is D'Arcy J.M. Cain <<A HREF="mailto:darcy@druid.net">darcy@druid.net</A>>
<LI> David is David Hartwig <<A HREF="mailto:daveh@insightdist.com">daveh@insightdist.com</A>>
<LI> Edmund is Edmund Mergl <<A HREF="mailto:E.Mergl@bawue.de">E.Mergl@bawue.de</A>>
<LI> Goran is Goran Thyni <<A HREF="mailto:goran@kyla.kiruna.se">goran@kyla.kiruna.se</A>>
<LI> Hiroshi is Hiroshi Inoue<<A HREF="mailto:Inoue@tpf.co.jp">Inoue@tpf.co.jp</A>>
<LI> Jan is Jan Wieck <<A HREF="mailto:wieck@sapserv.debis.de">wieck@sapserv.debis.de</A>>
<LI> Marc is Marc Fournier <<A HREF="mailto:scrappy@hub.org">scrappy@hub.org</A>>
<LI> Massimo Dal Zotto <<A HREF="mailto:dz@cs.unitn.it">dz@cs.unitn.it</A>>
<LI> Michael is Michael Meskes <<A HREF="mailto:meskes@postgresql.org">meskes@postgresql.org</A>>
<LI> Oleg is Oleg Bartunov <<A HREF="mailto:oleg@sai.msu.su">oleg@sai.msu.su</A>>
<LI> Peter is Peter T Mount <<A HREF="mailto:peter@retep.org.uk">peter@retep.org.uk</A>>
<LI> Ryan is Ryan Bradetich <<A HREF="mailto:rbrad@hpb50023.boi.hp.com">rbrad@hpb50023.boi.hp.com</A>>
<LI> Stefan Simkovics <<A HREF="mailto:ssimkovi@rainbow.studorg.tuwien.ac.at">ssimkovi@rainbow.studorg.tuwien.ac.at</A>>
<LI> Tatsuo is Tatsuo Ishii <<A HREF="mailto:t-ishii@sra.co.jp">t-ishii@sra.co.jp</A>>
<LI> Tom is Tom Lane <<A HREF="mailto:tgl@sss.pgh.pa.us">tgl@sss.pgh.pa.us</A>>
<LI> Thomas is Thomas Lockhart <<A HREF="mailto:lockhart@alumni.caltech.edu">lockhart@alumni.caltech.edu</A>>
<LI> TomH is Tom I Helbekkmo <<A HREF="mailto:tih@Hamartun.Priv.NO">tih@Hamartun.Priv.NO</A>>
<LI> Vadim is "Vadim B. Mikheev" <<A HREF="mailto:vadim@krs.ru">vadim@krs.ru</A>>
</UL>
</BODY>
</HTML>
functions. One problem that I have encountered with the function
manager is that it does not allow the user to define type conversion
functions that convert between user types. For instance if mytype1,
mytype2, and mytype3 are three Postgresql user types, and if I wish to
define Postgresql conversion functions like
I run into problems, because the Postgresql dynamic loader would look
for a single link symbol, mytype3, for both pieces of object code. If
I just change the name of one of the Postgresql functions (to make the
symbols distinct), the automatic type conversion that Postgresql uses,
for example, when matching operators to arguments no longer finds the
type conversion function.
The solution that I propose, and have implemented in the attatched
patch extends the CREATE FUNCTION syntax as follows. In the first case
above I use the link symbol mytype2_to_mytype3 for the link object
that implements the first conversion function, and define the
Postgresql operator with the following syntax
The patch includes changes to the parser to include the altered
syntax, changes to the ProcedureStmt node in nodes/parsenodes.h,
changes to commands/define.c to handle the extra information in the AS
clause, and changes to utils/fmgr/dfmgr.c that alter the way that the
dynamic loader figures out what link symbol to use. I store the
string for the link symbol in the prosrc text attribute of the pg_proc
table which is currently unused in rows that reference dynamically
loaded
functions.
Bernie Frankpitt
now that sequence names are properly quoted for field defaults, mixed
case sequence names are generated. These are properly quoted in the
CREATE SEQUENCE lines, but not in the SELECT nextval lines, as per
below:
CREATE SEQUENCE "Teams_TeamID_seq" start 10 increment 1 maxvalue
2147483647 minvalue 1 cache 1 ;
SELECT nextval ('Teams_TeamID_seq');
This needs to be:
SELECT nextval ('"Teams_TeamID_seq"');
Patch included below.
--
Ross J. Reedstrom, Ph.D., <reedstrm@rice.edu>
and fix_opids processing to a single recursive pass over the plan tree
executed at the very tail end of planning, rather than haphazardly here
and there at different places. Now that tlist Vars do not get modified
until the very end, it's possible to get rid of the klugy var_equal and
match_varid partial-matching routines, and just use plain equal()
throughout the optimizer. This is a step towards allowing merge and
hash joins to be done on expressions instead of only Vars ...
lisp.sgml is a placeholder for Eric Marsden's upcoming contribution.
catalogs.sgml is not yet marked up or integrated.
It should perhaps become an appendix.
> the DTK_MICROSEC case is just like the DTK_MILLISEC case.
> I think this is wrong and it ought to look like
> fsec = rint(fsec * 1000000) / 1000000;
> no?
Tom Lane.
No big deal; fixed lots of other markup at the same time.
Bigest change: make sure there is no whitespace
in front of <term> contents.
This will probably help the other output types too.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
^^^^ required
Also note that SET TRANSACTION ISOLATION LEVEL change
isolevel for _current_ transaction, in accordance with
standard, not for session (ALTER SESSION is used in Oracle,
but it's not implemented currently).
And I would don't mention SET XACTISOLEVEL TO ...
form at all.
Please update set.sgml - I failed to understand all these
SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">
now.
for Vadim
Multiple intros cause trouble since they have some section elements
(e.g. "y2k.sgml") in common leading to duplicate labels.
Include emacs formatting hints in the intro*.sgml sources.
Add an appendix with more details on date/time attributes and handling.
Update most references to Postgres version numbers to 6.5,
*except* for the porting list which will require a report
from a successful installation to be updated.
Add reference pages for utilities and remove standalone chapters for same.
Add material for an appendix on date/time properties, but not yet
integrated with the User's Guide.
Break up the former chapter on pg_options
into Admin and Programmer's Guides.
lists are now plain old garden-variety Lists, allocated with palloc,
rather than specialized expansible-array data allocated with malloc.
This substantially simplifies their handling and eliminates several
sources of memory leakage.
Several basic types of erroneous queries (syntax error, attempt to
insert a duplicate key into a unique index) now demonstrably leak
zero bytes per query.
on connection. This patch changes it to use PQconnectdb rather than
{fe_setauthsvc,PQsetdb}. This still isn't the complete solution, as
there
is no provision for user,password in class PgEnv, but it does get rid of
the error message. Tested with gcc version egcs-2.91.60 19981201
(egcs-1.1.1 release) under NetBSD-1.3K/i386.
Cheers,
Patrick Welche
Attached is new README.locale. Should go into .../doc. Includes
instructions on how to install and use Multibyte support. Primarily
oriented toward Russian (Cyrillic) users.
Oleg.
----
Oleg Broytmann http://members.xoom.com/phd2/phd2@earthling.net
Programmers don't die, they just GOSUB without RETURN.
to the tutorial code changes.
NOTE: I couldn't get ngsmls to find the document
type so that the changes could be checked. However,
the changes were very minor:
Best,
Clark
Still need to add some acknowledgements at the top of the doc;
already have full info in the bibliography but since the original is
being spread across the existing docs we should also mention things
locally.
o allow to use Big5 (a Chinese encoding used in Taiwan) as a client
encoding. In this case the server side encoding should be EUC_TW
o add EUC_TW and Big5 test cases to the regression and the mb test
(contributed by Jonah Kuo)
o fix mistake in include/mb/pg_wchar.h. An encoding id for EUC_TW was
not correct (was 3 and now is 4)
o update documents (doc/README.mb and README.mb.jp)
o update psql helpfile (bin/psql/psqlHelp.h)
--
Tatsuo Ishii
t-ishii@sra.co.jp
elements prior to CREATEing new ones. It is under control of the -c
command line option (with the default being status quo).
The DROP TRIGGER portion still needs implementation. Anyone able to
help clarify what exactly the CREATE TRIGGER portion does so I can fix
this?
Again, I have tried this with tables/indexes/sequences, but do not
have other schema elements in my database. As a result, I am not 100%
convinced that I got the syntax correct in all cases (but think I did,
nonetheless). If anyone can check the other cases, I'd appreciate it.
Cheers,
Brook
[I added manual page and sgml additions for the new -c option.]
Remove mention of the old "migration" flat files.
Change URLs for resources to point to areas, not particular files.
That way things stay correct even when version of tools change.
Suggested by Vince Vielhaber.
tags even if DocBook is not installed on your local system.
Most of the .sgml source files contain a reference to this file in an
Emacs setup block at the bottom of the file...
6.4.1. Here is the list:
- The type int8 now works. In fact, the bug(s) were in
src/backend/port/snprintf.c, so int8 is probably broken in every platform
that hasn't a native snprintf/vsnprintf. The type itself worked as
expected, only the output was wrong. Anyway, this patch should be checked
in other platforms.
- The regression tests for int2 and int4, which were broken due to
differences in the error messages, are fixed.
- The regression test for float8, which was broken in the reference
platform, is also fixed. I don't know if the new file (float8-OSF1.out)
will work on other platforms, but it might be worth to try it.
- Two new template files are provided (alpha_cc, which includes
optimization, and alpha_gcc), and src/templates/.similar is updated
accordingly. src/templates/alpha should be removed from the distribution.
*IMPORTANT NOTE*: I don't know if you can use gcc to compile postgres;
I've written the alpha_gcc file because alpha_cc has some flags that are
specific to DEC C.
- There is a (very basic) Digital Unix specific FAQ in
doc/FAQ_DigitalUnix.
--
-------------------------------------------------------------------
Pedro José Lobo Perea Tel: +34 91 336 78 19
instead of relying on port's os.h to tell us. (Needed for HPUX
where system major version is not enough info.)
configure unsets USE_TK if X libraries not found.
doc/Makefile uses gzcat or zcat as found by autoconf.
Includes markup for the introductory portions suitable for the User's Guide
but just put the class reference material inside a huge <programlisting>
block. Figure out what to do later...
seem to date from some pre-autoconf interactive configure script).
Revise sequence of instructions to allow you to start the regular
postmaster run before running regression tests; there's no need to
start and kill a special postmaster for regression tests.
Update the description of interpreting regression test results.
Currently not included in the UG, and this now only has a discussion of
partial indices by Paul Aoki culled from the mailing lists.
But, didn't want to loose it...
Add new bibliographic references from Paul Aoki.
Include libpq++ docs from the old man page in the Programmer's Guide.
Update Unix installation info for ODBC.
> > the standard distribution. It occurs when a trigger calling this
> > function recursively fires another trigger which calls the same
> > function. The calling check_foreign_key loses its plan informantion and
> > when it tries to use it the backend closes its channel. You can check it
> > with the sql script I am attaching below.
> > The solution to this is to do a find_plan again before executing it at
> > line 483 of refint.c.
> > Therefore two more lines should be added before line 483:
Anand Surelia
Split introduction sections into separate files to allow the legal notice
and notation sections appear in all documents without having the history
show up everplace too.
Add full list of reserved and non-reserved key words in syntax.sgml.
Add a separate chapter to the admin guide on security.
From: t-ishii@sra.co.jp
Attached are patches to enhance the multi-byte support. (patches are
against 7/18 snapshot)
* determine encoding at initdb/createdb rather than compile time
Now initdb/createdb has an option to specify the encoding. Also, I
modified the syntax of CREATE DATABASE to accept encoding option. See
README.mb for more details.
For this purpose I have added new column "encoding" to pg_database.
Also pg_attribute and pg_class are changed to catch up the
modification to pg_database. Actually I haved added pg_database_mb.h,
pg_attribute_mb.h and pg_class_mb.h. These are used only when MB is
enabled. The reason having separate files is I couldn't find a way to
use ifdef or whatever in those files. I have to admit it looks
ugly. No way.
* support for PGCLIENTENCODING when issuing COPY command
commands/copy.c modified.
* support for SQL92 syntax "SET NAMES"
See gram.y.
* support for LATIN2-5
* add UNICODE regression test case
* new test suite for MB
New directory test/mb added.
* clean up source files
Basic idea is to have MB's own subdirectory for easier maintenance.
These are include/mb and backend/utils/mb.
Attached are diffs (from current cvs sources) to bring libpq.sgml
and libpq.3 up to date.
It appears that at various times in the past, people have made edits to
one or the other of these files but not both. I propagated some changes
from each into the other, but I don't think I caught every
inconsistency. It'd be real nice if the man pages could be
automatically generated from the SGML...
Making PQrequestCancel safe to call in a signal handler turned out to be
much easier than I feared. So here are the diffs.
Some notes:
* I modified the postmaster's packet "iodone" callback interface to allow
the callback routine to return a continue-or-drop-connection return
code; this was necessary to allow the connection to be closed after
receiving a Cancel, rather than proceeding to launch a new backend...
Being a neatnik, I also made the iodone proc have a typechecked
parameter list.
* I deleted all code I could find that had to do with OOB.
* I made some edits to ensure that all signals mentioned in the code
are referred to symbolically not by numbers ("SIGUSR2" not "2").
I think Bruce may have already done at least some of the same edits;
I hope that merging these patches is not too painful.
I have implemented a framework of encoding translation between the
backend and the frontend. Also I have added a new variable setting
command:
SET CLIENT_ENCODING TO 'encoding';
Other features include:
Latin1 support more 8 bit cleaness
See doc/README.mb for more details. Note that the pacthes are
against May 30 snapshot.
Tatsuo Ishii
Attached to the mail is locale-patch.tar.gz. In the archive
there are:
file README.locale
short description
directory src/test/locale
test suite; currently only koi8-r tests, but the suite can be
easily extended
file locale.patch
the very patch; to apply: patch < locale.patch; should be applied
to postgres-6.3.2 (at least I created it with 6.3.2 without any
additional
patches)
Files touched by the patch: src/include/utils/builtins.h
src/backend/utils/adt/char.c src/backend/utils/adt/varchar.c
src/backend/utils/adt/varlena.c
Oleg
pg_notifies statement is eliminated, and callbacks defined by
pg_listen are instead invoked automatically from the Tcl idle loop
whenever a NOTIFY message is received.
I have done only cursory testing, so there may be problems still
lurking (particularly on non-Unix machines?). But it seems to
work.
Patch is against today's cvs sources. Note that this will not work
with the 6.3.2 release since it depends on the new libpq.
The diffs are a bit large so I've gzipped them. A patch to update
libpgtcl.sgml is included too.
regards, tom lane
1. Rewritten libpq to allow asynchronous clients.
2. Implemented client side of cancel protocol in library,
and patched psql.c to send a cancel request upon SIGINT. The
backend doesn't notice it yet :-(
3. Implemented 'Z' protocol message addition and renaming of
copy in/out start messages. These are implemented conditionally,
ie, the client protocol version is checked; so the code should
still work with 1.0 clients.
4. Revised protocol and libpq sgml documents (don't have an SGML
compiler, though, so there may be some markup glitches here).
What remains to be done:
1. Implement addition of atttypmod field to RowDescriptor messages.
The client-side code is there but ifdef'd out. I have no idea
what to change on the backend side. The field should be sent
only if protocol >= 2.0, of course.
2. Implement backend response to cancel requests received as OOB
messages. (This prolly need not be conditional on protocol
version; just do it if you get SIGURG.)
3. Update libpq.3. (I'm hoping this can be generated mechanically
from libpq.sgml... if not, will do it by hand.) Is there any
other doco to fix?
4. Update non-libpq interfaces as necessary. I patched libpgtcl
so that it would compile, but haven't tested it. Dunno what
needs to be done with the other interfaces.
Have at it!
Tom Lane
Hi, here are patches I promised (against 6.3.2):
* character_length(), position(), substring() are now aware of
multi-byte characters
* add octet_length()
* add --with-mb option to configure
* new regression tests for EUC_KR
(contributed by "Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr>)
* add some test cases to the EUC_JP regression test
* fix problem in regress/regress.sh in case of System V
* fix toupper(), tolower() to handle 8bit chars
note that:
o patches for both configure.in and configure are
included. maybe the one for configure is not necessary.
o pg_proc.h was modified to add octet_length(). I used OIDs
(1374-1379) for that. Please let me know if these numbers are not
appropriate.
Ok, I have finally gotten all of the defines for Dec/Alpha and
Linux/Alpha sorted out as Marc asked. There is no longer any need for
'-Dalpha' or '-Dlinuxalpha' in either the Dec/Alpha or the Linux/Alpha
template files (./src/template/{alpha,linuxalpha}). I have replaced every
instance of 'alpha' or '__alpha__' with '__alpha', as that appears to be
the common symbol between C compilers on both operating systems (RH4.2 &
DecUnix 4.0b) for alpha.
Included are patches intended for allowing PostgreSQL to handle
multi-byte charachter sets such as EUC(Extende Unix Code), Unicode and
Mule internal code. With the MB patch you can use multi-byte character
sets in regexp and LIKE. The encoding system chosen is determined at
the compile time.
To enable the MB extension, you need to define a variable "MB" in
Makefile.global or in Makefile.custom. For further information please
take a look at README.mb under doc directory.
(Note that unlike "jp patch" I do not use modified GNU regexp any
more. I changed Henry Spencer's regexp coming with PostgreSQL.)
Subject: [PATCHES] Documentation update
This patch updates some of the documentation that comes with the
distribution. The following files are updated:
COPYRIGHT
README
doc/README.flex
doc/README.support
doc/bug.template
To: Bryan Henderson <bryanh@giraffe.netgate.net>
Cc: Postgres95-development <pg95-dev@ki.net>
Subject: Re: [PG95-DEV] DELETE statement
>
> Does the man page for DELETE need to be corrected? It gives as syntax
>
> DELETE instance_variable [FROM fromlist] [WHERE qual] .
>
> But the actual syntax appears to be
>
> DELETE FROM classname WHERE qual .
>
> --
> Bryan Henderson Phone 408-227-6803
> San Jose, California
>
This patch fixes the delete manual page in 2.0: