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. If you want to work a claimed item, please contact the developers list. An item is marked with a '-' if it has been completed. Cluster ------- * Allow reading of postgresql.conf and pg_hba.conf per pg_read_file() in 8.1 * Support pg_reload_conf(), pg_rotate_logfile() 8.1 commands Export ------ * Switch to SPARQL format: http://www.w3.org/TR/2005/WD-rdf-sparql-XMLres-20050801/ Actually...SQL/XML is maybe better. Users ----- * 7.3 user variables (eg. ALTER USER SET .. TO ...) Groups ------ Roles ----- * -Support for 8.1 roles (removing users and groups) (chriskl,javier) * -Support for ALTER ROLE (done by ?) Permissions ----------- * Grant ... on all tables, views, ... to user, group, public * Grant connect on database [8.2] Databases --------- * Add alter database variables for 7.3+ * -Comments on Create and Alter database [8.2] * Add database stats * REASSIGN OWNED & DROP OWNED support for 8.2+ - http://www.postgresql.org/docs/8.2/interactive/sql-reassign-owned.html - http://www.postgresql.org/docs/8.2/interactive/sql-drop-owned.html Schemas (7.3) ------------- * -Rename (xzilla) * -Alter owner (ioguix) * Alter ... SET SCHEMA support per 8.1 Large Objects ------------- * Add support for large objects Tables ------ * Allow PK and UNIQUE and FKs during create table (Jawed) * -Vacuum & analyze individual tables (analyze by ioguix, vacuum already done) * 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. (ioguix) * When editing a table, turn FK columns into drop-downs based on estimated rows in the foreign table? (Jawed) * -Auto-select 'WITHOUT OIDS' if 'default_with_oids' setting is false (Guillaume LELARGE) * Add WITH storage_parameter option to create table [8.2] * Add last vacuum and analyze information from statistics tables [8.2] * Restrict operators (from $selectOps array) to appropriate types (ie. no LIKE for int4 fields) * Alter column should handle types with implicit cast types distinctly from those requiring a USING clause * Where ENUM types are an option, restrict choice to enum values [8.3] Views ----- * Support temporary views per 8.1? * Allow INSERT and import on views with the appropriate rules. * - Allow altering of comments (ioguix, with rename, owner & schema) Sequences --------- * -Alter sequence (Guillaume LELARGE) * -setval & nextval (Guillaume LELARGE) * -change schema (ioguix) * -rename (done using alter table) (ioguix) Functions --------- * -Support 8.1 IN, OUT and INOUT parameters.(Jawed) * Remove options for OUT/INOUT params in older servers * Clean up javascript html spec warnings * -Display owner (xzilla) * -Alter owner (xzilla) * -Alter schema (xzilla) * GUC settings [8.3] * Default param values Indexes ------- * Support 8.1 Reindex [Database|System] commands * Expressional indexes * Allow indexes to be built concurrently [8.2] * Create Index Asc/Desc, Nulls First/Last [8.3] Types ----- * Suppres psuedo-type options in type list for creating composite types. Operators --------- * Create * Create/Alter/Drop Operator Family Operator Classes ---------------- * Create Triggers -------- * Allow functions from other schemas. * -Support ENABLE/DISABLE trigger in 8.1 (Jawed) Aggregates ---------- * -Properties (Javier) * -Drop (Javier) * -Create (Javier) * Allow for multi-column aggregates [8.2] Languages --------- * Drop * Create * Alter owner [8.3] * Alter name [8.3] Domains (7.3) ------------- Conversions (7.3) ----------------- * Properties * Drop * Create Casts (7.3) ----------- * Properties * Drop * Create Full Text Search (8.3) ---------------------- * Create/Alter/Drop parser * Help Pages * Alter Owner Miscellaneous ------------- * Support 8.1 standard compliant strings (E'') * -Allow management of built-in autovacuum in 8.1 (xzilla) * Support per-user and per-database connection limits per 8.1 * Put a 'What's blocking this query' on Processes view * -Show locks on database view (Javier) * Show prepared statements on database view [8.2] * Show cursors on database view [8.2] * Show NOTICES on queries in SQL window/file * -Add sslmode to connection variables (Eric Kinolik) * 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] * -Icons for all objects, for use in navigation widgets Most objects are now covered thanks to those provided by Niko, but we still need icons for: Introduction, Variables, Admin, Privileges, Reports * Add CASCADE option to Truncate [8.2] * Add information about synch tool to TRANSLATORS * Translated FAQ * Pull FAQ/HISTORY/CREDITS/etc... from CVS for website. * Add support for csvlogs [8.3] * Add executed file scripts in history 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 * reversing the database stack inheritance it would have the following advantages: - less class to load when using the latests pg versions - every newer/up-to-date methods will be in the same class file. Other classes will have specific methods for their pg versions and older - ... complete me please :) 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