</refsect1>
</refentry>
+ <refentry id="default-caching">
+ <refnamediv>
+ <refname>*DEFAULT-CACHING*</refname>
+ <refpurpose>Controls the default caching behavior.</refpurpose>
+ <refclass>Variable</refclass>
+ </refnamediv>
+ <refsect1>
+ <title>Value Type</title>
+ <para>
+ Boolean
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Initial Value</title>
+ <para>&t;</para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This variable stores the default value of the
+ <varname>CACHING</varname> keyword for the <link
+ linkend="select"><function>select</function></link>.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <screen>
+ (let ((*default-caching* nil)))
+ (select 'foo))
+
+ ;; is equivalent to
+
+ (select 'foo :caching nil)
+ </screen>
+ </refsect1>
+ <refsect1>
+ <title>Affected By</title>
+ <para>None.</para>
+ </refsect1>
+ <refsect1>
+ <title>See Also</title>
+ <simplelist>
+ <member><link linkend="select"><function>select</function></link></member>
+ </simplelist>
+ </refsect1>
+ <refsect1>
+ <title>Notes</title> <para>This is a CLSQL extension to the
+ &commonsql; API. &commonsql; has caching on at all times.</para>
+ </refsect1>
+ </refentry>
+
<refentry id="default-update-objects-max-len">
<refnamediv>
<refname>*DEFAULT-UPDATE-OBJECTS-MAX-LEN*</refname>
(slot-value (car *) 'email)
=> "lenin@soviet.org"
(select 'employee :where [= [slot-value 'employee 'emplid] 1] :flatp t :refresh t)
-Details for Vladamir Lenin have been updated from the database.
+Details for Vladimir Lenin have been updated from the database.
=> (#<EMPLOYEE {48149995}>)
(slot-value (car *) 'email)
=> "v.lenin@soviet.org"
<varlistentry>
<term><parameter>slots</parameter></term>
<listitem>
- <para>
- A list of slot names in <parameter>object</parameter> or &t;.
- </para>
+ <para>* :immediate (default) - refresh join slots with :retrieval :immediate</para>
+ <para>* :deferred - refresh join slots created with :retrieval :deferred</para>
+ <para>* :all,t - refresh all join slots regardless of :retrieval</para>
+ <para>* list of symbols - which explicit slots to refresh</para>
+ <para>* a single symobl - what slot to refresh</para>
</listitem>
</varlistentry>
<varlistentry>
<para>
A non-negative integer or &nil; defaulting to
<symbol>*default-update-objects-max-len*</symbol>.
+ When non-nil this is essentially a batch size for the max number of objects
+ to query from the database at a time. If we need more than max-len
+ we loop till we have all the objects
</para>
</listitem>
</varlistentry>
</refsect1>
<refsect1>
<title>Description</title>
- <para>Updates from the records of the appropriate database
- tables the join slots specified by <parameter>slots</parameter>
- in the supplied list of <glossterm linkend="gloss-view-class">View
- Class</glossterm> instances
- <parameter>objects</parameter>. <parameter>slots</parameter>
- when &t; means that all join slots with
- <symbol>:retrieval</symbol> <symbol>:immediate</symbol> are
- updated. <parameter>class-name</parameter> is used to specify
- the <glossterm linkend="gloss-view-class">View Class</glossterm> of
- all instance in <parameter>objects</parameter>, when &nil; then
- the class of the first instance in
- <parameter>objects</parameter> is
- used. <parameter>force-p</parameter> when &t; means that all
- join slots are updated whereas a value of &nil; means that only
- unbound join slots are updated. <parameter>max-len</parameter>
- when non-nil specifies that
- <function>update-object-joins</function> may issue multiple
- database queries with a maximum of
- <parameter>max-len</parameter> instances updated in each query.
+ <para>
+ Updates from the records of the appropriate database tables the join slots
+ specified by SLOTS in the supplied list of
+ <glossterm linkend="gloss-view-class">View Class</glossterm> instances OBJECTS.
+
+ A simpler method of causing a join-slot to be requeried is to set it to
+ unbound, then request it again. This function has efficiency gains where
+ join-objects are shared among the `objects` (querying all join-objects,
+ then attaching them appropriately to each of the `objects`)
</para>
</refsect1>
<refsect1>