aboutsummaryrefslogtreecommitdiff
path: root/branch-1.1.x/sql-api.html
diff options
context:
space:
mode:
Diffstat (limited to 'branch-1.1.x/sql-api.html')
-rw-r--r--branch-1.1.x/sql-api.html677
1 files changed, 675 insertions, 2 deletions
diff --git a/branch-1.1.x/sql-api.html b/branch-1.1.x/sql-api.html
index 72cb67cc..7829b8bd 100644
--- a/branch-1.1.x/sql-api.html
+++ b/branch-1.1.x/sql-api.html
@@ -40,7 +40,7 @@ namespace.
<a class="wiki_link" href="api-index.html">API Index</a><br />
<a class="wiki_link" href="#">Namespaces:</a>
<ul id="left-sidebar-list">
- <li><a href="accumulators-api.html" class="wiki_link">accumulators</a></li><li><a href="agent-utils-api.html" class="wiki_link">agent-utils</a></li><li><a href="apply-macro-api.html" class="wiki_link">apply-macro</a></li><li><a href="base64-api.html" class="wiki_link">base64</a></li><li><a href="classpath-api.html" class="wiki_link">classpath</a></li><li><a href="combinatorics-api.html" class="wiki_link">combinatorics</a></li><li><a href="command-line-api.html" class="wiki_link">command-line</a></li><li><a href="complex-numbers-api.html" class="wiki_link">complex-numbers</a></li><li><a href="cond-api.html" class="wiki_link">cond</a></li><li><a href="condition-api.html" class="wiki_link">condition</a></li><li><a href="core-api.html" class="wiki_link">core</a></li><li><a href="dataflow-api.html" class="wiki_link">dataflow</a></li><li><a href="datalog-api.html" class="wiki_link">datalog</a></li><li><a href="def-api.html" class="wiki_link">def</a></li><li><a href="duck-streams-api.html" class="wiki_link">duck-streams</a></li><li><a href="error-kit-api.html" class="wiki_link">error-kit</a></li><li><a href="except-api.html" class="wiki_link">except</a></li><li><a href="fcase-api.html" class="wiki_link">fcase</a></li><li><a href="find-namespaces-api.html" class="wiki_link">find-namespaces</a></li><li><a href="fnmap-api.html" class="wiki_link">fnmap</a></li><li><a href="gen-html-docs-api.html" class="wiki_link">gen-html-docs</a></li><li><a href="generic.arithmetic-api.html" class="wiki_link">generic.arithmetic</a></li><li><a href="generic.collection-api.html" class="wiki_link">generic.collection</a></li><li><a href="generic.comparison-api.html" class="wiki_link">generic.comparison</a></li><li><a href="generic.functor-api.html" class="wiki_link">generic.functor</a></li><li><a href="generic.math-functions-api.html" class="wiki_link">generic.math-functions</a></li><li><a href="graph-api.html" class="wiki_link">graph</a></li><li><a href="greatest-least-api.html" class="wiki_link">greatest-least</a></li><li><a href="http.agent-api.html" class="wiki_link">http.agent</a></li><li><a href="http.connection-api.html" class="wiki_link">http.connection</a></li><li><a href="import-static-api.html" class="wiki_link">import-static</a></li><li><a href="jar-api.html" class="wiki_link">jar</a></li><li><a href="java-utils-api.html" class="wiki_link">java-utils</a></li><li><a href="jmx-api.html" class="wiki_link">jmx</a></li><li><a href="json.read-api.html" class="wiki_link">json.read</a></li><li><a href="json.write-api.html" class="wiki_link">json.write</a></li><li><a href="lazy-seqs-api.html" class="wiki_link">lazy-seqs</a></li><li><a href="lazy-xml-api.html" class="wiki_link">lazy-xml</a></li><li><a href="logging-api.html" class="wiki_link">logging</a></li><li><a href="macro-utils-api.html" class="wiki_link">macro-utils</a></li><li><a href="macros-api.html" class="wiki_link">macros</a></li><li><a href="map-utils-api.html" class="wiki_link">map-utils</a></li><li><a href="math-api.html" class="wiki_link">math</a></li><li><a href="miglayout-api.html" class="wiki_link">miglayout</a></li><li><a href="mmap-api.html" class="wiki_link">mmap</a></li><li><a href="mock-api.html" class="wiki_link">mock</a></li><li><a href="monadic-io-streams-api.html" class="wiki_link">monadic-io-streams</a></li><li><a href="monads-api.html" class="wiki_link">monads</a></li><li><a href="ns-utils-api.html" class="wiki_link">ns-utils</a></li><li><a href="pprint-api.html" class="wiki_link">pprint</a></li><li><a href="probabilities.finite-distributions-api.html" class="wiki_link">probabilities.finite-distributions</a></li><li><a href="probabilities.monte-carlo-api.html" class="wiki_link">probabilities.monte-carlo</a></li><li><a href="probabilities.random-numbers-api.html" class="wiki_link">probabilities.random-numbers</a></li><li><a href="profile-api.html" class="wiki_link">profile</a></li><li><a href="prxml-api.html" class="wiki_link">prxml</a></li><li><a href="repl-ln-api.html" class="wiki_link">repl-ln</a></li><li><a href="repl-utils-api.html" class="wiki_link">repl-utils</a></li><li><a href="seq-utils-api.html" class="wiki_link">seq-utils</a></li><li><a href="server-socket-api.html" class="wiki_link">server-socket</a></li><li><a href="set-api.html" class="wiki_link">set</a></li><li><a href="shell-out-api.html" class="wiki_link">shell-out</a></li><li><a href="singleton-api.html" class="wiki_link">singleton</a></li><li><a href="sql-api.html" class="wiki_link">sql</a></li><li><a href="str-utils-api.html" class="wiki_link">str-utils</a></li><li><a href="str-utils2-api.html" class="wiki_link">str-utils2</a></li><li><a href="stream-utils-api.html" class="wiki_link">stream-utils</a></li><li><a href="swing-utils-api.html" class="wiki_link">swing-utils</a></li><li><a href="test-is-api.html" class="wiki_link">test-is</a></li><li><a href="trace-api.html" class="wiki_link">trace</a></li><li><a href="types-api.html" class="wiki_link">types</a></li><li><a href="with-ns-api.html" class="wiki_link">with-ns</a></li><li><a href="zip-filter-api.html" class="wiki_link">zip-filter</a></li>
+ <li><a href="accumulators-api.html" class="wiki_link">accumulators</a></li><li><a href="agent-utils-api.html" class="wiki_link">agent-utils</a></li><li><a href="apply-macro-api.html" class="wiki_link">apply-macro</a></li><li><a href="base64-api.html" class="wiki_link">base64</a></li><li><a href="classpath-api.html" class="wiki_link">classpath</a></li><li><a href="combinatorics-api.html" class="wiki_link">combinatorics</a></li><li><a href="command-line-api.html" class="wiki_link">command-line</a></li><li><a href="complex-numbers-api.html" class="wiki_link">complex-numbers</a></li><li><a href="cond-api.html" class="wiki_link">cond</a></li><li><a href="condition-api.html" class="wiki_link">condition</a></li><li><a href="core-api.html" class="wiki_link">core</a></li><li><a href="dataflow-api.html" class="wiki_link">dataflow</a></li><li><a href="datalog-api.html" class="wiki_link">datalog</a></li><li><a href="def-api.html" class="wiki_link">def</a></li><li><a href="duck-streams-api.html" class="wiki_link">duck-streams</a></li><li><a href="error-kit-api.html" class="wiki_link">error-kit</a></li><li><a href="except-api.html" class="wiki_link">except</a></li><li><a href="fcase-api.html" class="wiki_link">fcase</a></li><li><a href="find-namespaces-api.html" class="wiki_link">find-namespaces</a></li><li><a href="fnmap-api.html" class="wiki_link">fnmap</a></li><li><a href="gen-html-docs-api.html" class="wiki_link">gen-html-docs</a></li><li><a href="generic.arithmetic-api.html" class="wiki_link">generic.arithmetic</a></li><li><a href="generic.collection-api.html" class="wiki_link">generic.collection</a></li><li><a href="generic.comparison-api.html" class="wiki_link">generic.comparison</a></li><li><a href="generic.functor-api.html" class="wiki_link">generic.functor</a></li><li><a href="generic.math-functions-api.html" class="wiki_link">generic.math-functions</a></li><li><a href="graph-api.html" class="wiki_link">graph</a></li><li><a href="greatest-least-api.html" class="wiki_link">greatest-least</a></li><li><a href="http.agent-api.html" class="wiki_link">http.agent</a></li><li><a href="http.connection-api.html" class="wiki_link">http.connection</a></li><li><a href="import-static-api.html" class="wiki_link">import-static</a></li><li><a href="jar-api.html" class="wiki_link">jar</a></li><li><a href="java-utils-api.html" class="wiki_link">java-utils</a></li><li><a href="javadoc.browse-api.html" class="wiki_link">javadoc.browse</a></li><li><a href="jmx-api.html" class="wiki_link">jmx</a></li><li><a href="json.read-api.html" class="wiki_link">json.read</a></li><li><a href="json.write-api.html" class="wiki_link">json.write</a></li><li><a href="lazy-seqs-api.html" class="wiki_link">lazy-seqs</a></li><li><a href="lazy-xml-api.html" class="wiki_link">lazy-xml</a></li><li><a href="logging-api.html" class="wiki_link">logging</a></li><li><a href="macro-utils-api.html" class="wiki_link">macro-utils</a></li><li><a href="macros-api.html" class="wiki_link">macros</a></li><li><a href="map-utils-api.html" class="wiki_link">map-utils</a></li><li><a href="math-api.html" class="wiki_link">math</a></li><li><a href="miglayout-api.html" class="wiki_link">miglayout</a></li><li><a href="mmap-api.html" class="wiki_link">mmap</a></li><li><a href="mock-api.html" class="wiki_link">mock</a></li><li><a href="monadic-io-streams-api.html" class="wiki_link">monadic-io-streams</a></li><li><a href="monads-api.html" class="wiki_link">monads</a></li><li><a href="ns-utils-api.html" class="wiki_link">ns-utils</a></li><li><a href="pprint-api.html" class="wiki_link">pprint</a></li><li><a href="probabilities.finite-distributions-api.html" class="wiki_link">probabilities.finite-distributions</a></li><li><a href="probabilities.monte-carlo-api.html" class="wiki_link">probabilities.monte-carlo</a></li><li><a href="probabilities.random-numbers-api.html" class="wiki_link">probabilities.random-numbers</a></li><li><a href="profile-api.html" class="wiki_link">profile</a></li><li><a href="prxml-api.html" class="wiki_link">prxml</a></li><li><a href="repl-ln-api.html" class="wiki_link">repl-ln</a></li><li><a href="repl-utils-api.html" class="wiki_link">repl-utils</a></li><li><a href="seq-utils-api.html" class="wiki_link">seq-utils</a></li><li><a href="server-socket-api.html" class="wiki_link">server-socket</a></li><li><a href="set-api.html" class="wiki_link">set</a></li><li><a href="shell-out-api.html" class="wiki_link">shell-out</a></li><li><a href="singleton-api.html" class="wiki_link">singleton</a></li><li><a href="sql-api.html" class="wiki_link">sql</a></li><li><a href="str-utils-api.html" class="wiki_link">str-utils</a></li><li><a href="str-utils2-api.html" class="wiki_link">str-utils2</a></li><li><a href="stream-utils-api.html" class="wiki_link">stream-utils</a></li><li><a href="swing-utils-api.html" class="wiki_link">swing-utils</a></li><li><a href="test-is-api.html" class="wiki_link">test-is</a></li><li><a href="trace-api.html" class="wiki_link">trace</a></li><li><a href="types-api.html" class="wiki_link">types</a></li><li><a href="with-ns-api.html" class="wiki_link">with-ns</a></li><li><a href="zip-filter-api.html" class="wiki_link">zip-filter</a></li>
</ul>
</div>
</div>
@@ -53,7 +53,107 @@ namespace.
<h1 class="nopad">Table of Contents</h1>
<div style="margin-left: 1em;" class="toc-section">
<a href="#toc0">Overview</a>
-
+ <div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/connection">connection</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/create-table">create-table</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/delete-rows">delete-rows</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/do-commands">do-commands</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/do-prepared">do-prepared</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/drop-table">drop-table</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/find-connection">find-connection</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/insert-records">insert-records</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/insert-rows">insert-rows</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/insert-values">insert-values</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/is-rollback-only">is-rollback-only</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/set-rollback-only">set-rollback-only</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/transaction">transaction</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/update-or-insert-values">update-or-insert-values</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/update-values">update-values</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/with-connection">with-connection</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql/with-query-results">with-query-results</a>
+ </div>
+ <br />
+ </div><div style="margin-left: 1em;" class="toc-section">
+ <a href="#sql.internal">sql.internal</a>
+ <div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/connection*">connection*</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/find-connection*">find-connection*</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/get-connection">get-connection</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/print-sql-exception">print-sql-exception</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/print-sql-exception-chain">print-sql-exception-chain</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/print-update-counts">print-update-counts</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/rollback">rollback</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/throw-rollback">throw-rollback</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/transaction*">transaction*</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/with-connection*">with-connection*</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.internal/with-query-results*">with-query-results*</a>
+ </div>
+ <br />
+ </div><div style="margin-left: 1em;" class="toc-section">
+ <a href="#sql.test">sql.test</a>
+ <div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/create-fruit">create-fruit</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-batchupdate-exception">db-batchupdate-exception</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-exception">db-exception</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-get-tables">db-get-tables</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-grade-a">db-grade-a</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-grade-range">db-grade-range</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-read">db-read</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-read-all">db-read-all</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-rollback">db-rollback</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-sql-exception">db-sql-exception</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-update">db-update</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-update-appearance-cost">db-update-appearance-cost</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-update-or-insert">db-update-or-insert</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/db-write">db-write</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/drop-fruit">drop-fruit</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/insert-records-fruit">insert-records-fruit</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/insert-rows-fruit">insert-rows-fruit</a>
+ </div><div style="margin-left: 1em;" class="toc-entry">
+ <a href="#clojure.contrib.sql.test/insert-values-fruit">insert-values-fruit</a>
+ </div>
<br />
</div>
</div>
@@ -78,8 +178,581 @@ See clojure.contrib.sql.test for an example</pre>
</span><br />
</span><br />
<h2>Public Variables and Functions</h2>
+<div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/connection">connection</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (connection)
+</pre>
+ <pre id="var-docstr">Returns the current database connection (or throws if there is none)</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L32" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/create-table">create-table</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (create-table name &amp; specs)
+</pre>
+ <pre id="var-docstr">Creates a table on the open database connection given a table name and
+specs. Each spec is either a column spec: a vector containing a column
+name and optionally a type and other constraints, or a table-level
+constraint: a vector containing words that express the constraint. All
+words used to describe the table may be supplied as strings or keywords.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L105" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/delete-rows">delete-rows</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (delete-rows table where-params)
+</pre>
+ <pre id="var-docstr">Deletes rows from a table. where-params is a vector containing a string
+providing the (optionally parameterized) selection criteria followed by
+values for any parameters.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L159" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/do-commands">do-commands</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (do-commands &amp; commands)
+</pre>
+ <pre id="var-docstr">Executes SQL commands on the open database connection.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L83" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/do-prepared">do-prepared</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (do-prepared sql &amp; param-groups)
+</pre>
+ <pre id="var-docstr">Executes an (optionally parameterized) SQL prepared statement on the
+open database connection. Each param-group is a seq of values for all of
+the parameters.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L92" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/drop-table">drop-table</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (drop-table name)
+</pre>
+ <pre id="var-docstr">Drops a table on the open database connection given its name, a string
+or keyword</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L121" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/find-connection">find-connection</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (find-connection)
+</pre>
+ <pre id="var-docstr">Returns the current database connection (or nil if there is none)</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L31" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/insert-records">insert-records</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (insert-records table &amp; records)
+</pre>
+ <pre id="var-docstr">Inserts records into a table. records are maps from strings or
+keywords (identifying columns) to values.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L152" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/insert-rows">insert-rows</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (insert-rows table &amp; rows)
+</pre>
+ <pre id="var-docstr">Inserts complete rows into a table. Each row is a vector of values for
+each of the table's columns in order.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L146" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/insert-values">insert-values</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (insert-values table column-names &amp; value-groups)
+</pre>
+ <pre id="var-docstr">Inserts rows into a table with values for specified columns only.
+column-names is a vector of strings or keywords identifying columns. Each
+value-group is a vector containing a values for each column in
+order. When inserting complete rows (all columns), consider using
+insert-rows instead.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L128" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/is-rollback-only">is-rollback-only</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (is-rollback-only)
+</pre>
+ <pre id="var-docstr">Returns true if the outermost transaction will rollback rather than
+commit when complete</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L77" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/set-rollback-only">set-rollback-only</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (set-rollback-only)
+</pre>
+ <pre id="var-docstr">Marks the outermost transaction such that it will rollback rather than
+commit when complete</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L71" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/transaction">transaction</h2>
+ <span id="var-type">macro</span><br />
+ <pre id="var-usage">Usage: (transaction &amp; body)
+</pre>
+ <pre id="var-docstr">Evaluates body as a transaction on the open database connection. Any
+nested transactions are absorbed into the outermost transaction. By
+default, all database updates are committed together as a group after
+evaluating the outermost body, or rolled back on any uncaught
+exception. If set-rollback-only is called within scope of the outermost
+transaction, the entire transaction will be rolled back rather than
+committed when complete.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L60" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/update-or-insert-values">update-or-insert-values</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (update-or-insert-values table where-params record)
+</pre>
+ <pre id="var-docstr">Updates values on selected rows in a table, or inserts a new row when no
+existing row matches the selection criteria. where-params is a vector
+containing a string providing the (optionally parameterized) selection
+criteria followed by values for any parameters. record is a map from
+strings or keywords (identifying columns) to updated values.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L184" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/update-values">update-values</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (update-values table where-params record)
+</pre>
+ <pre id="var-docstr">Updates values on selected rows in a table. where-params is a vector
+containing a string providing the (optionally parameterized) selection
+criteria followed by values for any parameters. record is a map from
+strings or keywords (identifying columns) to updated values.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L170" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/with-connection">with-connection</h2>
+ <span id="var-type">macro</span><br />
+ <pre id="var-usage">Usage: (with-connection db-spec &amp; body)
+</pre>
+ <pre id="var-docstr">Evaluates body in the context of a new connection to a database then
+closes the connection. db-spec is a map containing values for one of the
+following parameter sets:
+
+Factory:
+ :factory (required) a function of one argument, a map of params
+ (others) (optional) passed to the factory function in a map
+
+DriverManager:
+ :classname (required) a String, the jdbc driver class name
+ :subprotocol (required) a String, the jdbc subprotocol
+ :subname (required) a String, the jdbc subname
+ (others) (optional) passed to the driver as properties.
+
+DataSource:
+ :datasource (required) a javax.sql.DataSource
+ :username (optional) a String
+ :password (optional) a String, required if :username is supplied
+
+JNDI:
+ :name (required) a String or javax.naming.Name
+ :environment (optional) a java.util.Map</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L34" id="var-source">Source</a>
+</div><div id="var-entry">
+ <br />
+ <hr />
+ <h2 id="clojure.contrib.sql/with-query-results">with-query-results</h2>
+ <span id="var-type">macro</span><br />
+ <pre id="var-usage">Usage: (with-query-results results sql-params &amp; body)
+</pre>
+ <pre id="var-docstr">Executes a query, then evaluates body with results bound to a seq of the
+results. sql-params is a vector containing a string providing
+the (optionally parameterized) SQL query followed by values for any
+parameters.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql.clj#L197" id="var-source">Source</a>
+</div>
+<h2 id="namespace-name">sql.internal</h2>
+<pre id="namespace-docstr"></pre>
+<br />
+<div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/connection*">connection*</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (connection*)
+</pre>
+ <pre id="var-docstr">Returns the current database connection (or throws if there is none)</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L38" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/find-connection*">find-connection*</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (find-connection*)
+</pre>
+ <pre id="var-docstr">Returns the current database connection (or nil if there is none)</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L33" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/get-connection">get-connection</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (get-connection {:keys [factory classname subprotocol subname datasource username password name environment], :as db-spec})
+</pre>
+ <pre id="var-docstr">Creates a connection to a database. db-spec is a map containing values
+for one of the following parameter sets:
+
+Factory:
+ :factory (required) a function of one argument, a map of params
+ (others) (optional) passed to the factory function in a map
+
+DriverManager:
+ :classname (required) a String, the jdbc driver class name
+ :subprotocol (required) a String, the jdbc subprotocol
+ :subname (required) a String, the jdbc subname
+ (others) (optional) passed to the driver as properties.
+
+DataSource:
+ :datasource (required) a javax.sql.DataSource
+ :username (optional) a String
+ :password (optional) a String, required if :username is supplied
+
+JNDI:
+ :name (required) a String or javax.naming.Name
+ :environment (optional) a java.util.Map</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L51" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/print-sql-exception">print-sql-exception</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (print-sql-exception stream exception)
+</pre>
+ <pre id="var-docstr">Prints the contents of an SQLException to stream</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L107" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/print-sql-exception-chain">print-sql-exception-chain</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (print-sql-exception-chain stream exception)
+</pre>
+ <pre id="var-docstr">Prints a chain of SQLExceptions to stream</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L121" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/print-update-counts">print-update-counts</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (print-update-counts stream exception)
+</pre>
+ <pre id="var-docstr">Prints the update counts from a BatchUpdateException to stream</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L129" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/rollback">rollback</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (rollback)
+ (rollback val)
+</pre>
+ <pre id="var-docstr">Accessor for the rollback flag on the current connection</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L44" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/throw-rollback">throw-rollback</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (throw-rollback e)
+</pre>
+ <pre id="var-docstr">Sets rollback and throws a wrapped exception</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L138" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/transaction*">transaction*</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (transaction* func)
+</pre>
+ <pre id="var-docstr">Evaluates func as a transaction on the open database connection. Any
+nested transactions are absorbed into the outermost transaction. By
+default, all database updates are committed together as a group after
+evaluating the outermost body, or rolled back on any uncaught
+exception. If rollback is set within scope of the outermost transaction,
+the entire transaction will be rolled back rather than committed when
+complete.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L144" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/with-connection*">with-connection*</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (with-connection* db-spec func)
+</pre>
+ <pre id="var-docstr">Evaluates func in the context of a new connection to a database then
+closes the connection.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L98" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.internal/with-query-results*">with-query-results*</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (with-query-results* [sql &amp; params :as sql-params] func)
+</pre>
+ <pre id="var-docstr">Executes a query, then evaluates func passing in a seq of the results as
+an argument. The first argument is a vector containing the (optionally
+parameterized) sql query string followed by values for any parameters.</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/be33acd87f190d9ec2ad756d8cb31c88abca7e5f/src/clojure/contrib/sql/internal.clj#L178" id="var-source">Source</a>
+</div>
+<h2 id="namespace-name">sql.test</h2>
+<pre id="namespace-docstr"></pre>
+
+
+<br />
+<div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/create-fruit">create-fruit</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (create-fruit)
+</pre>
+ <pre id="var-docstr">Create a table</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L24" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-batchupdate-exception">db-batchupdate-exception</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-batchupdate-exception)
+</pre>
+ <pre id="var-docstr">Demonstrate a batch update exception</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L177" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-exception">db-exception</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-exception)
+</pre>
+ <pre id="var-docstr">Demonstrate rolling back a partially completed transaction on exception</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L150" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-get-tables">db-get-tables</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-get-tables)
+</pre>
+ <pre id="var-docstr">Demonstrate getting table info</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L140" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-grade-a">db-grade-a</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-grade-a)
+</pre>
+ <pre id="var-docstr">Print rows describing all grade a fruit (grade between 90 and 100)</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L135" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-grade-range">db-grade-range</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-grade-range min max)
+</pre>
+ <pre id="var-docstr">Print rows describing fruit that are within a grade range</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L123" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-read">db-read</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-read)
+</pre>
+ <pre id="var-docstr">Read the entire fruit table</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L80" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-read-all">db-read-all</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-read-all)
+</pre>
+ <pre id="var-docstr">Return all the rows of the fruit table as a vector</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L115" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-rollback">db-rollback</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-rollback)
+</pre>
+ <pre id="var-docstr">Demonstrate a rollback-only trasaction</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L186" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-sql-exception">db-sql-exception</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-sql-exception)
+</pre>
+ <pre id="var-docstr">Demonstrate an sql exception</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L165" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-update">db-update</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-update)
+</pre>
+ <pre id="var-docstr">Update two fruits as a transaction</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L97" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-update-appearance-cost">db-update-appearance-cost</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-update-appearance-cost name appearance cost)
+</pre>
+ <pre id="var-docstr">Update the appearance and cost of the named fruit</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L89" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-update-or-insert">db-update-or-insert</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-update-or-insert record)
+</pre>
+ <pre id="var-docstr">Updates or inserts a fruit</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L106" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/db-write">db-write</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (db-write)
+</pre>
+ <pre id="var-docstr">Write initial values to the database as a transaction</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L68" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/drop-fruit">drop-fruit</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (drop-fruit)
+</pre>
+ <pre id="var-docstr">Drop a table</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L34" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/insert-records-fruit">insert-records-fruit</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (insert-records-fruit)
+</pre>
+ <pre id="var-docstr">Insert records, maps from keys specifying columns to values</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L60" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/insert-rows-fruit">insert-rows-fruit</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (insert-rows-fruit)
+</pre>
+ <pre id="var-docstr">Insert complete rows</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L41" id="var-source">Source</a>
+</div><div id="var-entry">
+ <hr />
+ <h2 id="clojure.contrib.sql.test/insert-values-fruit">insert-values-fruit</h2>
+ <span id="var-type">function</span><br />
+ <pre id="var-usage">Usage: (insert-values-fruit)
+</pre>
+ <pre id="var-docstr">Insert rows with values for only specific columns</pre>
+
+
+ <a href="http://github.com/richhickey/clojure-contrib/blob/3ce0c3bd3178fc8de29d4e22646764aa07583673/src/clojure/contrib/sql/test.clj#L51" id="var-source">Source</a>
+</div>
+
</div>
</div>