[elephant-devel] Quick sketch of type evolution system
Ian Eslick
eslick at csail.mit.edu
Sun Jan 6 17:29:26 UTC 2008
That sounds like a good engineering tradeoff. Perhaps we can write a
condition check that warns users that they're altering a schema which
is would result in incompatible types, dropped slots, and other
changes that may require a schema evolution function and bumping the
schema #. We could also warn if there is not a database connected.
We should also have a warning if a redefinition is causing the system
to drop the class index. (And a method for walking the DB and
constructing a class index from all reachable instances)
For this scheme to work, however, I think we need to think carefully
about whether we want to support multiple data stores. We don't want
the system to quietly screw up. If we provide an API it should do the
'right thing' or warn the user. I think this is harder with multiple
stores.
I think we probably should only provide guarantees when there is a 1:1
correspondence between class and store; if you want to use a class in
multiple stores we'll provide some documentation but you're on your
own. (i.e. we have to figure out in which stores we have to update
schema objects and it is easy to have it updated in one that was
connected, but not in one that wasn't connected, etc)
Ian
PS - I'm going to be effectively offline until the 15th so will pick
up on the thread of this conversation then.
On Jan 6, 2008, at 12:14 PM, Leslie P. Polzer wrote:
>
>> Of course, there are schema changes which are invisible to the class
>> system, that also need to be accounted for. For example, you
>> represent
>> user status as an integer (representing an enumerated type.) You
>> decide
>> to remove a status. The types haven't changed, but the entire schema
>> has to be massaged into the new set of enumerated types.
>
> This would be the responsbility of the userland part: let the
> programmer bump the
> schema's version number to indicate a change and then provide a
> transition function.
>
>
>> I think the lack of schema evolution is Elephant's biggest problem;
>> but
>> is there any system that has solved this problem?
>
> Let's be the first one.
>
> Leslie
>
> --
> My personal blog: http://blog.viridian-project.de/
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
More information about the elephant-devel
mailing list