diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-04-26 17:18:12 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-04-26 17:18:12 +0200 |
commit | 6692558ba588c76f5e61eb7ed9a1040d36cb9ed7 (patch) | |
tree | 6f7a29e911713829583bc573e938591383f8486c /odb/relational/sqlite | |
parent | 84cb9f184bc24ef7151ab9931b46311b03219b14 (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.cxx | 7 | ||||
-rw-r--r-- | odb/relational/sqlite/schema.cxx | 4 |
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"; |