Update Firebird ODBC driver download URL
[dbsrgits/DBIx-Class-Schema-Loader.git] / TODO
diff --git a/TODO b/TODO
index 24c6e2f..3a15ae2 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,13 +1,99 @@
+- General
+  - High Priority
+    - clean out RT queue
+    - introspect views and make proper ResultSource::View classes with defining SQL
+    - better avoidance of column and relationship accessor collisions
+    - encode loader options in Schema.pm
+    - introspect on_update/on_delete/is_deferrable
+  - Low Priority
+    - support pk/uk/fk info on views, possibly (materialized views?)
+    - remove deprecated ResultSetManager stuff, rewrite using current features
+    - Refactor RelBuilder so that it doesn't require a live mostly-built
+      DBIx::Class::Schema, so that other modules (SQLT) can use it easier.  And
+      then when/if we get there, break it out as a seperate distribution with a
+      new name.
+    - support for user-defined-types as Schema deploy hooks
+    - generate a schema accessor which stores which SQLT type it was loaded from
+    - add a settable 'on-behalf-of' version tag (for catalyst model)
+    - inject a table2moniker function into the schema
+    - common tests for table/column comments
+    - optimize queries
+    - remove extra select for _filter_tables
+    - option to promote non-nullable unique constraints to PK (prefer int
+      columns when more than one) (RT#51696)
+    - figure out how to represent Informix 'DATETIME YEAR TO FRACTION(5)' in a
+      way that SQLT will like
+    - support domains (aka custom data types) as a Schema deploy hook
+    - add hashref form of generate_pod to control which POD is generated
+    - add hashref form of components to control which components are added to
+      which classes
+    - check rel accessors for method conflicts
+    - add an option to add extra code to Result classes (maybe...)
+    - redo in-memory schema as an @INC coderef rather than temp files
+    - add option to filter out views
+    - support columns with names like "ro'd p/n" in MSSQL
+    - automatic preserve_case detection
+    - reduce chances of relname/colname collisions
+    - strip _no, _num, _number, _code etc. from relnames
+    - write a Manual::Intro with info on +column, inflect_singular, config_file,
+      catalyst helper, etc.
+    - add result_roles and schema_roles for use with use_moose=1
+    - generate Schema/ResultBase.pm and Schema/ResultSetBase.pm
+    - remove additional warnings skip in t/22dump.t for ActivePerl on Win32
+    - make 23dumpmore.t auto cleanup and remove dump warnings
+    - generate POD for schema class with class list
+    - remove implicit rels from common tests so all tests work on MySQL
+    - server link support for Oracle and MSSQL
 
-Reminders to myself or whoever else ever looks in here...
+- Relationships
+  - While scanning for many-to-many, scan for implied rels as well (if
+    foo->belongs_to('bar') and baz->belongs_to('bar'), does that impliy
+    foo->might_have('baz') and the reverse?)
 
-SQLite needs some heavy refactoring, the subroutines are becoming too complex to understand easily.
-MySQL needs implicit FK support, I think.
-Need tests for left_base_classes, additional_classes, additional_base_classes...
-
-Consider:
-   If local column is UNIQUE or PK, use has_one() for relation?
-   Re-scan relations/tables after initial relation setup to find ->many_to_many() relations to be set up?
-   Check NULLability of columns involved in the relationship, which might suggest a more optimal non-default -join-type?
-
-...
+- Backends
+  - SQLite
+    - table/column comments
+    - introspect view SQL
+  - MySQL
+    - table/column comments
+    - introspect view SQL
+    - domains?
+  - Pg
+    - introspect view SQL
+    - domains
+  - DB2
+    - table/column comments
+    - introspect view SQL and set table_class
+    - domains
+  - Oracle
+    - introspect view SQL and set table_class
+    - domains
+  - Sybase ASE
+    - table/column comments
+    - introspect on_update/on_delete/is_deferrable
+    - introspect view SQL and set table_class
+    - domains
+  - MSSQL
+    - table/column comments
+    - introspect view SQL and set table_class
+    - computed column support
+    - domains
+    - Optimization
+      - use one query for whole table instead of query-per-column in _columns_info_for
+      - use placeholders when available
+  - SQLAnywhere
+    - table/column comments
+    - introspect view SQL and set table_class
+    - domains
+  - Firebird
+    - table/column comments
+    - introspect on_update/on_delete/is_deferrable
+    - introspect view SQL and set table_class
+    - domains
+  - Informix
+    - support opaque types
+    - datetime/interval precision detection
+    - table/column comments
+    - introspect on_update/on_delete/is_deferrable
+    - introspect view SQL and set table_class
+    - domains