aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-09-19Add assertion for mismatch of result set column count in MySQL and SQLiteBoris Kolpackov1-0/+7
This is useful for detecting native views that happened to have stray data members. Also update comment in PostgreSQL.
2011-09-16Support for views; integrated partBoris Kolpackov6-42/+135
2011-09-09New templated query_columns architectureBoris Kolpackov3-62/+77
We also now use the correct separate "role"-base join approach instead of having a single merged join for each table.
2011-09-06Support for views; native partBoris Kolpackov15-87/+537
2011-09-06Allow select statement without parametersBoris Kolpackov2-3/+18
2011-08-30Add comment with some explanationsBoris Kolpackov1-0/+4
2011-08-30Implement uniform handle management across all databasesBoris Kolpackov5-21/+129
Also use the auto_handle template instead of the raw handle in connection, statement, and result classes. This removes a lot of brittle "exception safety guarantee" code that we had in those classes.
2011-08-30Add default value for extra_flags argumentBoris Kolpackov2-3/+3
2011-08-28Add create() hook to connection factoriesBoris Kolpackov2-36/+75
This will allow the user to either establish the connection themselves (using the handle c-tor) and/or configure the connection post-creation.
2011-08-28Add support for creating connection from existing handleBoris Kolpackov2-2/+26
This will allow for custom connection establishment and configuration.
2011-08-24Add support for transaction multiplexingBoris Kolpackov8-39/+64
Also delay getting a connection until after we do all the sanity checks (e.g., that there is no active transaction). Otherwise we are running risk of getting blocked rather than throwing an exception.
2011-08-22Bump version to 1.6.0.a11.6.0.a1Boris Kolpackov2-4/+4
2011-08-22Enable foreign key constraints checking in SQLiteBoris Kolpackov3-2/+26
Due to bugs in SQLite DDL foreign key support, we have to temporarily disable foreign keys when re-creating the schema. New manual section: 12.5.3, "Foreign Key Constraints".
2011-08-21Add odb::connection classBoris Kolpackov10-70/+127
This abstract class represents a connection to the database. One can use it to start a transaction or to execute a native statement out of a transaction. Before we had concrete connection classes in the database runtime libraries (e.g., odb::mysql::connection). Now these classes derive from odb::connection.
2011-08-19Rework query machinery not to use '_' as primary table aliasBoris Kolpackov3-66/+151
Now we always qualify with the actual table name and use the '_' alias for situations where an object is referencing itself.
2011-08-18Fix custom recursive loading in post_load callbackBoris Kolpackov4-3/+45
Before we called the callback while holding the statements locked. As a result, if the callback tried to load another object of this type, it failed. Now we unlock the statements (since we have completely loaded the object from ODB's point of view) and then call the callback. The callback test has been updated to test this situation.
2011-08-04Merge branch 'wrapper'Boris Kolpackov1-1/+118
2011-08-04Add support for value wrappersBoris Kolpackov1-1/+118
Wrapper is a class that wraps another type. Examples of wrappers are various smart pointers, holders, etc. A wrapper can be transparent or it can handle the NULL semantics. The new odb::nullable class template is a NULL wrapper that helps to add the NULL semantics to a value type. New test: common/wrapper.
2011-07-31Minor optimizationBoris Kolpackov1-1/+1
2011-07-28Add value_traits specializations for std::vector<char>Boris Kolpackov2-0/+56
This allows using it as a buffer for BLOB mapping.
2011-07-27Bump version to 1.6.0Boris Kolpackov2-4/+4
2011-07-25Bump version to 1.5.01.5.0Boris Kolpackov2-4/+4
2011-07-04Implement support for database operations callbacksBoris Kolpackov3-8/+48
New object pragma: callback. New test: common/callback. New manual section: 10.1.4, "callback".
2011-06-30Check if truncated pointer is not NULL before dereferencing itBoris Kolpackov1-3/+3
2011-04-27Work around VC++ bugs1.4.0Boris Kolpackov2-2/+3
2011-04-26Bump version to 1.4.0Boris Kolpackov2-4/+4
2011-04-25Reuse container traits from base objectsBoris Kolpackov2-14/+62
2011-04-25Pass id binding instead of id image in container traitsBoris Kolpackov4-26/+36
This will allow us to reuse things more.
2011-04-25Check if truncation flag pointer is NULL before setting itBoris Kolpackov1-2/+5
2011-04-22Initial support for non-polymorphic inheritanceBoris Kolpackov1-1/+2
Every class gets a separate table. New test: common/inheritance.
2011-04-18Get rid of image type argument in value_traitsBoris Kolpackov3-20/+35
2011-04-05Bump version to 1.3.01.3.0Boris Kolpackov2-4/+4
2011-04-05Cosmetic changeBoris Kolpackov1-2/+0
2011-03-31Bump version to 1.3.0.b1Boris Kolpackov2-4/+4
2011-03-31Update installation instructionsBoris Kolpackov1-0/+116
2011-03-31Add VC++ project/solution files for SQLiteBoris Kolpackov7-1/+644
2011-03-31Add error code to string returned by what()Boris Kolpackov2-1/+12
2011-03-30Cosmetic changeBoris Kolpackov1-1/+1
2011-03-30SQLite library name is sqlite3.lib, not sqlite.libBoris Kolpackov2-16/+16
2011-03-30Export result_impl_baseBoris Kolpackov1-3/+3
2011-03-30Add autotools test for SQLite unlock notify featureBoris Kolpackov3-0/+29
2011-03-30Update to 1.2.0 in line with version.hxxBoris Kolpackov1-1/+1
2011-03-29Add single_connection_factoryBoris Kolpackov2-0/+121
2011-03-29Release connection immediately after commit or rollbackBoris Kolpackov1-2/+2
2011-03-29Support for shared cache and unlock notificationBoris Kolpackov7-29/+173
2011-03-29Update import stub with bug fixBoris Kolpackov1-1/+1
2011-03-29Add support for starting immediate and exclusive transactionsBoris Kolpackov6-7/+102
2011-03-28Fix bugs in active/uncached list maintenanceBoris Kolpackov1-1/+7
2011-03-25Use forward-declared query class in result interfaceBoris Kolpackov4-5/+17
2011-03-25Make queries without by-reference parameters immutableBoris Kolpackov2-25/+59
This makes it possible to share such queries between multiple threads without the need for synchronization.