blob: a2872b37100c39f9252c67a38fcb1719fa48803a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>DruidAdapter2IT (Calcite 1.21.0 Test API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DruidAdapter2IT (Calcite 1.21.0 Test API)";
}
}
catch(err) {
}
//-->
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,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":10,"i178":10,"i179":10,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":10,"i187":10,"i188":10,"i189":10,"i190":10,"i191":10,"i192":10,"i193":10,"i194":10,"i195":10,"i196":10,"i197":10,"i198":10,"i199":10,"i200":10,"i201":10,"i202":10,"i203":10,"i204":10,"i205":10,"i206":10,"i207":10,"i208":10,"i209":10,"i210":10,"i211":10,"i212":10,"i213":10,"i214":10,"i215":10,"i216":10,"i217":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 = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= 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="class-use/DruidAdapter2IT.html">Use</a></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>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.test</a></div>
<h2 title="Class DruidAdapter2IT" class="title">Class DruidAdapter2IT</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.test.DruidAdapter2IT</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">DruidAdapter2IT</span>
extends java.lang.Object</pre>
<div class="block">Tests for the <code>org.apache.calcite.adapter.druid</code> package.
<p>Before calling this test, you need to populate Druid, as follows:
<blockquote><code>
git clone https://github.com/vlsi/calcite-test-dataset<br>
cd calcite-test-dataset<br>
mvn install
</code></blockquote>
<p>This will create a virtual machine with Druid and test data set.
<p>Features not yet implemented:
<ul>
<li>push LIMIT into "select" query</li>
<li>push SORT and/or LIMIT into "groupBy" query</li>
<li>push HAVING into "groupBy" query</li>
</ul>
<p>These tests use TIMESTAMP type for the Druid timestamp column, instead
of TIMESTAMP WITH LOCAL TIME ZONE type as <a href="DruidAdapterIT.html" title="class in org.apache.calcite.test"><code>DruidAdapterIT</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<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>
<tr class="altColor">
<td class="colFirst"><code>static java.net.URL</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FOODMART">FOODMART</a></span></code></th>
<td class="colLast">
<div class="block">URL of the "druid-foodmart" model.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FOODMART_TABLE">FOODMART_TABLE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#VARCHAR_TYPE">VARCHAR_TYPE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DruidAdapter2IT</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private <a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#approxQuery(java.net.URL,java.lang.String)">approxQuery</a></span>&#8203;(java.net.URL&nbsp;url,
java.lang.String&nbsp;sql)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkGroupBySingleSortLimit(boolean)">checkGroupBySingleSortLimit</a></span>&#8203;(boolean&nbsp;approx)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enabled()">enabled</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to run this test.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private <a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#foodmartApprox(java.lang.String)">foodmartApprox</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Creates a query against FOODMART with approximate parameters</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private <a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sql(java.lang.String)">sql</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Creates a query against the <a href="#FOODMART"><code>FOODMART</code></a> data set.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private <a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sql(java.lang.String,java.net.URL)">sql</a></span>&#8203;(java.lang.String&nbsp;sql,
java.net.URL&nbsp;url)</code></th>
<td class="colLast">
<div class="block">Creates a query against a data set given by a map.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggOnArithmeticProject()">testAggOnArithmeticProject</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggOnArithmeticProject2()">testAggOnArithmeticProject2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggOnArithmeticProject3()">testAggOnArithmeticProject3</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggOnTimeExtractColumn2()">testAggOnTimeExtractColumn2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggOverStringToLong()">testAggOverStringToLong</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggSameColumnMultipleTimes()">testAggSameColumnMultipleTimes</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAndCombinationOfComplexExpAndSimpleFilter()">testAndCombinationOfComplexExpAndSimpleFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAndCombinationOfExpAndSimpleFilter()">testAndCombinationOfExpAndSimpleFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testBetweenFilterWithCastOverNumeric()">testBetweenFilterWithCastOverNumeric</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for https://issues.apache.org/jira/browse/CALCITE-2123</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testBooleanFilterExpressions()">testBooleanFilterExpressions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastConcatOverPostAggregates()">testCastConcatOverPostAggregates</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastLiteralToTimestamp()">testCastLiteralToTimestamp</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastOverPostAggregates()">testCastOverPostAggregates</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastPlusMathOps()">testCastPlusMathOps</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastTimestamp1()">testCastTimestamp1</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastTimestamp2()">testCastTimestamp2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCeilFilterExpression()">testCeilFilterExpression</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testColumnAEqColumnB()">testColumnAEqColumnB</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testColumnANotEqColumnB()">testColumnANotEqColumnB</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCombinationOfValidAndNotValidAndInterval()">testCombinationOfValidAndNotValidAndInterval</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2122">[CALCITE-2122]
DateRangeRules issues</a>.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCombinationOfValidAndNotValidFilters()">testCombinationOfValidAndNotValidFilters</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testComplexExpressionsIsNull()">testComplexExpressionsIsNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testComplexMetricAlsoDimension()">testComplexMetricAlsoDimension</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to make sure that if a complex metric is also a dimension, then
<code>DruidTable</code> should allow it to be used like any other
column.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testComplexPushGroupBy()">testComplexPushGroupBy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConstantPostAggregator()">testConstantPostAggregator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountGroupByEmpty()">testCountGroupByEmpty</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountOnMetric()">testCountOnMetric</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that a count on a metric does not get pushed into Druid</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountOnMetricRenamed()">testCountOnMetricRenamed</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountOverVirtualColumn()">testCountOverVirtualColumn</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountStar()">testCountStar</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that count(*) is pushed into Druid</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountWithApproxDistinct(boolean,java.lang.String,java.lang.String)">testCountWithApproxDistinct</a></span>&#8203;(boolean&nbsp;approx,
java.lang.String&nbsp;sql,
java.lang.String&nbsp;expectedExplain)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountWithApproxDistinct(boolean,java.lang.String,java.lang.String,java.lang.String)">testCountWithApproxDistinct</a></span>&#8203;(boolean&nbsp;approx,
java.lang.String&nbsp;sql,
java.lang.String&nbsp;expectedExplain,
java.lang.String&nbsp;expectedDruidQuery)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCountWithNonNull()">testCountWithNonNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCount()">testDistinctCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that distinct-count is pushed down to Druid and evaluated using
"cardinality".</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountOnMetric()">testDistinctCountOnMetric</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountOnMetricRenamed()">testDistinctCountOnMetricRenamed</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountWhenApproxResultsAccepted()">testDistinctCountWhenApproxResultsAccepted</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that count(distinct ...) gets pushed to Druid when approximate results are
acceptable</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountWhenApproxResultsNotAccepted()">testDistinctCountWhenApproxResultsNotAccepted</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that count(distinct ...) doesn't get pushed to Druid when approximate results
are not acceptable</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctLimit()">testDistinctLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDivideArithmeticOperation()">testDivideArithmeticOperation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDivideByZeroDoubleTypeInfinity()">testDivideByZeroDoubleTypeInfinity</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDivideByZeroDoubleTypeNaN()">testDivideByZeroDoubleTypeNaN</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDivideByZeroDoubleTypeNegInfinity()">testDivideByZeroDoubleTypeNegInfinity</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDivideByZeroIntegerType()">testDivideByZeroIntegerType</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDruidTimeFloorAndTimeParseExpressions()">testDruidTimeFloorAndTimeParseExpressions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDruidTimeFloorAndTimeParseExpressions2()">testDruidTimeFloorAndTimeParseExpressions2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDuplicateReferenceOnPostAggregation()">testDuplicateReferenceOnPostAggregation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionFilterSimpleColumnAEqColumnB()">testExpressionFilterSimpleColumnAEqColumnB</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsConcatFilter()">testExpressionsConcatFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsConcatFilterMultipleColumns()">testExpressionsConcatFilterMultipleColumns</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsFilter()">testExpressionsFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsFilter2()">testExpressionsFilter2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsFilterWithCast()">testExpressionsFilterWithCast</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsFilterWithCastTimeToDateToChar()">testExpressionsFilterWithCastTimeToDateToChar</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsFilterWithExtract()">testExpressionsFilterWithExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsLikeFilter()">testExpressionsLikeFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsLowerFilterMatching()">testExpressionsLowerFilterMatching</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsLowerFilterNotMatching()">testExpressionsLowerFilterNotMatching</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsLowerUpperFilter()">testExpressionsLowerUpperFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsNotNull()">testExpressionsNotNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsSTRLENFilter()">testExpressionsSTRLENFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsUpperFilterMatching()">testExpressionsUpperFilterMatching</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsUpperFilterNotMatching()">testExpressionsUpperFilterNotMatching</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionsUpperLowerFilter()">testExpressionsUpperLowerFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractFilterWorkWithPostAggregations()">testExtractFilterWorkWithPostAggregations</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractFilterWorkWithPostAggregationsWithConstant()">testExtractFilterWorkWithPostAggregationsWithConstant</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractMonthFilterExpression()">testExtractMonthFilterExpression</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractQuarter()">testExtractQuarter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractQuarterPlusDim()">testExtractQuarterPlusDim</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractYearFilterExpression()">testExtractYearFilterExpression</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFalseFilter()">testFalseFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFalseFilterCaseConjectionWithTrue()">testFalseFilterCaseConjectionWithTrue</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilter()">testFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseAlwaysFalseNotPushed()">testFilterClauseAlwaysFalseNotPushed</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that an aggregate with a filter clause that is always false does not get pushed in</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseAlwaysFalseNotPushedWithFilter()">testFilterClauseAlwaysFalseNotPushedWithFilter</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that an aggregate with a filter clause that is always false does not get pushed when
there is already an outer filter</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseAlwaysTrueGone()">testFilterClauseAlwaysTrueGone</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests whether filter clauses with filters that are always true disappear or not</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseAlwaysTrueWithAggGone1()">testFilterClauseAlwaysTrueWithAggGone1</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests whether filter clauses with filters that are always true disappear in the presence
of another aggregate without a filter clause</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseAlwaysTrueWithAggGone2()">testFilterClauseAlwaysTrueWithAggGone2</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests whether filter clauses with filters that are always true disappear in the presence
of another aggregate with a filter clause</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseFactoredOut()">testFilterClauseFactoredOut</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests whether an aggregate with a filter clause has it's filter factored out
when there is no outer filter</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseNotFactoredOut1()">testFilterClauseNotFactoredOut1</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that an aggregate with a filter clause in the presence of another aggregate
without a filter clause does not have it's filter factored out into the outer filter</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseNotFactoredOut2()">testFilterClauseNotFactoredOut2</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that an aggregate with a filter clause in the presence of another aggregate
without a filter clause, and an outer filter does not have it's
filter factored out into the outer filter</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseNotPushable()">testFilterClauseNotPushable</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that aggregates with filter clauses that Druid cannot handle are not pushed in
as filtered aggregates.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseSameAsOuterFilterGone()">testFilterClauseSameAsOuterFilterGone</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that an aggregate with a filter clause that is the same as the outer filter has no
references to that filter, and that the original outer filter remains</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClausesFactoredForPruning1()">testFilterClausesFactoredForPruning1</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that multiple aggregates with filter clauses have their filters extracted to
the outer filter field for data pruning</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClausesFactoredForPruning2()">testFilterClausesFactoredForPruning2</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that multiple aggregates with filter clauses have their filters extracted to
the outer filter field for data pruning in the presence of an outer filter</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseWithMetricAndTimeAndAggregates()">testFilterClauseWithMetricAndTimeAndAggregates</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseWithMetricRef()">testFilterClauseWithMetricRef</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseWithMetricRefAndAggregates()">testFilterClauseWithMetricRefAndAggregates</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterClauseWithNoConjunction()">testFilterClauseWithNoConjunction</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for https://issues.apache.org/jira/browse/CALCITE-2098.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterDistinct()">testFilterDistinct</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterExtractionOnMonthWithBetween()">testFilterExtractionOnMonthWithBetween</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterExtractionOnMonthWithIn()">testFilterExtractionOnMonthWithIn</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterFloorOnMetricColumn()">testFilterFloorOnMetricColumn</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterOnDouble()">testFilterOnDouble</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterOutEverything()">testFilterOutEverything</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests a query whose filter removes all rows.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterSortDesc()">testFilterSortDesc</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests a query that contains no GROUP BY and is therefore executed as a
Druid "select" query.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterSortDescNumeric()">testFilterSortDescNumeric</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testFilterSortDesc()"><code>testFilterSortDesc()</code></a> but the bounds are numeric.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterSwapped()">testFilterSwapped</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterTimestamp()">testFilterTimestamp</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that conditions applied to time units extracted via the EXTRACT
function become ranges on the timestamp column</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterUnionPlan()">testFilterUnionPlan</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterWithFloorOnTime()">testFilterWithFloorOnTime</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFloorQuarter()">testFloorQuarter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFloorQuarterPlusDim()">testFloorQuarterPlusDim</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFloorToDateRangeWithTimeZone()">testFloorToDateRangeWithTimeZone</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupBy1()">testGroupBy1</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByAvgSumCount()">testGroupByAvgSumCount</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByDayGranularity()">testGroupByDayGranularity</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByDaySortDescLimit()">testGroupByDaySortDescLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1578">[CALCITE-1578]
Druid adapter: wrong semantics of groupBy query limit with granularity</a>.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByDaySortDimension()">testGroupByDaySortDimension</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1580">[CALCITE-1580]
Druid adapter: Wrong semantics for ordering within groupBy queries</a>.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByDaySortLimit()">testGroupByDaySortLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1579">[CALCITE-1579]
Druid adapter: wrong semantics of groupBy query limit with
granularity</a>.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByFloorTimeWithLimit()">testGroupByFloorTimeWithLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByFloorTimeWithoutLimit()">testGroupByFloorTimeWithoutLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByHaving()">testGroupByHaving</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupbyMetric()">testGroupbyMetric</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByMetricAndExtractTime()">testGroupByMetricAndExtractTime</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByMonthGranularity()">testGroupByMonthGranularity</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByMonthGranularityFiltered()">testGroupByMonthGranularityFiltered</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByMonthGranularitySort()">testGroupByMonthGranularitySort</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1577">[CALCITE-1577]
Druid adapter: Incorrect result - limit on timestamp disappears</a>.</div>
</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByMonthGranularitySortLimit()">testGroupByMonthGranularitySortLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByOneColumn()">testGroupByOneColumn</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByOneColumnNotProjected()">testGroupByOneColumnNotProjected</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByOneColumnReversed()">testGroupByOneColumnReversed</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i128" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupBySingleSortLimit()">testGroupBySingleSortLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1587">[CALCITE-1587]
Druid adapter: topN returns approximate results</a>.</div>
</td>
</tr>
<tr id="i129" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupBySingleSortLimitApprox()">testGroupBySingleSortLimitApprox</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testGroupBySingleSortLimit()"><code>testGroupBySingleSortLimit()</code></a>, but allowing approximate results
due to <code>CalciteConnectionConfig.approximateDistinctCount()</code>.</div>
</td>
</tr>
<tr id="i130" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupBySortLimit()">testGroupBySortLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1578">[CALCITE-1578]
Druid adapter: wrong semantics of topN query limit with granularity</a>.</div>
</td>
</tr>
<tr id="i131" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByTimeAndOneColumnNotProjected()">testGroupByTimeAndOneColumnNotProjected</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i132" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByTimeAndOneColumnNotProjectedWithLimit()">testGroupByTimeAndOneColumnNotProjectedWithLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Unlike <a href="#testGroupByTimeAndOneColumnNotProjected()"><code>testGroupByTimeAndOneColumnNotProjected()</code></a>, we cannot use
"topN" because we have a global limit, and that requires
<code>granularity: all</code>.</div>
</td>
</tr>
<tr id="i133" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByTimeAndOneMetricNotProjected()">testGroupByTimeAndOneMetricNotProjected</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i134" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByTimeSortOverMetrics()">testGroupByTimeSortOverMetrics</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i135" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByVirtualColumn()">testGroupByVirtualColumn</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i136" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupByWeekExtract()">testGroupByWeekExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i137" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testGroupComposite()">testGroupComposite</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i138" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testHavingSpecs()">testHavingSpecs</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i139" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testHyperUniquePostAggregator()">testHyperUniquePostAggregator</a></span>()</code></th>
<td class="colLast">
<div class="block">Turn on now count(distinct )</div>
</td>
</tr>
<tr id="i140" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testInterleaveBetweenAggregateAndGroupOrderByOnDimension()">testInterleaveBetweenAggregateAndGroupOrderByOnDimension</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i141" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testInterleaveBetweenAggregateAndGroupOrderByOnMetrics()">testInterleaveBetweenAggregateAndGroupOrderByOnMetrics</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i142" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIsNotNull()">testIsNotNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i143" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIsNull()">testIsNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i144" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testLimit()">testLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i145" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMetadataColumns()">testMetadataColumns</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i146" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMinusArithmeticOperation()">testMinusArithmeticOperation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i147" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMultipleFiltersFactoredOutWithOuterFilter()">testMultipleFiltersFactoredOutWithOuterFilter</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that multiple aggregates with the same filter clause have them factored
out in the presence of an outer filter, and that they no longer refer to those filters</div>
</td>
</tr>
<tr id="i148" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMultiplyArithmeticOperation()">testMultiplyArithmeticOperation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i149" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNestedFilterClauseFactored()">testNestedFilterClauseFactored</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that an aggregate with a nested filter clause has it's filter factored out</div>
</td>
</tr>
<tr id="i150" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNestedFilterClauseInAggregates()">testNestedFilterClauseInAggregates</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to ensure that aggregates with nested filters have their filters factored out
into the outer filter for data pruning while still holding a reference to the filter clause</div>
</td>
</tr>
<tr id="i151" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNonPushableFilterSortDesc()">testNonPushableFilterSortDesc</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testFilterSortDescNumeric()"><code>testFilterSortDescNumeric()</code></a> but with a filter that cannot
be pushed down to Druid.</div>
</td>
</tr>
<tr id="i152" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNotFilterForm()">testNotFilterForm</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to make sure the "not" filter has only 1 field, rather than an array of fields.</div>
</td>
</tr>
<tr id="i153" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNotTrueSimpleFilter()">testNotTrueSimpleFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i154" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNumericOrderingOfOrderByOperatorFullTime()">testNumericOrderingOfOrderByOperatorFullTime</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i155" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNumericOrderingOfOrderByOperatorStringDims()">testNumericOrderingOfOrderByOperatorStringDims</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i156" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNumericOrderingOfOrderByOperatorTimeExtract()">testNumericOrderingOfOrderByOperatorTimeExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i157" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOffsetLimit()">testOffsetLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i158" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOrCombinationOfExpAndSimpleFilter()">testOrCombinationOfExpAndSimpleFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i159" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOrderByOneColumnNotProjected()">testOrderByOneColumnNotProjected</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i160" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOrderByOnMetricsInSelectDruidQuery()">testOrderByOnMetricsInSelectDruidQuery</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i161" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOuterFilterFalseAfterFactorSimplification()">testOuterFilterFalseAfterFactorSimplification</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that when the resulting filter from factoring filter clauses out is always false,
that they are still pushed to Druid to handle.</div>
</td>
</tr>
<tr id="i162" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOuterFilterRemainsWithAlwaysTrueClause()">testOuterFilterRemainsWithAlwaysTrueClause</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests whether an existing outer filter is untouched when an aggregate has a filter clause
that is always true</div>
</td>
</tr>
<tr id="i163" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPartiallyPostAggregation()">testPartiallyPostAggregation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i164" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPlusArithmeticOperation()">testPlusArithmeticOperation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i165" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProject()">testProject</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that projections of columns are pushed into the DruidQuery, and
projections of expressions that Druid cannot handle (in this case, a
literal 0) stay up.</div>
</td>
</tr>
<tr id="i166" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectSameColumnMultipleTimes()">testProjectSameColumnMultipleTimes</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i167" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectSameMetricsColumnMultipleTimes()">testProjectSameMetricsColumnMultipleTimes</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i168" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTime()">testPushAggregateOnTime</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i169" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractDay()">testPushAggregateOnTimeWithExtractDay</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i170" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractHourOfDay()">testPushAggregateOnTimeWithExtractHourOfDay</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i171" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractMonth()">testPushAggregateOnTimeWithExtractMonth</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i172" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractWithOutRenaming()">testPushAggregateOnTimeWithExtractWithOutRenaming</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i173" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractYear()">testPushAggregateOnTimeWithExtractYear</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i174" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractYearMonthDay()">testPushAggregateOnTimeWithExtractYearMonthDay</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i175" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateOnTimeWithExtractYearMonthDayWithOutRenaming()">testPushAggregateOnTimeWithExtractYearMonthDayWithOutRenaming</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i176" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCast()">testPushCast</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1770">[CALCITE-1770]
Druid adapter: CAST(NULL AS ...) gives NPE</a>.</div>
</td>
</tr>
<tr id="i177" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCastNumeric()">testPushCastNumeric</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1769">[CALCITE-1769]
Druid adapter: Push down filters involving numeric cast of literals</a>.</div>
</td>
</tr>
<tr id="i178" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushComplexFilter()">testPushComplexFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i179" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushEqualsCastDimension()">testPushEqualsCastDimension</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i180" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFieldEqualsLiteral()">testPushFieldEqualsLiteral</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i181" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushNotEqualsCastDimension()">testPushNotEqualsCastDimension</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i182" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushOfFilterExtractionOnDayAndMonth()">testPushOfFilterExtractionOnDayAndMonth</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i183" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushOfFilterExtractionOnDayAndMonthAndYear()">testPushOfFilterExtractionOnDayAndMonthAndYear</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i184" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushofOrderByMetricWithYearMonthExtract()">testPushofOrderByMetricWithYearMonthExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i185" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushOfOrderByWithMonthExtract()">testPushOfOrderByWithMonthExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i186" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushofOrderByYearWithYearMonthExtract()">testPushofOrderByYearWithYearMonthExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i187" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushOfSimpleColumnAPlusColumnB()">testPushOfSimpleColumnAPlusColumnB</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i188" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushOfSimpleMathOps()">testPushOfSimpleMathOps</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i189" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSimpleGroupBy()">testPushSimpleGroupBy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i190" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRecursiveArithmeticOperation()">testRecursiveArithmeticOperation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i191" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSelectCount()">testSelectCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1281">[CALCITE-1281]
Druid adapter wrongly returns all numeric values as int or float</a>.</div>
</td>
</tr>
<tr id="i192" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSelectDistinct()">testSelectDistinct</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i193" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSelectExtractMonth()">testSelectExtractMonth</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i194" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSelectFloorOnTimeWithFilterOnFloorOnTime()">testSelectFloorOnTimeWithFilterOnFloorOnTime</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i195" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSelectGroupBySum()">testSelectGroupBySum</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i196" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSingleAverageFunction()">testSingleAverageFunction</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i197" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSort()">testSort</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i198" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortLimit()">testSortLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i199" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testStackedAggregateFilters()">testStackedAggregateFilters</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i200" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSubStringExpressionFilter()">testSubStringExpressionFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i201" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSubStringOverPostAggregates()">testSubStringOverPostAggregates</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i202" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSubStringWithNonConstantIndex()">testSubStringWithNonConstantIndex</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i203" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSubStringWithNonConstantIndexes()">testSubStringWithNonConstantIndexes</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i204" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableauQueryExtractMonthDayYear()">testTableauQueryExtractMonthDayYear</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i205" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableauQueryMinutesSecondsExtract()">testTableauQueryMinutesSecondsExtract</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i206" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableauQuerySubStringHourMinutes()">testTableauQuerySubStringHourMinutes</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i207" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableMapReused()">testTableMapReused</a></span>()</code></th>
<td class="colLast">
<div class="block">Test to make sure that the mapping from a Table name to a Table returned from
<code>DruidSchema</code> is always the same Java object.</div>
</td>
</tr>
<tr id="i208" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableQueryExtractYearQuarter()">testTableQueryExtractYearQuarter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i209" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTimeExtractThatCannotBePushed()">testTimeExtractThatCannotBePushed</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1765">[CALCITE-1765]
Druid adapter: Gracefully handle granularity that cannot be pushed to
extraction function</a>.</div>
</td>
</tr>
<tr id="i210" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTimeFloorExpressions()">testTimeFloorExpressions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i211" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTimeWithFilterOnFloorOnTimeAndCastToTimestamp()">testTimeWithFilterOnFloorOnTimeAndCastToTimestamp</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i212" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTopNDayGranularityFiltered()">testTopNDayGranularityFiltered</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i213" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTopNMonthGranularity()">testTopNMonthGranularity</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i214" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransposableHavingFilter()">testTransposableHavingFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i215" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTrigonometryMathFunctions()">testTrigonometryMathFunctions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i216" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTrueFilter()">testTrueFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i217" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnionPlan()">testUnionPlan</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="FOODMART">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FOODMART</h4>
<pre>public static final&nbsp;java.net.URL FOODMART</pre>
<div class="block">URL of the "druid-foodmart" model.</div>
</li>
</ul>
<a id="VARCHAR_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VARCHAR_TYPE</h4>
<pre>private static final&nbsp;java.lang.String VARCHAR_TYPE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.test.DruidAdapter2IT.VARCHAR_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FOODMART_TABLE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FOODMART_TABLE</h4>
<pre>private static final&nbsp;java.lang.String FOODMART_TABLE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.test.DruidAdapter2IT.FOODMART_TABLE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DruidAdapter2IT</h4>
<pre>public&nbsp;DruidAdapter2IT()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="enabled()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enabled</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;enabled()</pre>
<div class="block">Whether to run this test.</div>
</li>
</ul>
<a id="foodmartApprox(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>foodmartApprox</h4>
<pre class="methodSignature">private&nbsp;<a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a>&nbsp;foodmartApprox&#8203;(java.lang.String&nbsp;sql)</pre>
<div class="block">Creates a query against FOODMART with approximate parameters</div>
</li>
</ul>
<a id="approxQuery(java.net.URL,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>approxQuery</h4>
<pre class="methodSignature">private&nbsp;<a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a>&nbsp;approxQuery&#8203;(java.net.URL&nbsp;url,
java.lang.String&nbsp;sql)</pre>
</li>
</ul>
<a id="sql(java.lang.String,java.net.URL)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sql</h4>
<pre class="methodSignature">private&nbsp;<a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a>&nbsp;sql&#8203;(java.lang.String&nbsp;sql,
java.net.URL&nbsp;url)</pre>
<div class="block">Creates a query against a data set given by a map.</div>
</li>
</ul>
<a id="sql(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sql</h4>
<pre class="methodSignature">private&nbsp;<a href="CalciteAssert.AssertQuery.html" title="class in org.apache.calcite.test">CalciteAssert.AssertQuery</a>&nbsp;sql&#8203;(java.lang.String&nbsp;sql)</pre>
<div class="block">Creates a query against the <a href="#FOODMART"><code>FOODMART</code></a> data set.</div>
</li>
</ul>
<a id="testMetadataColumns()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testMetadataColumns</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testMetadataColumns()
throws java.lang.Exception</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="testSelectDistinct()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSelectDistinct</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSelectDistinct()</pre>
</li>
</ul>
<a id="testSelectGroupBySum()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSelectGroupBySum</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSelectGroupBySum()</pre>
</li>
</ul>
<a id="testGroupbyMetric()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupbyMetric</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupbyMetric()</pre>
</li>
</ul>
<a id="testPushSimpleGroupBy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testPushSimpleGroupBy</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testPushSimpleGroupBy()</pre>
</li>
</ul>
<a id="testComplexPushGroupBy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testComplexPushGroupBy</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testComplexPushGroupBy()</pre>
</li>
</ul>
<a id="testSelectCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSelectCount</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSelectCount()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1281">[CALCITE-1281]
Druid adapter wrongly returns all numeric values as int or float</a>.</div>
</li>
</ul>
<a id="testSort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSort</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSort()</pre>
</li>
</ul>
<a id="testSortLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortLimit()</pre>
</li>
</ul>
<a id="testOffsetLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testOffsetLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testOffsetLimit()</pre>
</li>
</ul>
<a id="testLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testLimit()</pre>
</li>
</ul>
<a id="testDistinctLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testDistinctLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testDistinctLimit()</pre>
</li>
</ul>
<a id="testGroupBySortLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupBySortLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupBySortLimit()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1578">[CALCITE-1578]
Druid adapter: wrong semantics of topN query limit with granularity</a>.</div>
</li>
</ul>
<a id="testGroupBySingleSortLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupBySingleSortLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupBySingleSortLimit()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1587">[CALCITE-1587]
Druid adapter: topN returns approximate results</a>.</div>
</li>
</ul>
<a id="testGroupBySingleSortLimitApprox()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupBySingleSortLimitApprox</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupBySingleSortLimitApprox()</pre>
<div class="block">As <a href="#testGroupBySingleSortLimit()"><code>testGroupBySingleSortLimit()</code></a>, but allowing approximate results
due to <code>CalciteConnectionConfig.approximateDistinctCount()</code>.
Therefore we send a "topN" query to Druid.</div>
</li>
</ul>
<a id="checkGroupBySingleSortLimit(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkGroupBySingleSortLimit</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkGroupBySingleSortLimit&#8203;(boolean&nbsp;approx)</pre>
</li>
</ul>
<a id="testGroupByDaySortDescLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByDaySortDescLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByDaySortDescLimit()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1578">[CALCITE-1578]
Druid adapter: wrong semantics of groupBy query limit with granularity</a>.
<p>Before CALCITE-1578 was fixed, this would use a "topN" query but return
the wrong results.</div>
</li>
</ul>
<a id="testGroupByDaySortLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByDaySortLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByDaySortLimit()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1579">[CALCITE-1579]
Druid adapter: wrong semantics of groupBy query limit with
granularity</a>.
<p>Before CALCITE-1579 was fixed, this would use a "groupBy" query but
wrongly try to use a <code>limitSpec</code> to sort and filter. (A "topN" query
was not possible because the sort was <code>ASC</code>.)</div>
</li>
</ul>
<a id="testGroupByDaySortDimension()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByDaySortDimension</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByDaySortDimension()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1580">[CALCITE-1580]
Druid adapter: Wrong semantics for ordering within groupBy queries</a>.</div>
</li>
</ul>
<a id="testFilterSortDesc()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterSortDesc</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterSortDesc()</pre>
<div class="block">Tests a query that contains no GROUP BY and is therefore executed as a
Druid "select" query.</div>
</li>
</ul>
<a id="testFilterSortDescNumeric()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterSortDescNumeric</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterSortDescNumeric()</pre>
<div class="block">As <a href="#testFilterSortDesc()"><code>testFilterSortDesc()</code></a> but the bounds are numeric.</div>
</li>
</ul>
<a id="testFilterOutEverything()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterOutEverything</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterOutEverything()</pre>
<div class="block">Tests a query whose filter removes all rows.</div>
</li>
</ul>
<a id="testNonPushableFilterSortDesc()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testNonPushableFilterSortDesc</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testNonPushableFilterSortDesc()</pre>
<div class="block">As <a href="#testFilterSortDescNumeric()"><code>testFilterSortDescNumeric()</code></a> but with a filter that cannot
be pushed down to Druid.</div>
</li>
</ul>
<a id="testUnionPlan()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testUnionPlan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testUnionPlan()</pre>
</li>
</ul>
<a id="testFilterUnionPlan()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterUnionPlan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterUnionPlan()</pre>
</li>
</ul>
<a id="testCountGroupByEmpty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testCountGroupByEmpty</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testCountGroupByEmpty()</pre>
</li>
</ul>
<a id="testGroupByOneColumnNotProjected()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByOneColumnNotProjected</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByOneColumnNotProjected()</pre>
</li>
</ul>
<a id="testGroupByTimeAndOneColumnNotProjectedWithLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByTimeAndOneColumnNotProjectedWithLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByTimeAndOneColumnNotProjectedWithLimit()</pre>
<div class="block">Unlike <a href="#testGroupByTimeAndOneColumnNotProjected()"><code>testGroupByTimeAndOneColumnNotProjected()</code></a>, we cannot use
"topN" because we have a global limit, and that requires
<code>granularity: all</code>.</div>
</li>
</ul>
<a id="testGroupByTimeAndOneMetricNotProjected()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByTimeAndOneMetricNotProjected</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByTimeAndOneMetricNotProjected()</pre>
</li>
</ul>
<a id="testGroupByTimeAndOneColumnNotProjected()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByTimeAndOneColumnNotProjected</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByTimeAndOneColumnNotProjected()</pre>
</li>
</ul>
<a id="testOrderByOneColumnNotProjected()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testOrderByOneColumnNotProjected</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testOrderByOneColumnNotProjected()</pre>
</li>
</ul>
<a id="testGroupByOneColumn()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByOneColumn</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByOneColumn()</pre>
</li>
</ul>
<a id="testGroupByOneColumnReversed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByOneColumnReversed</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByOneColumnReversed()</pre>
</li>
</ul>
<a id="testGroupByAvgSumCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByAvgSumCount</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByAvgSumCount()</pre>
</li>
</ul>
<a id="testGroupByMonthGranularity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByMonthGranularity</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByMonthGranularity()</pre>
</li>
</ul>
<a id="testGroupByMonthGranularitySort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByMonthGranularitySort</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByMonthGranularitySort()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1577">[CALCITE-1577]
Druid adapter: Incorrect result - limit on timestamp disappears</a>.</div>
</li>
</ul>
<a id="testGroupByMonthGranularitySortLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByMonthGranularitySortLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByMonthGranularitySortLimit()</pre>
</li>
</ul>
<a id="testGroupByDayGranularity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByDayGranularity</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByDayGranularity()</pre>
</li>
</ul>
<a id="testGroupByMonthGranularityFiltered()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByMonthGranularityFiltered</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByMonthGranularityFiltered()</pre>
</li>
</ul>
<a id="testTopNMonthGranularity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTopNMonthGranularity</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testTopNMonthGranularity()</pre>
</li>
</ul>
<a id="testTopNDayGranularityFiltered()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTopNDayGranularityFiltered</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testTopNDayGranularityFiltered()</pre>
</li>
</ul>
<a id="testGroupByHaving()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByHaving</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupByHaving()</pre>
</li>
</ul>
<a id="testGroupComposite()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupComposite</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testGroupComposite()</pre>
</li>
</ul>
<a id="testDistinctCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testDistinctCount</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testDistinctCount()</pre>
<div class="block">Tests that distinct-count is pushed down to Druid and evaluated using
"cardinality". The result is approximate, but gives the correct result in
this example when rounded down using FLOOR.</div>
</li>
</ul>
<a id="testProject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProject</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProject()</pre>
<div class="block">Tests that projections of columns are pushed into the DruidQuery, and
projections of expressions that Druid cannot handle (in this case, a
literal 0) stay up.</div>
</li>
</ul>
<a id="testFilterDistinct()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterDistinct</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterDistinct()</pre>
</li>
</ul>
<a id="testFilter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilter()</pre>
</li>
</ul>
<a id="testFilterTimestamp()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterTimestamp</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterTimestamp()</pre>
<div class="block">Tests that conditions applied to time units extracted via the EXTRACT
function become ranges on the timestamp column
<p>Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1334">[CALCITE-1334]
Convert predicates on EXTRACT function calls into date ranges</a>.</div>
</li>
</ul>
<a id="testFilterSwapped()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterSwapped</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterSwapped()</pre>
</li>
</ul>
<a id="testGroupByMetricAndExtractTime()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testGroupByMetricAndExtractTime</h4>