aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-11-09Avoid copying statement text if it is statically allocatedBoris Kolpackov4-44/+234
2011-11-07Add support for SQL statement tracingBoris Kolpackov12-6/+289
2011-11-03Add support for mapping char[N] and unsigned char[N] types to BLOB1.7.0.a1Boris Kolpackov2-2/+77
New test: common/blob.
2011-11-03Add support for mapping std::vector<unsigned char> to BLOB typesBoris Kolpackov2-1/+58
2011-11-02Bump version to 1.7.0.a1Boris Kolpackov2-4/+4
2011-11-02Optimize load_id(), load() sequence for SQLite and PostgreSQLBoris Kolpackov2-3/+4
In these databases both of these functions load the data into the object image. If there is no chance of image overwrite between these calls, then we don't need to load the image the second time.
2011-11-01Implement support for optimistic concurrencyBoris Kolpackov4-36/+133
New pragmas: optimistic, version. New test: optimistic. New database function: reload().
2011-10-30Rework statement interfaces wrt param/result passingBoris Kolpackov4-110/+104
2011-10-28Implement returning of auto id using RETURNING clause in PostgreSQLBoris Kolpackov4-28/+53
Before we used a separate SELECT lastval() query which was both inefficient and error-prone in cases where INSERT may cause triggers to override the last value.
2011-10-27Make sure output directory exist before generating config.hBoris Kolpackov1-1/+1
2011-10-27Add support for persistent classes without object idsBoris Kolpackov9-50/+342
New pragma id (object). New test: common/no-id.
2011-10-21Add support for const data membersBoris Kolpackov1-3/+6
Const data members are automatically treated as readonly. New test: const-member.
2011-10-21Split 'in' binding into insert/update pair; rename 'out' to selectBoris Kolpackov4-116/+143
Also add the initial infrastructure for the readonly members support. Right now the split insert/update bindings allows us to avoid sending object id in UPDATE statements. It will also allows us to support readonly members.
2011-10-21Rename configure script variables for consistencyConstantin Michael2-7/+7
2011-10-19Mention autotools as prerequisite in INSTALL-GITBoris Kolpackov1-1/+6
2011-10-03Work around bug in Sun CC1.6.01.6Boris Kolpackov3-2/+17
2011-10-03Export query operators that were made non-inlineBoris Kolpackov1-3/+3
2011-10-03Bump version to 1.6.0Boris Kolpackov2-4/+4
2011-10-02If query substituting placeholder is empty, pass true expression insteadBoris Kolpackov2-59/+142
This allows uniform usage of views both with and without any extra conditions. Also optimize some common cases so that we don't have useless WHERE TRUE clauses or (...) AND (TRUE) expressions.
2011-09-22Add const char[n] value_traits specialization in addition to char[n]1.6.0.a2Boris Kolpackov1-0/+18
2011-09-21Rework const object handlingBoris Kolpackov2-7/+5
Now objects are always loaded as non-const and the object cache in session treats all objects as non-const.
2011-09-20Bump version to 1.6.0.a2Boris Kolpackov2-4/+4
2011-09-19Add assertion for mismatch of result set column count in MySQL and SQLiteBoris Kolpackov1-0/+5
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 Kolpackov5-28/+130
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-97/+533
2011-09-06Allow select statement without parametersBoris Kolpackov2-8/+29
2011-08-30Add comment with some explanationsBoris Kolpackov1-0/+4
2011-08-30Implement uniform handle management across all databasesBoris Kolpackov9-173/+190
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-28Add create() hook to connection factoriesBoris Kolpackov2-18/+38
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-7/+26
This will allow for custom connection establishment and configuration.
2011-08-24Add support for transaction multiplexingBoris Kolpackov8-19/+47
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-22Remove stray function declarationsBoris Kolpackov1-6/+0
2011-08-22Add support for constructing delete_statement with native binding onlyBoris Kolpackov2-3/+24
This is similar to what we do in select_statement.
2011-08-21Add odb::connection classBoris Kolpackov10-67/+116
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-118/+152
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/+227
2011-08-04Add support for value wrappersBoris Kolpackov1-1/+227
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/+52
This allows using it as a buffer for BLOB mapping.
2011-07-27Bump version to 1.6.0Boris Kolpackov2-4/+4
2011-07-25Suppress warnings1.5.0Boris Kolpackov1-5/+5
2011-07-25Suppress warningsBoris Kolpackov2-8/+8
2011-07-25Update INSTALL fileBoris Kolpackov1-7/+7
2011-07-25Remove @@ notes that no longer applyBoris Kolpackov1-2/+0
2011-07-25Bump version to 1.5.0Boris Kolpackov2-4/+4
2011-07-25Avoid unnecessary initializationBoris Kolpackov1-1/+1
2011-07-24Always initialize format and size values in native_bindConstantin Michael1-1/+3