




 
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*.