From boris at codesynthesis.com Tue Jan 31 02:01:03 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Jan 31 01:55:40 2012 Subject: [odb-announcements] ODB 1.8.0 released Message-ID: Hi, We have released ODB 1.8.0. The NEWS file entries for this release are as follows: * Support for the Microsoft SQL Server database. The provided connection factories include 'new' (a new connection is created every time one is requested) and 'pool' (a pool of connections is maintained). The Boost and Qt profiles have been updated to support this database. For more information, refer to Chapter 17, "Microsoft SQL Server Database" in the ODB manual. Note that with the release of SQL Server Native Client ODBC driver for Linux it is possible to access an SQL Server database from the GNU/Linux operating systems. The SQL Server ODB runtime has been tested and is fully supported on both Windows and GNU/Linux. However, we have found that the unixODBC 2.3.0 driver manager that is recommended in the Native Client documentation does not work well, especially in multithreaded applications. The recently released unixODBC 2.3.1 addressed this issue and we recommend that you use this version with ODB. For more information, refer to this blog post: http://www.codesynthesis.com/~boris/blog/2011/12/02/microsoft-sql-server-odbc-driver-linux/ Note also that similar to Oracle, the SQL Server runtime (libodb-mssql) is licensed under a different license compared to the open source database runtimes. For more information, refer to the ODB License page: http://www.codesynthesis.com/products/odb/license.xhtml * Support for defining composite value types as C++ class template instantiations. For more information, refer to Section 7.2, "Composite Value Types" in the ODB manual as well as the 'composite' example in the odb-examples package. * Support for database schemas ("database namespaces"). A schema can be specified for a persistent class, for a C++ namespace (the schema then applies to all the persistent classes within this namespace), and for a file with the --schema ODB compiler option. For more information, refer to Section 12.1.8, "schema" in the ODB manual. * The --default-schema option has been renamed to --schema-name. * The default Oracle mapping for std::string has changed from VARCHAR2(4000) to VARCHAR2(512). Source code and pre-compiled binary packages for this release are available from the ODB download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: 437f44fa489833a97ea18bd112423432e43667f9 libodb-1.8.0.tar.bz2 4916528842277db7cab5efb59058318bb7b48d17 libodb-1.8.0.tar.gz 7749799abe777cbf5471ed993d2b2b0176891e1b libodb-1.8.0.zip 67f2e6f99b3a8b5dc3500eefea4c157075d55f0e libodb-boost-1.8.0.tar.bz2 ad486b48f4fc0b6ce2116b8c9c42c76506d93e0c libodb-boost-1.8.0.tar.gz 71a1d9008c733d55d00c12df58226376b02446a9 libodb-boost-1.8.0.zip e5356c74c25e3f6f4cccd560d009f5d1a47295bc libodb-mssql-1.8.0.tar.bz2 b36661524f5e93ee3b0de5af00551869ced8c24a libodb-mssql-1.8.0.tar.gz 089696728a215eb9e8bee8ac3bb79d7aa1ec330c libodb-mssql-1.8.0.zip de720b1aff148c01fa024e623001309d0aa206fe libodb-mysql-1.8.0.tar.bz2 515e4ebb1de946e0bfe1b6d58f6fe7a627748a25 libodb-mysql-1.8.0.tar.gz 182622c1d314195f7d148f21c652f827f43520ff libodb-mysql-1.8.0.zip 915287f0616a0f14a838962460ae6439021b0231 libodb-oracle-1.8.0.tar.bz2 f079ef86de8590d09898f7977194a7b7ca49ab25 libodb-oracle-1.8.0.tar.gz d49183c5fd55ca9c11f869e6b60cc735f0489f6d libodb-oracle-1.8.0.zip 122347fabc8e8b914036252e430b3365c60fccda libodb-pgsql-1.8.0.tar.bz2 7945a9c415c0d8dd9b2e50a19875b0367d4fd569 libodb-pgsql-1.8.0.tar.gz c539808ae776474cd08cca12f9607dd274f8aa30 libodb-pgsql-1.8.0.zip ff8cbe2a058b629cb7a01d86a936ecf9c27885af libodb-qt-1.8.0.tar.bz2 8357053f2b654216e0926ac8ea58523362e6d5ad libodb-qt-1.8.0.tar.gz b877f1bb690587fc06a93982fd480adfaf090bf9 libodb-qt-1.8.0.zip 0c34b326afd1c35ace6ca6473eb8c2ea543db718 libodb-sqlite-1.8.0.tar.bz2 ca4dab6e33250159f5930cfd3a912da4bef47277 libodb-sqlite-1.8.0.tar.gz 18c9f02b404ad95c3af9ddadf090819ccf738755 libodb-sqlite-1.8.0.zip 126a40d163af974325b344f47174c45efb1fa8a7 odb-1.8.0-i686-linux-gnu.tar.bz2 6fefa0f934102aabbb43c1662e6f219c0ba4836e odb-1.8.0-i686-macosx.tar.bz2 f81d6a3c389e8d5ddca723796af14a3375ca724c odb-1.8.0-i686-solaris.tar.bz2 e0adf0effc74984fc268f9303e4ab4cc9501a278 odb-1.8.0-i686-windows.zip f0b1ecf64a2636aa32ac668ac574427eb1e5b5a7 odb-1.8.0-sparc-solaris.tar.bz2 1bd9acd5e4cd75a2c213047187d5c4cd35cf3e49 odb-1.8.0.tar.bz2 6a01b0b65f6978b140b5b5c2d40ba6b4c96ef4a3 odb-1.8.0.tar.gz 91d67348edf54528b7e4ad0f1e702681b763ecdd odb-1.8.0-x86_64-linux-gnu.tar.bz2 a8f0f48626ab17ebd8a72cbd1d984d9885de63a5 odb-1.8.0.zip c966baa2de9b05a7531febd97249e861d7cdaece odb-examples-1.8.0.tar.bz2 2f054221120e28acbf28a2f59cc58e4c985e7a8d odb-examples-1.8.0.tar.gz d5bf778a427db08cff914c8ad7ba6ab929246130 odb-examples-1.8.0.zip 9c2649d4c69a65b03e1ab67786156a81881fad5b odb-tests-1.8.0.tar.bz2 ea87796d93089607f4bb37859f1ace2e40b61f82 odb-tests-1.8.0.tar.gz eb1ba11c8ab62428170e557a111e8749c2b03bb1 odb-tests-1.8.0.zip Enjoy, Boris From boris at codesynthesis.com Wed May 2 04:25:13 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed May 2 04:21:53 2012 Subject: [odb-announcements] ODB 2.0.0 released Message-ID: Hi, We have released ODB 2.0.0. Besides major new features, this release also includes a few backwards-incompatible changes (thus the major version increment; see below for details). The NEWS file entries for this release are as follows: * Support for C++11. The newly supported C++11 standard library components include: - std::unique_ptr as object pointer or value wrapper - odb::lazy_unique_ptr lazy counterpart - std::shared_ptr/weak_ptr as object pointer or value wrapper - odb::lazy_shared_ptr/lazy_weak_ptr lazy counterparts - support for array, forward_list, and unordered containers - connection factory can be passed to the database constructor as std::unique_ptr instead of std::auto_ptr The ODB compiler now recognizes the --std option. Valid values for this option are 'c++98' (default) and 'c++11'. In the runtime libraries the C++11 support is header-only which means that the same build of a runtime library can be used in both the C++98 and C++11 modes. On UNIX, the tests and examples can be compiled in the C++11 mode by passing the necessary options to turn the C++ compiler into this mode (e.g., -std=c++0x GCC option). On Windows, the tests and examples are always built in the C++11 mode with VC++ 10 and later. The new 'c++11' example in the odb-examples package shows ODB support for some of the C++11 features. * Support for polymorphism. Now a persistent class hierarchy can be declared polymorphic which makes it possible to persist, load, update, erase, and query objects of derived classes using their base class interfaces. For more information, refer to Chapter 8, "Inheritance" in the ODB manual as well as the 'inheritance/polymorphism' example in the odb-examples package. * Support for composite object ids. Now a composite value type can be used to declare an object id member. For more information, refer to Section 7.2.1, "Composite Object Ids" in the ODB manual as well as the 'composite' example in the odb-examples package. * Support for the NULL value semantics for composite values. For more information, refer to Section 7.3, "Pointers and NULL Value Semantics" in the ODB manual. * New schema format (--schema-format), 'separate', allows the generation of the schema creation code into a separate C++ source file (called '-schema.cxx' by default). This value is primarily useful if you want to place the schema creation functionality into a separate program or library. * New namespace-level pragmas: table, pointer. The table pragma specifies the table prefix that is added to table names for all the persistent classes inside a namespace. The pointer pragma specifies the default pointer type to be used for persistent classes and views inside a namespace. For more information, refer to Section 12.5.1, "pointer" and Section 12.5.2, "table" in the ODB manual. * Session support is now optional and is disabled by default. This is a backwards-incompatible change. Session support can be enabled on the per class basis or at the namespace level using the new session pragma. It can also be enabled by default for all the persistent classes using the --generate-session ODB compiler option. Thus, to get the old behavior where all the objects were session-enabled, simply add --generate-session to your ODB compiler command line. For more information, refer to Chapter 10, "Session" in the ODB manual. * The semantics of the database operations callbacks has changed with respect to object const-ness. This is a backwards-incompatible change. Now the callback function for the *_persist, *_update, and *_erase events is always called on the constant object reference while for the *_load events -- always on the unrestricted reference. For more information, refer to Section 12.1.7, "callback" in the ODB manual. * New function, transaction::reset(), allows the reuse of the same transaction instance to complete several database transactions. For more information, refer to Section 3.4, "Transactions" in the ODB manual. * New exception, odb::session_required, is thrown when ODB detects that correctly loading a bidirectional object relationship requires a session but one is not used. For more information, refer to Section 6.2, "Bidirectional Relationships" in the ODB manual. Additionally, this release includes a number of bug fixes and performance improvements in the database-specific runtimes. We have also added GCC 4.7 and Clang 3.0 to the list of compilers that we use for testing each release. Specifically, the ODB compiler has been updated to be compatible with with the GCC 4.7 series plugin API. For the complete list of compilers that were used to test this release, refer to the ODB Platforms and Compilers page: http://www.codesynthesis.com/products/odb/platforms.xhtml With this release we are also introducing a change to the ODB licensing terms. In addition to all the licensing options we currently have (open source and commercial proprietary licenses) we now offer a free proprietary license for small object models. This license allows you to use ODB in a proprietary (closed-source) application free of charge and without any of the GPL restrictions provided that the amount of the generated database support code does not exceed 10,000 lines. The ODB compiler now includes the --show-sloc command line option that can be used to show the amount of code being generated. For more information on the free proprietary license, including a Q&A section, refer to the ODB Licensing page: http://www.codesynthesis.com/products/odb/license.xhtml A more detailed discussion of these features and changes can be found in the following blog post: http://www.codesynthesis.com/~boris/blog/2012/05/02/odb-2-0-0-released/ Source code and pre-compiled binary packages for this release are available from the ODB download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: 4717e5294249f5bde1e77d9476dd6bc4370a0045 libodb-2.0.0.tar.bz2 45cc815f5dd62f07598d60df46365d6f04b5783a libodb-2.0.0.tar.gz 273ddc2e11880671200a0a70f62a4835a7d90827 libodb-2.0.0.zip c86f8fa7af2fa74906930ef5333fad62ecd2c728 libodb-boost-2.0.0.tar.bz2 cab3b75d9ed01c875587ad93d204b76b42f1baa8 libodb-boost-2.0.0.tar.gz 057c55221968cc5d7999bf91a0efb35d86cf91e9 libodb-boost-2.0.0.zip dd954b23014697216004e3e484949df78b2112d0 libodb-mssql-2.0.0.tar.bz2 47d99b8840c71f6ca757e620476438c96037b53c libodb-mssql-2.0.0.tar.gz 2c619caa50770fa41dc24433326419fbda7c8fe9 libodb-mssql-2.0.0.zip 7b3b7c2bfe3f28156d9c66165f370b401524504f libodb-mysql-2.0.0.tar.bz2 ee439e87b8012a334584e10bfc2597af4c37f218 libodb-mysql-2.0.0.tar.gz 9e54aa15ed3828298143fb4a2f0eaefaac1f9095 libodb-mysql-2.0.0.zip 127df380417db376ff631f6d9e591fa7278c4638 libodb-oracle-2.0.0.tar.bz2 27d538aa3b2eac3bd204a3a9f4948e559af8c8d8 libodb-oracle-2.0.0.tar.gz 6bdd121b694785cc5524b17dc35e73da78917a09 libodb-oracle-2.0.0.zip b24559ecd2bd6a90bc28a219c862c84c90e81add libodb-pgsql-2.0.0.tar.bz2 a765e5f4df9181725159e56f31f37b7749469334 libodb-pgsql-2.0.0.tar.gz d42721db3b39b94d700411d4bd2e8a3c96e3982d libodb-pgsql-2.0.0.zip 685312510e6c2f7afdda1d22503647681bd09489 libodb-qt-2.0.0.tar.bz2 1dc3b697e41f5aa628a7353ec7b03ae6ed13c716 libodb-qt-2.0.0.tar.gz 2babed81882d5384ac4179e5183a31a8d09eb1e7 libodb-qt-2.0.0.zip f76fb3082c66848cc975701c3543a5dab86e3fb4 libodb-sqlite-2.0.0.tar.bz2 89d06be0a237252a4b7823f6b06adf340c61325d libodb-sqlite-2.0.0.tar.gz 3689d4b76430588f1ca9a7efed5ee5ccc64f83a8 libodb-sqlite-2.0.0.zip 377c8c611ca26cacf786b7b90176e99f34779773 odb-2.0.0-i686-linux-gnu.tar.bz2 49fb83e4ba77d1017675a0ee3486590d43c79bd9 odb-2.0.0-i686-macosx.tar.bz2 a1132d7f2fa6e475330fcf69dc959f6f6a76b994 odb-2.0.0-i686-solaris.tar.bz2 34b7cff972077dbe130d5863cd948db74935c519 odb-2.0.0-i686-windows.zip 4930618dba6fcd3dec704d09870e56b8332f9343 odb-2.0.0-sparc-solaris.tar.bz2 52ff18392acc3df4298c1f307ce2def055c372bc odb-2.0.0.tar.bz2 f7580043b7999dbb1bd0634e5bdc118ba8edee25 odb-2.0.0.tar.gz 68e66b77eb65c5bc99e1d6f59c3637970e507f10 odb-2.0.0-x86_64-linux-gnu.tar.bz2 87852c635bf43c7f346cce4fdcdd4b6e336a7e52 odb-2.0.0.zip 462082a175ab9c0e114fdf33312ce79fba3441b1 odb-examples-2.0.0.tar.bz2 dbef881b493fbc5ec0a51225c39405e82c136750 odb-examples-2.0.0.tar.gz b4d7fb39cb1c62630cbc42ebea41c0484f21e881 odb-examples-2.0.0.zip e81dc9df679046b01caa7600cf1a8df4e62e16f1 odb-tests-2.0.0.tar.bz2 9474c1d8c787485eaa3a82755207d4e96d32a76a odb-tests-2.0.0.tar.gz e1e3c05a96f691ec5f8ba427d711bc24677239be odb-tests-2.0.0.zip Enjoy, Boris From boris at codesynthesis.com Mon May 7 04:49:53 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon May 7 04:46:48 2012 Subject: [odb-announcements] ODB compiler source 2.0.1 bugfix released Message-ID: Hi, A new bugfix release for the ODB compiler source package is now available. It fixes an issue with GCC 4.7 which can be built in either C or C++ mode. The original 2.0.0 source package was only working with GCC built in the C++ mode. This bugfix addresses this limitation. You only need to upgrade if (1) you are trying to build the ODB compiler from source code yourself (as opposed to using a binary package) and (2) you are using GCC 4.7 and experiencing problems running the ODB compiler. For more information on this issue, refer to the following mailing list thread: http://www.codesynthesis.com/pipermail/odb-users/2012-May/000531.html You can download the package from the ODB download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: 4f085cff02b43773d6c4aab9734f8dc99cf857f5 odb-2.0.1.tar.bz2 5e1d697040b8a0002be340b6af8c4646825a2ec6 odb-2.0.1.tar.gz 07004ad9b57d4a14e0ed2e87303a33d7db42d0dd odb-2.0.1.zip Boris From boris at codesynthesis.com Mon Jun 18 04:05:34 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Jun 18 04:01:15 2012 Subject: [odb-announcements] ODB runtimes 2.0.1 bugfix released Message-ID: Hi, New bugfix releases for the common ODB runtime library (libodb) and database-specific ODB runtime libraries (libodb-) are now available. The new common runtime release works around a VC++ compilation bug resulting in ambiguous name lookup in polymorphic-map.hxx:44 for some databases. The new database-specific runtime releases fix a compilation bug in polymorphic class hierarchies that are split over multiple source files. For more information on this issue, refer to the following mailing list thread: http://www.codesynthesis.com/pipermail/odb-users/2012-May/000576.html In addition the MySQL runtime release fixes a build problem on Fedora 15 and later. For more information on this issue, refer to the following mailing list thread: http://www.codesynthesis.com/pipermail/odb-users/2012-June/000599.html Note also that all the fixes are for compile-time/build related issues which means that you don't need to upgrade if everything compiles fine for you. You can download the new packages from the ODB download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: fac1da357db6aa3ef605358e15fe0a0735b80f72 libodb-2.0.1.tar.bz2 94ca678c17d84b1f31ce7ac3c8c0246d94b81a61 libodb-2.0.1.tar.gz e7a7f02a134ef92388532f8c7b1932e507035db7 libodb-2.0.1.zip 1e32488b50e5dc3aa9d807e0f608e67896aadaf9 libodb-mssql-2.0.1.tar.bz2 59ceb66378bc2f6c590832af8391ff0929d60963 libodb-mssql-2.0.1.tar.gz bf17333233349f15b3ce1be3dc347b1fe2cb8782 libodb-mssql-2.0.1.zip e128cd1ff5880e5746ea3ca2c61189e28cc32670 libodb-mysql-2.0.1.tar.bz2 4a9410f49d66a68a8ab02f8abc401979bad2ef41 libodb-mysql-2.0.1.tar.gz f7cb6aafb4c1efb0f57d6bbefbf653a8381f9661 libodb-mysql-2.0.1.zip 97c43c025a89b18a7014e704bd896c10db008ea4 libodb-oracle-2.0.1.tar.bz2 093f7a3e5b2644c1eaeddc01509f83f51f0b6923 libodb-oracle-2.0.1.tar.gz bb671b4ab51d3ffc148ebe7c1740f20a821b06e6 libodb-oracle-2.0.1.zip 0a69cc90394c814a8c1773cde952f079b5bf87af libodb-pgsql-2.0.1.tar.bz2 c17f8c68e94360b6b438ac7db7ec9945570224b6 libodb-pgsql-2.0.1.tar.gz 245baa458d38e3adf4c5ad7df0f26544c61eb231 libodb-pgsql-2.0.1.zip 4fec286798a8d627602a56fedd404ba1ae8dcb73 libodb-sqlite-2.0.1.tar.bz2 f64d03585139d823bb7bc183dfd8b5865b5b641e libodb-sqlite-2.0.1.tar.gz a2d8661127adfc8da54cbf96af90515b4c401c87 libodb-sqlite-2.0.1.zip Boris From boris at codesynthesis.com Wed Jul 18 04:40:47 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Jul 18 04:31:18 2012 Subject: [odb-announcements] ODB 2.1.0.a1 available Message-ID: Hi, The first alpha version for the upcoming ODB 2.1.0 is now available. The NEWS file entries so far are: * Support for mapping additional database types, such as geospatial types, user-defined types, and collections. This mechanism allows you to map any database type to one of the types for which ODB provides built-in support (normally string or binary). The text or binary representation of the data can then be extracted into a C++ data type of your choice. For more information, refer to Section 12.6, "Database Type Mapping Pragmas" in the ODB manual. * The session constructor now accepts an options bool argument (true by default) which indicates whether to make this session current for this thread. For more information, refer to Chapter 10, "Session" in the ODB manual. * Support for mapping boost::posix_time::ptime and QDateTime to the DATE Oracle type. For more information, refer to Sections 19.4.4 (Boost) and 20.4.4 (Qt) in the ODB manual. It also includes a number of fixes for handling circularly-dependant persistent classes defined in separate headers. This pre-release is available from: http://www.codesynthesis.com/download/odb/pre-release/ The SHA1 sums for all the files in this pre-release are provided at the end of the email. Testing and feedback are much appreciated. Enjoys, Boris d6d6ca36b72508b8b26dd40c0767d4a48d583148 libodb-2.1.0.a1.tar.bz2 5d79caaeae7246301b2b89f4f56cefd0b1e6ee81 libodb-2.1.0.a1.tar.gz 6a632803f7c0f262bcd5a67f88726ef74a202783 libodb-2.1.0.a1.zip f5ad22a1281c39001249ec1f99fa5efb0ae7a5f6 libodb-boost-2.1.0.a1.tar.bz2 582897c24fc9a83b85c39f2add59f78a565053bd libodb-boost-2.1.0.a1.tar.gz 714d031bdc07e62a6a034a801cd1acc58f0a25ec libodb-boost-2.1.0.a1.zip 40170204965efdec0297e5de73ba19efda494882 libodb-mssql-2.1.0.a1.tar.bz2 9d023475c3dfe4f37443ba0705282439c4a29b19 libodb-mssql-2.1.0.a1.tar.gz 43d57c11f78d42bbc9fe823d154b4ca5c449f8bc libodb-mssql-2.1.0.a1.zip 723aa6a7660963de37123b132249b085a61592f3 libodb-mysql-2.1.0.a1.tar.bz2 9a3fb77696895d3be5da01049affbd9c0c14621c libodb-mysql-2.1.0.a1.tar.gz de803e3dfd2ec9b389ddb3c92ff09a12eef3b7b0 libodb-mysql-2.1.0.a1.zip 58f7c4424a215c6ef483ba5d09aa76573bb778c3 libodb-oracle-2.1.0.a1.tar.bz2 d67880c2f6d29d3426e8a7bd8897c0ef6945f46b libodb-oracle-2.1.0.a1.tar.gz 8208e35b3535f7ef6f3bca95e1a2d969e131e49e libodb-oracle-2.1.0.a1.zip 407b6160a909bee51abbe4bc1cfb5bc0c1253fe3 libodb-pgsql-2.1.0.a1.tar.bz2 8d834027b4c30ffee476f845ffa2bd2bd6883323 libodb-pgsql-2.1.0.a1.tar.gz e8dd2da478cacaba56d8a3d05abb00e7c15e5998 libodb-pgsql-2.1.0.a1.zip 9374cd75c270990a89ddc3d53e58a4d3df642881 libodb-qt-2.1.0.a1.tar.bz2 07bddce83ecfb23648929f6f67c74911c5041647 libodb-qt-2.1.0.a1.tar.gz e1f9b0ad3e7b4550076ef7bad3e05f2b11a477e8 libodb-qt-2.1.0.a1.zip f578d990cbdc6160c132e5bf588170da5f70f145 libodb-sqlite-2.1.0.a1.tar.bz2 1470a70a776f80e255308b87473cd6bd44a3576d libodb-sqlite-2.1.0.a1.tar.gz 3504a225df8e27a5a9f140980fbe8905f6b262cd libodb-sqlite-2.1.0.a1.zip 5bd628994c804cece09342c093f05f5258e3971b odb-2.1.0.a1-i686-linux-gnu.tar.bz2 86c8d4020353bfca5056729e4535fc8814de1604 odb-2.1.0.a1-i686-solaris.tar.bz2 32f63a3ab04f219fd909371ec98e01c4f052f2d6 odb-2.1.0.a1-i686-windows.zip e32b27b63593182a81bea02fa6eac2c784b8d291 odb-2.1.0.a1.tar.bz2 8c840b1fe3a7c2097cef5591014c99bba08dc48a odb-2.1.0.a1.tar.gz b4bb35a71f8239628ecb7af919e13704b17b1848 odb-2.1.0.a1-x86_64-linux-gnu.tar.bz2 c1ad7fa97ea095f02e23387af4c3f0cf8c81c084 odb-2.1.0.a1.zip 9b21a7a49d7d695fb093d88c806f2eab1ae53a6d odb-examples-2.1.0.a1.tar.bz2 f0ab064fe4979f0aeb6b2def4017b0fa93dfe552 odb-examples-2.1.0.a1.tar.gz d2ec3f183765d19fa896046c5edf788d103dea0c odb-examples-2.1.0.a1.zip 5256996ae4a91f44dc995beb330d391968d2ed10 odb-tests-2.1.0.a1.tar.bz2 e1ccffa7906ec9ec574007aaa3485588947a16ee odb-tests-2.1.0.a1.tar.gz 768736f72ad541f10e13cf4f67f836db5ab019db odb-tests-2.1.0.a1.zip From boris at codesynthesis.com Fri Jul 27 10:14:03 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Fri Jul 27 10:02:58 2012 Subject: [odb-announcements] ODB 2.1.0.a2 available Message-ID: Hi, The second alpha version for the upcoming ODB 2.1.0 is now available. The NEWS file entries so far are: * Support for defining database indexes. Both simple and composite indexes can be defined with support for database-specific index types, methods, and options. For more information, refer to Section 12.6, "Index Definition Pragmas" as well as Sections [13-17].16, " Index Definition" in the ODB manual. * Support for mapping additional database types, such as geospatial types, user-defined types, and collections. This mechanism allows you to map any database type to one of the types for which ODB provides built-in support (normally string or binary). The text or binary representation of the data can then be extracted into a C++ data type of your choice. For more information, refer to Section 12.7, "Database Type Mapping Pragmas" in the ODB manual. * The session constructor now accepts an options bool argument (true by default) which indicates whether to make this session current for this thread. For more information, refer to Chapter 10, "Session" in the ODB manual. * Simplified Oracle automatically-assigned object id implementation that doesn't use triggers. * Support for mapping boost::posix_time::ptime and QDateTime to the DATE Oracle type. For more information, refer to Sections 19.4.4 (Boost) and 20.4.4 (Qt) in the ODB manual. This pre-release is available from: http://www.codesynthesis.com/download/odb/pre-release/ The SHA1 sums for all the files in this pre-release are provided at the end of the email. Note that if you are planning to build the ODB compiler from source (as opposed to using one of the pre-compiled binaries), then you will also need to use a pre-release of libcutl available from: http://www.codesynthesis.com/download/libcutl/pre-release/ Testing and feedback are much appreciated. Enjoys, Boris b795af6e7791f91b60f3ad180783309235570f3f libodb-2.1.0.a2.tar.bz2 127d728ea1c039d18c9f1ef3213128ab82e49508 libodb-2.1.0.a2.tar.gz 5340ce1c6e08ec3379f6bf1ee1c70ad08754afd4 libodb-2.1.0.a2.zip 936cb1724ab5bceba1286e46cee3539951676d7b libodb-boost-2.1.0.a2.tar.bz2 a27d86a1cb6a37c5305ac17bf93166227cab8d83 libodb-boost-2.1.0.a2.tar.gz 90445f6eb5b1e976fbaa96cbd6c6f2c2f61ff86d libodb-boost-2.1.0.a2.zip 201d800d4824cc51a8461867767d06fda12a9b75 libodb-mssql-2.1.0.a2.tar.bz2 7383fcee246fffd68e1984dbba00a722f1913cf7 libodb-mssql-2.1.0.a2.tar.gz 79f5994ca24125a542a6026e44fc37dde63e1025 libodb-mssql-2.1.0.a2.zip e3d9133b9e376e7ca098bd358f6c4d0930e19559 libodb-mysql-2.1.0.a2.tar.bz2 78a6137b74cf6b9853e4b7a69cc93e0cdcaaf293 libodb-mysql-2.1.0.a2.tar.gz 2b5ad50deecdfc43930a6074030344b77511df09 libodb-mysql-2.1.0.a2.zip 3d50515484eb1d9d5dadb6fc37e582b8c4676aed libodb-oracle-2.1.0.a2.tar.bz2 14c32fa53bd86fd52bd486b1ff9967e69ab41f75 libodb-oracle-2.1.0.a2.tar.gz 56f97001721efc8550d5d81f1f641145f2d0f134 libodb-oracle-2.1.0.a2.zip e3aa5804fa081e089a15e781c6c3512f38fd6d64 libodb-pgsql-2.1.0.a2.tar.bz2 6ad7c46d727f51faa98e46d29112a588a8dda76e libodb-pgsql-2.1.0.a2.tar.gz 3d1b00a81987f1da8960aca00f6077b252f90cba libodb-pgsql-2.1.0.a2.zip ce1ccf225cf2cd674c82bf468bb49c16c66eec9a libodb-qt-2.1.0.a2.tar.bz2 751dd6d77caf48fc620234c7bc0ce4ec0987bb9c libodb-qt-2.1.0.a2.tar.gz 58b8ad2e6c66754abf00b23d941ed18b3bfac859 libodb-qt-2.1.0.a2.zip 5b53264d8098862b0ccbd9b726edb912a23a37bb libodb-sqlite-2.1.0.a2.tar.bz2 9a405e0986722c53876eba6a1fdb85b229d2b182 libodb-sqlite-2.1.0.a2.tar.gz 7973a866c64b358c5e5b47804629aa92149148d8 libodb-sqlite-2.1.0.a2.zip 6742443f50cdde6d24731aa7a59e234e4e431207 odb-2.1.0.a2-x86_64-linux-gnu.tar.bz2 59759c2d161e2dde1548a27ff00d33742bd0aab6 odb-2.1.0.a2-i686-linux-gnu.tar.bz2 fdbabdf2f84f6b6f6a15730dbc2d60825887d516 odb-2.1.0.a2-i686-windows.zip 758ad5ba9588d695682db8f6cc3dc14c4ddd1c61 odb-2.1.0.a2-sparc-solaris.tar.bz2 b4b921b2b867ef8635e18edc99887e81dce66e5e odb-2.1.0.a2.tar.bz2 75c3cfc22c429499703b1b1df51161fb72f16fee odb-2.1.0.a2.tar.gz 93b1a5ce03a17afbf6315c5ccdd7f8b867d34cf8 odb-2.1.0.a2.zip 9865fe8f57d7c8cf76e1f882cfbf5b6b84343522 odb-examples-2.1.0.a2.tar.bz2 cef87e36c03971008209738f8eedaaaba26a1762 odb-examples-2.1.0.a2.tar.gz 0fdcb31324177fb6e4ac782a6f813babe6a178fe odb-examples-2.1.0.a2.zip 1a62cc5d3331de01247c542619d87a70e4498aac odb-tests-2.1.0.a2.tar.bz2 1dc8deefd72e72b3d22b9355e01c4903ad0175d8 odb-tests-2.1.0.a2.tar.gz 98f55d878e8e3fbef03644162df045c1ed2fdccc odb-tests-2.1.0.a2.zip From boris at codesynthesis.com Tue Sep 18 05:39:11 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Sep 18 05:19:05 2012 Subject: [odb-announcements] ODB 2.1.0 released Message-ID: Hi, We have released ODB 2.1.0. The NEWS file entries for this release are as follows: * The ODB compiler is now capable of automatically discovering accessor and modifier functions for inaccessible data members in persistent classes, composite value types, and views. It will then use these accessors and modifiers in the generated code instead of trying to access such data members directly. The names of these functions are derived from the data member names and, by default, the ODB compiler will look for names in the form: get_foo/set_foo, getFoo/setFoo, getfoo/setfoo, and just foo. You can also add custom name derivations with the --accessor-regex and --modifier-regex ODB compiler options. For more information, refer to Section 3.2, "Declaring Persistent Objects and Values" in the ODB manual. * New pragmas, get, set, and access, allow the specification of custom accessor and modifier expressions for data members in persistent classes, composite value types, and views. For more information, refer to Section 12.4.5, "get/set/access" in the ODB manual as well as the 'access' example in the odb-examples package. * New pragma, virtual, allows the declaration of virtual data members. A virtual data member is an imaginary data member that is only used for the purpose of database persistence. This mechanism can be useful to aggregate or dis-aggregate real data members, implement the pimpl idiom, and to handle third-party types for which names of real data members may not be known. For more information, refer to Section 12.4.13, "virtual" in the ODB manual as well as the 'access' and 'pimpl' examples in the odb-examples package. * Support for defining database indexes. Both simple and composite indexes can be defined with support for database-specific index types, methods, and options. For more information, refer to Section 12.6, "Index Definition Pragmas" as well as Sections [13-17].16, " Index Definition" in the ODB manual. * Support for mapping extended database types, such as geospatial types, user-defined types, and collections. This mechanism allows you to map any database type to one of the types for which ODB provides built-in support (normally string or binary). The text or binary representation of the data can then be extracted into a C++ data type of your choice. For more information, refer to Section 12.7, "Database Type Mapping Pragmas" in the ODB manual. * The Boost profile now provides persistence support for the Boost Multi- Index container (boost::multi_index_container). For more information, refer to Section 19.3, "Multi-Index Container Library" in the ODB manual. * The Boost profile now provides persistence support for the Boost uuid type (boost::uuids::uuid). For more information, refer to Section 19.6, "Uuid Library" in the ODB manual as well as the 'boost' example in the odb- examples package. * The Qt profile now provides persistence support for the QUuid type. For more information, refer to Section 20.1, "Basic Types" in the ODB manual as well as the 'qt' example in the odb-examples package. * SQLite improvements: Persistence support for std::wstring on Windows (Section 14.1, "SQLite Type Mapping"). Ability to pass the database name as std::wstring on Windows (Section 14.2, "SQLite Database Class"). Ability to specify the virtual filesystem (vfs) module in the database constructors (Section 14.2, "SQLite Database Class"). * Support for mapping C++11 std::array and std::array types to BLOB/BINARY database types. For more information, refer to Sections [13-17].1, " Type Mapping" in the ODB manual. * Support for mapping the char[16] array to PostgreSQL UUID and SQL Server UNIQUEIDENTIFIER types. For more information, refer to Sections 15.1, "PostgreSQL Type Mapping" and 17.1, "SQL Server Type Mapping" in the ODB manual. * New option, --output-name, specifies the alternative base name used to construct the names of the generated files. Refer to the ODB compiler command line interface documentation (man pages) for details. * New option, --generate-schema-only, instructs the ODB compiler to generate the database schema only. Refer to the ODB compiler command line interface documentation (man pages) for details. * New option, --at-once, triggers the generation of code for all the input files as well as for all the files that they include at once. Refer to the ODB compiler command line interface documentation (man pages) for details. * New options, --sql-interlude and --sql-interlude-file, allow the insertion of custom SQL between the DROP and CREATE statements in the generated database schema file. * New options, --omit-drop and --omit-create, trigger the omission of DROP and CREATE statements, respectively, from the generated database schema. * New ODB manual Section, 6.3 "Circular Relationships", explains how to handle persistent classes with circular dependencies that are defined in separate headers. * The id() pragma that was used to declare a persistent class without an object id has been renamed to no_id. * New pragma, definition, allows the specification of an alternative code generation point for persistent classes, views, and composite value types. This mechanism is primarily useful for converting third-party types to ODB composite value types. For more information, refer to Section 12.3.7, "Definition" in the ODB manual. * The session constructor now accepts an optional bool argument (true by default) which indicates whether to make this session current for this thread. For more information, refer to Chapter 10, "Session" in the ODB manual. * Simplified Oracle automatically-assigned object id implementation that does not rely on triggers. * Support for mapping boost::posix_time::ptime and QDateTime to the DATE Oracle type. For more information, refer to Sections 19.4.4 (Boost) and 20.4.4 (Qt) in the ODB manual. * Default SQLite mapping for float and double now allows NULL since SQLite treats NaN FLOAT values as NULL. For more information, refer to Section 14.1, "SQLite Type Mapping" in the ODB manual. We have also added Visual Studio 2012 and Clang 3.1 to the list of compilers that we use for testing each release. Specifically, all the runtime libraries, examples, and tests now come with project/solution files for Visual Studio 2012 in addition to 2010 and 2008. For the complete list of compilers that were used to test this release, refer to the ODB Platforms and Compilers page: http://www.codesynthesis.com/products/odb/platforms.xhtml A more detailed discussion of the major new features can be found in the following blog post: http://www.codesynthesis.com/~boris/blog/2012/09/18/odb-2-1-0-released/ We would also like to thank everyone who reported bugs, suggested fixes or new features, as well as tested early versions of this release. Source code and pre-compiled binary packages for this release are available from the ODB Download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: 87d58649f5c0f405e8453e02d270da2f87a4ccbb libodb-2.1.0.tar.bz2 338f800db1d7d1b4cd78851a6421dcbc9b3d0996 libodb-2.1.0.tar.gz cc510d90c7333c3ee779ed21eff6bc8101fb4b9b libodb-2.1.0.zip 5c3eb40b834b385e7ac4b3c20f6cd82651abb66d libodb-boost-2.1.0.tar.bz2 bf0aaf000bf4ae5f29109fb213bec01b626c5331 libodb-boost-2.1.0.tar.gz 20cd82d6d7605c569f023e07a91ad666a9dac5d4 libodb-boost-2.1.0.zip 1bf4e89a16693948b31af2f250ab1fbd5b3615c8 libodb-mssql-2.1.0.tar.bz2 8f14c156d02db9669c15e6a21beb239c83586113 libodb-mssql-2.1.0.tar.gz 7beb4b7462a5a884095ca944c101265d2068f2d3 libodb-mssql-2.1.0.zip e58eca3465a6c9b278113bc3faa26455a94d040c libodb-mysql-2.1.0.tar.bz2 529a8a3141de27494107d0c9a210dd0698cbfb55 libodb-mysql-2.1.0.tar.gz 580cef317c20f199ae3098faa57c4d4c80564381 libodb-mysql-2.1.0.zip f2c92818e89fa06f90d20c48e63c64775f75375c libodb-oracle-2.1.0.tar.bz2 96022e1e8b7fbac4a72b8302019710b9607f760c libodb-oracle-2.1.0.tar.gz 18198da3a867e2208affcc38370668cc6747e93c libodb-oracle-2.1.0.zip 464a970ee1cfef88e7a53ab6f4cd0ae95320cce9 libodb-pgsql-2.1.0.tar.bz2 26c4ac2db75951b93f5a6b6c7aa917e3f7f4bef6 libodb-pgsql-2.1.0.tar.gz 8fd686ab87b52b144e6976a47c1db3745d483d62 libodb-pgsql-2.1.0.zip ba04acd724ad7253ce7b6d534ee3354c3fcd0951 libodb-qt-2.1.0.tar.bz2 a89dbfc22b85f5efb2788b8c08c7280159caf032 libodb-qt-2.1.0.tar.gz 0dd1c1cb7672b6b1eec57f1e670d67dcc6ac1cbf libodb-qt-2.1.0.zip 58085bdb5d890cc952594cc288d28db9c93d3349 libodb-sqlite-2.1.0.tar.bz2 f8c16947ec322d989d9526a0f250b132e1bfae64 libodb-sqlite-2.1.0.tar.gz 874e0bfdf740053e6e5bdc3cf134cb954dfdbd2c libodb-sqlite-2.1.0.zip 4556ab5a60a19170eb0f7376756a07829d87418b odb-2.1.0-i686-linux-gnu.tar.bz2 2bd23a560579b3ab5f9d66de223d8875f8356a2d odb-2.1.0-i686-macosx.tar.bz2 9e5be40268ee0650b1f8cb61f92dff06c851ede0 odb-2.1.0-i686-solaris.tar.bz2 15b550ab80b48598aadd84e2dd4f1b4960854c38 odb-2.1.0-i686-windows.zip 82021b5c393d50206d0ba73e9d3a78258dbeb2c9 odb-2.1.0-sparc-solaris.tar.bz2 5e435d952e5262b5de49df0392e375e0d4440515 odb-2.1.0.tar.bz2 cd4cb4d039e184a3d221bb75bd3c4c400fdf2cd5 odb-2.1.0.tar.gz f5f1c62b8eeaa03b0646d7bb1f43aeac3e6378bb odb-2.1.0-x86_64-linux-gnu.tar.bz2 d8daf4a2be8c055a39f139f0986fa151fe8b3342 odb-2.1.0.zip 0994d39cc7ab3607b5c6e88f7c16edf32e0d6336 odb-examples-2.1.0.tar.bz2 e097d5771f9cb9e636c1a293ca9e3f6f407d22eb odb-examples-2.1.0.tar.gz 8d0cf9419c445e92c5e5cc991dd314b4410d2c39 odb-examples-2.1.0.zip 3c5ecd517fc72764ae4ecfca28fba75c2a22454f odb-tests-2.1.0.tar.bz2 06ebaea3383264ceec9ff9ff05668cf80f461014 odb-tests-2.1.0.tar.gz 3cd8ca94d885d81ffb92dd631b9ba2d2cd50aa25 odb-tests-2.1.0.zip Enjoy, Boris From boris at codesynthesis.com Tue Oct 16 12:25:50 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Oct 16 11:58:26 2012 Subject: [odb-announcements] Custom C++ to Database Type Mapping in ODB Message-ID: Hi, I just published a comprehensive, step-by-step guide to adding persistence support for a custom value type. Specifically, it considers cases of simple (single-column) vs composite (multi-column) value types, our own vs third- party types, as well as, for simple value types, mapping to core vs extended database types: http://www.codesynthesis.com/~boris/blog/2012/10/16/custom-cxx-to-database-type-mapping-in-odb/ Boris From boris at codesynthesis.com Mon Oct 29 11:04:18 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Oct 29 10:32:54 2012 Subject: [odb-announcements] ODB 2.2.0.a1 available Message-ID: Hi, The first alpha version for the upcoming ODB 2.2.0 is now available. The NEWS file entries so far are: * Static multi-database support. It allows an application to simultaneously work with multiple database systems using their static interfaces (i.e., odb::::database instead of odb::database). * Support for prepared queries. Prepared queries are a thin wrapper around the underlying database system's prepared statements functionality. They provide a way to perform potentially expensive query preparations tasks only once and then executing the query multiple time. For more information, refer to Section 4.5, "Prepared Queries" in the ODB manual as well as the 'prepared' example in the odb-examples package. * Support for early connection release. Now the database connection is released when commit()/rollback() is called rather than when the transaction instance goes out of scope. We are still working on the dynamic multi-database support as well as the documentation for both static and dynamic. Below is a quick guide to using the static support. ========================================================================== As an example, let's say we want to use both PostgreSQL and SQLite in our application. To access these two databases with ODB we will need to generate (a) common database support code, (b) PostgreSQL support code, and (c) SQLite support code: odb -m static -d common -q person.hxx odb -m static -d pgsql -q -s person.hxx odb -m static -d sqlite -q -s person.hxx Note the -m (short for --multi-database) option which enables the multi- database support. We could have also used a single invocation of the ODB compiler: odb -m static -d common -d pgsql -d sqlite -q -s person.hxx The above commands (either version) will produce the following set of files: person-odb.?xx - common code person-odb-pgsql.?xx - Postgres-specific code person-odb-sqlite.?xx - SQLite-specific code person-pgsql.sql - database schema for Postgres (for SQLite by default the schema is embedded in person-odb-sqlite.cxx) In our own code, compared to single-database support, we will need to do the following two things differently: 1. We will need to include person-odb-{pgsql,sqlite}.hxx instead of person-odb.hxx. 2. We will need to use the static, database-specific interface instead of the common, database-independent one. For example, we will need to use odb::pgsql::database instead of odb::database, etc., when working with objects stored in Postgres. Here is an example: #include #include #include #include #include "person.hxx" #include "person-odb-pgsql.hxx" #include "person-odb-sqlite.hxx" namespace pg = odb::pgsql; namespace sl = odb::sqlite; int main () { pg::database pdb ("boris", "secret", "test_db"); sl::database sdb ("test.db"); person p1 (...); person p2 (...); // Postgres transaction. // { pg::transaction t (pdb.begin ()); pdb.persist (p1); t.commit (); } // SQLite transaction. // { sl::transaction t (sdb.begin ()); sdb.persist (p2); t.commit (); } // Postgres query transaction. // { typedef pg::query query; typedef odb::result result; // Note: odb:: , not pg:: . pg::transaction t (pdb.begin ()); result r (pdb.query (query::age < 30)); t.commit (); } } Note that odb::result is always database-independent (i.e., there is no odb::pgsql::result class template). It is also possible to make one of the databases the default database so that it can be accessed via the common interface, just like with the single-database support. For that we use the --default-database option: odb -m static -d common -d pgsql -d sqlite --default-database pgsql \ -q -s person.hxx With multi-database support it is now possible to restrict ODB pragmas to apply only to specific databases. For example: #pragma db object class person { ... #pragma db pgsql:type("VARCHAR(128)") sqlite:type("TEXT") std::string name_; unsigned short age_; #pragma db pgsql index member(age_) }; The first example shows a database prefix (e.g., pgsql:) that only applies to the following specifier. The second example shows the database prefix that applies to the whole pragma. In this case the database name must immediately follow the 'db' keyword. Similar to pragmas, ODB compiler options that determine the kind of output (e.g., --schema-format) or alter the output itself (e.g., prologue and epilogue options) can now be prefixed with the database name. For example: --odb-file-suffix common:-odb-common ========================================================================== This pre-release is available from: http://www.codesynthesis.com/download/odb/pre-release/ The SHA1 sums for all the files in this pre-release are provided at the end of the email. Testing and feedback are much appreciated. Enjoy, Boris 3247f50afef3bff8cf33765ef0157246d9ffaef8 libodb-2.2.0.a1.tar.bz2 7b4e80987dff77e6fa9ad58ecaf86b09bfd15389 libodb-2.2.0.a1.tar.gz 1ace5fddcac763e3bba532486e1ac0be24f82d48 libodb-2.2.0.a1.zip 61ca1acb08b3d857323217c38d1d459de9001e28 libodb-mssql-2.2.0.a1.tar.bz2 b44caa46f50a998235cb100e8413edfddabad80d libodb-mssql-2.2.0.a1.tar.gz d481a26fe34e7db9aa34b5a0f26e07d72cb20c7d libodb-mssql-2.2.0.a1.zip fcd6e2a956d02c4b0ae499b12937e1d79f9d8dd7 libodb-mysql-2.2.0.a1.tar.bz2 3007aec103e3f02d4269e6772a1038ab78c7be87 libodb-mysql-2.2.0.a1.tar.gz a8d3768435d3939bf6c4ce49cdd9ac72ec9eb39c libodb-mysql-2.2.0.a1.zip 4aa77014ebe31af946d52ff137cce6af128fc2d9 libodb-oracle-2.2.0.a1.tar.bz2 75ea118e5c26098330d43d30034fe1a203f940bd libodb-oracle-2.2.0.a1.tar.gz 843068a5310bd330a753159959e4fedf054f3737 libodb-oracle-2.2.0.a1.zip f65ac2602597d2eaafd618d2132e277afa4c0322 libodb-pgsql-2.2.0.a1.tar.bz2 d23dec3420104c8a4ae8466b731dd5bd9f216360 libodb-pgsql-2.2.0.a1.tar.gz 78d186ea49321b877a3e136a07c97abff450375b libodb-pgsql-2.2.0.a1.zip eee8de6b3a689eacaa851755aea83ec29f3fa12e libodb-qt-2.2.0.a1.tar.bz2 ee69ef8c777732656958457032aaa7d5dec5a05c libodb-qt-2.2.0.a1.tar.gz e0e16e6e973f1943ea638d3d8982d98370dfe6ef libodb-qt-2.2.0.a1.zip 8f7982cd14d0aaf69a328e664e6207bfc7c2a2bd libodb-sqlite-2.2.0.a1.tar.bz2 ebe704c17e2182bd41352206e61d078e935bf7bb libodb-sqlite-2.2.0.a1.tar.gz b273ad1be20c7ff8a450a216a89b893ae78f2a62 libodb-sqlite-2.2.0.a1.zip d966000b22ffddaa6c40d98ca2cf583f16bf4180 odb-2.2.0.a1-i686-linux-gnu.tar.bz2 8012cd0e1ce2b27e5cd108a938cf66fb2a58372c odb-2.2.0.a1-i686-windows.zip 4b3ac77b4d9fa0957daaa12728d5a1a143dbbd9f odb-2.2.0.a1.tar.bz2 48014dc5f12758754b5b7342e039e713f771572f odb-2.2.0.a1.tar.gz f4a382462429e9bb18d7f15790b15c75a664b4d4 odb-2.2.0.a1-x86_64-linux-gnu.tar.bz2 7209a4cf9d3c140db0e695b8261f55954d75d41f odb-2.2.0.a1.zip a951d68dcc9971e56e077740f843c1d1d9b8cdfa odb-examples-2.2.0.a1.tar.bz2 992d309fe5445eb06ebaf4b7e10b4bbccbad800c odb-examples-2.2.0.a1.tar.gz 613ba4dd1219ebcd91d84da057fe4faf7426be7f odb-examples-2.2.0.a1.zip c155e5f4b5b6ffc3715415196e22f490bc9e39aa odb-tests-2.2.0.a1.tar.bz2 823595b17729ba199953075af0467a7617a14c97 odb-tests-2.2.0.a1.tar.gz 7cd02c40ef08ee3bdc250552688c0276ab8bc260 odb-tests-2.2.0.a1.zip From boris at codesynthesis.com Thu Nov 22 07:30:47 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Nov 22 06:52:15 2012 Subject: [odb-announcements] ODB 2.1.1 released Message-ID: Hi, We have released ODB 2.1.1. This is a bug fix-only release without any new features or backwards-incompatible changes. Specifically, a number of bugs have been fixed in each database runtime as well as the ODB compiler. We would like to thank everyone who reported bugs, suggested fixes, as well as tested early versions of this release. Source code and pre-compiled binary packages for this release are available from the ODB Download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: 6eeb5725bd64caa2a7ec31383bd5dcf87be5103f libodb-2.1.1.tar.bz2 3b017c840b58469279fc5cb8077faf232c5c95a2 libodb-2.1.1.tar.gz 020ee687fe51eefdef445e3ff78e20d4337e8154 libodb-2.1.1.zip 307018aac11f5f494eab00b6b29277bf02b683d9 libodb-boost-2.1.1.tar.bz2 c7f44dc52b74f89715d4fa73b27d046c954cfcee libodb-boost-2.1.1.tar.gz 9a2a04d8161c318de64e18063ccaa8c0429a50e5 libodb-boost-2.1.1.zip a3468f9ff8db883929c3aa3f02b4cdc5024b16dd libodb-mssql-2.1.1.tar.bz2 73c0895cb81ffc8cef5beef926ab16094316ce59 libodb-mssql-2.1.1.tar.gz c4494b132c51378f38c70c0c93e3172591f588c5 libodb-mssql-2.1.1.zip 43758a4df6a248d5aa4093e581de3d8f7930e52b libodb-mysql-2.1.1.tar.bz2 50ee465fa12b73e6be0d01f3265c314fe4946968 libodb-mysql-2.1.1.tar.gz 46f911c62b7dc9a57c7b7bcec7ab1feb41d9ebc2 libodb-mysql-2.1.1.zip a6a01bdfab6eb84eae41342621ef4f5e5f499e5d libodb-oracle-2.1.1.tar.bz2 a35d0b57afa5545789829833b33bc8c9c8d6aada libodb-oracle-2.1.1.tar.gz 7b989619a448fe6aa8732eae92f14fb70dd22aec libodb-oracle-2.1.1.zip 3c3e9fb765cd2f299c99f15efd19a307e8c2c4a3 libodb-pgsql-2.1.1.tar.bz2 7b7df5d06ec29d21ec50aa8e201963bdd32953cd libodb-pgsql-2.1.1.tar.gz ffc7ff9a9b8a267c375d0aac678f2253eafab245 libodb-pgsql-2.1.1.zip 448ac658193fbec4b011194a013523a49f636c75 libodb-qt-2.1.1.tar.bz2 881d978ed650bf07fbaba506bdf2637f77b0bc66 libodb-qt-2.1.1.tar.gz 3cfcf8c9710f300cee24a04425c44dcc26b3bb01 libodb-qt-2.1.1.zip 1e466babf8127d7a2d92a1c503b7e79b257eb8c9 libodb-sqlite-2.1.1.tar.bz2 cc48669fae0e6ec017c943f36c7ab39608e5f002 libodb-sqlite-2.1.1.tar.gz 24dd4c29ae87c2cdfab30751c129d824dcde1505 libodb-sqlite-2.1.1.zip d0f16d8088008b4e176026799c5ac531e241af7c odb-2.1.1-i686-linux-gnu.tar.bz2 1ac8f4dd103be218bbf0db2b124f64512765a26d odb-2.1.1-i686-macosx.tar.bz2 9a51b9bb0e0467712820ac26c5941721d4d57d54 odb-2.1.1-i686-solaris.tar.bz2 86678ec3969a93e4cef789d78c7899b614bfe697 odb-2.1.1-i686-windows.zip 2a77d8b83e36a0c23ca5764ec52ffda79618aa92 odb-2.1.1-sparc-solaris.tar.bz2 f3a85f20cf9961644bf393029e5f9f7c136307a3 odb-2.1.1.tar.bz2 068533d2bb88cee860b173591bfed595e9638444 odb-2.1.1.tar.gz 523404d7e760f750f77fd81939909470443b9497 odb-2.1.1-x86_64-linux-gnu.tar.bz2 84c6d994bc49fe8a8314f4697ee71f9d42a1f10a odb-2.1.1.zip dc50ea2ced005214efe617bae868739967a41392 odb-examples-2.1.1.tar.bz2 ead30321431e3e793f1765e09844ea2fa49ded9d odb-examples-2.1.1.tar.gz 9286ad99ce2842d3838310e3fe3da5040e715f8c odb-examples-2.1.1.zip 69e3f0220942cd453ad150b4094428fc26b6ea06 odb-tests-2.1.1.tar.bz2 6d68f43256211c14de108a53a3511c9dda95f01d odb-tests-2.1.1.tar.gz 61d29cfe7a3576d86ac119de3f5059c6b7ec1d7f odb-tests-2.1.1.zip Enjoy, Boris From boris at codesynthesis.com Wed Dec 12 09:12:06 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Dec 12 08:27:26 2012 Subject: [odb-announcements] ODB 2.2.0.a2 available Message-ID: Hi, The second alpha version for the upcoming ODB 2.2.0 is now available. The NEWS file entries so far are: * Multi-database support. It allows an application to simultaneously work with multiple database systems and comes in two flavors: static and dynamic. With static support the application uses the static database interfaces (that is, odb::::database instead of odb::database). With dynamic support the same application code can access multiple databases via a common interface. Dynamic multi-database supports also allows the application to dynamically load the database support code for individual databases if and when necessary. For more information, refer to Chapter 13, "Multi-Database Support" in the ODB manual. * Support for prepared queries. Prepared queries are a thin wrapper around the underlying database system's prepared statements functionality. They provide a way to perform potentially expensive query preparations tasks only once and then executing the query multiple time. For more information, refer to Section 4.5, "Prepared Queries" in the ODB manual as well as the 'prepared' example in the odb-examples package. * Support for automatically-derived SQL name (table, column, index, etc.) transformations. At the higher level, it is possible to assign prefixes and suffixes (--table-prefix, --{index,fkey,sequence}--suffix options) as well as to convert to upper or lower case (--sql-name-case option). At the lower level, it is possible to specify transformations as regular expressions (--{table,column,index,fkey,sequence,sql-name}-regex options). For more information, refer to the SQL NAME TRANSFORMATIONS section in the ODB compiler command line interface documentation (man pages). * New options, --export-symbol and --extern-symbol, allow DLL exporting of the generated database support code. * Support for early connection release. Now the database connection is released when commit()/rollback() is called rather than when the transaction instance goes out of scope. This pre-release is available from: http://www.codesynthesis.com/download/odb/pre-release/ The SHA1 sums for all the files in this pre-release are provided at the end of the email. Testing and feedback are much appreciated. Enjoy, Boris c0581df4019a27e5a4d346114bd564c8e59ca922 libodb-2.2.0.a2.tar.bz2 7993e786c0cba032cc18030240cdee15b29de2b5 libodb-2.2.0.a2.tar.gz 9461de7172500299f9ed98567968bd0049135b30 libodb-2.2.0.a2.zip 2c119c9e4ab9d5489992e4d29c99bdf039d73598 libodb-boost-2.2.0.a2.tar.bz2 ee14610ff551721ec2cb587b8c6a513567605234 libodb-boost-2.2.0.a2.tar.gz e882f933de1bae3da7aec8fe6f1467ccf995ad38 libodb-boost-2.2.0.a2.zip 5dba03d9f277bda8e49a3f8c65a47f107a43eb47 libodb-mssql-2.2.0.a2.tar.bz2 e0c7ae9b7d9c67d4b624ebadba302680dd0c8ac9 libodb-mssql-2.2.0.a2.tar.gz 5afa84fb5c6b7f18a29cdcc5aa626d9b88547231 libodb-mssql-2.2.0.a2.zip 3c4d1ac68aa1f7923389c26a1055251ffc6d117f libodb-mysql-2.2.0.a2.tar.bz2 ecce239ee1102dc2c29a8a3bf783441ad45388a4 libodb-mysql-2.2.0.a2.tar.gz b80036b03185fc463c5d8fee7d0ca6f62d9f98f6 libodb-mysql-2.2.0.a2.zip b41681fffc1dca03c3a85ae987becb603d2eea31 libodb-oracle-2.2.0.a2.tar.bz2 9ec3a59760e1f70cace428b3140046bd6a35975d libodb-oracle-2.2.0.a2.tar.gz 48e30eae7ac7079afcb4cf58e1ce1b9575646c03 libodb-oracle-2.2.0.a2.zip 8155a9e760c9cdf19ad8edd568c1618d322950bd libodb-pgsql-2.2.0.a2.tar.bz2 678a3d2389279b1ef8a132f01826c2df0d90a88b libodb-pgsql-2.2.0.a2.tar.gz a55bc9788a0094583351fa95df3c9abf8ab5472f libodb-pgsql-2.2.0.a2.zip 0c1e35cbdcbf188757cf32dfd67017fa6e868db7 libodb-qt-2.2.0.a2.tar.bz2 7adf167bc072d0e831fe19c1565a52803c56ac1a libodb-qt-2.2.0.a2.tar.gz 44768703a2bfc441939e06396841b1438c5d4008 libodb-qt-2.2.0.a2.zip da70ab050c598360019730e618bc1a7f2a80c3d7 libodb-sqlite-2.2.0.a2.tar.bz2 4b32ca7d617e6a52a29f37e66b4f46b621d53670 libodb-sqlite-2.2.0.a2.tar.gz 3b1d2f1e8f26706e59c74752fdd6718752e7984d libodb-sqlite-2.2.0.a2.zip f27da7710d9346a29aae669adc948748c1a4470b odb-2.2.0.a2-i686-linux-gnu.tar.bz2 d88a2b38fc622639f7873fd685cdb419f90d6fe5 odb-2.2.0.a2-i686-windows.zip b14052d45c91d9e387ac8cda71eaf2c172cce543 odb-2.2.0.a2.tar.bz2 e72a4f56519cb8b44e4634604a72400f6f9acaa0 odb-2.2.0.a2.tar.gz 55f6234a4207682d789e6f916ce3a156c5523d95 odb-2.2.0.a2-x86_64-linux-gnu.tar.bz2 ad309b1cba70ef1eed9b23524f949d422182d4ca odb-2.2.0.a2.zip 81df8e80de7841571473529e919de7ad77156be5 odb-examples-2.2.0.a2.tar.bz2 3b4fd11f52ce28747187cfb77cd9a40e40d28554 odb-examples-2.2.0.a2.tar.gz aafdafda0b324bb814be16f74d44a94b1c85c486 odb-examples-2.2.0.a2.zip 23146cac42ce5014ecc0bf0da66caf0e7fecc6dc odb-tests-2.2.0.a2.tar.bz2 9655496615cb135b6154876a87d80b2b147e9680 odb-tests-2.2.0.a2.tar.gz b8cb3c23754e75fc414f202cce7b9160409d766a odb-tests-2.2.0.a2.zip From boris at codesynthesis.com Tue Dec 18 02:52:37 2012 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Dec 18 02:06:14 2012 Subject: [odb-announcements] Using ODB on Mobile/Embedded Systems Message-ID: Hi, We just published a detailed guide on using ODB on mobile/embedded systems. It uses Raspberry Pi as a sample target (though other targets can be handled with similar steps) and covers topics such as cross-compilation, building shared/static libraries, footprint, and minimizing the generated code size. http://wiki.codesynthesis.com/Using_ODB_on_Mobile_and_Embedded_Systems Enjoy, Boris