summaryrefslogtreecommitdiff
path: root/odb/semantics
AgeCommit message (Collapse)AuthorFilesLines
2016-02-05Initial work to make ODB compatible with GCC 6Boris Kolpackov1-2/+2
2015-07-17Diagnose "composite type used before definition" situationsBoris Kolpackov2-0/+20
2015-07-03Implement nested id supportBoris Kolpackov1-10/+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-02-07Fix to work with GCC 5Boris Kolpackov1-2/+65
2015-02-06Update copyrightBoris Kolpackov49-49/+49
2015-01-23Diagnose lack of default constructor in pointed-to objectsBoris Kolpackov1-1/+7
Lack of the default constructor will lead to uncompilable generated code.
2013-12-04Implement on_delete pragma for object pointersBoris Kolpackov2-2/+5
Translates to the ON DELETE SQL clause.
2013-10-15Automatically map C++11 enum classes (strong enums)Boris Kolpackov5-43/+204
2013-09-17Add schema name to changelogBoris Kolpackov2-1/+9
2013-09-16Implement logical column drop for SQLiteBoris Kolpackov1-0/+7
2013-09-15Cleanup polymorphic base tables when dropping derived oneBoris Kolpackov3-2/+29
2013-04-26Add support for extra database info in primary keyBoris Kolpackov5-53/+81
Use that to handle Oracle sequence name and SQLite lax auto ids.
2013-04-26Add support for table options in changelog, use to handle MySQL engineBoris Kolpackov2-3/+28
2013-04-26Add database name to changelogBoris Kolpackov2-1/+9
2013-04-10Generate add/drop foreign key migration statementsBoris Kolpackov4-14/+115
Also add the --fkeys-deferrable-mode option. General schemas generation rework.
2013-04-10Generate add/drop table migration statementsBoris Kolpackov3-3/+62
2013-04-10Add changelog support for add/drop index/foreign keyBoris Kolpackov18-112/+582
Also diagnose changes to primary keys and establish the 'alters' association.
2013-04-10Add changelog support for add, drop, and later columnBoris Kolpackov4-6/+260
2013-04-10Add support for maintaining log of database model changesBoris Kolpackov7-13/+126
2013-04-10Add support for copying database modelsBoris Kolpackov21-115/+273
2013-04-10Add changelog, changeset, and add_table semantics nodesBoris Kolpackov13-10/+386
2013-04-10Add initial support for database model serialization to XMLBoris Kolpackov17-124/+478
2013-02-09Update copyright yearBoris Kolpackov43-43/+43
2012-08-31Add support for virtual data membersBoris Kolpackov7-19/+312
New test: common/virtual.
2012-08-15Add support for member accessors/modifiersBoris Kolpackov3-1/+177
New pragmas: get, set, access. New test: common/access.
2012-07-27Add support for defining indexesBoris Kolpackov4-9/+54
New db pragma qualifier: index. New tests: common/index, mysql/index, pgsql/index.
2012-07-27Move indexes from model scope to table scopeBoris Kolpackov5-27/+15
Conceptually, indexes belong to tables and some databases (MySQL, MSSQL) indeed treat them as such (i.e., you can have indexes with the same name in different tables).
2012-07-17Implement multi-pass table dropping for SQL ServerBoris Kolpackov1-0/+5
We have to first drop constraints before dropping tables in case the tables are dropped in a wrong order or there are circular dependencies.
2012-04-23Polymorphic inheritance supportBoris Kolpackov6-9/+104
2012-01-29Update copyright yearBoris Kolpackov43-43/+43
2012-01-29Remove author field from file headerBoris Kolpackov43-43/+0
Too much effort to maintain.
2012-01-26Implement support for database schemaBoris Kolpackov21-137/+479
New pragma qualifier: namespace. New pragma specifier: schema. The table specifier was extended to accept a schema prefix. New option: --default- schema. The common/schema test was extended to cover the new functionality.
2011-10-24Generate database schema from database model instead of C++ modelBoris Kolpackov17-0/+1191
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 name hint to the qualifies edge (cvr-qualification)Boris Kolpackov2-0/+17
2011-09-16Support for views; integrated partBoris Kolpackov1-1/+1
2011-04-25Add typedef hints, move hint map to semantics::unitBoris Kolpackov2-1/+36
2011-04-25Add complete() and abstract() predicates to semantics::class_Boris Kolpackov2-0/+18
2011-04-19Store enumerator values in semantics graphBoris Kolpackov2-6/+35
2011-04-19Add additional new_node overloadBoris Kolpackov1-6/+17
2011-04-19Name enumerators in outer scopeBoris Kolpackov1-2/+2
2011-03-21Add default_ctor() to semantics::class_Boris Kolpackov2-0/+12
Use it in the code generators instead of calling the GCC AST macro.
2011-02-01Detect and ignore inner names in the fq_*() functionsBoris Kolpackov2-31/+94
2011-01-04Copyright updateBoris Kolpackov23-23/+23
2010-11-28Add support for literal names (template-id, derived type declarator)Boris Kolpackov4-33/+287
2010-11-15Maintain GCC tree node for all semantic graph nodesBoris Kolpackov17-105/+61
2010-09-13Change GPL v3Boris Kolpackov23-23/+23
2010-09-13Fix a typoBoris Kolpackov1-2/+2
2010-09-02Move constructors to the source filesBoris Kolpackov22-126/+229
This is done so that when the plugin is built as a static library, the object files with type information get pulled in.
2010-08-19Use type names as specified in the header that we compileBoris Kolpackov4-2/+102
2010-06-04Make nameable::fq_name virtualBoris Kolpackov3-2/+11
Override it for fundamental type to do the right thing.