minor MSSQL improvements
[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     - normalize float/real/double data types in a most cross-deployment friendly
18       fashion, using float(25) as the double boundary where possible
19     - finish data_type tests for all DBs (DB2 and Informix left)
20     - generate a schema accessor which stores which SQLT type it was loaded from
21     - add a settable 'on-behalf-of' version tag (for catalyst model)
22     - inject a table2moniker function into the schema
23     - support coderef for relationship_attrs
24     - common tests for table/column comments
25     - optimize queries
26     - remove extra select for _filter_tables
27     - option to promote non-nullable unique constraints to PK (prefer int
28       columns when more than one) (RT#51696)
29     - figure out how to represent Informix 'DATETIME YEAR TO FRACTION(5)' in a
30       way that SQLT will like
31     - support domains (aka custom data types) as a Schema deploy hook
32     - add hashref form of generate_pod to control which POD is generated
33     - add hashref form of components to control which components are added to
34       which classes
35     - add original => {} to all type info rewrites
36     - add common tests for preserve_case option
37     - correct handling of CamelCase names with numbers (eg. foo2Bar -> Foo2Bar,
38       foo2_bar)
39     - check rel accessors for method conflicts
40     - add an option to add extra code to Result classes
41
42 - Relationships
43    - Re-scan relations/tables after initial relation setup to find
44      ->many_to_many() relations to be set up
45    - While scanning for many-to-many, scan for implied rels as well (if
46      foo->belongs_to('bar') and baz->belongs_to('bar'), does that impliy
47      foo->might_have('baz') and the reverse?)
48
49 - Backends
50   - SQLite
51     - table/column comments
52     - introspect on_update/on_delete/is_deferrable
53     - introspect view SQL
54   - MySQL
55     - table/column comments
56     - introspect on_update/on_delete/is_deferrable
57     - introspect view SQL
58     - domains?
59   - Pg
60     - introspect on_update/on_delete/is_deferrable
61     - introspect view SQL
62     - preserve_case mode
63     - domains
64   - DB2
65     - data_type tests
66     - table/column comments
67     - introspect on_update/on_delete/is_deferrable
68     - introspect view SQL
69     - preserve_case mode
70     - domains
71   - Oracle
72     - table/column comments
73     - introspect on_update/on_delete/is_deferrable
74     - introspect view SQL
75     - preserve_case mode
76     - domains
77   - Sybase ASE
78     - table/column comments
79     - introspect on_update/on_delete/is_deferrable
80     - introspect view SQL
81     - domains
82   - MSSQL
83     - table/column comments
84     - introspect on_update/on_delete/is_deferrable
85     - introspect view SQL
86     - computed column support
87     - domains
88     - Optimization
89       - use one query for whole table instead of query-per-column in _columns_info_for
90       - use placeholders when available
91   - SQLAnywhere
92     - table/column comments
93     - introspect on_update/on_delete/is_deferrable
94     - introspect view SQL
95     - preserve_case mode
96     - domains
97   - Firebird
98     - table/column comments
99     - introspect on_update/on_delete/is_deferrable
100     - introspect view SQL
101     - domains
102   - Informix
103     - data_type tests
104     - preserve_case mode
105     - table/column comments
106     - introspect on_update/on_delete/is_deferrable
107     - introspect view SQL
108     - domains