rjrodger/seneca — pull request #8 by mirceaalexandru (2012-11-07 17:42:47+00:00)
Title: Added support for storing information about special data types

In the "seneca" column we will store an object with columnName as keys and
- 'd' - Date type
- 'o' - Object type
- 'a' - Array type
as values. The other types will not be persisted. Only those special types will be stored into this object. Also, if in a table there are not any of these threee special types then we will not use the "seneca" column so this will be optional - see 'product' table from tests.

By implementing the type description as an object I tried to avoid the problem with column order that is not known when save$ operation is executed and also that in the entity that is saved some of the properties might be missing.

We need to take in consideration the changes in the table structure:
- If another column is added, even if it will contain data with one of the special type no change will be needed to be done by user on "seneca" vaues.
- When a column will be removed then that column will not be tested as data type so no change will be necessary on "seneca" values.
- A case that need special attention is when a column (that contains data with one of special type) is renamed. In this case an update on all "seneca" values needs to be done.
- table rename will not have any implication on values from "seneca" column.
- column type change will have impact on our implementation only if it will change also data semantic - from regular type (let's say int) to special type (let's say object).
- Any data updates on the table should be done using seneca in order to preserve correct data type information.