<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CalciteJdbc41Factory (Apache Calcite calcite API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="CalciteJdbc41Factory (Apache Calcite calcite API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/jdbc/CalciteMetaImpl.html" title="class in org.apache.calcite.jdbc"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/jdbc/CalciteJdbc41Factory.html" target="_top">Frames</a></li>
<li><a href="CalciteJdbc41Factory.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.calcite.jdbc.CalciteFactory">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.jdbc</div>
<h2 title="Class CalciteJdbc41Factory" class="title">Class CalciteJdbc41Factory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc">org.apache.calcite.jdbc.CalciteFactory</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.jdbc.CalciteJdbc41Factory</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.apache.calcite.avatica.AvaticaFactory</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">CalciteJdbc41Factory</span>
extends <a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc">CalciteFactory</a></pre>
<div class="block">Implementation of <code>AvaticaFactory</code>
 for Calcite and JDBC 4.1 (corresponds to JDK 1.7).</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.calcite.jdbc.CalciteFactory">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.jdbc.<a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc">CalciteFactory</a></h3>
<code><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#major">major</a>, <a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#minor">minor</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#CalciteJdbc41Factory--">CalciteJdbc41Factory</a></span>()</code>
<div class="block">Creates a factory for JDBC version 4.1.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#CalciteJdbc41Factory-int-int-">CalciteJdbc41Factory</a></span>(int&nbsp;major,
                    int&nbsp;minor)</code>
<div class="block">Creates a JDBC factory with given major/minor version number.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41Connection</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#newConnection-org.apache.calcite.avatica.UnregisteredDriver-org.apache.calcite.avatica.AvaticaFactory-java.lang.String-java.util.Properties-org.apache.calcite.jdbc.CalciteSchema-org.apache.calcite.adapter.java.JavaTypeFactory-">newConnection</a></span>(org.apache.calcite.avatica.UnregisteredDriver&nbsp;driver,
             org.apache.calcite.avatica.AvaticaFactory&nbsp;factory,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;url,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;info,
             <a href="../../../../org/apache/calcite/jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;rootSchema,
             <a href="../../../../org/apache/calcite/adapter/java/JavaTypeFactory.html" title="interface in org.apache.calcite.adapter.java">JavaTypeFactory</a>&nbsp;typeFactory)</code>
<div class="block">Creates a connection with a root schema.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41DatabaseMetaData</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#newDatabaseMetaData-org.apache.calcite.avatica.AvaticaConnection-">newDatabaseMetaData</a></span>(org.apache.calcite.avatica.AvaticaConnection&nbsp;connection)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.calcite.avatica.AvaticaPreparedStatement</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#newPreparedStatement-org.apache.calcite.avatica.AvaticaConnection-org.apache.calcite.avatica.Meta.StatementHandle-org.apache.calcite.avatica.Meta.Signature-int-int-int-">newPreparedStatement</a></span>(org.apache.calcite.avatica.AvaticaConnection&nbsp;connection,
                    org.apache.calcite.avatica.Meta.StatementHandle&nbsp;h,
                    org.apache.calcite.avatica.Meta.Signature&nbsp;signature,
                    int&nbsp;resultSetType,
                    int&nbsp;resultSetConcurrency,
                    int&nbsp;resultSetHoldability)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/jdbc/CalciteResultSet.html" title="class in org.apache.calcite.jdbc">CalciteResultSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#newResultSet-org.apache.calcite.avatica.AvaticaStatement-org.apache.calcite.avatica.QueryState-org.apache.calcite.avatica.Meta.Signature-java.util.TimeZone-org.apache.calcite.avatica.Meta.Frame-">newResultSet</a></span>(org.apache.calcite.avatica.AvaticaStatement&nbsp;statement,
            org.apache.calcite.avatica.QueryState&nbsp;state,
            org.apache.calcite.avatica.Meta.Signature&nbsp;signature,
            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a>&nbsp;timeZone,
            org.apache.calcite.avatica.Meta.Frame&nbsp;firstFrame)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html?is-external=true" title="class or interface in java.sql">ResultSetMetaData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#newResultSetMetaData-org.apache.calcite.avatica.AvaticaStatement-org.apache.calcite.avatica.Meta.Signature-">newResultSetMetaData</a></span>(org.apache.calcite.avatica.AvaticaStatement&nbsp;statement,
                    org.apache.calcite.avatica.Meta.Signature&nbsp;signature)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41Statement</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/jdbc/CalciteJdbc41Factory.html#newStatement-org.apache.calcite.avatica.AvaticaConnection-org.apache.calcite.avatica.Meta.StatementHandle-int-int-int-">newStatement</a></span>(org.apache.calcite.avatica.AvaticaConnection&nbsp;connection,
            org.apache.calcite.avatica.Meta.StatementHandle&nbsp;h,
            int&nbsp;resultSetType,
            int&nbsp;resultSetConcurrency,
            int&nbsp;resultSetHoldability)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.calcite.jdbc.CalciteFactory">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.jdbc.<a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc">CalciteFactory</a></h3>
<code><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#getJdbcMajorVersion--">getJdbcMajorVersion</a>, <a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#getJdbcMinorVersion--">getJdbcMinorVersion</a>, <a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#newConnection-org.apache.calcite.avatica.UnregisteredDriver-org.apache.calcite.avatica.AvaticaFactory-java.lang.String-java.util.Properties-">newConnection</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="CalciteJdbc41Factory--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CalciteJdbc41Factory</h4>
<pre>public&nbsp;CalciteJdbc41Factory()</pre>
<div class="block">Creates a factory for JDBC version 4.1.</div>
</li>
</ul>
<a name="CalciteJdbc41Factory-int-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CalciteJdbc41Factory</h4>
<pre>protected&nbsp;CalciteJdbc41Factory(int&nbsp;major,
                               int&nbsp;minor)</pre>
