Re: PostgreSQL Version 6.0 RDBMS database... - Its FREE!! ( AND BUGGY )
Posted in 1997
Topics: Performance & Tuning, Installation, Setup & Upgrades, SQL Development & Query Writing, Stored Procedures & SPL, Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration, Data Types & Schema Design, Clustering, Grid & MACH11, Java & JDBC Development, Internationalization & Character Sets
> PostgreSQL Version 6.0 is free database, complete source code is given
> to you and is a VERY POWERFUL Relational Database System compliant
> with ANSI SQL92 and SQL89 for very LARGE ENTERPRISE with VAST diverse
> hardware platforms and Operating systems. Since it is free even very
> small business can use it (VERY SCALABLE & RELIABLE PostgreSQL).
> Each and every user is EXTREMELY happy with PostgreSQL RDBMS.
> Millions of PostgreSQL is installed as data servers, data center
> servers, Web databases, WWW http database servers and application
> servers.
>
How 'LARGE ENTERPRISE' is large enterprise. I pulled this excerpt from the
PostGRES "Current TODO" web page. Looks to me like it has some significant
issues. I couldn't trust my "PERSONAL ENTERPRISE" data with something like
this.
Examples:
Dropping a table twice causes corruption, drop/create not rollback-able
-SUM aggregate on no rows or null value should return NULL, not
zero(Thomas)
<<<< Start web page excerpt >>>>>
====================================================
TODO list (FAQ) for PostgreSQL
====================================================
last updated: Thu May 8 12:11:07 EDT 1997
.
.
.
RELIABILITY
-----------
-Overhaul mdmgr/smgr to fix double unlinking and double opens,
cleanup(Erich)
-Overhaul bufmgr/lockmgr/transaction manager(Vadim)
remove -S (stable memory) option or fix memory manager
Fix CLUSTER
Fix all NULL features
allow psql to print nulls meaningfully
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
Dropping a table twice causes corruption, drop/create not rollback-able
-SUM aggregate on no rows or null value should return NULL, not
zero(Thomas)
SELECT on two tables where zero or one table in WHERE and target
clause returns no rows
COUNT on VIEW always returns zero (maybe because there is no oid for
views?)
CREATE VIEW requires super-user priviledgeSELECT a[1] FROM test fails, it needs test.a[1]
INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
pg_database.datdba is oid, should be int4
fix array diffs in regression test
can lo_export()/lo_import() read/write anywhere, causing a security
problem?
SELECT ... INTO TABLE ... with varchar()/char() types have zero-length
fields
Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
ENHANCEMENTS
------------
Add full ANSI SQL capabilities (Stefan)
add subselects, possibility using temporary SQL functions
Implement HAVING clause
Implement EXISTS qualifier
column constraints (using rules), PRIMARY KEY during table creation
add DEFAULT, RESTRAINT, and CHECK capabilities
report "Not implemented" if valid syntax is supplied
add NOT NULL to CREATE statement
add OUTER joins, left and right
make VIEWs updateable where possible
add UNIONS, INTERSECTS, SUBTRACTS
add temporary tables
add assertions
add domains
add sql3 recursive unions
add the concept of dataspaces
allow conversion type casts on SELECT target fields
Allow compression of large fields or a compressed field type
Fix the rules system(Jan?,Soo-Ho)
robust
making INSTEAD rules work
add CONSTRAINT
Full set of text operations and functions
- upper/lower()
word searches, concat,max() on text, char
Replace table-level locking with row or page-level locking(Vadim)
Large objects
overwriting blocks has problems
there are other problems, too.
Fix large object mapping scheme
not to stuff everything as files in a single directory
Better interface for adding to pg_group
-Make multi-field indexes easier to create(Vadim)
allow optimizer to effectively use parameters without accessing table
-Add int8 type(Thomas)
-Add MONEY/DECIMAL type(Thomas)
Make MONEY/DECIMAL have a defined precision
Add support for tables >2G, or test current version
Incorporate the PERL PG95 interface library into source tree(Edmund)
Threaded version of the server or libpq
Allow libpq to cancel query requests
Add REGEX internationalization
Add other language types for built-in functions
expand to allow tcl, perl, java,
generalize the function manager switch to pass
function sources to interpreter engines.
remove time-travel feature(Vadim)
reduce system column overhead(Vadmin)
remove pg_time table(Vadim)
allow row re-use without vacuum, maybe?(Vadim)
-split apart row removal function from statistics function(Vadim)
can't vacuum large objects
can't reduce index file size with vacuum
Remove restriction that ORDER BY field must be in SELECT list(?)
Allow queries about owner of datbases, tables like:
SELECT u.usesysid FROM postgres.pg_user u;DROP AGGREGATE should take in basetype as an arg(Darren)
Add word index for text fields, maybe with trigrams, i.e.:
' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
-Add common-sense constant type promotions(Bruce)
Allow readline-type or editor command editing of multi-line SQL commands
-Allow pg_dump to dump all databases at a site in one command(Bruce)
Populate backend status area and write program to dump status data
Add ALTER TABLE DROP COLUMN feature
Remove stale files upon startup(Vivek)
Add command to show privileges
Allow INSERT INTO ... SELECT to convert column types
Add syslog functionality
Allow aggregate for all types, like count(Darren)
Improve optimizer plan choice(Darren)
Add STDDEV/VARIANCE() function for standard deviation computation/variance
Add table/column/function discription table indexed by oid
-make all identifiers case-insensitive(Bruce)
add pg_type attribute to identify types that need length (bpchar, varchar)
add UNIQUE capability to non-btree indexes
-allow GROUP BY on columns that on functions(Vadim)
-add non-ascii collating strings with strcoll() and setlocale (Oleg)
-new DATE routines (Thomas)
-index NULL fields(Vadim)
-Add SERIAL column type(Vadim)
-Add multi-column indexes(Vadim)
-Add SET VAR TO command