<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - SDB Configuration</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
    <link href="/css/jena.css" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="/images/favicon.ico" />

    <script src="https://code.jquery.com/jquery-2.2.4.min.js"
            integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
            crossorigin="anonymous"></script>
    <script src="/js/jena-navigation.js" type="text/javascript"></script>
    <script src="/js/bootstrap.min.js" type="text/javascript"></script>

    <script src="/js/improve.js" type="text/javascript"></script>

    
</head>

<body>

<nav class="navbar navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">
                <li id="homepage"><a href="/index.html"><span class="glyphicon glyphicon-home"></span> Home</a></li>
                <li id="download"><a href="/download/index.cgi"><span class="glyphicon glyphicon-download-alt"></span> Download</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a href="/tutorials/index.html">Overview</a></li>
                        <li><a href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a href="/documentation/index.html">Overview</a></li>
                        <li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a href="/documentation/javadoc.html">Javadoc</a></li>
                        <li><a href="/documentation/ontology/">Ontology API</a></li>
                        <li><a href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a href="/documentation/io/">RDF I/O</a></li>
                        <li><a href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
                        <li><a href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="drop down">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a href="/documentation/javadoc_elephas.html">Elephas</a></li>
                        <li><a href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
                        <li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>

                <li id="ask"><a href="/help_and_support/index.html"><span class="glyphicon glyphicon-question-sign"></span> Ask</a></li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-bullhorn"></span> Get involved <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/getting_involved/index.html">Contribute</a></li>
                        <li><a href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a href="/about_jena/about.html">About Jena</a></li>
                        <li><a href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a href="/about_jena/citing.html">Citing</a></li>
                        <li><a href="/about_jena/team.html">Project team</a></li>
                        <li><a href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a href="http://www.apache.org/security/">Security</a></li>
                        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>


    

                <li id="edit"><a href="https://github.com/apache/jena-site/edit/main/source/documentation/archive/sdb/configuration.md" title="Edit this page on GitHub"><span class="glyphicon glyphicon-pencil"></span> Edit this page</a></li>
            </ul>
        </div>
    </div>
</nav>


<div class="container">
    <div class="row">
        <div class="col-md-12">
            <div id="breadcrumbs">
                
                    





<ol class="breadcrumb">
    
    
        
        
    
        
        
            
                <li><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li><a href='/documentation/archive'>ARCHIVE</a></li>
            
            
        
    
        
        
            
                <li><a href='/documentation/archive/sdb'>SDB</a></li>
            
            
        
    
        
        
            
                <li class="active">CONFIGURATION</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">SDB Configuration</h1>
            
	<p>This page describes the configuration options available. These are
options for query processing, not for the database layout and
storage, which is controlled by
<a href="store_description.html" title="SDB/Store Description">store descriptions</a>.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#setting-options">Setting Options</a></li>
<li><a href="#current-options">Current Options</a>
<ul>
<li><a href="#queries-over-all-named-graphs">Queries over all Named Graphs</a></li>
<li><a href="#streaming-over-jdbc">Streaming over JDBC</a></li>
<li><a href="#annotated-sql">Annotated SQL</a></li>
</ul>
</li>
</ul>
<h2 id="setting-options">Setting Options</h2>
<p>Options can be set globally, throughout the JVM, or on a per query
execution basis. SDB uses the same mechanism as
<a href="http://jena.sf.net/ARQ" title="http://jena.sf.net/ARQ">ARQ</a>.</p>
<p>There is a global context, which is give to each query
execution as it is created. Modifications to the global context
after the query execution is created are not seen by the query
execution. Modifications to the context of a single query execution
do not affect any other query execution nor the global context.</p>
<p>A context is a set of symbol/value pairs. Symbols are used created
internal to ARQ and SDB and access via Java constants. Values are
any Java object, together with the values <code>true</code> and <code>false</code>, which
are short for the constants of class <code>java.lang.Boolean</code>.</p>
<p>Setting globally:</p>
<pre><code> SDB.getContext().set(symbol, value) ;
</code></pre>
<p>Per query execution:</p>
<pre><code> QueryExecution qExec = QueryExecutionFactory.create(...) ;
 qExec.getContext.set(symbol, value) ;
