blob: b3af56630243ba7f352f809d25e5fe5d7b13621b (
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
! Still need to update database/factory documentation [doc]
This is related to the database return-by-value changes.
! Mac OS excetion/error handling not working (-D in options file)
! Use to_string()/sto*() instead of stringstream [c++11]
Those use the "C" locale instead of the default locale.
See email from <andrey.psv@gmail.com>/14-Jul-2015.
- Locale issue in Qt Date/Time parsing in SQLite
See email from <adanesh@noornet.net>/08-Sep-2015.
! Documentation needed [doc]
- points_to pragma
- inverse and composite members support/points_to
- after/before pragmas (must follow virtual)
- (!) database placeholder in modifiers
- foreign key in primary key technique
- nested container emulation technique
- SQL Server only allows CREATE DATABASE in auto-commit mode [mssql]
See email from <andrey.psv@gmail.com>/23-May-2015.
- Macro expansion in code fragment pragmas
Currently we expand macros in all pragmas. This is probably the wrong
semantics for "code fragment" macros like access/get/set. I wonder if
there is a way to disable macros expansion for certain parts of the
pragma (remember, our pragma can have multiple specifiers).
- Document character encoding used to return text for each database [doc]
- Add noexcept to move construction and assignment [c++11]
Without noexcept some code (e.g., swap()) may have to resorts to copy.
! Command Line Tools required for ODB binary package on Mac OS [macosx]
It seems without them there are no standard headers in /usr/include. Need
to test and document.
! Private GCC in Mac OS ODB binary crashes on Yosemite [macosx]
The symptom is:
odb: error: unable to extract profile paths
See email from <axel50397@gmail.com>/23-Oct-2014.
- Position pragmas in macros don't work
#include <odb/core.hxx>
#define ODB_COUNT(obj, key) \
PRAGMA_DB(view object(obj)) \
struct obj##_count \
{ \
PRAGMA_DB(column("count(" + obj::key + ")")) \
int count; \
};
/*
#define ODB_COUNT(obj, key) \
struct obj##_count \
{ \
int count; \
}; \
PRAGMA_DB(view(obj##_count) object(obj)) \
PRAGMA_DB(member(obj##_count::count) \
column("count(" + obj::key + ")")) \
*/
#pragma db object
struct test
{
#pragma db id
int id;
};
ODB_COUNT(test, id)
The reason it doesn't work is because we use the macro expansion
point as the location of the pragmas inside the macro. Fixing this
properly won't be simple. Perhaps simply document as a limitation
where we describe PRAGMA_DB.
|