summaryrefslogtreecommitdiff
path: root/odb/relational/source.hxx
AgeCommit message (Collapse)AuthorFilesLines
2012-01-25Rename --default-schema to --schema-nameBoris Kolpackov1-1/+1
2012-01-20Add support for case where we don't send auto object id in INSERTBoris Kolpackov1-4/+11
2012-01-20Handle delayed result set freeing in all placesBoris Kolpackov1-11/+35
2012-01-20Do not select object id in container SELECT statementBoris Kolpackov1-7/+8
2012-01-20ODB compiler implementation, traits, and types test for SQL ServerBoris Kolpackov1-143/+246
2012-01-08Add support for defining composite value type as class template instantiationsBoris Kolpackov1-21/+23
2011-11-18Add newlines to the multi-line embedded schema creation statementsBoris Kolpackov1-3/+4
2011-11-15Add call to select_statement::stream_data for container types in OracleConstantin Michael1-0/+11
2011-11-09Make sure we can use same type as both container and simple valueBoris Kolpackov1-9/+6
2011-11-01Implement support for optimistic concurrencyBoris Kolpackov1-37/+280
New pragmas: optimistic, version. New test: optimistic. New database function: reload().
2011-11-01Rework statement interfaces wrt param/result passingBoris Kolpackov1-17/+31
2011-11-01Implement query image change callback machineryConstantin Michael1-0/+7
2011-10-27Add support for persistent classes without object idsBoris Kolpackov1-175/+197
New pragma id (object). New test: common/no-id.
2011-10-24Generate database schema from database model instead of C++ modelBoris Kolpackov1-15/+71
We now first create the so-called database model from C++ model and then use that to generate the database schema. The new approach also adds more general support for primary/foreign keys, including multi- column keys. Finally, for MySQL we now generate out-of-line foreign key definitions. Because MySQL does not support deferred constraints checking, deferred foreign keys are written commented out, for documentation.
2011-10-21Add support for const data membersBoris Kolpackov1-20/+58
Const data members are automatically treated as readonly. New test: const-member.
2011-10-21Add support for readonly membersBoris Kolpackov1-87/+164
New pragma: readonly. New test: readonly.
2011-10-21Split 'in' binding into insert/update pair; rename 'out' to selectBoris Kolpackov1-99/+196
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-21Refactor persist statement hookConstantin Michael1-24/+19
2011-10-21Rename relational::context::use_as to relational::context::need_alias_asConstantin Michael1-6/+6
2011-10-21Aesthetic changes and small bug fixesConstantin Michael1-3/+4
2011-10-21Add persist_stmt hook to handle generation of persist statement SQLConstantin Michael1-9/+28
ODB requires that Oracle persist statements include a RETURNING clause so that a generated auto_id column value may be returned.
2011-10-21Use cached auto_id flag to determine presence of auto increment columnConstantin Michael1-21/+6
2011-10-21Add init_value_extra hook to relational source generationConstantin Michael1-5/+16
2011-10-21Add flag to context indicating whether to generate grow codeConstantin Michael1-45/+72
2011-10-03Use traditional const placementBoris Kolpackov1-2/+2
2011-10-02If query substituting placeholder is empty, pass true expression insteadBoris Kolpackov1-5/+15
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-27Add support for associating tables with viewsBoris Kolpackov1-30/+106
2011-09-21Rework const object handlingBoris Kolpackov1-57/+13
Now objects are always loaded as non-const and the object cache in session treats all objects as non-const.
2011-09-20Rename query_clause to query_statement for consistencyBoris Kolpackov1-7/+7
2011-09-19Rename generation_failed exception to operation_failedBoris Kolpackov1-6/+6
A more generic name is required since it is now used in both generator and processor (and in the future may be used validator).
2011-09-19Use query_base_type instead of query_type as argument typeBoris Kolpackov1-5/+5
The base type is sufficient.
2011-09-19Rename error.?xx to diagnostics.?xxBoris Kolpackov1-1/+1
2011-09-16Don't use DISTINCT in generated SELECT statementsBoris Kolpackov1-4/+1
We needed it before for objects that involved relationships (and therefore JOINs) but it appears with the new JOIN handling approach (no merging of multiple relationships into a single JOIN), we don't need DISTINCT anymore. All the tests pass and all the examples produce identical output with and without DISTINCT.
2011-09-16Support for views; integrated partBoris Kolpackov1-21/+756
2011-09-09New templated query_columns architectureBoris Kolpackov1-119/+62
We also now use the correct separate "role"-base join approach instead of having a single merged join for each table.
2011-09-05Support for views; native partBoris Kolpackov1-48/+209
2011-08-31Rename comp_value() predicate to composite()Boris Kolpackov1-10/+10
2011-08-31Cosmetic changes and cleanupsBoris Kolpackov1-30/+35
Rename some functions to have consistent names. Add object() predicate.
2011-08-28Add wrapper support for containersBoris Kolpackov1-10/+23
2011-08-28Add wrapper support for composite valuesBoris Kolpackov1-10/+32
NULL semantics for composite values is not yet supported.
2011-08-25Add experimental code (commented out) for DELETE JOIN supportBoris Kolpackov1-1/+11
This would be needed to support object relationships in the erase_query() functionality.
2011-08-22Add database::erase_query() functionBoris Kolpackov1-19/+58
New test: common/erase-query. Documentation is in Section 3.9, "Deleting Persistent Objects". The current implementation does not work well with the session (no removal of the erased objects from the cache).
2011-08-21Add support for multi-pass database schema dropBoris Kolpackov1-20/+45
2011-08-19Rework query machinery not to use '_' as primary table aliasBoris Kolpackov1-21/+54
Now we always qualify with the actual table name and use the '_' alias for situations where an object is referencing itself.
2011-08-19Make container object_id reference the objectBoris Kolpackov1-4/+10
Make it ON DELETE CASCADE. Also in erase(), delete the container rows first.
2011-08-18Fix custom recursive loading in post_load callbackBoris Kolpackov1-2/+2
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-07-08Have separate table set for each schema generation passBoris Kolpackov1-17/+11
2011-07-05Add support for multi-pass database schema generationBoris Kolpackov1-50/+129
2011-07-05Add query_statment_ctor and post_query_ hooks to relational source generationConstantin Michael1-7/+25
2011-07-05Fully qualify all references to odb::details namespaceConstantin Michael1-8/+8