<sect1>
<title>Query fields</title>
<para>
Each query can contain some fields which make the query's contents. There are different types of query fields,
and each type corresponds to a class and inherits the <link linkend="GdaQueryField">GdaQueryField</link> class.
</para>
<para>
Any query field can be visible or hidden. A visible field will appear in the entity corresponding to the
query (in case of SELECTion queries anyway), and invisible fields are used by other query fields.
</para>
<para>
Also, any query field can be internal or not. An internal field is one used by the library itself, and
should never be known to the user of the library (so it is just mentionned here for completeness).
</para>
<para>
Some fields can represent more than one value (useful for IN operators for example).
</para>
<para>
The different types of query fields are:
<itemizedlist>
    <listitem>
         <para><link linkend="GdaQueryFieldAll">GdaQueryFieldAll</link>: represents all the fields of an entity which itself is represented through a <link linkend="GdaQueryTarget">GdaQueryTarget</link>
               (the SQL notation is "entity.*")</para>
    </listitem>
    <listitem>
         <para><link linkend="GdaQueryFieldField">GdaQueryFieldField</link>: represents one field of an entity which itself is represented through a <link linkend="GdaQueryTarget">GdaQueryTarget</link>
               (the SQL notation is "entity.field")</para>
    </listitem>
    <listitem>
         <para><link linkend="GdaQueryFieldValue">GdaQueryFieldValue</link>: represents a value, which can also be a parameter (in this case the parameter
               may or may not have a default value)</para>
    </listitem>
    <listitem>
         <para><link linkend="GdaQueryFieldFunc">GdaQueryFieldFunc</link>: represents the result of a function (a <link linkend="GdaDictFunction">GdaDictFunction</link> object) applied to one
         or more query field object(s) of the same query</para>
    </listitem>
    <listitem>
         <para><link linkend="GdaQueryFieldAgg">GdaQueryFieldAgg</link>: represents the result of an aggregate (a <link linkend="GdaDictAggregate">GdaDictAggregate</link> object) applied to a
         query field object of the same query</para>
    </listitem>
    <listitem>
         <para><link linkend="GnomeDbQfSelect">GnomeDbQfSelect</link>: represents the result of the execution of a whole SELECTion query. It represents
               a list but may return a single value as well</para>
    </listitem>
    <listitem>
         <para><link linkend="GnomeDbQfLink">GnomeDbQfLink</link>: represents one field of an entity, that entity not being represented through a 
               <link linkend="GdaQueryTarget">GdaQueryTarget</link> object. This kind of query field is used to link sub-queries to their parent query
               in complex queries</para>
    </listitem>
    <listitem>
         <para><link linkend="GdaQueryFieldValues">GdaQueryFieldValues</link>: represent a list of values, which cannot be parameters</para>
    </listitem>
</itemizedlist>
</para>
&libgnomedb-GdaQueryField;
&libgnomedb-GdaQueryFieldAll;
&libgnomedb-GdaQueryFieldField;
&libgnomedb-GdaQueryFieldFunc;
&libgnomedb-GdaQueryFieldAgg;
&libgnomedb-GdaQueryFieldValue;
</sect1>
