95291881b004b58878251ffd2bf7f66fcc49b130
[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 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.
13     - support for user-defined-types as Schema deploy hooks
14     - normalize float/real/double data types in a most cross-deployment friendly fashion, using float(25) as the double boundary where possible
15     - finish data_type tests for all DBs (DB2 and Oracle left)
16     - support for Informix
17     - generate a schema accessor which stores which SQLT type it was loaded from
18     - add a settable 'on-behalf-of' version tag (for catalyst model)
19     - inject a table2moniker function into the schema
20     - support coderef for relationship_attrs
21     - common tests for table/column comments
22     - optimize queries
23     - remove extra select for _filter_tables
24     - option to promote non-nullable unique constraints to PK (prefer int
25       columns when more than one) (RT#51696)
26     - figure out how to represent Informix 'DATETIME YEAR TO FRACTION(5)' in a
27       way that SQLT will like
28     - support domains (aka custom data types) as a Schema deploy hook
29     - when checking whether to delete size from a type definition, use an
30       inclusive list rather than an exclusive list, in order to support domains
31     - add hashref form of generate_pod to control which POD is generated
32
33 - Relationships
34    - Re-scan relations/tables after initial relation setup to find ->many_to_many() relations to be set up
35    - 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?)
36
37 - Backends
38   - SQLite
39     - table/column comments
40     - introspect on_update/on_delete/is_deferrable
41     - introspect view SQL
42   - MySQL
43     - table/column comments
44     - introspect on_update/on_delete/is_deferrable
45     - introspect view SQL
46     - domains?
47   - Pg
48     - introspect on_update/on_delete/is_deferrable
49     - introspect view SQL
50     - preserve_case mode
51     - domains
52   - DB2
53     - data_type tests
54     - table/column comments
55     - introspect on_update/on_delete/is_deferrable
56     - introspect view SQL
57     - preserve_case mode
58     - domains
59   - Oracle
60     - data_type tests
61     - table/column comments
62     - introspect on_update/on_delete/is_deferrable
63     - introspect view SQL
64     - preserve_case mode
65     - domains
66   - Sybase ASE
67     - table/column comments
68     - introspect on_update/on_delete/is_deferrable
69     - introspect view SQL
70     - domains
71   - MSSQL
72     - table/column comments
73     - introspect on_update/on_delete/is_deferrable
74     - introspect view SQL
75     - computed column support
76     - domains
77     - Optimization
78       - use one query for whole table instead of query-per-column in _columns_info_for
79       - use placeholders when available
80   - SQLAnywhere
81     - table/column comments
82     - introspect on_update/on_delete/is_deferrable
83     - introspect view SQL
84     - preserve_case mode
85     - domains
86   - Firebird
87     - table/column comments
88     - introspect on_update/on_delete/is_deferrable
89     - introspect view SQL
90     - domains
91   - Informix
92     - data_type tests
93     - preserve_case mode
94     - table/column comments
95     - introspect on_update/on_delete/is_deferrable
96     - introspect view SQL
97     - domains