<div class="block">Creates a JDBC factory with given major/minor version number.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="newConnection-org.apache.calcite.avatica.UnregisteredDriver-org.apache.calcite.avatica.AvaticaFactory-java.lang.String-java.util.Properties-org.apache.calcite.jdbc.CalciteSchema-org.apache.calcite.adapter.java.JavaTypeFactory-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newConnection</h4>
<pre>public&nbsp;org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41Connection&nbsp;newConnection(org.apache.calcite.avatica.UnregisteredDriver&nbsp;driver,
                                                                                          org.apache.calcite.avatica.AvaticaFactory&nbsp;factory,
                                                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;url,
                                                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;info,
                                                                                          <a href="../../../../org/apache/calcite/jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;rootSchema,
                                                                                          <a href="../../../../org/apache/calcite/adapter/java/JavaTypeFactory.html" title="interface in org.apache.calcite.adapter.java">JavaTypeFactory</a>&nbsp;typeFactory)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#newConnection-org.apache.calcite.avatica.UnregisteredDriver-org.apache.calcite.avatica.AvaticaFactory-java.lang.String-java.util.Properties-org.apache.calcite.jdbc.CalciteSchema-org.apache.calcite.adapter.java.JavaTypeFactory-">CalciteFactory</a></code></span></div>
<div class="block">Creates a connection with a root schema.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html#newConnection-org.apache.calcite.avatica.UnregisteredDriver-org.apache.calcite.avatica.AvaticaFactory-java.lang.String-java.util.Properties-org.apache.calcite.jdbc.CalciteSchema-org.apache.calcite.adapter.java.JavaTypeFactory-">newConnection</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc">CalciteFactory</a></code></dd>
</dl>
</li>
</ul>
<a name="newDatabaseMetaData-org.apache.calcite.avatica.AvaticaConnection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newDatabaseMetaData</h4>
<pre>public&nbsp;org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41DatabaseMetaData&nbsp;newDatabaseMetaData(org.apache.calcite.avatica.AvaticaConnection&nbsp;connection)</pre>
</li>
</ul>
<a name="newStatement-org.apache.calcite.avatica.AvaticaConnection-org.apache.calcite.avatica.Meta.StatementHandle-int-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newStatement</h4>
<pre>public&nbsp;org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41Statement&nbsp;newStatement(org.apache.calcite.avatica.AvaticaConnection&nbsp;connection,
                                                                                        org.apache.calcite.avatica.Meta.StatementHandle&nbsp;h,
                                                                                        int&nbsp;resultSetType,
                                                                                        int&nbsp;resultSetConcurrency,
                                                                                        int&nbsp;resultSetHoldability)</pre>
</li>
</ul>
<a name="newPreparedStatement-org.apache.calcite.avatica.AvaticaConnection-org.apache.calcite.avatica.Meta.StatementHandle-org.apache.calcite.avatica.Meta.Signature-int-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newPreparedStatement</h4>
<pre>public&nbsp;org.apache.calcite.avatica.AvaticaPreparedStatement&nbsp;newPreparedStatement(org.apache.calcite.avatica.AvaticaConnection&nbsp;connection,
                                                                                org.apache.calcite.avatica.Meta.StatementHandle&nbsp;h,
                                                                                org.apache.calcite.avatica.Meta.Signature&nbsp;signature,
                                                                                int&nbsp;resultSetType,
                                                                                int&nbsp;resultSetConcurrency,
                                                                                int&nbsp;resultSetHoldability)
                                                                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</a></code></dd>
</dl>
</li>
</ul>
<a name="newResultSet-org.apache.calcite.avatica.AvaticaStatement-org.apache.calcite.avatica.QueryState-org.apache.calcite.avatica.Meta.Signature-java.util.TimeZone-org.apache.calcite.avatica.Meta.Frame-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newResultSet</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/jdbc/CalciteResultSet.html" title="class in org.apache.calcite.jdbc">CalciteResultSet</a>&nbsp;newResultSet(org.apache.calcite.avatica.AvaticaStatement&nbsp;statement,
                                     org.apache.calcite.avatica.QueryState&nbsp;state,
                                     org.apache.calcite.avatica.Meta.Signature&nbsp;signature,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a>&nbsp;timeZone,
                                     org.apache.calcite.avatica.Meta.Frame&nbsp;firstFrame)
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</a></code></dd>
</dl>
</li>
</ul>
<a name="newResultSetMetaData-org.apache.calcite.avatica.AvaticaStatement-org.apache.calcite.avatica.Meta.Signature-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>newResultSetMetaData</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html?is-external=true" title="class or interface in java.sql">ResultSetMetaData</a>&nbsp;newResultSetMetaData(org.apache.calcite.avatica.AvaticaStatement&nbsp;statement,
                                              org.apache.calcite.avatica.Meta.Signature&nbsp;signature)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/jdbc/CalciteMetaImpl.html" title="class in org.apache.calcite.jdbc"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/jdbc/CalciteJdbc41Factory.html" target="_top">Frames</a></li>
<li><a href="CalciteJdbc41Factory.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.calcite.jdbc.CalciteFactory">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>
