blob: a6cb0e6cb855c563aa24cae4afb00357cb4dc8e5 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlAdvisor (Apache Calcite calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql.advise, class: SqlAdvisor">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"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";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.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">
<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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.advise</a></div>
<h1 title="Class SqlAdvisor" class="title">Class SqlAdvisor</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance">org.apache.calcite.sql.advise.SqlAdvisor</div>
</div>
<section class="description">
<hr>
<pre>public class <span class="typeNameLabel">SqlAdvisor</span>
extends <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">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>
</section>
<section class="summary">
<ul class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li class="blockList">
<section class="nestedClassSummary"><a id="nested.class.summary">
<!-- -->
</a>
<h2>Nested Class Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a></span></code></th>
<td class="colLast">
<div class="block">Text and position info of a validator or parser exception.</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LOGGER">LOGGER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.validate.SqlValidatorWithHints)">SqlAdvisor</a></span>&#8203;(<a href="../validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use <a href="#%3Cinit%3E(org.apache.calcite.sql.validate.SqlValidatorWithHints,org.apache.calcite.sql.parser.SqlParser.Config)"><code>SqlAdvisor(SqlValidatorWithHints, SqlParser.Config)</code></a></div>
</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.validate.SqlValidatorWithHints,org.apache.calcite.sql.parser.SqlParser.Config)">SqlAdvisor</a></span>&#8203;(<a href="../validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator,
<a href="../parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a>&nbsp;parserConfig)</code></th>
<td class="colLast">
<div class="block">Creates a SqlAdvisor with a validator instance and given parser
configuration.</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code>protected <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectParserError(java.lang.String,java.util.List)">collectParserError</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;&nbsp;errorList)</code></th>
<td class="colLast">
<div class="block">Attempts to parse a SQL statement and adds to the errorList if any syntax
error is found.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCompletionHints(java.lang.String,int,java.lang.String%5B%5D)">getCompletionHints</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;replaced)</code></th>
<td class="colLast">
<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 class="altColor" id="i2">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCompletionHints(java.lang.String,org.apache.calcite.sql.parser.SqlParserPos)">getCompletionHints</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code></th>
<td class="colLast">
<div class="block">Gets completion hints for a syntactically correct SQL statement with dummy
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCompletionHints0(java.lang.String,int)">getCompletionHints0</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>protected org.apache.calcite.sql.parser.SqlAbstractParserImpl.Metadata</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParserMetadata()">getParserMetadata</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the underlying Parser metadata.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQualifiedName(java.lang.String,int)">getQualifiedName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor)</code></th>
<td class="colLast">
<div class="block">Gets the fully qualified name for a <a href="../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 class="altColor" id="i6">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReplacement(org.apache.calcite.sql.validate.SqlMoniker,boolean,org.apache.calcite.avatica.util.Casing)">getReplacement</a></span>&#8203;(<a href="../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></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReplacement(org.apache.calcite.sql.validate.SqlMoniker,java.lang.String)">getReplacement</a></span>&#8203;(<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;hint,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;word)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReservedAndKeyWords()">getReservedAndKeyWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an array of SQL reserved and keywords.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValid(java.lang.String)">isValid</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Attempts to complete and validate a given partially completed sql
statement, and returns whether it is valid.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>protected <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseQuery(java.lang.String)">parseQuery</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</code></th>
<td class="colLast">
<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="../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 class="rowColor" id="i11">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifySql(java.lang.String,int)">simplifySql</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor)</code></th>
<td class="colLast">
<div class="block">Turns a partially completed or syntactically incorrect sql statement into
a simplified, valid one that can be passed into
<a href="#getCompletionHints(java.lang.String,org.apache.calcite.sql.parser.SqlParserPos)"><code>getCompletionHints(String, SqlParserPos)</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(java.lang.String)">validate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Attempts to parse and validate a SQL statement.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="LOGGER">LOGGER</a></h3>
<div class="memberSignature"><span class="modifiers">public static final</span>&nbsp;<span class="returnType">org.slf4j.Logger</span>&nbsp;<span class="memberName">LOGGER</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.sql.validate.SqlValidatorWithHints)">SqlAdvisor</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlAdvisor</span>&#8203;(<span class="arguments"><a href="../validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use <a href="#%3Cinit%3E(org.apache.calcite.sql.validate.SqlValidatorWithHints,org.apache.calcite.sql.parser.SqlParser.Config)"><code>SqlAdvisor(SqlValidatorWithHints, SqlParser.Config)</code></a></div>
</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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.sql.validate.SqlValidatorWithHints,org.apache.calcite.sql.parser.SqlParser.Config)">SqlAdvisor</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlAdvisor</span>&#8203;(<span class="arguments"><a href="../validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;validator,
<a href="../parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a>&nbsp;parserConfig)</span></div>
<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>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="getCompletionHints(java.lang.String,int,java.lang.String[])">getCompletionHints</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</span>&nbsp;<span class="memberName">getCompletionHints</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;replaced)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getCompletionHints0(java.lang.String,int)">getCompletionHints0</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</span>&nbsp;<span class="memberName">getCompletionHints0</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getReplacement(org.apache.calcite.sql.validate.SqlMoniker,java.lang.String)">getReplacement</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">getReplacement</span>&#8203;(<span class="arguments"><a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;hint,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;word)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getReplacement(org.apache.calcite.sql.validate.SqlMoniker,boolean,org.apache.calcite.avatica.util.Casing)">getReplacement</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">getReplacement</span>&#8203;(<span class="arguments"><a href="../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)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getCompletionHints(java.lang.String,org.apache.calcite.sql.parser.SqlParserPos)">getCompletionHints</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</span>&nbsp;<span class="memberName">getCompletionHints</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</span></div>
<div class="block">Gets completion hints for a syntactically correct SQL statement with dummy
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>.</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="../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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getQualifiedName(java.lang.String,int)">getQualifiedName</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../validate/SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a></span>&nbsp;<span class="memberName">getQualifiedName</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor)</span></div>
<div class="block">Gets the fully qualified name for a <a href="../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="../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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isValid(java.lang.String)">isValid</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isValid</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="validate(java.lang.String)">validate</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;</span>&nbsp;<span class="memberName">validate</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="simplifySql(java.lang.String,int)">simplifySql</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">simplifySql</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
int&nbsp;cursor)</span></div>
<div class="block">Turns a partially completed or syntactically incorrect sql statement into
a simplified, valid one that can be passed into
<a href="#getCompletionHints(java.lang.String,org.apache.calcite.sql.parser.SqlParserPos)"><code>getCompletionHints(String, SqlParserPos)</code></a>.</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> - Indicates the 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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getReservedAndKeyWords()">getReservedAndKeyWords</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</span>&nbsp;<span class="memberName">getReservedAndKeyWords</span>()</div>
<div class="block">Returns 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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getParserMetadata()">getParserMetadata</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">org.apache.calcite.sql.parser.SqlAbstractParserImpl.Metadata</span>&nbsp;<span class="memberName">getParserMetadata</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="parseQuery(java.lang.String)">parseQuery</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">parseQuery</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</span>
throws <span class="exceptions"><a href="../parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></span></div>
<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="../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="../parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code> - if not syntactically valid</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectParserError(java.lang.String,java.util.List)">collectParserError</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">collectParserError</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="SqlAdvisor.ValidateErrorInfo.html" title="class in org.apache.calcite.sql.advise">SqlAdvisor.ValidateErrorInfo</a>&gt;&nbsp;errorList)</span></div>
<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="../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/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> of error to be added to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../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>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.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">
<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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>