aboutsummaryrefslogtreecommitdiff
path: root/sqlite/auto/test.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-10-26 16:41:51 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-10-26 16:41:51 +0200
commitc11a0e411d62db6f2ad4153579af254081a0e6f0 (patch)
treeac1a9e835fb87e13c959f356c5fdb650c1a3b95b /sqlite/auto/test.hxx
parent6368220dda22d34f9ed50896622e6112668d0aba (diff)
Implement support for mixed auto/manual id assignment in SQLite
Now one can do: #pragma db id auto odb::nullable<int64_t> id; And then set the id to NULL to get auto-assignment or to the actual value to use a manual id.
Diffstat (limited to 'sqlite/auto/test.hxx')
-rw-r--r--sqlite/auto/test.hxx33
1 files changed, 33 insertions, 0 deletions
diff --git a/sqlite/auto/test.hxx b/sqlite/auto/test.hxx
new file mode 100644
index 0000000..1ee8dbe
--- /dev/null
+++ b/sqlite/auto/test.hxx
@@ -0,0 +1,33 @@
+// file : sqlite/auto/test.hxx
+// copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef TEST_HXX
+#define TEST_HXX
+
+#include <odb/core.hxx>
+#include <odb/nullable.hxx>
+
+#include <string>
+
+#include <odb/core.hxx>
+
+#pragma db object
+struct object
+{
+ explicit
+ object (const std::string& str): str_ (str) {}
+ object (unsigned long id, const std::string& str): id_ (id), str_ (str) {}
+
+ #pragma db auto id
+ odb::nullable<unsigned long> id_;
+
+ std::string str_;
+
+private:
+ object () {}
+
+ friend class odb::access;
+};
+
+#endif // TEST_HXX