summaryrefslogtreecommitdiff
path: root/odb/relational
AgeCommit message (Collapse)AuthorFilesLines
2019-01-16Update copyright yearKaren Arutyunov71-71/+71
2018-11-14Fix GCC maybe used uninitialized warningBoris Kolpackov1-1/+3
2018-05-24Update copyright yearKaren Arutyunov71-71/+71
2017-11-13Get rid or warningBoris Kolpackov1-0/+1
2017-11-07Get rid of GCC 7 case fall-through warningsBoris Kolpackov4-16/+8
2017-09-15Rename variable in generated code to avoid conflictBoris Kolpackov1-6/+6
This allows "unofficial" (as in, it compiles but hasn't been reviewed or tested) use of object pointers as object ids.
2017-06-22Handle ON DELETE and DEFERRABLE in special SQLite migration codeBoris Kolpackov1-0/+15
2017-05-23Fix bug in handling section members that require growth, part 2Boris Kolpackov1-2/+8
2017-04-06Map string keys to MySQL VARCHAR(128) instead of 255 to support 4-byte UTF-8Boris Kolpackov2-2/+2
This is a backwards-incompatible change in that it may change your schema. To obtain the old behavior you will have to explicitly re-map std::string with the id_type pragma or explicitly specify the database type for each affected id member with the type pragma.
2017-03-27Implement support for mixed auto/0 id assignment in MySQLBoris Kolpackov1-1/+12
Now one can do: odb::nullable<int64_t> id; And then, when used with NO_AUTO_VALUE_ON_ZERO, set the id to NULL to get auto-assignment or to 0 to use 0 as the id.
2017-01-03Update copyright yearBoris Kolpackov71-71/+71
2016-11-27Fix bug in handling section members that require growthBoris Kolpackov9-28/+51
2016-10-26Implement support for mixed auto/manual id assignment in SQLiteBoris Kolpackov3-4/+16
Now one can do: #pragma db id auto odb::nullable<int64_t> id; And then set the id to NULL to get auto-assignment or to the actual value to use a manual id.
2016-08-15Lock object statements when loading sectionsBoris Kolpackov1-31/+59
Since we use the id image and loading of object pointers can overwrite it.
2016-08-08Add note on need to recognize database-specific list of statement prefixesBoris Kolpackov1-0/+5
2016-05-04Ignore section logic when dealing with container elementsBoris Kolpackov3-3/+15
The container member itself can be in a section.
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.