Updates the remote join slots.


update-objects-joins objects &key slots force-p class-name max-len



A list of database objects.


A list of slot names, or t .


A boolean.


The class of the objects, or nil .


A non-negative integer, or nil .


The function update-objects-joins updates the remote join slots, that is those slots defined without :retrieval :immediate .

This is an optimization function which can improve the efficiency of an application by reducing the number of queries of the database. For each slot, it queries the database using the data from all the objects, and then assigns the appropriate value to each object.

objects is a list of database objects. If class-name is non- nil , then all the database objects are of this class. If class-name is nil , then all the database objects are of the class of the first database object in the list objects .

If objects is nil , then update-objects-joins does nothing.

class-name specifies a class containing all the database objects in the list objects . If class-name is nil (the default) then the class of the first database object is used.

slots provides a list of the names of slots to update. Each of these slots should be a remote join slot (as defined above).

slots can also be t , meaning update all the remote join slots. The default value of slots is t .

force-p controls whether to force the update of all values in the objects. If force-p is nil , then slots which are already are not updated. The default value of force-p is t .

max-len , if non- nil , is a maximum number of objects from which to use data in a single query. If the length of the list objects is greater than max-len then update-objects-joins performs multiple queries using the data from no more than max-len objects in each query. This is useful if the DBMS may reject large queries, but it will increase the number of queries and hence reduce overall performance to some extent. The default value of max-len is the value of the variable *default-update-objects-max-len*.

See also


LispWorks Reference Manual - 12 Mar 2008