updated todo.md
This commit is contained in:
parent
08a28b1627
commit
052ff657c1
50
todo.md
50
todo.md
|
|
@ -1,58 +1,12 @@
|
||||||
# Todo
|
# Todo
|
||||||
|
|
||||||
Order of next steps:
|
|
||||||
1. Finish pk generator
|
|
||||||
- classes
|
|
||||||
- detection on schema attach
|
|
||||||
- tests
|
|
||||||
2. PK accessor class
|
|
||||||
- extract from `insert_query_builder` class
|
|
||||||
- get(), set(), is_null/valid/set()
|
|
||||||
- detection on schema attach
|
|
||||||
- tests
|
|
||||||
3. Add owner-awareness to the collection class
|
|
||||||
- add owner field
|
|
||||||
- bind owner on session insert
|
|
||||||
- tests
|
|
||||||
4. Finish `insert_query_builder`
|
|
||||||
- collect all inserts for entities with relations
|
|
||||||
- tests
|
|
||||||
- cascade_type: `Insert`
|
|
||||||
- has_many <-> belongs_to: set root id into the join column of elements
|
|
||||||
- belongs_to <-> has_many: ?
|
|
||||||
- belongs_to <-> has_one: set root id into the foreign object
|
|
||||||
- has_one <-> belongs_to: set root id into the foreign object
|
|
||||||
- has_many_to_many: insert relation table entry
|
|
||||||
|
|
||||||
if generator type `manual` => extract pk before insert
|
|
||||||
=>
|
|
||||||
if generator type `sequence` or `table` => generate pk before insert
|
|
||||||
if generator type `identity` => extract pk after insert and before insert of relation objects
|
|
||||||
|
|
||||||
5. Finish `session::insert` method
|
|
||||||
- use `insert_query_builder`
|
|
||||||
- correct handling of pk generator
|
|
||||||
- tests
|
|
||||||
|
|
||||||
- move `prepare_*` methods from `dialect` to `query_compiler`
|
- move `prepare_*` methods from `dialect` to `query_compiler`
|
||||||
- add `insert_query_builder` and `update_update_builder` (returning multiple statements)
|
- add `update_update_builder` (returning multiple statements)
|
||||||
- finish fetch eager many-to-many relations
|
- add `delete_update_builder` (returning multiple statements)
|
||||||
- implement lazy loading
|
|
||||||
- implement polymorphic class hierarchies
|
- implement polymorphic class hierarchies
|
||||||
- finish `database` (schema_repository) class (move add/drop from `session` to `schema`)
|
- finish `database` (schema_repository) class (move add/drop from `session` to `schema`)
|
||||||
- implement a flag class for enumerations
|
- implement a flag class for enumerations
|
||||||
|
|
||||||
- PK generator
|
|
||||||
1. Introduce execute_result
|
|
||||||
2. Add `abstract_pk_generator` class
|
|
||||||
3. Add `identity_pk_generator` class
|
|
||||||
4. Add `sequence_pk_generator` class
|
|
||||||
5. Add `table_pk_generator` class
|
|
||||||
6. Add `manual_pk_generator` class
|
|
||||||
7. Extend `session::insert` logic to use pk generator
|
|
||||||
8. Add generator to `schema_node` or `table` class when attaching type
|
|
||||||
|
|
||||||
|
|
||||||
__Proposal for polymorphic classes:__
|
__Proposal for polymorphic classes:__
|
||||||
|
|
||||||
object_ptr::as<Type> does the following checks;
|
object_ptr::as<Type> does the following checks;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue