summaryrefslogtreecommitdiff
path: root/odb/processor.cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-05-24Update copyright yearKaren Arutyunov1-1/+1
2018-04-15Try harder to find name hint for unwrapped typeBoris Kolpackov1-1/+9
2017-11-07Adapt to changes in GCC 8Boris Kolpackov1-8/+22
2017-11-07Switch to C++11, get rid of auto_ptr useBoris Kolpackov1-3/+3
2017-01-03Update copyright yearBoris Kolpackov1-1/+1
2016-03-30Diagnose container value/index/key types that are not instantiatedBoris Kolpackov1-58/+65
2015-10-07Add support for using object pointers as map keysBoris Kolpackov1-32/+24
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-08-24Fix inconsistent composite value member prefix derivationBoris Kolpackov1-1/+4
2015-07-03Implement nested id supportBoris Kolpackov1-4/+12
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 Kolpackov1-12/+9
2015-07-01C++ type mapping support for data membersBoris Kolpackov1-13/+29
2015-06-22Implement member type mapping, more m.type() cleanupsBoris Kolpackov1-2/+1
2015-06-22Get rid of member_[u]type(), other cleanupsBoris Kolpackov1-2/+2
2015-06-19Populate custom type map, make available in contextBoris Kolpackov1-79/+194
2015-06-16Implement support for nested members in inverse pragmaBoris Kolpackov1-41/+34
2015-06-15Support for inverse on points_toBoris Kolpackov1-3/+3
2015-06-15Add points_to pragmaBoris Kolpackov1-74/+35
Currently does not support containers.
2015-06-03Remove gratuitous classesBoris Kolpackov1-2/+2
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-85/+22
2015-02-06Update copyrightBoris Kolpackov1-1/+1
2015-02-04Implement object loading viewsBoris Kolpackov1-3/+126
See section 10.2 in the manual for details.
2015-01-23Diagnose lack of default constructor in pointed-to objectsBoris Kolpackov1-1/+21
Lack of the default constructor will lead to uncompilable generated code.
2014-10-27Use expansion point rather than macro location in GCC 4.7.0 and laterBoris Kolpackov1-1/+1
2014-09-05Use scope of name used in pragma for template instantiationsBoris Kolpackov1-3/+3
2014-05-06GCC 4.9.0 runtime compatibility fixesBoris Kolpackov1-5/+5
Whoever figures out why the old version no longer works in 4.9.0 gets a cookie.
2014-05-05GCC 4.9.0 compatibility fixesBoris Kolpackov1-5/+5
2013-12-12Diagnose inverse mapsBoris Kolpackov1-0/+9
2013-12-04Fix bug in wrapped type resolutionBoris Kolpackov1-3/+34
2013-10-21Initialize variable to suppress warning2.3.0Boris Kolpackov1-1/+1
2013-10-19Minor changesBoris Kolpackov1-3/+2
2013-09-17Add support for defining composite values inside persistent classes, etcBoris Kolpackov1-3/+14
2013-09-16Implement summary soft-deletion for composite value typesBoris Kolpackov1-0/+64
2013-09-15Use base object instead of root for polymorphic id refsBoris Kolpackov1-11/+18
In particular, this means that the primary key will point to the base table, not root table and we can figure out the inheritance chain based on tables by traversing their foreign keys.
2013-09-06Rename flags for clarityBoris Kolpackov1-2/+4
2013-09-05Versioned section supportBoris Kolpackov1-9/+105
2013-09-04Container versioning supportBoris Kolpackov1-5/+47
2013-09-02Support for versioning simple value in objectBoris Kolpackov1-2/+49
2013-08-14Add support for object sectionsBoris Kolpackov1-10/+362
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-02-09Update copyright yearBoris Kolpackov1-1/+1
2013-02-05Add support for change-tracking containersBoris Kolpackov1-9/+76
ODB now supports "smart" ordered containers. Such containers get extra functions for updating and deleting individual elements. Based on this functionality implement two change-tracking containers: odb::vector (equivalent to std::vector) and QOdbList (equivalent to QList). New tests: common/container/change-tracking and qt/common/container/change- tracking.
2012-11-21Add dynamic multi-database query supportBoris Kolpackov1-2/+1
2012-11-21Move some of the preprocessing from relational to commonBoris Kolpackov1-0/+1115
2012-10-25Static multi-database supportBoris Kolpackov1-3/+1174
Add new options (--multi-database, --default-database). Generate common code to -odb.?xx files and database-specific to -odb-<db>.?xx.
2012-04-23Polymorphic inheritance supportBoris Kolpackov1-2/+5
2012-01-29Update copyright yearBoris Kolpackov1-1/+1
2012-01-29Remove author field from file headerBoris Kolpackov1-1/+0
Too much effort to maintain.
2011-11-08Get rid of special tracer databaseBoris Kolpackov1-5/+2
The include, types, and pragma tests have been moved to the common/ directory while the object test has been merged into common/lifecycle. The transaction test will be re-implemented as common/ test as soon as SQL statement tracing support is merged.
2011-10-24Generate database schema from database model instead of C++ modelBoris Kolpackov1-1/+1
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-09-19Rename generation_failed exception to operation_failedBoris Kolpackov1-1/+1
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-19Make processing top-level action, like validation and generationBoris Kolpackov1-0/+34