update TODO
[dbsrgits/DBIx-Class-Schema-Loader.git] / TODO
1 - General
2   - High Priority
3     - clean out RT queue
4     - introspect views and make proper ResultSource::View classes with defining SQL
5     - encode loader options in Schema.pm
6     - introspect on_update/on_delete/is_deferrable
7     - preserve_case mode for remaining backends
8   - Low Priority
9     - support multiple/all schemas, instead of just one
10     - support pk/uk/fk info on views, possibly (materialized views?)
11     - remove deprecated ResultSetManager stuff, rewrite using current features
12     - Refactor RelBuilder so that it doesn't require a live mostly-built
13       DBIx::Class::Schema, so that other modules (SQLT) can use it easier.  And
14       then when/if we get there, break it out as a seperate distribution with a
15       new name.
16     - support for user-defined-types as Schema deploy hooks
17     - finish data_type tests for all DBs (DB2 and Informix left)
18     - generate a schema accessor which stores which SQLT type it was loaded from
19     - add a settable 'on-behalf-of' version tag (for catalyst model)
20     - inject a table2moniker function into the schema
21     - support coderef for relationship_attrs
22     - common tests for table/column comments
23     - optimize queries
24     - remove extra select for _filter_tables
25     - option to promote non-nullable unique constraints to PK (prefer int
26       columns when more than one) (RT#51696)
27     - figure out how to represent Informix 'DATETIME YEAR TO FRACTION(5)' in a
28       way that SQLT will like
29     - support domains (aka custom data types) as a Schema deploy hook
30     - add hashref form of generate_pod to control which POD is generated
31     - add hashref form of components to control which components are added to
32       which classes
33     - add common tests for preserve_case option
34     - check rel accessors for method conflicts
35     - add an option to add extra code to Result classes
36     - redo in-memory schema as an @INC coderef rather than temp files
37     - add option to filter out views
38
39 - Relationships
40    - Re-scan relations/tables after initial relation setup to find
41      ->many_to_many() relations to be set up
42    - While scanning for many-to-many, scan for implied rels as well (if
43      foo->belongs_to('bar') and baz->belongs_to('bar'), does that impliy
44      foo->might_have('baz') and the reverse?)
45
46 - Backends
47   - SQLite
48     - table/column comments
49     - introspect on_update/on_delete/is_deferrable
50     - introspect view SQL
51   - MySQL
52     - table/column comments
53     - introspect on_update/on_delete/is_deferrable
54     - introspect view SQL
55     - domains?
56   - Pg
57     - introspect on_update/on_delete/is_deferrable
58     - introspect view SQL
59     - preserve_case mode
60     - domains
61   - DB2
62     - data_type tests
63     - table/column comments
64     - introspect on_update/on_delete/is_deferrable
65     - introspect view SQL
66     - preserve_case mode
67     - domains
68   - Oracle
69     - table/column comments
70     - introspect on_update/on_delete/is_deferrable
71     - introspect view SQL
72     - preserve_case mode
73     - domains
74   - Sybase ASE
75     - table/column comments
76     - introspect on_update/on_delete/is_deferrable
77     - introspect view SQL
78     - domains
79   - MSSQL
80     - table/column comments
81     - introspect on_update/on_delete/is_deferrable
82     - introspect view SQL
83     - computed column support
84     - domains
85     - Optimization
86       - use one query for whole table instead of query-per-column in _columns_info_for
87       - use placeholders when available
88   - SQLAnywhere
89     - table/column comments
90     - introspect on_update/on_delete/is_deferrable
91     - introspect view SQL
92     - domains
93   - Firebird
94     - table/column comments
95     - introspect on_update/on_delete/is_deferrable
96     - introspect view SQL
97     - domains
98   - Informix
99     - data_type tests
100     - preserve_case mode
101     - table/column comments
102     - introspect on_update/on_delete/is_deferrable
103     - introspect view SQL
104     - domains