1* Make the pAttributeInfo and pIndexInfo arguments to CSSM_DL_CreateRelation optional (DONE). 2 3* Enhance POD wrappers and use them everywhere (DONE for insert still needs work for get). 4 5* Implement Indexes 6 7* Implement unique index checks for dataInsert and dataModify 8 9* Add unique index info to UNIQUE_RECORD structures. 10 11* Implement KEY items (AppleCSPDL). 12 13* Clean up usage of ReadSection::at(uint32) vs. ReadSection::operator[](uint32) 14 15* Fix AtomicFile for NFS and ASIP (Use alternative locking mechanism). 16 17* Implement ACL evaluation for Db access. 18 19* Implement ACL APIs. 20 21* Make DbModifier thread safe again. 22 23* Cleanup Query objects when DbContext is destroyed (register them with the context). 24 25* What if we open a DB that is being created? Currently we get back DL_DATABASE_CORRUPT 26 should this become DL_DATABASE_DOES_NOT_EXIST? 27 28* When using CssmOid attribute names make sure to deep copy the CssmOids data (DONE). 29 30* Implement SelectionPredicates completely 31 To make DataGetFirst and DataGetNext actually work (DONE). 32 33* Implement CreateRelation (DONE) 34 35* Implement DataModify (DONE, now with correct semantics -- CB) 36 37* In DataModify, check that RecordType matches that in the UniqueRecordId. 38 39* Store index data when creating tables and databases. 40 41* Add write buffering in AtomicFile to increase performance; flush buffer before seek. 42 43* Make sure that automatically-assigned attribute ids don't shadow ones passed in explicitly. 44 45* Performance: Avoid reconstructing DbVersion after a write (w/o a schema change) when we 46 could derive it from the DbModifier. Only if version is as expected (i.e. no other writes 47 in the meantime) 48 49* Add fsync() to make sure AtomicFile is written before rename. 50