[odb-users] ODB Postgresql default values
    Mikhail V. Tomilov 
    mvtomilov at gmail.com
       
    Fri Jul 19 01:09:13 EDT 2013
    
    
  
Hello!
I'm using ODB with postgresql 9.1. I have some questions.
I have the C++ entity:
struct Contractor
{
     boost::uuids::uuid       contractor_uuid;
     bool                     hidden;
     int64                    version;
     boost::posix_time::ptime created_at;
     std::string              name;
};
Corresponding DB table:
      Column      |           Type           |
 Modifiers                           | Storage  | Description
-----------------+--------------------------+--------------------------------------------------------------+----------+-------------
 contractor_uuid | uuid                     | not null default
uuid_generate_v4()                          | plain    |
 name            | character varying(512)   | not null
                                | extended |
 typeid          | character varying(64)    | not null
                                | extended |
 version         | bigint                   | not null default
nextval('contractor_version_seq'::regclass) | plain    |
 hidden          | boolean                  | not null default false
                                | plain    |
 created_at      | timestamp with time zone | not null default now()
                                | plain    |
1. DB has default values for version, hidden, created_at columns. How can I
insert new row via ODB so that DB calculated default values. Sure I can put
values for hidden and created_at columns in my C++ code, but setting
version column in C++ is problematic.
2. The same Contractor entity. When I update row, DB trigger increases
version field using contractor_version_seq sequence. How can I force ODB to
update this field at my C++ struct after update? Sure I can call
database.reload() method, but it's a bit heavy. Postgresql can provide
changed values using RETURNING SQL-clause.
-- 
Regards, Mikhail
    
    
More information about the odb-users
mailing list