</code></pre>
<p>Setting for a query execution happens before any query compilation
or setup happens. Creation of a query execution object does not
compile the query, which happens when the appropriate <code>.exec</code>
method is called.</p>
<h2 id="current-options">Current Options</h2>
<table>
<thead>
<tr>
<th>Symbol</th>
<th>Effect</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>SDB.unionDefaultGraph</code></td>
<td>Query patterns on the default graph match against the union of the named graphs.</td>
<td>false</td>
</tr>
<tr>
<td><code>SDB.jdbcStream</code></td>
<td>Attempt to stream JDBC results.</td>
<td>true</td>
</tr>
<tr>
<td><code>SDB.jdbcFetchSize</code></td>
<td>Set the JDBC fetch size on the SQL query statements. Must be &gt;= 0.</td>
<td>unset</td>
</tr>
<tr>
<td><code>SDB.streamGraphAPI</code></td>
<td>Stream Jena APIs (also requires <code>jdbcStream</code> and <code>jdbcFetchSize</code></td>
<td>false</td>
</tr>
<tr>
<td><code>SDB.annotateGeneratedSQL</code></td>
<td>Put SQL comments in SQL</td>
<td>true</td>
</tr>
</tbody>
</table>
<h3 id="queries-over-all-named-graphs">Queries over all Named Graphs</h3>
<p>All the named graphs can be treated as a single graph in two ways:
either set the SDB option above or use the URI that refers to RDF
merge of the named graphs (<code>urn:x-arq:UnionGraph</code>).</p>
<p>When querying the RDF merge of named graph, the default graph in
the store is not included.</p>
<p>This feature applies to queries only. It does not affect the
storage nor does it change loading.</p>
<p>To find out which named graph a triple can be found in, use <code>GRAPH</code>
as usual.</p>
<p>The following special IRIs exist for use as a graph name in <code>GRAPH</code>
only:</p>
<ul>
<li><code>&lt;urn:x-arq:DefaultGraph&gt;</code> – the default graph, even when
option for named union queries is set.</li>
<li><code>&lt;urn:x-arq:UnionGraph&gt;</code> – the union of all named graphs, even
when the option for named union queries is not set.</li>
</ul>
<h3 id="streaming-over-jdbc">Streaming over JDBC</h3>
<p>By default, SDB processes results from SQL statements in a
streaming fashion. It is important to close query execution
objects, especially if not consuming all the results, because that
causes the underlying JDBC result set to be closed. JDBC result
sets can be a scarce system resource.</p>
<p>If this option is set, but the JDBC connection is not streaming,
then this feature is harmless. Setting it false caused SDB to read
all results of an SQL statement at once, treating streamed
connections as unstreamed.</p>
<p>Note that this only streams results end-to-end if the underlying
JDBC connection itself is set up to stream. Most do not in the
default configuration to reduce transient resource peaks on the
server under load.</p>
<p>Setting the fetch size enables cursors in some databases but there
may be restrictions imposed by the database. See the documentation
for your database for details.</p>
<p>In addition, operations on the graph API can be made streaming by
also setting the Graph API to streaming.</p>
<h3 id="annotated-sql">Annotated SQL</h3>
<p>SQL generation can include SQL comments to show how SPARQL has been
turned into SQL. This option is <code>true</code> by default and always set
for the command <code>sdbprint</code>.</p>
<pre><code>SDB.getContext().setFalse(SDB.annotateGeneratedSQL) ;
</code></pre>


        </div>
    </div>

</div>

<footer class="footer">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2022 The Apache Software Foundation, Licensed under the
            <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>


<script type="text/javascript">
    var link = $('a[href="' + this.location.pathname + '"]');
    if (link != undefined)
        link.parents('li,ul').addClass('active');
</script>

</body>
</html>
