summaryrefslogtreecommitdiff
path: root/odb/relational
AgeCommit message (Collapse)AuthorFilesLines
2011-08-22Add database::erase_query() functionBoris Kolpackov4-29/+92
New test: common/erase-query. Documentation is in Section 3.9, "Deleting Persistent Objects". The current implementation does not work well with the session (no removal of the erased objects from the cache).
2011-08-22Enable foreign key constraints checking in SQLiteBoris Kolpackov1-0/+16
Due to bugs in SQLite DDL foreign key support, we have to temporarily disable foreign keys when re-creating the schema. New manual section: 12.5.3, "Foreign Key Constraints".
2011-08-21Add support for multi-pass database schema dropBoris Kolpackov4-34/+98
2011-08-19Rework query machinery not to use '_' as primary table aliasBoris Kolpackov4-28/+67
Now we always qualify with the actual table name and use the '_' alias for situations where an object is referencing itself.
2011-08-19Cosmetic changeBoris Kolpackov1-1/+1
2011-08-19Make container object_id reference the objectBoris Kolpackov3-13/+56
Make it ON DELETE CASCADE. Also in erase(), delete the container rows first.
2011-08-18Fix custom recursive loading in post_load callbackBoris Kolpackov1-2/+2
Before we called the callback while holding the statements locked. As a result, if the callback tried to load another object of this type, it failed. Now we unlock the statements (since we have completely loaded the object from ODB's point of view) and then call the callback. The callback test has been updated to test this situation.
2011-08-04Add support for value wrappersBoris Kolpackov1-1/+217
Wrapper is a class that wraps another type. Examples of wrappers are various smart pointers, holders, etc. A wrapper can be transparent or it can handle the NULL semantics. The new odb::nullable class template is a NULL wrapper that helps to add the NULL semantics to a value type. New test: common/wrapper.
2011-07-25Remove @@ notes that no longer applyBoris Kolpackov1-1/+1
2011-07-24Never generate zero length oid arrays for PostgreSQLConstantin Michael1-0/+8
VC++ does not allow zero length array initialization, nor for const values to remain uninitialized.
2011-07-22Add pragma for setting type's or member's default valueBoris Kolpackov5-3/+318
New pragma: default. New test: default.
2011-07-22Cosmetic changeBoris Kolpackov1-1/+1
2011-07-22Cosmetic changeBoris Kolpackov1-1/+1
2011-07-22Parse and store MySQL ENUM enumerator stringsBoris Kolpackov2-4/+31
2011-07-22Use quote_string() to quote enumeratorsBoris Kolpackov1-3/+1
2011-07-22Cosmetic changesBoris Kolpackov1-2/+2
2011-07-22Add support for SQL string quotingBoris Kolpackov3-0/+39
2011-07-22Add support for specifying extra column optionsBoris Kolpackov1-0/+7
New pragmas: options, id_options, index_options, key_options, and value_options.
2011-07-21Correct container statement name generation for PostgreSQLConstantin Michael1-2/+2
2011-07-19New design for NULL semanticsBoris Kolpackov12-71/+110
Now, instead of being specified as part of the SQL type with the type pragma, there are separate null and not_null pragmas. The not_null pragma was used to control NULL-ness of object pointers. Now the two pragmas are used consistently for object pointers and simple values (and in the future will work for composite values and containers).
2011-07-19Cosmetic changeBoris Kolpackov1-1/+1
2011-07-14Map unsigned short and int C++ types to SMALLINT and INTEGER PostgreSQL typesConstantin Michael1-2/+2
2011-07-13Aesthetic changesConstantin Michael1-3/+3
2011-07-13Add support for DATE, TIME and TIMESTAMP PostgreSQL typesConstantin Michael2-20/+31
2011-07-12Lengthen PostgreSQL BIT image buffer to allow for length specifierConstantin Michael1-1/+5
2011-07-12Correct bugs in PostgreSQL sql type parserConstantin Michael1-2/+10
2011-07-12Correct PostgreSQL varbit member image type to ubufferConstantin Michael1-1/+1
2011-07-08Add foreign keys to PostgreSQL schema generationConstantin Michael1-0/+129
2011-07-08Add CASCADE to PostgreSQL DROP TABLE statementsConstantin Michael1-0/+26
2011-07-08Fix inverse case of container select_all statement parameter type generationConstantin Michael1-4/+2
2011-07-08Have separate table set for each schema generation passBoris Kolpackov3-50/+51
2011-07-05Add hook for schema column reference generationBoris Kolpackov1-6/+11
2011-07-05Add support for multi-pass database schema generationBoris Kolpackov4-59/+168
2011-07-05Update source generation to use PostgreSQL specific query implementationConstantin Michael1-1/+0
2011-07-05Correct container statement name logic to avoid inherited name conflictsConstantin Michael1-1/+5
2011-07-05Only generate query statement names if queries are being generatedConstantin Michael2-14/+21
2011-07-05Add enum support to PostgreSQLConstantin Michael2-4/+25
2011-07-05Implement PostgreSQL query_statement_ctor and post_query_ hooksConstantin Michael1-0/+23
2011-07-05Generate PostgreSQL query statement nameConstantin Michael2-0/+13
2011-07-05Add query_statment_ctor and post_query_ hooks to relational source generationConstantin Michael1-7/+25
2011-07-05Fully qualify all references to odb::details namespaceConstantin Michael1-8/+8
2011-07-05Correct PostgreSQL container statement and types array generationConstantin Michael2-120/+62
2011-07-05Implement PostgreSQL container statement name and types array generationConstantin Michael2-71/+289
2011-07-05Add hooks for generating extra code in container traitsConstantin Michael2-1/+24
2011-07-05Add support for auto ID aware PostgreSQL query parameter generationConstantin Michael1-5/+18
2011-07-05Implement PostgreSQL statement name and types array code generationConstantin Michael2-7/+151
2011-07-05Add base typedef to relational::query_parametersConstantin Michael1-0/+2
2011-07-05Correct typosConstantin Michael1-2/+2
2011-07-05Add PostgreSQL source generation implementationConstantin Michael1-0/+801
2011-07-05Correct PostgreSQL schema generation implementationConstantin Michael1-9/+10