aboutsummaryrefslogtreecommitdiff
path: root/odb/pragma.cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-05-24Update copyright yearKaren Arutyunov1-1/+1
2017-11-07Get rid of GCC 7 case fall-through warningsBoris Kolpackov1-3/+2
2017-01-03Update copyright yearBoris Kolpackov1-1/+1
2016-12-28Fix GCC 6 issue with PRAGMA_DB macroBoris Kolpackov1-4/+4
In GCC 6 we use the position of the macro expansion, not the position inside the macro itself. This means that multiple pragmas inside PRAGMA_DB will all have the same position which we were not handling properly.
2015-10-07Add support for using object pointers as map keysBoris Kolpackov1-1/+25
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-07-10Keep track of {}-balance in addition to ()-balance in expressionsBoris Kolpackov1-6/+16
This allows us, for example, to use brace-initializer syntax.
2015-07-03Add support for defining views as class template instantiationsBoris Kolpackov1-3/+10
2015-07-03Implement nested id supportBoris Kolpackov1-0/+38
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-01C++ type mapping support for data membersBoris Kolpackov1-0/+1
2015-06-19Populate custom type map, make available in contextBoris Kolpackov1-53/+48
2015-06-19Parse C++ type mappingBoris Kolpackov1-44/+106
2015-06-19Distinguish between database and C++ type mappingBoris Kolpackov1-8/+89
2015-06-16Implement before/after pragmas for virtual data member orderingBoris Kolpackov1-34/+159
2015-06-16Implement support for nested members in inverse pragmaBoris Kolpackov1-2/+19
2015-06-15Add points_to pragmaBoris Kolpackov1-0/+68
Currently does not support containers.
2015-02-07Fix to work with GCC 5Boris Kolpackov1-21/+6
2015-02-06Update copyrightBoris Kolpackov1-1/+1
2015-02-06Implement join types support in viewsBoris Kolpackov1-2/+66
2015-02-05Implement result modifiers in view query conditionBoris Kolpackov1-2/+58
2015-02-04Implement object loading viewsBoris Kolpackov1-8/+15
See section 10.2 in the manual for details.
2014-11-25Implement bulk database operation support for Oracle and SQL ServerBoris Kolpackov1-2/+45
2014-10-27Use expansion point rather than macro location in GCC 4.7.0 and laterBoris Kolpackov1-1/+1
2014-08-06Make sure persistent class templates are fully instantiatedBoris Kolpackov1-6/+17
2014-05-05GCC 4.9.0 compatibility fixesBoris Kolpackov1-2/+2
2013-12-04Implement on_delete pragma for object pointersBoris Kolpackov1-0/+42
Translates to the ON DELETE SQL clause.
2013-08-28Support for added and deleted data member pragmasBoris Kolpackov1-4/+27
2013-08-16Implement soft delete for persistent classesBoris Kolpackov1-3/+61
2013-08-14Add support for object sectionsBoris Kolpackov1-1/+156
Sections are an optimization mechanism that allows the partitioning of data members of a persistent class into groups that can be separately loaded and/or updated.
2013-05-17Use primary type node to resolve virtual data member classBoris Kolpackov1-1/+1
2013-04-26Use open, closed names in version pragmaBoris Kolpackov1-5/+5
2013-04-10Add model version pragmaBoris Kolpackov1-21/+134
2013-02-09Update copyright yearBoris Kolpackov1-1/+1
2012-11-21Move some of the preprocessing from relational to commonBoris Kolpackov1-37/+73
2012-10-29Suppress warningBoris Kolpackov1-1/+1
2012-10-25Add support for database prefixes in pragma languageBoris Kolpackov1-36/+221
2012-09-17Convert integer and floating default values immediately2.1.0Boris Kolpackov1-14/+50
It appears that GCC 4.8 reuses token tree nodes that are returned during pragma parsing. So saving such nodes for later no longer works.
2012-09-09Use new multi-index support from libcutlBoris Kolpackov1-2/+2
2012-09-06Rename id() to no_idBoris Kolpackov1-33/+15
2012-08-31Issue better diagnostics for virtual member without nameBoris Kolpackov1-1/+16
2012-08-31Add support for virtual data membersBoris Kolpackov1-83/+341
New test: common/virtual.
2012-08-16Add support for automatically discovering accessor/modifier functionsBoris Kolpackov1-1/+1
New options: --{accessor,modifier}-regex, --{accessor,modifier}-regex-trace.
2012-08-15Add support for member accessors/modifiersBoris Kolpackov1-9/+53
New pragmas: get, set, access. New test: common/access.
2012-07-31Add support for changing location that ODB views as class definitionBoris Kolpackov1-1/+15
This is useful for making third-party/system types into ODB composite value types. New pragma: definition. New test: common/definition.
2012-07-27Add support for defining indexesBoris Kolpackov1-96/+503
New db pragma qualifier: index. New tests: common/index, mysql/index, pgsql/index.
2012-07-27Use cxx_lexer interface instead of pragma_lex() directlyBoris Kolpackov1-289/+309
This will allow us to use different kinds of cxx_lexer implementations in the future.
2012-07-10Add support for custom database type mappingBoris Kolpackov1-97/+241
New pragma qualifier, map, and specifiers: as, to, from. New tests: <database>/custom.
2012-04-26Make session optionalBoris Kolpackov1-0/+47
2012-04-23Polymorphic inheritance supportBoris Kolpackov1-1/+14
2012-03-05Add support for specifying object/view pointer on namespaceBoris Kolpackov1-2/+12
2012-03-02Get rid of uninitialized variable warningsBoris Kolpackov1-1/+1