aboutsummaryrefslogtreecommitdiff
path: root/odb/relational
AgeCommit message (Collapse)AuthorFilesLines
2016-04-04Add _has_cache() custom session interface, use in OLV implementationBoris Kolpackov1-1/+1
2016-03-30Assert that statements are not already locked in top-level callsBoris Kolpackov2-0/+3
This can be violated with crafty callbacks.
2015-10-27Recognize /*CALL*/ hint in SELECT statements that call stored proceduresBoris Kolpackov1-0/+15
2015-10-14Fix bug in section's grow() generationBoris Kolpackov1-0/+3
2015-10-07Add support for using object pointers as map keysBoris Kolpackov1-1/+1
Also remove the restriction for map keys and set values to be NOT NULL. Not clear why it was there in the first place and it could be useful if the key or value is an object pointer.
2015-09-18Fix bug in object loading views and objects with nested idsBoris Kolpackov1-3/+17
2015-09-07Unwrap the type before checking whether it is unsignedBoris Kolpackov2-1/+4
2015-08-24Fix inconsistent composite value member prefix derivationBoris Kolpackov3-4/+4
2015-07-30Export container and section traitsBoris Kolpackov1-2/+2
2015-07-15Implement SQLite incremental BLOB/TEXT I/OBoris Kolpackov14-58/+376
2015-07-03Implement nested id supportBoris Kolpackov12-81/+111
Now the 'id' specifier can optionally include the data member path to the id inside the composite value. For example: #pragma db id(first) std::pair<int, int> p; Note that one somewhat counter-intuitive aspect of this new feature is that the whole member marked with id ('p' in the above example) and not just the actual id member ('p.first' in the above example) is treated as readonly. Such nested id also cannot be automatically assigned (auto specifier).
2015-07-02C++ type mapping support for container elementsasBoris Kolpackov28-212/+293
2015-07-01C++ type mapping support for data membersBoris Kolpackov3-50/+82
2015-06-24Cleanup of member accessBoris Kolpackov3-383/+136
2015-06-22Implement member type mapping, more m.type() cleanupsBoris Kolpackov3-11/+11
2015-06-22Get rid of member_[u]type(), other cleanupsBoris Kolpackov2-3/+3
2015-06-19Populate custom type map, make available in contextBoris Kolpackov1-20/+0
2015-06-19Parse C++ type mappingBoris Kolpackov1-0/+20
2015-06-16Use (!) to denote database in modifier expressionsBoris Kolpackov2-6/+18
2015-06-16Redo index members parsing to use new resolve_data_members()Boris Kolpackov1-80/+5
2015-06-16Implement support for nested members in inverse pragmaBoris Kolpackov4-77/+76
2015-06-15Add points_to pragmaBoris Kolpackov2-27/+73
Currently does not support containers.
2015-06-03Remove gratuitous classesBoris Kolpackov2-23/+12
In the process also get rid of global class processor which conflicts with enum processor on MIPS.
2015-02-07Fix to work with GCC 5Boris Kolpackov1-1/+1
2015-02-06Update copyrightBoris Kolpackov71-71/+71
2015-02-06Implement join types support in viewsBoris Kolpackov5-13/+123
2015-02-05Implement result modifiers in view query conditionBoris Kolpackov6-2/+69
2015-02-04Implement object loading viewsBoris Kolpackov28-1227/+2094
See section 10.2 in the manual for details.
2015-01-26Add column count to composite value traitsBoris Kolpackov1-0/+3
This will hopefully be enough to implement SQL Server TVP (Table-Valued Parameters) in runtime only, when we get to it.
2015-01-23Handle SQL name limits in MySQL and SQL ServerBoris Kolpackov2-1/+25
2015-01-23Handle name truncation in PostgreSQLBoris Kolpackov3-18/+115
2015-01-22Add support for warning about SQL name truncations in OracleBoris Kolpackov3-11/+175
Also detect and issue diagnostics when such truncations lead to name conflicts.
2014-11-26Implement optimistic concurrency support in bulk operationsBoris Kolpackov5-41/+218
Bulk update and SQL Server ROWVERSION not yet supported.
2014-11-26Reimplement image copying for OracleBoris Kolpackov1-1/+1
Now we no longer "steal" descriptors (destructive copy). Instead, for LOBs, we clone the locator using OCILobAssign(). For date-time types we extract the data during copying. As a result of this change we no longer need to track image changes and rebind the statements.
2014-11-25Implement bulk database operation support for Oracle and SQL ServerBoris Kolpackov17-10/+664
2014-11-19Allow empty runtime and execute viewsBoris Kolpackov3-46/+70
Use them to handle INSERT/UPDATE SQL Server stored procedures.
2014-09-06Fix bug in view query assembly for stored procedure callBoris Kolpackov1-1/+1
2014-09-05Use scope of name used in pragma for template instantiationsBoris Kolpackov1-1/+1
2014-08-29Pass non-const image to clone_image(), copy_image()Boris Kolpackov2-4/+8
This is necessary since some databases need to steal stuff from the original image (e.g., LOB descriptors in Oracle).
2014-08-18Diagnose index definition on inverse memberBoris Kolpackov1-1/+9
2014-06-23Cut out pointer-to-id traversal so that we don't go into composite idsBoris Kolpackov3-0/+24
2014-06-09Fix error messageBoris Kolpackov1-1/+1
2013-12-04Implement on_delete pragma for object pointersBoris Kolpackov4-2/+83
Translates to the ON DELETE SQL clause.
2013-10-15Automatically map C++11 enum classes (strong enums)Boris Kolpackov5-64/+31
2013-09-28Rework migration API in schema_catalogBoris Kolpackov1-2/+14
Specifically: - Rename latest_version() to current_version(). - Change next_version() to return one past current instead of 0 if passed current. - migrate() will now do schema creation if current database version is 0 (no schema).
2013-09-28Make schema version access (but not modification) thread-safeBoris Kolpackov3-99/+105
Also cache the version in statements so that we don't have to lock the mutex (slow) every time we need to check the version.
2013-09-28Don't ignore empty changesetsBoris Kolpackov1-8/+6
This can be useful, for example, in data-only migrations.
2013-09-17Fix polymorphic section index overrun2.3.0.b1Boris Kolpackov1-8/+19
2013-09-17Add schema name to changelogBoris Kolpackov1-1/+2
2013-09-17Add support for defining composite values inside persistent classes, etcBoris Kolpackov5-44/+129