odb/2.5.0-b.15

[full]

ODB compiler

ODB is an object-relational mapping (ORM) system for C++. It provides
tools, APIs, and library support that allow you to persist C++ objects
to a relational database (RDBMS) without having to deal with tables,
columns, or SQL and without manually writing any of the mapping code.
For more information see:

http://www.codesynthesis.com/products/odb/

This package contains the ODB compiler and the ODB system documentation.

See the NEWS file for the user-visible changes from the previous release.

See... More
version 2.5.0-b.15
license GPLv3
repository pkg:cppget.org/beta
location https://pkg.cppget.org/1/beta
download odb-2.5.0-b.15.tar.gz
sha256 e5e4477d828a3336cccee42b0d661d99279cae60aff712583dcfe45df27b869c
project odb
url www.codesynthesis.com/products/odb/
doc-url www.codesynthesis.com/products/odb/doc/manual.xhtml
src-url git.codesynthesis.com/cgit/odb/odb/

Depends (2)

libstudxml ^1.1.0-
libcutl ^1.11.0-

Requires (1)

c++11

Builds

toolchain public-0.11.0
config macos_10.14-gcc_9.1_homebrew-O3 / x86_64-apple-darwin18.6.0
timestamp 2019-09-20 02:34:56 UTC (07:51:08 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config macos_10.14-gcc_9.1_homebrew / x86_64-apple-darwin18.6.0
timestamp 2019-09-20 02:14:45 UTC (08:11:19 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config windows_10-gcc_8.3_mingw_w64 / x86_64-w64-mingw32
timestamp 2019-09-20 00:17:07 UTC (10:08:57 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config linux_debian_9-gcc_9.1-O3 / x86_64-linux-gnu
timestamp 2019-09-19 22:47:44 UTC (11:38:21 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config linux_debian_9-gcc_9.1 / x86_64-linux-gnu
timestamp 2019-09-19 22:23:25 UTC (12:02:39 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config windows_10-gcc_8.3_mingw_w64-O3 / x86_64-w64-mingw32
timestamp 2019-09-19 20:03:15 UTC (14:22:49 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config linux_debian_9-gcc_8.3 / x86_64-linux-gnu
timestamp 2019-09-19 19:02:15 UTC (15:23:49 hours ago)
result success | log | rebuild
toolchain public-0.11.0
config linux_debian_9-gcc_7.4 / x86_64-linux-gnu
timestamp 2019-09-19 19:01:10 UTC (15:24:55 hours ago)
result success | log | rebuild
config linux_debian_9-clang_6.0 / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_6.0_libc++ / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_7.0 / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_7.0_libc++ / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_8.0 / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_8.0-O3 / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_8.0_libc++ / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config linux_debian_9-clang_8.0_libc++-O3 / x86_64-linux-gnu
result excluded (requires GCC with plugin support enabled)
config macos_10.13-clang_10.0 / x86_64-apple-darwin17.5.0
result excluded (requires GCC with plugin support enabled)
config macos_10.14-clang_10.0 / x86_64-apple-darwin18.6.0
result excluded (requires GCC with plugin support enabled)
config macos_10.14-clang_10.0-O3 / x86_64-apple-darwin18.6.0
result excluded (requires GCC with plugin support enabled)
config freebsd_11-clang_6.0 / x86_64-freebsd11.2
result excluded (requires GCC with plugin support enabled)
config freebsd_12-clang_6.0 / x86_64-freebsd12.0
result excluded (requires GCC with plugin support enabled)
config freebsd_12-clang_6.0-O3 / x86_64-freebsd12.0
result excluded (requires GCC with plugin support enabled)
config windows_10-msvc_15.9 / x86_64-microsoft-win32-msvc14.1
result excluded (requires MinGW GCC)
config windows_10-msvc_16.0 / x86_64-microsoft-win32-msvc14.2
result excluded (requires MinGW GCC)
config windows_10-msvc_16.1 / x86_64-microsoft-win32-msvc14.2
result excluded (requires MinGW GCC)
config windows_10-msvc_16.1-O2 / x86_64-microsoft-win32-msvc14.2
result excluded (requires MinGW GCC)

Changes

Version 2.5.0

 * Support for mapping C++ types as other C++ types. For example:

   #pragma db map type(bool) as(std::string) \
     to((?) ? "true" : "false") from((?) == "true")

   @@ Ref to the manual.

 * Support for nested object ids. Now the 'id' pragma specifier can optionally
   include the data member path to the id inside a composite value. For
   example:

   #pragma db id(first)
   std::pair<int, int> p;

   Note that one somewhat counter-intuitive aspect of this new feature is
   that the whole member marked with id ('p' in the above example) and not
   just the actual id member ('p.first' in the above example) is treated as
   readonly.

   Such nested id also cannot be automatically assigned ('auto' specifier).

 * Support for defining views as instantiations of C++ class templates,
   similar to objects and composite value types.

 * Allow the use of object pointers as map keys. Also remove the restriction
   for map keys and set values to be NOT NULL.

 * New 'points_to' pragma allows the establishment of relationship without
   using object pointers.

 * The 'inverse' pragma now supports nested data members.

 * Helper header (<odb/nested-container.hxx>) for nested container emulation.
   It is still fairly experimental and only supports vector<vector<T>>.

 * Database classes are now move-constructible. This means they can be
   returned by value from a function in C++11.

 * Support for SQLite incremental BLOB/TEXT I/O (the sqlite3_blob_open()
   functionality). For details, refer to Section 18.1.3, "Incremental
   BLOB/TEXT I/O" in the ODB manual.

 * In PostgreSQL a SELECT statement in a view that is prefixed with the
   /*CALL*/ comment is recognized and handled as a stored procedure call.

 * Due to warnings issued by some compiler, std::auto_ptr is no longer mapped
   as an object pointer or wrapper in the C++11 mode. Use std::unique_ptr
   instead.

Version 2.4.0

 * Support for object loading views. Object loading views allow loading of
   one or more complete objects instead of, or in addition to, a subset of
   data members and with a single SELECT statement execution. For details,
   refer to Section 10.2, "Object Loading Views" in the ODB manual.

 * Support for bulk operations in Oracle and SQL Server. Bulk operations
   persist, update, or erase a range of objects using a single database
   statement execution which often translates to a significantly better
   performance. For details, refer to Section 15.3, "Bulk Database
   Operations" in the ODB manual.

 * New database class functions, query_one() and query_value(), provide
   convenient shortcuts for situations where the query is known to return
   at most one element (query_one) or exactly one element (query_value).
   Corresponding execute_one() and execute_value() functions for prepared
   queries are also provided. For details, refer to Sections 4.3, "Executing
   a Query" and 4.5, "Prepared Queries" in the ODB manual.

 * Support for defining persistent objects as instantiations of C++ class
   templates, similar to composite value types. For details, refer to
   Section 15.2, "Persistent Class Template Instantiations" in the ODB
   manual.

 * Support for object and table join types in views. Supported join type
   are left, right, full, inner, and cross with left being the default.
   For details, refer to Sections 10.1, "Object Views" and 10.3, "Table
   Views" in the ODB manual.

 * Support for result modifiers in view query conditions. Currently
   supported result modifiers are 'distinct' (which is translated to
   SELECT DISTINCT) and 'for_update' (which is translated to FOR UPDATE or
   equivalent for database systems that support it). For details, refer to
   Section 10.5, "View Query Conditions" in the ODB manual.

 * Support for persisting std::deque containers.

 * New pragma, on_delete, allows the specification of an on-delete semantics
   (translated to the ON DELETE SQL clause) for an object pointer. For more
   information, refer to Section 14.4.15, "on_delete" in the ODB manual.

 * Besides odb::stderr_tracer there is now odb::stderr_full_tracer that
   traces statement preparations and deallocations in addition to their
   executions. This new implementation can be useful when you want to see
   the text of a statement that contains a syntax error and therefore
   will not actually be executed. For more information, refer to Section
   3.13, "Tracing SQL Statement Execution" in the ODB manual.

 * ODB can now compile headers that use #pragma once instead of include
   guards.

 * User-supplied prologues and epilogues are now generated outside the
   pre.hxx/post.hxx includes. This allows the use of precompiled headers
   with the generated files.

 * Support for calling MySQL stored procedures. For details and limitations
   refer to Section 17.7, "MySQL Stored Procedures" in the ODB manual.

 * Support for calling SQL Server stored procedures. For details and
   limitations refer to Section 21.7,... More