summaryrefslogtreecommitdiff
path: root/feature/list
blob: 33226a446e374ec5c8e80d8f08c4aeb3280beb09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
- Schema to C++ classes

  http://codesynthesis.com/pipermail/odb-users/2014-January/001769.html

  What if instead of all these mappings, customizations, etc., we
  just provide a template (or a plugin) and let the user write/customize
  some C++ code to produce a mapping that they want?

  Another idea: define database schema tables as persistent classes?
  What if the generator is basically an ODB-based application that
  the user is expected to customize?

- ON UPDATE clause in generated schema

  Would be nice to be able to specify this similar to on_delete.

- load_value() that returns object by value, similar to query_value()

  That would be both the database class function as well as the query
  result iterator function. The latter would be especially useful with
  views.

  Somewhat related: it could be that for views it is better not to
  dynamically allocate the instance when we do something like i->count.

- Mass UPDATE

  This could be very useful in data migration code. In fact, need to
  add an example in the manual when this is supported.

? Duplicate columns

  It can sometimes be useful to map multiple data members to the same
  column. For example, to map a shared_ptr to another object via id.
  Or to update object id.

  To implement this, we will have to be able to ignore duplicates in
  the INSERT statement and in generated schema. So there will have to
  be quite a bit of work throughout (bind, init, column counts, etc).

  Also not clear if it is a good idea to always ignore duplicates
  (could actually be a mistake) or only if the column name is
  specified explicitly (still can be a mistake). Or mark it as a
  duplicate with a special pragma.

  Is this a special case of something like "expression columns"? It
  seems the only place where such a duplicate column will actually
  be mentioned is the SELECT statement.