Re: [MOP] How do I add an extra slot to a class?



That would explain it :) I found the CL-SQL view-class abstraction has
limitations, (as you may have also found), I tried unsuccessfully to use
it for a database-table-designer application. I ended up modelling the
database relationships and tables in my own CLOS objects, and then had
methods for generating the def-view-class form. (I haven't finished this
to my satisfaction -- still separatating a table class from a sub-class
with the join slots)

Apart from the limitations in def-view-class, I've found that CLSQL lacks lots of features. For example, the limit and offset arguments to the select function do not work for Oracle (Oracle has a weird way to get this done, which requires some obtuse subselects). Another one is that, pre-fetching immediate join slots is broken (I've fixed this one, and am about to release a patch).

Another thing I wanted to do was: given a view-class object, introspect
the join slots and figure out the relations. The key thing is to have a
representation for the relations that your program (not just CL-SQL) can
access and use at runtime. This could not be done with view-class
across sql + lisp implementation combinations. (I use clsql and ysql,
and would like to use commonsql too).

I'm not sure I understood what you're trying to do here. Can you elaborate a bit?


Also I couldn't mixin objects of
other other types with any ease which would make sense.

I've tried mixing Allegro's persistent metaclass and CLSQL's standard-db-class to be able to store an object either in the DB or the acache. I failed miserably.

Saurabh.
.