updated todo.md

This commit is contained in:
sascha 2026-05-18 14:07:20 +02:00
parent 08a28b1627
commit 052ff657c1
1 changed files with 2 additions and 48 deletions

50
todo.md
View File

@ -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;