summaryrefslogtreecommitdiff
path: root/odb/relational/sqlite
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-04-26 17:18:12 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-04-26 17:18:12 +0200
commit6692558ba588c76f5e61eb7ed9a1040d36cb9ed7 (patch)
tree6f7a29e911713829583bc573e938591383f8486c /odb/relational/sqlite
parent84cb9f184bc24ef7151ab9931b46311b03219b14 (diff)
Add support for extra database info in primary key
Use that to handle Oracle sequence name and SQLite lax auto ids.
Diffstat (limited to 'odb/relational/sqlite')
-rw-r--r--odb/relational/sqlite/model.cxx7
-rw-r--r--odb/relational/sqlite/schema.cxx4
2 files changed, 9 insertions, 2 deletions
diff --git a/odb/relational/sqlite/model.cxx b/odb/relational/sqlite/model.cxx
index 63a5302..8f7e341 100644
--- a/odb/relational/sqlite/model.cxx
+++ b/odb/relational/sqlite/model.cxx
@@ -57,6 +57,13 @@ namespace relational
return ostr.str ();
}
+
+ virtual void
+ primary_key (sema_rel::primary_key& pk)
+ {
+ if (pk.auto_ () && options.sqlite_lax_auto_id ())
+ pk.extra ()["lax"] = "true";
+ }
};
entry<object_columns> object_columns_;
}
diff --git a/odb/relational/sqlite/schema.cxx b/odb/relational/sqlite/schema.cxx
index 4a2eef2..46ce762 100644
--- a/odb/relational/sqlite/schema.cxx
+++ b/odb/relational/sqlite/schema.cxx
@@ -117,9 +117,9 @@ namespace relational
}
virtual void
- auto_ (sema_rel::column&)
+ auto_ (sema_rel::primary_key& pk)
{
- if (options.sqlite_lax_auto_id ())
+ if (pk.extra ().count ("lax"))
os << " /*AUTOINCREMENT*/";
else
os << " AUTOINCREMENT";