/usr/share/doc/cl-sql/html/query.html is in cl-sql 6.5.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>QUERY</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" title="CLSQL Users' Guide" /><link rel="up" href="ref-fdml.html" title="Functional Data Manipulation Language (FDML)" /><link rel="prev" href="execute-command.html" title="EXECUTE-COMMAND" /><link rel="next" href="print-query.html" title="PRINT-QUERY" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">QUERY</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="execute-command.html">Prev</a> </td><th width="60%" align="center">Functional Data Manipulation Language (FDML)</th><td width="20%" align="right"> <a accesskey="n" href="print-query.html">Next</a></td></tr></table><hr /></div><div class="refentry"><a id="query"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>QUERY — Execute an SQL query and return the tuples as a
list.<strong>Generic Function</strong></p></div><div class="refsect1"><a id="idp62492048"></a><h2>Syntax</h2><pre class="synopsis">
<code class="function">query</code> <em class="replaceable"><code>query-expression</code></em> &key <em class="replaceable"><code>database</code></em> <em class="replaceable"><code>result-types</code></em> <em class="replaceable"><code>flatp</code></em> <em class="replaceable"><code>field-names</code></em> => <span class="returnvalue">result</span></pre></div><div class="refsect1"><a id="idp62496912"></a><h2>Arguments and Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>query-expression</code></em></span></dt><dd><p>An <a class="glossterm" href="glossary.html#gloss-sql-expression"><em class="glossterm">sql
expression</em></a> that represents an SQL
query which is expected to return a (possibly empty)
result set.</p></dd><dt><span class="term"><em class="parameter"><code>database</code></em></span></dt><dd><p>A
<a class="glossterm" href="glossary.html#gloss-database-object"><em class="glossterm">database
object</em></a>. This will default to the value
of <span class="symbol">*default-database*</span>.</p></dd><dt><span class="term"><em class="parameter"><code>flatp</code></em></span></dt><dd><p>A Boolean whose default value is <code class="constant">NIL</code>.</p></dd><dt><span class="term"><em class="parameter"><code>result-types</code></em></span></dt><dd><p>A
<a class="glossterm" href="glossary.html#gloss-field-types"><em class="glossterm">field type
specifier</em></a>. The default is <span class="symbol">:auto</span>;.
</p><p>
The purpose of this argument is cause <span class="application"><span class="emphasis"><em>CLSQL</em></span></span> to
import SQL numeric fields into numeric Lisp objects
rather than strings. This reduces the cost of
allocating a temporary string and the <span class="application"><span class="emphasis"><em>CLSQL</em></span></span> users'
inconvenience of converting number strings into number
objects.
</p><p>
A value of <span class="symbol">:auto</span> causes <span class="application"><span class="emphasis"><em>CLSQL</em></span></span>
to automatically convert SQL fields into a
numeric format where applicable. The default value of
<code class="constant">NIL</code> causes all fields to be returned as strings
regardless of the SQL type. Otherwise a list is expected
which has a element for each field that specifies the
conversion. Valid type identifiers are:
</p><table border="0" summary="Simple list" class="simplelist"><tr><td><span class="symbol">:int</span> Field is imported as a
signed integer, from 8-bits to 64-bits depending
upon the field type.
</td></tr><tr><td><span class="symbol">:double</span> Field is imported as a
double-float number.
</td></tr><tr><td><span class="symbol">t</span> Field is imported as a
string.
</td></tr></table><p>
If the list is shorter than the number of fields, the a
value of <span class="symbol">t</span> is assumed for the field.
If the list is longer than the number of fields, the
extra elements are ignored.
</p></dd><dt><span class="term"><em class="parameter"><code>field-names</code></em></span></dt><dd><p>
A boolean with a default value of <code class="constant">T</code>. When <code class="constant">T</code>, this
function returns a second value of a list of field
names. When <code class="constant">NIL</code>, this function only returns one value -
the list of rows.
</p></dd><dt><span class="term"><span class="returnvalue">result</span></span></dt><dd><p>A list representing the result set obtained. For
each tuple in the result set, there is an element in
this list, which is itself a list of all the attribute
values in the tuple.</p></dd></dl></div></div><div class="refsect1"><a id="idp62524992"></a><h2>Description</h2><p>
Executes the SQL query expression
<em class="parameter"><code>query-expression</code></em>, which may be an SQL
expression or a string, on the supplied
<em class="parameter"><code>database</code></em> which defaults to
<span class="symbol">*default-database*</span>. <em class="parameter"><code>result-types</code></em>
is a list of symbols which specifies the lisp type for each
field returned by <em class="parameter"><code>query-expression</code></em>.
</p><p>
If <em class="parameter"><code>result-types</code></em> is <code class="constant">NIL</code> all results
are returned as strings whereas the default value of
<span class="symbol">:auto</span> means that the lisp types are
automatically computed for each field.
</p><p>
<em class="parameter"><code>field-names</code></em> is <code class="constant">T</code> by default which
means that the second value returned is a list of strings
representing the columns selected by
<em class="parameter"><code>query-expression</code></em>. If
<em class="parameter"><code>field-names</code></em> is <code class="constant">NIL</code>, the list of column
names is not returned as a second value.
</p><p>
<em class="parameter"><code>flatp</code></em> has a default value of <code class="constant">NIL</code>
which means that the results are returned as a list of
lists.If FLATP is <code class="constant">T</code> and only one result is returned for each
record selected by <em class="parameter"><code>query-expression</code></em>,
the results are returned as elements of a list.
</p></div><div class="refsect1"><a id="idp62538272"></a><h2>Examples</h2><pre class="screen">
(query "select emplid,first_name,last_name,height from employee where emplid = 1")
=> ((1 "Vladimir" "Lenin" 1.5564661d0)),
("emplid" "first_name" "last_name" "height")
(query "select emplid,first_name,last_name,height from employee where emplid = 1"
:field-names nil)
=> ((1 "Vladimir" "Lenin" 1.5564661d0))
(query "select emplid,first_name,last_name,height from employee where emplid = 1"
:field-names nil
:result-types nil)
=> (("1" "Vladimir" "Lenin" "1.5564661"))
(query "select emplid,first_name,last_name,height from employee where emplid = 1"
:field-names nil
:result-types '(:int t t :double))
=> ((1 "Vladimir" "Lenin" 1.5564661))
(query "select last_name from employee where emplid > 5" :flatp t)
=> ("Andropov" "Chernenko" "Gorbachev" "Yeltsin" "Putin"),
("last_name")
(query "select last_name from employee where emplid > 10"
:flatp t
:field-names nil)
=> NIL
</pre></div><div class="refsect1"><a id="idp62540816"></a><h2>Side Effects</h2><p>Whatever effects the execution of the SQL query has
on the underlying database, if any.</p></div><div class="refsect1"><a id="idp62542240"></a><h2>Affected by</h2><p>None.</p></div><div class="refsect1"><a id="idp63623152"></a><h2>Exceptional Situations</h2><p>If the execution of the SQL query leads to any errors, an
error of type <span class="errortype">sql-database-error</span> is
signalled.</p></div><div class="refsect1"><a id="idp63624784"></a><h2>See Also</h2><table border="0" summary="Simple list" class="simplelist"><tr><td><a class="link" href="execute-command.html" title="EXECUTE-COMMAND"><code class="function">execute-command</code></a></td></tr><tr><td><a class="link" href="print-query.html" title="PRINT-QUERY"><code class="function">print-query</code></a></td></tr><tr><td><a class="link" href="do-query.html" title="DO-QUERY"><code class="function">do-query</code></a></td></tr><tr><td><a class="link" href="map-query.html" title="MAP-QUERY"><code class="function">map-query</code></a></td></tr><tr><td><a class="link" href="loop-tuples.html" title="LOOP"><code class="function">loop</code></a></td></tr><tr><td><a class="link" href="select.html" title="SELECT"><code class="function">select</code></a></td></tr></table></div><div class="refsect1"><a id="idp63632896"></a><h2>Notes</h2><p>The <em class="parameter"><code>field-names</code></em> and
<em class="parameter"><code>result-types</code></em> keyword arguments are a
<span class="application"><span class="emphasis"><em>CLSQL</em></span></span> extension.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="execute-command.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref-fdml.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="print-query.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">EXECUTE-COMMAND </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> PRINT-QUERY</td></tr></table></div></body></html>
|