From boris at codesynthesis.com Wed Jan 26 04:37:28 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Jan 26 04:23:32 2011 Subject: [odb-announcements] ODB 1.1.0 released Message-ID: Hi, We have released ODB 1.1.0. The NEWS file entries for this release are as follows: * Support for storing containers in the database. For example, now you can write: #pragma db object class person { ... std::set emails_; }; For more information refer to Chapter 5, "Containers" in the ODB manual as well as the 'container' example in the odb-examples package. * Support for unidirectional and bidirectional object relationships, including lazy loading. For example: #pragma db object class employer { ... #pragma db inverse(employer_) std::vector > employees_; }; #pragma db object class employer { ... shared_ptr employer_; }; For more information refer to Chapter 6, "Relationships" in the ODB manual as well as the 'relationship' and 'inverse' examples in the odb-examples package. * Support for composite value types. For example: #pragma db value class name { ... std::string first_; std::string last_; }; #pragma db object class person { ... name name_; }; For more information refer to Chapter 7, "Composite Value Types" in the ODB manual as well as the 'composite' example in the odb-examples package. * Support for sessions. A session is an application's unit of work that may encompass several database transactions. In this version of ODB a session is just an object cache. For more information refer to Chapter 8, "Session" in the ODB manual. * Support for custom object pointers that allows you to use smart pointers to return, pass, and cache persistent objects. See Section 3.2, "Object Pointers" in the ODB manual for details. * Support for native SQL statement execution. See Section 3.9, "Executing Native SQL Statements" in the ODB manual for details. * New option, --profile/-p, instructs the ODB compiler to use the specified profile library. See the ODB compiler command line manual for details. * Support for literal names (template-id, derived type declarator such as pointers, etc) in data member declarations. Now, for example, you can use std::vector directly instead of having to create a typedef alias for it. * Support for inheritance from transient base types for object types and composite value types. * New example, 'schema', shows how to map persistent C++ classes to a custom database schema. * New options, --odb-prologue, --odb-epilogue, allow inclusion of extra code into the ODB compilation process. This can be useful for making additional traits specializations or ODB pragmas known to the ODB compiler. * Support for persistent classes without default constructors. For objects of such classes only the load() and find() database functions that populate an existing instance can be used. Similarly, only the load() query result iterator function which populates an existing instance can be used. Source code and pre-compiled binary packages for this release are available from the download page: http://www.codesynthesis.com/products/odb/download.xhtml SHA1 checksums for the files in this release are as follows: 770aeca0e626754906bb84ad8d3b1dc3a40cbe27 libodb-1.1.0.tar.bz2 4e931be19d1d5071510e3516b5719bbd81c60b14 libodb-1.1.0.tar.gz 6184ace925fa09755a9af0447a74cf16a4b2b96c libodb-1.1.0.zip 89c07493e3355190cfd9e8756c42fa8dedcbafbb libodb-mysql-1.1.0.tar.bz2 c5c5a6548805099e395a896eedc9bdb50f1d99c7 libodb-mysql-1.1.0.tar.gz f611ab47135a1579471036f4557331028b2854e3 libodb-mysql-1.1.0.zip 3b334c933820977ca42dcdcb235e82dd913867e3 libodb-tracer-1.1.0.tar.bz2 29edfed7b29712d8ba920a8008f0cc2d077f1782 libodb-tracer-1.1.0.tar.gz adec98afbb0099f2a5a5ee14cc4ace9aac640203 libodb-tracer-1.1.0.zip 7ba5e2ff86261960c312edcbe096ce7d4351f96b odb-1.1.0-i686-linux-gnu.tar.bz2 c77d72678d6325f8c53c9cc2afc206f032872c8c odb-1.1.0-i686-macosx.tar.bz2 2037bb3f324d763cd28b99a547ab68de81729ebf odb-1.1.0-i686-solaris.tar.bz2 83ece19fe618b9f74ee3b50e00bf0dfce5e1c406 odb-1.1.0-i686-windows.zip b8dc849093e65dd8501091e1837ad21dec008eee odb-1.1.0-sparc-solaris.tar.bz2 1ec3c8368d6fff708e8ade250d4f08c54ee9cb98 odb-1.1.0.tar.bz2 ba92a4ebd60b600462644dc502f08124a25a6069 odb-1.1.0.tar.gz cdaf55183708c049a8952cf3df21304a656ee5f6 odb-1.1.0-x86_64-linux-gnu.tar.bz2 284f9abbe988c10ea9bbfd8460ab31d1b7725f12 odb-1.1.0.zip a0ba27b59c79671c7e481dc7c188a8202a3e0aa9 odb-examples-1.1.0.tar.bz2 3ab1eda2200955cba52e169a4bd23905c0d16d67 odb-examples-1.1.0.tar.gz e66c017dcf1ed191506366d20014662f560453c9 odb-examples-1.1.0.zip ef45ade0f0748c1803b8f22f6e790ddb74ff6c60 odb-tests-1.1.0.tar.bz2 14e80612e05e2e93b0b21e772f59c9719b4553d1 odb-tests-1.1.0.tar.gz a5d1c3165d41abdeb20875be5668ef04acd7a1b0 odb-tests-1.1.0.zip Enjoy, Boris From boris at codesynthesis.com Wed Mar 16 07:46:28 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Mar 16 07:46:43 2011 Subject: [odb-announcements] ODB 1.2.0 released Message-ID: Hi, We have released ODB 1.2.0. The NEWS file entries for this release are as follows: * New profile, boost, provides persistence support for the Boost libraries. This version covers the most commonly used types from the smart_ptr, unordered, and date_time libraries. For example, now you can write: #pragma db object class employee { ... boost::gregorian::date born_; boost::unordered_set emails_; boost::shared_ptr employer_; }; The boost profile implementation is provided by the libodb-boost library. For more information refer to Chapter 11, "Profiles Introduction" and Chapter 12, "Boost Profile" in the ODB manual as well as the 'boost' example in the odb-examples package. * Support for embedded database schemas. The new option, --schema-format, allows the selection of the schema format. The valid values for this option are 'sql' for a standalone SQL file and 'embedded' for a schema embedded into the generated C++ code. The new odb::schema_catalog class provides support for accessing embedded schemas from within the application. For details refer to Section 3.3, "Database" in the ODB manual as well as the 'schema/embedded' example in the odb-examples package. * New exceptions: odb::recoverable, odb::connection_lost, and odb::timeout. The odb::recoverable exception is a common base class for all recoverable ODB exceptions. The other two exceptions plus odb::deadlock now inherit from this base. Refer to Section 3.5, "Error Handling and Recovery" for details. * Support for connection validation (ping) in MySQL connection_pool_factory. This transparently deals with the MySQL server closing connections after a certain period of inactivity. * New namespace, odb::core, contains using-declarations for the core ODB constructs, such as the database, transaction, etc. The primary use of this namespace is in the using-directives: using namespace odb::core; The above form should be preferred over the old variant: using namespace odb; The new approach brings all the essential ODB names into the current namespace without any of the auxiliary objects such as traits, etc., which minimizes the likelihood of conflicts with other libraries. Note that you should still use the odb namespace when qualifying individual names, for example, odb::database. * New option aliases: -q for --generate-query and -s for --generate-schema. * Support for the default options file. Now, if configured, the ODB compiler loads the default options file (by default ../etc/odb/default.options, relative to the ODB compiler binary). This file can be used for installation-wide customization, such as adding extra include search paths. 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: 366bb4fdd9c900a5b5cd47930ccab99d4f7120fa libodb-1.2.0.tar.bz2 7ae7d005f58696df8ed787d95c7fdfa4fbac3ede libodb-1.2.0.tar.gz 5a14afdacc489930dfbe2612c9c6f6f4e7a2d3c3 libodb-1.2.0.zip e7b050ecf17a7b625b3356ca54c18122506c579a libodb-boost-1.2.0.tar.bz2 79e3b68fe6512d03a9cf8b91bfcfe6d11b68455e libodb-boost-1.2.0.tar.gz bd1fee06f547a4b949e11dbf8904517ba7704d3c libodb-boost-1.2.0.zip a925cb169a08de6b3dab45c32119e61d6f6da4ce libodb-mysql-1.2.0.tar.bz2 173c153065329425ed0c8ec8ab2b807ef1dbe271 libodb-mysql-1.2.0.tar.gz 486166a47d518324545bf2be3bb877db0a7d3a13 libodb-mysql-1.2.0.zip ee5b18d06121d89463ab288c6a68bd95eae37491 libodb-tracer-1.2.0.tar.bz2 25131364958ce3197c7a62383e93564f7ee45fb2 libodb-tracer-1.2.0.tar.gz c3b6f54cc205032ebfeeab25d9186b309c36d229 libodb-tracer-1.2.0.zip a4ced7b0ed2dba6aca462022a59d2c2b16d15478 odb-1.2.0-i686-linux-gnu.tar.bz2 7ecc3ca9fcc9d3ae76c9f3cfa52839666af75ece odb-1.2.0-i686-macosx.tar.bz2 0f4cc2cd35d31e61a7b5086522de4586b70b274f odb-1.2.0-i686-solaris.tar.bz2 8883d7d72ca9233a74706c7da38f5c935d363b00 odb-1.2.0-i686-windows.zip b6d3a92907bdc6895326a81209b8db83fb3d7ba8 odb-1.2.0-sparc-solaris.tar.bz2 b9b583f2c4aa0dc01110b184f4b481c17638aa41 odb-1.2.0.tar.bz2 2f3d83a44909d1efa7067db98acb7399e822e7b3 odb-1.2.0.tar.gz 88527ac892d56eac0593477b5c8718eeb3b89863 odb-1.2.0-x86_64-linux-gnu.tar.bz2 b0c28ef2f20fbcb00a7395432f9c71de84fbf681 odb-1.2.0.zip 8c709d0899bde23de6b106d13890e099791a0f71 odb-examples-1.2.0.tar.bz2 114241c511c180d9cafdb8e32fff2c5a2ef65475 odb-examples-1.2.0.tar.gz b3e850d343274caaa25a5665314070b4243abcbb odb-examples-1.2.0.zip 43afba35440584ba27a53e550c82fa18023df39f odb-tests-1.2.0.tar.bz2 01b8357d750abc17cd3ed0a005f91dfd43f3b529 odb-tests-1.2.0.tar.gz ce88fea1ed82417e949f4b7b7181eae4143d68f3 odb-tests-1.2.0.zip Enjoy, Boris From boris at codesynthesis.com Wed Apr 6 03:08:36 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Apr 6 03:11:02 2011 Subject: [odb-announcements] ODB 1.3.0 released Message-ID: Hi, We have released ODB 1.3.0. The NEWS file entries for this release are as follows: * Support for the SQLite database. Provided connection factories include 'new' (new connection is created every time one is requested), 'single' (single connection is shared among all the callers), and 'pool' (a pool of connections is maintained). In multi-threaded applications the runtime uses the SQLite shared cache and unlock notification features to aid concurrency. For more information, refer to Chapter 11, "SQLite Database" in the ODB manual. * Support for database-specific profiles. Now the ODB compiler first looks for the -.options file and only if this file is not found, does it fall back to .options. * Support for the GCC 4.6 plugin interface changes. 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: e88688852b910f46dfac9284ae6ed48d74f1cbf2 libodb-1.3.0.tar.bz2 e2665950d9aba63c83a7510bcf1957486e03dd98 libodb-1.3.0.tar.gz c45697d8efd4d002a479d38e2f19bf9336926262 libodb-1.3.0.zip a5b5c62410a1ac7e341b01d433e96f02bc37815b libodb-boost-1.3.0.tar.bz2 c115403fb97d0ba43275595e72aa51f17f63b04e libodb-boost-1.3.0.tar.gz fc5f24ab68a330e71e45179d2bde107bfcf9cf19 libodb-boost-1.3.0.zip 1ddad6a6a67b019a318a8f18a950a748a7580db8 libodb-mysql-1.3.0.tar.bz2 b245e1b0642ecb6a528c0b3a41f6457044b386a1 libodb-mysql-1.3.0.tar.gz 5cdc957921a95bf1d6832bf2987539663190ccbd libodb-mysql-1.3.0.zip 360cbe2ebf5aa376ed4dfd2fca7dec8b541905ec libodb-sqlite-1.3.0.tar.bz2 5545d52a174b33e97b6de620ebdb28d4f9cf302a libodb-sqlite-1.3.0.tar.gz 6b002f489f1e5360fdf25642bbd7b0680af35b00 libodb-sqlite-1.3.0.zip 1908a95ba36c54aa0580e69b32963da5ee49561e libodb-tracer-1.3.0.tar.bz2 506a7c667937e1e85761c1abdc313e85f3fec79f libodb-tracer-1.3.0.tar.gz 4693f59c24a127c4f78631e4393c98bc39e307fe libodb-tracer-1.3.0.zip 71fe19a71a1024c2964d4bfc48896244c6547a4a odb-1.3.0-i686-linux-gnu.tar.bz2 fecb2bb420f9d6a05c2834c98ee84ffae2395ace odb-1.3.0-i686-macosx.tar.bz2 4c2ae9618b6a8b792c9ad18f0a8a2e96c41d8912 odb-1.3.0-i686-solaris.tar.bz2 7901df90a33826ca83a532b40142a9dad4e0bc98 odb-1.3.0-i686-windows.zip 536202dfbfaca1f19e482944ea6665cac5e6d803 odb-1.3.0-sparc-solaris.tar.bz2 8bfb2034cc6a554d09708e371564215bb596b621 odb-1.3.0.tar.bz2 9b8e7782bb4ebb3858d8179ea5214260df6b9859 odb-1.3.0.tar.gz 5224e76a2568b704a5f2ed232ec6ffbf116e50e0 odb-1.3.0-x86_64-linux-gnu.tar.bz2 168b7505c542a10e0d71de469a44913c1e49d204 odb-1.3.0.zip 4bb687596387db65a2531ae8b0b0aabddbf70167 odb-examples-1.3.0.tar.bz2 b238d4e2d27c378c29051e2fd1d9249671050081 odb-examples-1.3.0.tar.gz 3ba3cf84aea9fa56dfe284ffe685c44d6e8096e2 odb-examples-1.3.0.zip 9155f4d7f729c0e37fbc01eb124ea039bdb510a4 odb-tests-1.3.0.tar.bz2 4d4c9c915900dc6a26191c73fed3dcc179526361 odb-tests-1.3.0.tar.gz 89606a385aee2fc0f9511c3b0033fe9280434d22 odb-tests-1.3.0.zip Enjoy, Boris From boris at codesynthesis.com Wed Apr 27 07:44:24 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Apr 27 07:26:48 2011 Subject: [odb-announcements] ODB 1.4.0 released Message-ID: Hi, We have released ODB 1.4.0. The NEWS file entries for this release are as follows: * New profile, qt, provides persistence support for the Qt framework. This version covers the most commonly used basic types, date-time types, smart pointers, and containers. For example, now you can write: #pragma db object class Employee { ... QString first_name_; QString last_name_; QDate born_; QSet emails_; QByteArray publicKey_; QSharedPointer employer_; }; The qt profile implementation is provided by the libodb-qt library. For more information refer to Chapter 13, "Profiles Introduction" and Chapter 15, "Qt Profile" in the ODB manual as well as the 'qt' example in the odb-examples package. * Support for non-polymorphic object inheritance, including the new abstract pragma. For more information refer to Chapter 8, "Inheritance" in the ODB manual as well as the 'inheritance' example in the odb-examples package. * Automatic mapping of C++ enumerations to suitable database types. In database systems that support enumeration types (such as MySQL), a C++ enum is mapped to such a type (for example, ENUM('red', 'green', 'blue') in MySQL). Otherwise, it is mapped to a suitable integer type. Refer to Part II, "Database Systems" in the ODB manual for more details on the provided mappings. * New pragma, id_type, allows the specification of the native database type that should be used for data members designated as object identifiers. In combination with the type pragma, id_type allows you to map a C++ type differently depending on whether it is used in an ordinary member or an object id. * New options, --odb-prologue-file and --odb-epilogue-file, allow the inclusion of file contents into the ODB compilation. * Default mapping of the size_t and std::size_t types to a 64-bit integer database type irrespective of the platform width. This can be overridden with the type pragma. 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: 33146e6960c94740035378ce8cb7b5a524a2c5dd libodb-1.4.0.tar.bz2 62b3565c06c1d6538777a21dc842f2dae3b48838 libodb-1.4.0.tar.gz a6b21a11ec999a6d750e904d16c2bce6126ac6bd libodb-1.4.0.zip 1220b89a80270949cda820134da9588a45185c79 libodb-boost-1.4.0.tar.bz2 64fd9546d2b3886cee137a717aa64c7148e5b234 libodb-boost-1.4.0.tar.gz 71cf3d3965ddaccffa2e90924bfe156a87a45d24 libodb-boost-1.4.0.zip 40ad4f8e92b5ab89e06bca217633d04f8c48ab73 libodb-mysql-1.4.0.tar.bz2 e65b8ed6c9961cb21c1e17ac8f7877652ff9f5f4 libodb-mysql-1.4.0.tar.gz ec281b03b24d256537fc597e3a8c73d2b94bb2b3 libodb-mysql-1.4.0.zip 588692039e85e349bd4582e5c38e5e959f2f4071 libodb-qt-1.4.0.tar.bz2 7877ee42c2c7939e49f340cb8a9ebc5c6949ca41 libodb-qt-1.4.0.tar.gz 2217763fcf2e0299e3de520c461bf7fe4ce0678e libodb-qt-1.4.0.zip 97a56bf68667168dcc5482c7384ab1bc42dc7e89 libodb-sqlite-1.4.0.tar.bz2 c83f9c0d30f577669f4cff2af5db7e27521cbd11 libodb-sqlite-1.4.0.tar.gz 4cbf67b34807823f6bf339d2f09c94089d6c0dbb libodb-sqlite-1.4.0.zip fbd50aad6faa180a6b8960d9cef8331658407d04 libodb-tracer-1.4.0.tar.bz2 2f9dbfe8dec7b46d5951f51f040cddbd423e665d libodb-tracer-1.4.0.tar.gz e0256a45f30392b13bd19731627fbc93e9d0c97f libodb-tracer-1.4.0.zip 5e287886a0c4522c8370156be0e25ed14c962c28 odb-1.4.0-i686-linux-gnu.tar.bz2 de787f8701b3940b502b42db57a91cfcb9c1ee13 odb-1.4.0-i686-macosx.tar.bz2 64883b19759c0c6f91fd7208ab06ed547bc94670 odb-1.4.0-i686-solaris.tar.bz2 3253e5fabed3aef3765079c3ec34823a1fb9ab05 odb-1.4.0-i686-windows.zip 194c469eeb21645aa7ea7d282a2ebae92495d487 odb-1.4.0-sparc-solaris.tar.bz2 96bc59ce52e391e580cb30343a2058ff4b49cdc2 odb-1.4.0.tar.bz2 67daffb7240a97fb334c658372f679a0d8376154 odb-1.4.0.tar.gz e8325c3b2398456aa94786b25f77322be93b4afd odb-1.4.0-x86_64-linux-gnu.tar.bz2 e2703ff8ea8ab81d26dc75e4598559f47f2ded97 odb-1.4.0.zip 9ee239ea7dd1053c9f103bc25bf421a0667d10a2 odb-examples-1.4.0.tar.bz2 9226fdd968c24d8963106650120571779d0014b3 odb-examples-1.4.0.tar.gz 7b6d5ee79d893e0e60cbf605ee682a44994aef9d odb-examples-1.4.0.zip 29a2fa72ff8c1ebb52a579919c60b5755eb4e28e odb-tests-1.4.0.tar.bz2 a99b6ef5981649be6d2f7239468bab69e23d632b odb-tests-1.4.0.tar.gz 69eedc903d0b4cb0a085c56ab3899c2c11e857c4 odb-tests-1.4.0.zip Enjoy, Boris From boris at codesynthesis.com Tue Jul 19 05:35:23 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Jul 19 05:38:00 2011 Subject: [odb-announcements] BoostCon 2011 ODB talk Message-ID: Hi, The video for the talk called "Object-Relational Mapping with ODB and Boost" that I gave at this year's BoostCon is now available: http://blip.tv/boostcon/object-relational-mapping-with-odb-and-boost-5364825 The direct link to the .mp4 file (found in the RSS feed) is this: http://blip.tv/file/get/Boostcon-ObjectrelationalMappingWithODBAndBoost586.mp4 The slides corresponding to the talk are here: https://github.com/boostcon/2011_presentations/raw/master/thu/orm_with_odb_and_boost.pdf The first half of the talk introduces the basic concepts and workflow of the ODB system. It then continues to cover more advanced topics, including profiles (with focus on Boost), containers, composite values, object relationships, and working with database schemas. There are also interesting discussions with the audience interspersed throughout the talk. Boris From boris at codesynthesis.com Tue Jul 26 03:36:24 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Jul 26 03:38:59 2011 Subject: [odb-announcements] ODB 1.5.0 released Message-ID: Hi, We have released ODB 1.5.0. The NEWS file entries for this release are as follows: * Support for the PostgreSQL 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 13, "PostgreSQL Database" in the ODB manual. * New handling of the NULL semantics. Now, instead of being specified as part of the SQL type with the type pragma, there are separate null and not_null pragmas. The not_null pragma was used to control the NULL semantics of object pointers. Now the two pragmas are used consistently for object pointers and simple values (and, in the future, they will work for composite values and containers). To control the NULL semantics of the container's element values, the value_null and value_not_null pragmas have been added, similar to the value_type, value_column, etc., pragmas. For more information about the new mechanism, refer to Sections 10.2.3, 10.2.8, 10.3.4, and 10.3.13 in the ODB manual. This is a backwards-incompatible change. Existing use cases that will require manual changes are listed below. For pragmas that apply to simple value types and data members of such types: #pragma db type("TEXT NOT NULL") => #pragma db type("TEXT") #pragma db type("TEXT NULL") => #pragma db type("TEXT") null #pragma db type("TEXT") => #pragma db type("TEXT") null For pragmas that apply to containers of pointers and data members of such types: #pragma db not_null => #pragma db value_not_null * New pragma, default, allows the specification of the database default value. For more information, refer to Section 10.3.5, "default" in the ODB manual. * New pragmas, options, id_options, index_options, key_options, and value_options, allow the specification of additional column definition options. For more information, refer to Section 10.3.6, "options" in the ODB manual. * Support for database operations callbacks. Now a persistent class can register a callback function that will be called before and after every database operation (such as persist, load, update, or erase) is performed on an object of this class. A database operations callback can be used to implement object-specific pre and post initializations, registrations, and cleanups. For more information and an example, refer to Section 10.1.4, "callback" in the ODB manual. * New option, --include-regex, allows the modification of the #include directive paths generated by the ODB compiler. This is primarily useful when placing the generated code into subdirectories and the #include directives have to be adjusted accordingly. The --include-regex-trace option is useful for debugging the expressions specified with --include-regex. 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: 3494e49d38aaaf26f7c087ab02e65e29fe59bd1d libodb-1.5.0.tar.bz2 edcd8a934542c960c06da04fb8fc6a9a8aa21544 libodb-1.5.0.tar.gz f87b424c2fabc651d5b5c30dda4bb46cf18b3210 libodb-1.5.0.zip 3b00efc7b8e43add78165ad6ef4a1b8ebb3a31f0 libodb-boost-1.5.0.tar.bz2 835b9448de0d4aeac7c0923a4e30efc9451f34e1 libodb-boost-1.5.0.tar.gz edfea119f5d279e4b51ad004caa63d623a667e84 libodb-boost-1.5.0.zip 2b5a7bef9493b47bf82a7568c8369f6cd8e94253 libodb-mysql-1.5.0.tar.bz2 836d784f53552a9641d0cbaf870a2e6563e4eb7b libodb-mysql-1.5.0.tar.gz 68e07e6c002f8c12826f5b3f15f2edfaa99ec9b0 libodb-mysql-1.5.0.zip 22f7cf7c8b689b68fc7ede5f76c8d31cffdc6e92 libodb-pgsql-1.5.0.tar.bz2 cfa7221dfa0ec28e2e45f285d8bf704ea7cb73e9 libodb-pgsql-1.5.0.tar.gz 64ac5c9dc841892c2fb76b2ae6d97d7b1d55a5fa libodb-pgsql-1.5.0.zip cfe802d549676fa2d1cf3d71ffbdf939df0a50b3 libodb-qt-1.5.0.tar.bz2 75fce37933d872f51a0ac565969750e9a6d5fa1f libodb-qt-1.5.0.tar.gz 616f570e6cd81ef62e5fe667f130da824e360aed libodb-qt-1.5.0.zip 524e5e8270e076d79980ccd00d23e4fd4ce309c4 libodb-sqlite-1.5.0.tar.bz2 13dd93d505250c8faa1fa00aa942ad01598e37d9 libodb-sqlite-1.5.0.tar.gz 4b5c43c12624e0dfe67cfd8fc52a1156b4d3840a libodb-sqlite-1.5.0.zip 6610dc40b91eeb9e0af750e953b96ad68f17c521 libodb-tracer-1.5.0.tar.bz2 bf2f6e7f94536148099ebd27ff5e26b5529f0ff7 libodb-tracer-1.5.0.tar.gz feb41d35e960654de148fdf79101622f61761719 libodb-tracer-1.5.0.zip 450c3865a647c820d7d342bd5d258901de484c74 odb-1.5.0-i686-linux-gnu.tar.bz2 6c183a8a92be4529fe578e399d0647e0187b00ab odb-1.5.0-i686-macosx.tar.bz2 d09757b3937b34cbfee050a94ca981c96a0c7646 odb-1.5.0-i686-solaris.tar.bz2 5a1f1e467cfcee95de653718781be1948c1a1bd7 odb-1.5.0-i686-windows.zip a5d8ad8c2464d5cbd703d78c81b96a1253310cc6 odb-1.5.0-sparc-solaris.tar.bz2 46c77261904407c4d6497f5c3dc6daaf15a3032a odb-1.5.0.tar.bz2 17eb28531b33adb144ac48da9fa655d0618ead37 odb-1.5.0.tar.gz a957777b57cc55d4a380358485b3e2ef91dc8c63 odb-1.5.0-x86_64-linux-gnu.tar.bz2 fc4744c369d08410b12c0914dd196b97c15ea726 odb-1.5.0.zip 34aa18ced8354778536f090cd393ffe60a428008 odb-examples-1.5.0.tar.bz2 5eb3aac99cb9d1021b39e70f42da371b81f5e968 odb-examples-1.5.0.tar.gz b58715a23ce22f3833fe74b5831226a01a87b4a0 odb-examples-1.5.0.zip bdc4bfde9224a2ab03fecf35b82887449b3d902c odb-tests-1.5.0.tar.bz2 35c9ac71d8f403a68018d63d7e3b33cfb7525ec4 odb-tests-1.5.0.tar.gz 9a99081f4ab17ce900d0ffaf6e64f42dddb1a93c odb-tests-1.5.0.zip Enjoy, Boris From boris at codesynthesis.com Tue Oct 4 03:59:34 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Oct 4 04:00:34 2011 Subject: [odb-announcements] ODB 1.6.0 released Message-ID: Hi, We have released ODB 1.6.0. The NEWS file entries for this release are as follows: * New concept, view, is a C++ class that embodies a light-weight, read- only projection of one or more persistent objects or database tables or the result of a native SQL query execution. Some of the common applications of views include loading a subset of data members from objects or columns from database tables, executing and handling results of arbitrary SQL queries, including aggregate queries, as well as joining multiple objects and/or database tables using object relationships or custom join conditions. For more information refer to Chapter 9, "Views" in the ODB manual as well as the 'view' example in the odb-examples package. * New function, database::erase_query(), allows the deletion of the database state of multiple objects matching certain criteria. It uses the same query expression as the database::query() function. For more information, refer to Section 3.10, "Deleting Persistent Objects" in the ODB manual. * Support for value wrappers. An ODB value wrapper is a class template that wraps a value type or a container. Common examples of wrappers are smart pointers, holders, and "optional value" containers such as boost::optional. A wrapper can be transparent or it can handle the NULL semantics. To allow the easy conversion of value types that do not support the NULL semantics into the ones that do, the odb::nullable class template has been added. ODB now also includes built-in support for std::auto_ptr and std::tr1::shared_ptr smart pointers as value wrappers as well as for boost::shared_ptr and QSharedPointer via the Boost and Qt profiles. Currently, the NULL semantics is only supported for simple values but smart pointers can still be used with composite values and containers. For more information, refer to Section 7.3, "NULL Value Semantics" in the ODB manual. * Support for the boost::optional container in the Boost profile. A data member of the boost::optional type is mapped to a column that can have a NULL value. For more information, refer to Section 15.3 "Optional Library" in the ODB manual. * Support for mapping std::vector to the BLOB (or equivalent) types. For more information, refer to Chapters 11 (for MySQL), 12 (for SQLite) and 13 (for PostgreSQL) in the ODB manual. * New option, --table-prefix, allows the specification of a prefix that is added to table and index names. For more information, refer to the ODB compiler command line interface documentation (man pages). * New ODB runtime library interface, odb::connection, represents a connection to the database. The primary use case for a connection is to execute native statements outside of a transaction. For more information, refer to Section 3.5, "Connections" in the ODB manual. * Support for multiplexing several transactions on the same thread. For more information, refer to Section 3.4, "Transactions" in the ODB manual. * All the concrete connection classes now have a second constructor which allows the creation of a connection instance from an already established underlying connection handle. The connection_pool_factory and, in case of SQLite, single_connection_factory now have a virtual create() function that can be overridden to implement custom connection establishment and configuration. * The query expression syntax for object pointers and composite values has changed. Now, instead of using the scope resolution operator ('::'), the member access via a pointer operator (->) is used for object pointers and the member access operator (.) is used for composite values. Examples of old and new syntax for pointers, old: query::employer::name, new: query::employer->name. For composites values, old: query::name::first, new: query::name.first. * SQLite ODB runtime now enables foreign key constraints checking by default. While this should not affect correct applications, due to bugs in SQLite DDL foreign keys support, you may need to temporarily disable foreign key constraints checking when re-creating the database schema (the sign that you may need to do so is the "foreign key constraint failed" exception thrown by the commit() function after the call to schema_catalog::create_schema()). For more information, refer to Section 12.5.3, "Foreign Key Constraints" in the ODB manual. * Support for specifying the client character set for the MySQL database. For more information, refer to Section 11.2, "MySQL Database Class" in the ODB manual. * Object cache maintained by a session no longer distinguishes between const and non-const objects. Instead, const objects are treated as non-const by casting away constness. For more information on this new behavior, refer to Section 9.1, "Object Cache" in the ODB manual. This version has also been tested with the recently released PostgreSQL 9.1. We would like to thank everyone who reported bugs, shared test results, or helped test one of the alpha releases. 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: b52a982fa02ea8f6d1f5aa08c6b3e14d6441fdda libodb-1.6.0.tar.bz2 46ac4f44d50f337163689686c7b50630a5d596ec libodb-1.6.0.tar.gz bf56e3ae9c2e2945eaf3b59ae389d9dfd677ba02 libodb-1.6.0.zip d54ab619de4b49ae051ea874c4448d20f6063fe1 libodb-boost-1.6.0.tar.bz2 f265040f1fd787e8ab16881f38fd494a28029e12 libodb-boost-1.6.0.tar.gz 9a41f5fceed1b96e182c51c85f5c5e6acbda82d4 libodb-boost-1.6.0.zip 7ff5b7f800ea0bf22db272d66d8ee0a3b801da45 libodb-mysql-1.6.0.tar.bz2 9c2c8a4373e01f2c4eb49985e21f4c0b46d2147e libodb-mysql-1.6.0.tar.gz 519f905797132bd4142d67b055ad89942e40871c libodb-mysql-1.6.0.zip 1ad31db0215a39865286647738c675f98d6ad9eb libodb-pgsql-1.6.0.tar.bz2 8a89a85dd5011de379806a7cea341f87d8ee7058 libodb-pgsql-1.6.0.tar.gz d7b9187579a9217e158ea064889779d3683d1725 libodb-pgsql-1.6.0.zip 061c3af6108bf471e9a7792ca730a1d37a64efd8 libodb-qt-1.6.0.tar.bz2 b5977e3b9c57c0a56651002b41283b140bc5c05c libodb-qt-1.6.0.tar.gz 09e41a858116b1d557903a57d3735dd722b02490 libodb-qt-1.6.0.zip b0b63cf469a521bd61fae32eca9467e02b62af0d libodb-sqlite-1.6.0.tar.bz2 cdf175bd3741bf8c5a8b218410211f3d1162bbae libodb-sqlite-1.6.0.tar.gz e1a2f18777bae40e06c49fb6768c7def13c6e5a0 libodb-sqlite-1.6.0.zip e66a3667731701ae9853d87444e9c8b1afa4f4ff libodb-tracer-1.6.0.tar.bz2 829b50907d20a05d8f541fb2e87ed5041db20cbb libodb-tracer-1.6.0.tar.gz 57816e143d02630a75be808300caddaebd2a0b90 libodb-tracer-1.6.0.zip 128e14bd6cb8730222fc3b382cdb2780882173ca odb-1.6.0-i686-linux-gnu.tar.bz2 6eb1b1397ca76fa327d2d8d9b83fdb03eca25d51 odb-1.6.0-i686-macosx.tar.bz2 28c21fefc973a97ee7508f81f065bbb48c0902a9 odb-1.6.0-i686-solaris.tar.bz2 171ccb99559a615e0945f38a5e6d769f5714afd6 odb-1.6.0-i686-windows.zip 7bf0c43f087f454af04f2ba3c465bda62ce434c4 odb-1.6.0-sparc-solaris.tar.bz2 b839907c1705c1a75222a0143be62f06db5a5e28 odb-1.6.0.tar.bz2 ae0c8fc402ba984c978e7cdcd0df33cb742fea3e odb-1.6.0.tar.gz 18c95007d83a9f93bf517337f08063f3f80d548a odb-1.6.0-x86_64-linux-gnu.tar.bz2 e0b244bc6174bf4563546935017c4f9c975a0646 odb-1.6.0.zip d15d9f71035d2c9edecfeb73b24c3a809ecffa37 odb-examples-1.6.0.tar.bz2 fda3c66dc755e9e9c52f0e48551b289b2104158c odb-examples-1.6.0.tar.gz 9eb6e19306bd6b736050b5b6a68f04970e48582d odb-examples-1.6.0.zip 62b89e9f60865f42ad3d6b7a8ee744e13aa032ea odb-tests-1.6.0.tar.bz2 35354c115a274508481c263c0180492d65f3629b odb-tests-1.6.0.tar.gz 4e26c332c01d9fb5e46e688cf93acab72730a276 odb-tests-1.6.0.zip Enjoy, Boris From boris at codesynthesis.com Wed Oct 19 06:39:26 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Oct 19 06:39:10 2011 Subject: [odb-announcements] ODB compiler source 1.6.1 bugfix released Message-ID: Hi, A bugfix release for the ODB compiler source package version 1.6.0 is now available. It fixes an issue with profile path parsing in some GCC builds. You only need to upgrade if (1) you have built the ODB compiler from source code yourself (as opposed to using a binary package) and (2) you are experiencing the profile path parsing problem ("unable to parse profile paths" error when running the ODB compiler). For more information on this issue, refer to the following mailing list thread: http://www.codesynthesis.com/pipermail/odb-users/2011-October/000342.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: a47bd04dea968a852700310f8a6e560efb1eb244 odb-1.6.1.tar.bz2 1ccc57246c9410bced0f4ea6e64b50cf05a2cf52 odb-1.6.1.tar.gz 267a901723956f600102ac5738ef7ad76187da15 odb-1.6.1.zip Boris From boris at codesynthesis.com Mon Oct 31 10:41:02 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Oct 31 10:41:43 2011 Subject: [odb-announcements] ODB compiler source 1.6.2 bugfix released Message-ID: Hi, A new bugfix release for the ODB compiler source package is now available. It fixes an issue with plugin include paths in GCC 4.6. 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.6 and experiencing build problems. For more information on this issue, refer to the following mailing list thread: http://www.codesynthesis.com/pipermail/odb-users/2011-October/000370.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: c51343e310f838bc5e2780650cb1a2562099bdec odb-1.6.2.tar.bz2 428d5a9161e4fc33c95fb6329786f27b016b5485 odb-1.6.2.tar.gz 4b2adb85ddc835f8237cf822bd487e248491ad8c odb-1.6.2.zip Boris From boris at codesynthesis.com Tue Nov 1 09:38:24 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Nov 1 09:39:19 2011 Subject: [odb-announcements] libodb-qt 1.6.1 bugfix released Message-ID: Hi, A new bugfix release for the Qt ODB profile library and ODB compiler binary packages is now available. It fixes an issue with the QByteArray to BLOB mapping that affects Qt versions prior to 4.7. You only need to upgrade if you are using ODB with Qt version earlier than 4.7 and experiencing problems with reading a BLOB to QByteArray. For more information on this issue, refer to the following mailing list thread: http://www.codesynthesis.com/pipermail/odb-users/2011-October/000354.html Note that if you are using one of the ODB compiler binaries (as opposed to building one yourself from source code), then you need to upgrade both libodb-qt and the ODB compiler package for your platform. 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: 0753972b9c94aab34915e95ab9942b33a316a55c libodb-qt-1.6.1.tar.bz2 ee6a49aa53db1ddabe6e55dde9e2ce97c3348c46 libodb-qt-1.6.1.tar.gz a28d5c63e880cee75844879bc864f48834b3f76e libodb-qt-1.6.1.zip 2ce6d95ec9eb045b0fc7946d67df1512f41af0db odb-1.6.1-x86_64-linux-gnu.tar.bz2 82b74d019c35d7d433159e2eb67eccec6d94c71b odb-1.6.1-i686-linux-gnu.tar.bz2 a00439f207923491df4c0290334384e02236ca09 odb-1.6.1-i686-macosx.tar.bz2 80a1a56d3d8ece59132cfb47a18c313b10286c50 odb-1.6.1-i686-windows.zip Boris From boris at codesynthesis.com Wed Dec 7 01:23:39 2011 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Dec 7 01:32:59 2011 Subject: [odb-announcements] ODB 1.7.0 released Message-ID: Hi, We have released ODB 1.7.0. The NEWS file entries for this release are as follows: * Support for the Oracle 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 16, "Oracle Database" in the ODB manual. Note also that the Oracle runtime (libodb-oracle) is licensed under a different license compared to other database runtimes. For more information, refer to the ODB License page: http://www.codesynthesis.com/products/odb/license.xhtml * Support for optimistic concurrency. For more information refer to Chapter 11, "Optimistic Concurrency" in the ODB manual as well as the 'optimistic' example in the odb-examples package. * Support for read-only objects, composite value types, and data members. The new readonly pragma can be used to declare one of these entities as read-only. Constant data members are automatically treated as read-only. For more information, refer to Section 12.1.4 "readonly (object)", Section 12.3.6 "readonly (composite value)", and Section 12.4.10 "readonly (data member)" in the ODB manual. * Support for persistent classes without object identifiers. Such classes have to be explicitly declared as not having an object id and they have limited functionality. For more information, refer to Section 12.1.5 "id" in the ODB manual. * Support for SQL statement execution tracing. For more information, refer to Section 3.12 "Tracing SQL Statement Execution" in the ODB manual. * Support for mapping char[N], unsigned char[N], and std::vector to the BLOB (or equivalent) types. For more information, refer to Chapters 13 (for MySQL), 14 (for SQLite), 15 (for PostgreSQL), and 16 (for Oracle) in the ODB manual. * Query result iterator now provides the id() function which allows one to get the object id without loading the object. For more information, refer to Section 4.4 "Query Result" in the ODB manual. * Support for microsecond precision in Boost and Qt date-time types mapping to PostgreSQL date-time data types. Additionally, Qt QDateTime values stored in a PostgreSQL database can now be earlier than the UNIX epoch. We would like to thank everyone who reported bugs, shared test results, or helped test one of the pre-releases. 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: 0d3b0a28f8532004e63bb0365622c3a658c06205 libodb-1.7.0.tar.bz2 a5e5b0bf02a47c59304de26a8fce686a6b4aae2c libodb-1.7.0.tar.gz f2c226e29a9c3d8a2eb95c7677b8f8d6afa3ed36 libodb-1.7.0.zip 740535a34068d86b07a76905f0eb7ecd101936fa libodb-boost-1.7.0.tar.bz2 a923ccfd25d3e8347acac96cf38786397b8d4486 libodb-boost-1.7.0.tar.gz c5e59f3564c50729b82fd05e05cb7982fbcd5ba7 libodb-boost-1.7.0.zip 29db3f052af9b3258fe0a0f8f716f9e6f227e714 libodb-mysql-1.7.0.tar.bz2 2a54a48c35c089514ad434e9e73e042e831bbd0c libodb-mysql-1.7.0.tar.gz 560a779fe2430faf988285b22c232492753aaa25 libodb-mysql-1.7.0.zip fe134e9a244ce8f986d0110d3b3531b74b3591bf libodb-oracle-1.7.0.tar.bz2 043684bd2d653505aec0171702de9d6590490334 libodb-oracle-1.7.0.tar.gz 01c28424a029550370bcd3cb46fa13de76fcf62e libodb-oracle-1.7.0.zip a9123cf7913d92b9628fddfe0d5a7b84278a0857 libodb-pgsql-1.7.0.tar.bz2 65c315c9598076790a3a7583f3d27f5a4cb934a7 libodb-pgsql-1.7.0.tar.gz 42ad4f9b2c7e629dd4758326958c4030a980d77f libodb-pgsql-1.7.0.zip a4a649541a587b14062d3e8745f5b463c0ecd1fb libodb-qt-1.7.0.tar.bz2 70c3a7ba3c9bd866a78bfdc61d33ae916eb56833 libodb-qt-1.7.0.tar.gz eb647c83e6b4c8a01fbe7ea8c4ea7a4341ea7ae1 libodb-qt-1.7.0.zip 741cb49b209cf77831f5acfc9c24d4aefa842b12 libodb-sqlite-1.7.0.tar.bz2 6fa65296b293e7f395bba2412db581b993c398ad libodb-sqlite-1.7.0.tar.gz 10b014e36d9f7693537f4a8e1128e5984f1be6b1 libodb-sqlite-1.7.0.zip 08074365c117cfe0d12d14722785d0014ce9edf1 odb-1.7.0-i686-linux-gnu.tar.bz2 9348c65ca0ee2322ec54d66cd2a7acaaaf04ccf3 odb-1.7.0-i686-macosx.tar.bz2 f54907dd1841fd6ca856850af00ec7f416f42bd0 odb-1.7.0-i686-solaris.tar.bz2 71c15eff6168737339d46cae550915d83450120d odb-1.7.0-i686-windows.zip d869bd861c248ab3ce44d3ad4734db99ddfbfaa5 odb-1.7.0-sparc-solaris.tar.bz2 2129fecf4ed48fa693475bc91c993e20753b4f4c odb-1.7.0.tar.bz2 8f9a1eab52a53dfe1d999819ea42cae69355f3a7 odb-1.7.0.tar.gz 4081899d36f4e1c10e002ecefc298e1f690daf71 odb-1.7.0-x86_64-linux-gnu.tar.bz2 8db754e797ee0ba5f519cd912b0cb9f56fb576cd odb-1.7.0.zip 7e5fafcb0b79211202e43505014d5234ff0e0743 odb-examples-1.7.0.tar.bz2 2870fe8d3b7d4e9e887391a899e326f5d554b648 odb-examples-1.7.0.tar.gz 5ebf67b694441b80bc7de5d987dbb95e79c3a211 odb-examples-1.7.0.zip 8cc2d39ddd91a79cccab623c131ee5cf8b9ee6ff odb-tests-1.7.0.tar.bz2 8a6a75bedc7f24eb6a6cfaa843d9189b2198919d odb-tests-1.7.0.tar.gz add1e682b822e2accae75fe02ef339c0c79a1b88 odb-tests-1.7.0.zip Enjoy, Boris