PHPPGADMIN TODO LIST FOR DEVELOPERS
-----------------------------------

phpPgAdmin is an open source project which means that if you see something on 
this list that you would like to implement, just send us a patch.  You can find
our project page here:

	http://sourceforge.net/projects/phppgadmin/

An item is marked 'claimed' when a username in brackets is put after the TODO
item.

An item is marked with a '-' if it has been completed.

Export
------

* Switch to SPARQL format:
  http://www.w3.org/TR/2005/WD-rdf-sparql-XMLres-20050801/

  Actually...SQL/XML is maybe better.

Misc
----

* Support 8.1 standard compliant strings (E'')

Users
-----

* 7.3 user variables (eg. ALTER USER SET .. TO ...)

Groups
------

Roles
-----

* Support for 8.1 roles (removing users and groups)

Permissions
-----------

* Grant ... on all tables, views, ... to user, group, public

Databases
---------

* Add alter database variables for 7.3+
* Comments on Create and Alter database

Schemas (7.3)
-------------

* Rename
* Alter owner
* Alter ... SET SCHEMA support

Large Objects
-------------

* Add support for large objects

Tables
------

* Allow PK and UNIQUE and FKs during create table
* Vacuum & analyze individual tables
* When adding a column or creating a table, prevent size on non-size types (eg. integer(2)).  You can find these by looking at format_type in the postgresql source code.
* When browsing a table, clicking on a FK value should jump to the
  PK row.
* When editing a table, turn FK columns into drop-downs based on estimated
  rows in the foreign table?
* Auto-select 'WITHOUT OIDS' if 'default_with_oids' setting is false

Views
-----

* Allow INSERT and import on views with the appropriate rules.

Sequences
---------

* Alter sequence
* setval & nextval

Functions
---------

* Support 8.1 IN, OUT and INOUT parameters.
* Display owner
* Alter owner

Indexes 
-------

* Expressional indexes

Types
-----

Operators
---------

* Create

Operator Classes
----------------

* Create

Triggers
--------

* Allow functions from other schemas.
* Support ENABLE/DISABLE trigger in 8.1

Aggregates
----------

* Properties
* Drop
* Create

Languages
---------

* Drop
* Create

Domains (7.3)
-------------

Conversions (7.3)
-----------------

* Properties
* Drop
* Create

Casts (7.3)
-----------

* Properties
* Drop
* Create

Miscellaneous
-------------

* Allow management of built-in autovacuum in 8.1
* Put a 'What's blocking this query' on Processes view
* Show locks on database view
* Show NOTICES on queries in SQL window/file
* Add sslmode to connection variables
* Printable view of things
* Show comments for all objects (Dan Boren)
* Allow setting/dropping comments for all objects (Dan Boren)
* Show owner for all objects
* Allow changing owner for objects that have this feature (7.4+ generally)
* Translated FAQ
* Icons for all objects, for use in navigation widgets

Exotic
------

* Support contrib/tsearch2 for easy full text indexes
* Pivot reports (ADODB has a feature for this)
* Parameterized reports (use prepared queries)
* Full web accessability conformance

Principles
----------

* register_globals off support
* maximum error_reporting support - enforces code quality, reduces bugs and 
  improves security
* PHP 4.2 features used
* No HTML font, colour, layout tags.  Use CSS for everything
* One day we should make it all XHTML
* everything properly escaped - prevent sql injection and cross-site scripting 
  probs
* Support Postgres 7.0 and upwards
* psql -E is a cool way of seeing how to do schema queries
* Checking out older versions of describe.c in src/bin/psql in the postgres 
  distro is a good way of seeing how to query older versions of postgres for 
  schema information
* Put functions in the highest class possible.  For instance, simple selects 
  should be in Postgres, whereas something that works for 7.1+ should be in the 
  7.1 class.  This will minimise bugs and duplicated code.
* Adhere to current coding standards
* Avoid using global variables if possible

