blob: 26e6de2b5829751f947dadb3984ac1f36e53537c [file] [log] [blame]
<!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>SqlAdvisor (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="SqlAdvisor (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/advise/SqlAdvisor.html" target="_top">Frames</a></li>
<li><a href="SqlAdvisor.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">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><a href="#field.detail">Field</a>&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.sql.advise</div>
<h2 title="Class SqlAdvisor" class="title">Class SqlAdvisor</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>org.apache.calcite.sql.advise.SqlAdvisor</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">SqlAdvisor</span>
extends <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></pre>
<div class="block">An assistant which offers hints and corrections to a partially-formed SQL
statement. It is used in the SQL editor user-interface.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a></span></code>
<div class="block">An inner class that represents error message text and position info of a
validator or parser exception</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#LOGGER">LOGGER</a></span></code>&nbsp;</td>
</tr>
</table>
</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#SqlAdvisor-org.apache.calcite.sql.validate.SqlValidatorWithHints-">SqlAdvisor</a></span>(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use <a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#SqlAdvisor-org.apache.calcite.sql.validate.SqlValidatorWithHints-org.apache.calcite.sql.parser.SqlParser.Config-"><code>SqlAdvisor(SqlValidatorWithHints, SqlParser.Config)</code></a></span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#SqlAdvisor-org.apache.calcite.sql.validate.SqlValidatorWithHints-org.apache.calcite.sql.parser.SqlParser.Config-">SqlAdvisor</a></span>(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator,
<a href="../../../../../org/apache/calcite/sql/parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a>&nbsp;parserConfig)</code>
<div class="block">Creates a SqlAdvisor with a validator instance and given parser configuration</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>protected <a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#collectParserError-java.lang.String-java.util.List-">collectParserError</a></span>(<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;sql,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;&nbsp;errorList)</code>
<div class="block">Attempts to parse a SQL statement and adds to the errorList if any syntax
error is found.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getCompletionHints-java.lang.String-int-java.lang.String:A-">getCompletionHints</a></span>(<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;sql,
int&nbsp;cursor,
<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;replaced)</code>
<div class="block">Gets completion hints for a partially completed or syntactically incorrect
sql statement with cursor pointing to the position where completion hints
are requested.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getCompletionHints-java.lang.String-org.apache.calcite.sql.parser.SqlParserPos-">getCompletionHints</a></span>(<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;sql,
<a href="../../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code>
<div class="block">Gets completion hints for a syntactically correct sql statement with dummy
SqlIdentifier</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getCompletionHints0-java.lang.String-int-">getCompletionHints0</a></span>(<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;sql,
int&nbsp;cursor)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected org.apache.calcite.sql.parser.SqlAbstractParserImpl.Metadata</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getParserMetadata--">getParserMetadata</a></span>()</code>
<div class="block">Returns the underlying Parser metadata.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getQualifiedName-java.lang.String-int-">getQualifiedName</a></span>(<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;sql,
int&nbsp;cursor)</code>
<div class="block">Gets the fully qualified name for a <a href="../../../../../org/apache/calcite/sql/SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> at a given
position of a sql statement.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getReplacement-org.apache.calcite.sql.validate.SqlMoniker-boolean-org.apache.calcite.avatica.util.Casing-">getReplacement</a></span>(<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;hint,
boolean&nbsp;quoted,
org.apache.calcite.avatica.util.Casing&nbsp;preferredCasing)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getReplacement-org.apache.calcite.sql.validate.SqlMoniker-java.lang.String-">getReplacement</a></span>(<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;hint,
<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;word)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<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>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#getReservedAndKeyWords--">getReservedAndKeyWords</a></span>()</code>
<div class="block">Return an array of SQL reserved and keywords</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#isValid-java.lang.String-">isValid</a></span>(<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;sql)</code>
<div class="block">Attempts to complete and validate a given partially completed sql
statement, and returns whether it is valid.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#parseQuery-java.lang.String-">parseQuery</a></span>(<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;sql)</code>
<div class="block">Wrapper function to parse a SQL query (SELECT or VALUES, but not INSERT,
UPDATE, DELETE, CREATE, DROP etc.), throwing a <a href="../../../../../org/apache/calcite/sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser"><code>SqlParseException</code></a>
if the statement is not syntactically valid.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#simplifySql-java.lang.String-int-">simplifySql</a></span>(<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;sql,
int&nbsp;cursor)</code>
<div class="block">Turns a partially completed or syntactically incorrect sql statement into
a simplified, valid one that can be passed into getCompletionHints()</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#validate-java.lang.String-">validate</a></span>(<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;sql)</code>
<div class="block">Attempts to parse and validate a SQL statement.</div>
</td>
</tr>
</table>
<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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOGGER">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LOGGER</h4>
<pre>public static final&nbsp;org.slf4j.Logger LOGGER</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SqlAdvisor-org.apache.calcite.sql.validate.SqlValidatorWithHints-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SqlAdvisor</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;SqlAdvisor(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.html#SqlAdvisor-org.apache.calcite.sql.validate.SqlValidatorWithHints-org.apache.calcite.sql.parser.SqlParser.Config-"><code>SqlAdvisor(SqlValidatorWithHints, SqlParser.Config)</code></a></span></div>
<div class="block">Creates a SqlAdvisor with a validator instance</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validator</code> - Validator</dd>
</dl>
</li>
</ul>
<a name="SqlAdvisor-org.apache.calcite.sql.validate.SqlValidatorWithHints-org.apache.calcite.sql.parser.SqlParser.Config-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlAdvisor</h4>
<pre>public&nbsp;SqlAdvisor(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator,
<a href="../../../../../org/apache/calcite/sql/parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a>&nbsp;parserConfig)</pre>
<div class="block">Creates a SqlAdvisor with a validator instance and given parser configuration</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validator</code> - Validator</dd>
<dd><code>parserConfig</code> - parser config</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getCompletionHints-java.lang.String-int-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompletionHints</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;getCompletionHints(<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;sql,
int&nbsp;cursor,
<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;replaced)</pre>
<div class="block">Gets completion hints for a partially completed or syntactically incorrect
sql statement with cursor pointing to the position where completion hints
are requested.
<p>Writes into <code>replaced[0]</code> the string that is being
replaced. Includes the cursor and the preceding identifier. For example,
if <code>sql</code> is "select abc^de from t", sets <code>
replaced[0]</code> to "abc". If the cursor is in the middle of
whitespace, the replaced string is empty. The replaced string is never
null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A partial or syntactically incorrect sql statement for
which to retrieve completion hints</dd>
<dd><code>cursor</code> - to indicate the 0-based cursor position in the query at</dd>
<dd><code>replaced</code> - String which is being replaced (output)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>completion hints</dd>
</dl>
</li>
</ul>
<a name="getCompletionHints0-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompletionHints0</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;getCompletionHints0(<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;sql,
int&nbsp;cursor)</pre>
</li>
</ul>
<a name="getReplacement-org.apache.calcite.sql.validate.SqlMoniker-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReplacement</h4>
<pre>public&nbsp;<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;getReplacement(<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;hint,
<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;word)</pre>
</li>
</ul>
<a name="getReplacement-org.apache.calcite.sql.validate.SqlMoniker-boolean-org.apache.calcite.avatica.util.Casing-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReplacement</h4>
<pre>public&nbsp;<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;getReplacement(<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;hint,
boolean&nbsp;quoted,
org.apache.calcite.avatica.util.Casing&nbsp;preferredCasing)</pre>
</li>
</ul>
<a name="getCompletionHints-java.lang.String-org.apache.calcite.sql.parser.SqlParserPos-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompletionHints</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;getCompletionHints(<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;sql,
<a href="../../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</pre>
<div class="block">Gets completion hints for a syntactically correct sql statement with dummy
SqlIdentifier</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A syntactically correct sql statement for which to retrieve
completion hints</dd>
<dd><code>pos</code> - to indicate the line and column position in the query at which
completion hints need to be retrieved. For example, "select
a.ename, b.deptno from sales.emp a join sales.dept b "on
a.deptno=b.deptno where empno=1"; setting pos to 'Line 1, Column
17' returns all the possible column names that can be selected
from sales.dept table setting pos to 'Line 1, Column 31' returns
all the possible table names in 'sales' schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of hints (<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate"><code>SqlMoniker</code></a>) that can fill in at the
indicated position</dd>
</dl>
</li>
</ul>
<a name="getQualifiedName-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQualifiedName</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;getQualifiedName(<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;sql,
int&nbsp;cursor)</pre>
<div class="block">Gets the fully qualified name for a <a href="../../../../../org/apache/calcite/sql/SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> at a given
position of a sql statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A syntactically correct sql statement for which to retrieve a
fully qualified SQL identifier name</dd>
<dd><code>cursor</code> - to indicate the 0-based cursor position in the query that
represents a SQL identifier for which its fully qualified
name is to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="../../../../../org/apache/calcite/sql/validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate"><code>SqlMoniker</code></a> that contains the fully qualified name of
the specified SQL identifier, returns null if none is found or the SQL
statement is invalid.</dd>
</dl>
</li>
</ul>
<a name="isValid-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre>public&nbsp;boolean&nbsp;isValid(<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;sql)</pre>
<div class="block">Attempts to complete and validate a given partially completed sql
statement, and returns whether it is valid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A partial or syntactically incorrect sql statement to validate</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether SQL statement is valid</dd>
</dl>
</li>
</ul>
<a name="validate-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validate</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;&nbsp;validate(<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;sql)</pre>
<div class="block">Attempts to parse and validate a SQL statement. Throws the first
exception encountered. The error message of this exception is to be
displayed on the UI</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A user-input sql statement to be validated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a List of ValidateErrorInfo (null if sql is valid)</dd>
</dl>
</li>
</ul>
<a name="simplifySql-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifySql</h4>
<pre>public&nbsp;<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;simplifySql(<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;sql,
int&nbsp;cursor)</pre>
<div class="block">Turns a partially completed or syntactically incorrect sql statement into
a simplified, valid one that can be passed into getCompletionHints()</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A partial or syntactically incorrect sql statement</dd>
<dd><code>cursor</code> - to indicate column position in the query at which
completion hints need to be retrieved.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a completed, valid (and possibly simplified SQL statement</dd>
</dl>
</li>
</ul>
<a name="getReservedAndKeyWords--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReservedAndKeyWords</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<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>&gt;&nbsp;getReservedAndKeyWords()</pre>
<div class="block">Return an array of SQL reserved and keywords</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an of SQL reserved and keywords</dd>
</dl>
</li>
</ul>
<a name="getParserMetadata--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParserMetadata</h4>
<pre>protected&nbsp;org.apache.calcite.sql.parser.SqlAbstractParserImpl.Metadata&nbsp;getParserMetadata()</pre>
<div class="block">Returns the underlying Parser metadata.
<p>To use a different parser (recognizing a different dialect of SQL),
derived class should override.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>metadata</dd>
</dl>
</li>
</ul>
<a name="parseQuery-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseQuery</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parseQuery(<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;sql)
throws <a href="../../../../../org/apache/calcite/sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></pre>
<div class="block">Wrapper function to parse a SQL query (SELECT or VALUES, but not INSERT,
UPDATE, DELETE, CREATE, DROP etc.), throwing a <a href="../../../../../org/apache/calcite/sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser"><code>SqlParseException</code></a>
if the statement is not syntactically valid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - SQL statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parse tree</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/calcite/sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code> - if not syntactically valid</dd>
</dl>
</li>
</ul>
<a name="collectParserError-java.lang.String-java.util.List-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>collectParserError</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;collectParserError(<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;sql,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;&nbsp;errorList)</pre>
<div class="block">Attempts to parse a SQL statement and adds to the errorList if any syntax
error is found. This implementation uses <a href="../../../../../org/apache/calcite/sql/parser/SqlParser.html" title="class in org.apache.calcite.sql.parser"><code>SqlParser</code></a>. Subclass can
re-implement this with a different parser implementation</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - A user-input sql statement to be parsed</dd>
<dd><code>errorList</code> - A <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of error to be added to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> that is root of the parse tree, null if the sql
is not valid</dd>
</dl>
</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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/calcite/sql/advise/SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/advise/SqlAdvisor.html" target="_top">Frames</a></li>
<li><a href="SqlAdvisor.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">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><a href="#field.detail">Field</a>&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>