<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>QueryService (Apache Geode 1.15.1)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="QueryService (Apache Geode 1.15.1)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":38,"i4":38,"i5":38,"i6":38,"i7":6,"i8":6,"i9":6,"i10":38,"i11":38,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":38,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/geode/cache/query/QueryStatistics.html" title="interface in org.apache.geode.cache.query"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/geode/cache/query/QueryService.html" target="_top">Frames</a></li>
<li><a href="QueryService.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.geode.cache.query</div>
<h2 title="Interface QueryService" class="title">Interface QueryService</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">QueryService</span></pre>
<div class="block">Interface for the query service, which is used for instantiating queries, creating and destroying
 indexes, creating CQs and operating on CQs.

 Creating an index on an employee's age using QueryService in region "employeeRegion":

 <pre>
   <code>
     QueryService queryService = cache.getQueryService();
     queryService.createIndex ("SampleIndex",        // indexName
                               "e.age",              // indexedExpression
                               "/employeeRegion e"); //regionPath
   </code>
 </pre>

 The CQs work on the server regions, the client can use the CQ methods supported in this class to
 create/operate CQs on the server. The CQ obtains the Server connection from the corresponding
 local region on the client. The implementation of this interface is obtained from the Cache using
 <a href="../../../../../org/apache/geode/cache/RegionService.html#getQueryService--"><code>RegionService.getQueryService()</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#UNDEFINED">UNDEFINED</a></span></code>
<div class="block">The undefined constant</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#clearDefinedIndexes--">clearDefinedIndexes</a></span>()</code>
<div class="block">Clears all the indexes that were defined using <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String)</code></a></div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#closeCqs--">closeCqs</a></span>()</code>
<div class="block">Unregister all Continuous Queries.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createDefinedIndexes--">createDefinedIndexes</a></span>()</code>
<div class="block">Creates all the indexes that were defined using <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String)</code></a></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createHashIndex-java.lang.String-java.lang.String-java.lang.String-">createHashIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createHashIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">createHashIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String, String)</code></a> instead</span></div>
</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-org.apache.geode.cache.query.IndexType-java.lang.String-java.lang.String-">createIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
           <a href="../../../../../org/apache/geode/cache/query/IndexType.html" title="enum in org.apache.geode.cache.query">IndexType</a>&nbsp;indexType,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fromClause)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of 6.6.2, use <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String)</code></a> and
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createKeyIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createKeyIndex(String, String, String)</code></a> instead.

             Create an index that can be used when executing queries.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-org.apache.geode.cache.query.IndexType-java.lang.String-java.lang.String-java.lang.String-">createIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
           <a href="../../../../../org/apache/geode/cache/query/IndexType.html" title="enum in org.apache.geode.cache.query">IndexType</a>&nbsp;indexType,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fromClause,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of 6.6.2, use <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String, String)</code></a> and
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createKeyIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createKeyIndex(String, String, String)</code></a> instead.

             Create an index that can be used when executing queries.</span></div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-">createIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)</code>
<div class="block">Create an index that can be used when executing queries.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">createIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)</code>
<div class="block">Create an index that can be used when executing queries.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#createKeyIndex-java.lang.String-java.lang.String-java.lang.String-">createKeyIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)</code>
<div class="block">Create a key index that can be used when executing queries.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineHashIndex-java.lang.String-java.lang.String-java.lang.String-">defineHashIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineHashIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">defineHashIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String, String)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-">defineIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)</code>
<div class="block">Defines an index that can be used when executing queries.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">defineIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)</code>
<div class="block">Defines an index that can be used when executing queries.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineKeyIndex-java.lang.String-java.lang.String-java.lang.String-">defineKeyIndex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)</code>
<div class="block">Defines a key index that can be used when executing queries.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#executeCqs--">executeCqs</a></span>()</code>
<div class="block">Starts execution of all the registered continuous queries for this client.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#executeCqs-java.lang.String-">executeCqs</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)</code>
<div class="block">Starts execution of all the continuous queries registered on the specified region for this
 client.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getAllDurableCqsFromServer--">getAllDurableCqsFromServer</a></span>()</code>
<div class="block">Retrieves all the durable CQs registered by the client calling this method.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getCq-java.lang.String-">getCq</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cqName)</code>
<div class="block">Retrieves the Continuous Query specified by the name.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getCqs--">getCqs</a></span>()</code>
<div class="block">Retrieve all registered Continuous Queries.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getCqs-java.lang.String-">getCqs</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)</code>
<div class="block">Retrieves all the registered Continuous Queries for a given region.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqServiceStatistics.html" title="interface in org.apache.geode.cache.query">CqServiceStatistics</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getCqStatistics--">getCqStatistics</a></span>()</code>
<div class="block">Returns CqServiceStatistics object, which provides helper methods to get CQ service related
 statistics for this client.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getIndex-org.apache.geode.cache.Region-java.lang.String-">getIndex</a></span>(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region,
        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName)</code>
<div class="block">Get the Index from the specified Region with the specified name.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getIndexes--">getIndexes</a></span>()</code>
<div class="block">Get a collection of all the indexes in the Cache.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getIndexes-org.apache.geode.cache.Region-">getIndexes</a></span>(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region)</code>
<div class="block">Get a collection of all the indexes on the specified Region</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#getIndexes-org.apache.geode.cache.Region-org.apache.geode.cache.query.IndexType-">getIndexes</a></span>(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region,
          <a href="../../../../../org/apache/geode/cache/query/IndexType.html" title="enum in org.apache.geode.cache.query">IndexType</a>&nbsp;indexType)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of 6.6.2, use <a href="../../../../../org/apache/geode/cache/query/QueryService.html#getIndexes-org.apache.geode.cache.Region-"><code>getIndexes(Region)</code></a> only.

             Get a collection of all the indexes on the specified Region of the specified index
             type.</span></div>
</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#newCq-java.lang.String-org.apache.geode.cache.query.CqAttributes-">newCq</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
     <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr)</code>
<div class="block">Constructs a new continuous query, represented by an instance of CqQuery.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#newCq-java.lang.String-org.apache.geode.cache.query.CqAttributes-boolean-">newCq</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
     <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr,
     boolean&nbsp;isDurable)</code>
<div class="block">Constructs a new continuous query, represented by an instance of CqQuery.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#newCq-java.lang.String-java.lang.String-org.apache.geode.cache.query.CqAttributes-">newCq</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
     <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr)</code>
<div class="block">Constructs a new named continuous query, represented by an instance of CqQuery.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#newCq-java.lang.String-java.lang.String-org.apache.geode.cache.query.CqAttributes-boolean-">newCq</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
     <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr,
     boolean&nbsp;isDurable)</code>
<div class="block">Constructs a new named continuous query, represented by an instance of CqQuery.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/geode/cache/query/Query.html" title="interface in org.apache.geode.cache.query">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#newQuery-java.lang.String-">newQuery</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString)</code>
<div class="block">Constructs a new <code>Query</code> object.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#removeIndex-org.apache.geode.cache.query.Index-">removeIndex</a></span>(<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;index)</code>
<div class="block">Remove the specified index.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#removeIndexes--">removeIndexes</a></span>()</code>
<div class="block">Remove all the indexes from this cache.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#removeIndexes-org.apache.geode.cache.Region-">removeIndexes</a></span>(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region)</code>
<div class="block">Remove all the indexes on the specified Region</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#stopCqs--">stopCqs</a></span>()</code>
<div class="block">Stops execution of all the continuous queries for this client to become inactive.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/cache/query/QueryService.html#stopCqs-java.lang.String-">stopCqs</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)</code>
<div class="block">Stops execution of all the continuous queries registered on the specified region for this
 client.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="UNDEFINED">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>UNDEFINED</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> UNDEFINED</pre>
<div class="block">The undefined constant</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="newQuery-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newQuery</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/Query.html" title="interface in org.apache.geode.cache.query">Query</a>&nbsp;newQuery(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString)</pre>
<div class="block">Constructs a new <code>Query</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryString</code> - the String that is the query program</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The new <code>Query</code> object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the syntax of the queryString is invalid.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/cache/query/Query.html" title="interface in org.apache.geode.cache.query"><code>Query</code></a></dd>
</dl>
</li>
</ul>
<a name="createHashIndex-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createHashIndex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createHashIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)
                           throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                                  <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                                  <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                                  <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String)</code></a> instead.</span></div>
<div class="block">Create a hash index that can be used when executing equal and not equal queries. Hash index is
 not supported with asynchronous index maintenance. Hash index is also not supported with a from
 clause with multiple iterators. Queries on numeric types must match the indexed value. For
 Example: For a float field the query should be specified as floatField = 1.0f</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. Check following examples. The regionPath
        is restricted to only one expression

        Example: Query1: "Select * from /portfolio p where p.mktValue = 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which does not
         support indexes.</dd>
</dl>
</li>
</ul>
<a name="defineKeyIndex-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineKeyIndex</h4>
<pre>void&nbsp;defineKeyIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)
             throws <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></pre>
<div class="block">Defines a key index that can be used when executing queries. The key index expression indicates
 query engine to use region key as index for query evaluation. They are used to make use of the
 implicit hash index supported with GemFire regions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the keys of the region that is referenced by the regionPath.
        For example, an index with indexedExpression "ID" might be used for a query with a WHERE
        clause of "ID &gt; 10", In this case the ID value is evaluated using region keys.</dd>
<dd><code>regionPath</code> - that resolves to the region which will correspond to the FROM clause in a
        query. The regionPath must include exactly one region.

        Example: Query1: "Select * from /portfolio p where p.ID = 10" indexExpression: "p.ID"
        regionPath: "/portfolio p"</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
</dl>
</li>
</ul>
<a name="defineHashIndex-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineHashIndex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;defineHashIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)
                          throws <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String)</code></a> instead.</span></div>
<div class="block">Defines a hash index that can be used when executing equal and not equal queries. Hash index is
 not supported with asynchronous index maintenance. Hash index is also not supported with a from
 clause with multiple iterators. Queries on numeric types must match the indexed value. For
 Example: For a float field the query should be specified as floatField = 1.0f To create all the
 defined indexes call <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createDefinedIndexes--"><code>createDefinedIndexes()</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. Check following examples. The regionPath
        is restricted to only one expression

        Example: Query1: "Select * from /portfolio p where p.mktValue = 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
</dl>
</li>
</ul>
<a name="defineHashIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineHashIndex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;defineHashIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)
                          throws <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String, String)</code></a> instead.</span></div>
<div class="block">Defines a hash index that can be used when executing equal and not equal queries. Hash index is
 not supported with asynchronous index maintenance. Hash index is also not supported with a from
 clause with multiple iterators. Queries on numeric types must match the indexed value. For
 Example: For a float field the query should be specified as floatField = 1.0f To create all the
 defined indexes call <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createDefinedIndexes--"><code>createDefinedIndexes()</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. The regionPath must include exactly one
        region The regionPath is restricted to only one expression</dd>
<dd><code>imports</code> - string containing imports (in the query language syntax, each import statement
        separated by a semicolon), provides packages and classes used in variable typing in the
        Indexed and FROM expressions. The use is the same as for the FROM clause in querying.

        Example: Query1: "Select * from /portfolio p where p.mktValue = 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
</dl>
</li>
</ul>
<a name="defineIndex-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineIndex</h4>
<pre>void&nbsp;defineIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)
          throws <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></pre>
<div class="block">Defines an index that can be used when executing queries. To create all the defined indexes
 call <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createDefinedIndexes--"><code>createDefinedIndexes()</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. Check following examples. The regionPath
        must include exactly one region, but may include multiple expressions as required to
        drill down into nested region contents.

        Example: Query1: "Select * from /portfolio p where p.mktValue &gt; 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"

        Query2: "Select * from /portfolio p, p.positions.values pos where pos.secId ='VMWARE'"
        For index on secId field: indexExpression: "pos.secId" regionPath: "/portfolio p,
        p.positions.values pos"</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
</dl>
</li>
</ul>
<a name="defineIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defineIndex</h4>
<pre>void&nbsp;defineIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)
          throws <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></pre>
<div class="block">Defines an index that can be used when executing queries. To create all the defined indexes
 call <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createDefinedIndexes--"><code>createDefinedIndexes()</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. The regionPath must include exactly one
        region, but may include multiple expressions as required to drill down into nested
        region contents. Check following examples.</dd>
<dd><code>imports</code> - string containing imports (in the query language syntax, each import statement
        separated by a semicolon), provides packages and classes used in variable typing in the
        Indexed and FROM expressions. The use is the same as for the FROM clause in querying.

        Example: Query1: "Select * from /portfolio p where p.mktValue &gt; 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"

        Query2: "Select * from /portfolio p, p.positions.values pos where pos.secId ='VMWARE'"
        For index on secId field: indexExpression: "pos.secId" regionPath: "/portfolio p,
        p.positions.values pos TYPE Position" imports: "package.Position"</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which overflows to
         disk</dd>
</dl>
</li>
</ul>
<a name="createHashIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createHashIndex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createHashIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)
                           throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                                  <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                                  <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                                  <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Due to the overhead caused by rehashing while expanding the backing array, hash
             index has been deprecated since Apache Geode 1.4.0. Use method
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String, String)</code></a> instead</span></div>
<div class="block">Create a hash index that can be used when executing equal and not equal queries. Hash index is
 not supported with asynchronous index maintenance. Hash index is also not supported with a from
 clause with multiple iterators. Queries on numeric types must match the indexed value. For
 Example: For a float field the query should be specified as floatField = 1.0f</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. The regionPath must include exactly one
        region The regionPath is restricted to only one expression</dd>
<dd><code>imports</code> - string containing imports (in the query language syntax, each import statement
        separated by a semicolon), provides packages and classes used in variable typing in the
        Indexed and FROM expressions. The use is the same as for the FROM clause in querying.

        Example: Query1: "Select * from /portfolio p where p.mktValue = 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which overflows to
         disk</dd>
</dl>
</li>
</ul>
<a name="createIndex-java.lang.String-org.apache.geode.cache.query.IndexType-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createIndex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                              <a href="../../../../../org/apache/geode/cache/query/IndexType.html" title="enum in org.apache.geode.cache.query">IndexType</a>&nbsp;indexType,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fromClause)
                       throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                              <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                              <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                              <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of 6.6.2, use <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String)</code></a> and
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createKeyIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createKeyIndex(String, String, String)</code></a> instead.

             Create an index that can be used when executing queries.</span></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index, used for statistics collection and to identify this
        index for later access</dd>
<dd><code>indexType</code> - the type of index. The indexType must be either IndexType.FUNCTIONAL or
        IndexType.PRIMARY_KEY.</dd>
<dd><code>indexedExpression</code> - refers to the elements of the collection (or collection of structs)
        that are referenced in the fromClause. This expression is used to optimize the
        comparison of the same path found in a query's WHERE clause when used to compare against
        a constant expression. For example, an index with indexedExpression "mktValue" might be
        used for a query with a WHERE clause of "mktValue &gt; 25.00". The exact use and
        specification of the indexedExpression varies depending on the indexType. Query
        parameters and region paths are not allowed in the indexedExpression (e.g. $1).</dd>
<dd><code>fromClause</code> - expression, that resolves to a collection or list of collections which will
        correspond to the FROM clause or part of a FROM clause in a SELECT statement. The FROM
        clause must include exactly one region, but may include multiple FROM expressions as
        required to drill down into nested region contents. The collections that the FROM
        expressions evaluate to must be dependent on one and only one entry in the referenced
        region (otherwise the index could not be maintained on single entry updates). References
        to query parameters are not allowed. For primary key indexes, the fromClause must be
        just one collection which must be a region path only.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which overflows to
         disk</dd>
</dl>
</li>
</ul>
<a name="createIndex-java.lang.String-org.apache.geode.cache.query.IndexType-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createIndex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                              <a href="../../../../../org/apache/geode/cache/query/IndexType.html" title="enum in org.apache.geode.cache.query">IndexType</a>&nbsp;indexType,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fromClause,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)
                       throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                              <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                              <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                              <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of 6.6.2, use <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-"><code>createIndex(String, String, String, String)</code></a> and
             <a href="../../../../../org/apache/geode/cache/query/QueryService.html#createKeyIndex-java.lang.String-java.lang.String-java.lang.String-"><code>createKeyIndex(String, String, String)</code></a> instead.

             Create an index that can be used when executing queries.</span></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index, used for statistics collection and to identify this
        index for later access</dd>
<dd><code>indexType</code> - the type of index. The indexType must be either IndexType.FUNCTIONAL or
        IndexType.PRIMARY_KEY.</dd>
<dd><code>indexedExpression</code> - refers to the elements of the collection (or collection of structs)
        that are referenced in the fromClause. This expression is used to optimize the
        comparison of the same path found in a query's WHERE clause when used to compare against
        a constant expression. For example, an index with indexedExpression "mktValue" might be
        used for a query with a WHERE clause of "mktValue &gt; 25.00". The exact use and
        specification of the indexedExpression varies depending on the indexType. Query
        parameters and region paths are not allowed in the indexedExpression (e.g. $1).</dd>
<dd><code>fromClause</code> - expression, that resolves to a collection or list of collections which will
        correspond to the FROM clause or part of a FROM clause in a SELECT statement. The FROM
        clause must include exactly one region, but may include multiple FROM expressions as
        required to drill down into nested region contents. The collections that the FROM
        expressions evaluate to must be dependent on one and only one entry in the referenced
        region (otherwise the index could not be maintained on single entry updates). References
        to query parameters are not allowed. For primary key indexes, the fromClause must be
        just one collection which must be a region path only.</dd>
<dd><code>imports</code> - string containing imports (in the query language syntax, each import statement
        separated by a semicolon), provides packages and classes used in variable typing in the
        Indexed and FROM expressions. The use is the same as for the FROM clause in querying.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which overflows to
         disk</dd>
</dl>
</li>
</ul>
<a name="createIndex-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createIndex</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)
           throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                  <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                  <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                  <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block">Create an index that can be used when executing queries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. Check following examples. The regionPath
        must include exactly one region, but may include multiple expressions as required to
        drill down into nested region contents.

        Example: Query1: "Select * from /portfolio p where p.mktValue &gt; 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"

        Query2: "Select * from /portfolio p, p.positions.values pos where pos.secId ='VMWARE'"
        For index on secId field: indexExpression: "pos.secId" regionPath: "/portfolio p,
        p.positions.values pos"</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which does not
         support indexes.</dd>
</dl>
</li>
</ul>
<a name="createIndex-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createIndex</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;imports)
           throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                  <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                  <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                  <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block">Create an index that can be used when executing queries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the field of the region values that are referenced by the
        regionPath.</dd>
<dd><code>regionPath</code> - that resolves to region values or nested collections of region values which
        will correspond to the FROM clause in a query. The regionPath must include exactly one
        region, but may include multiple expressions as required to drill down into nested
        region contents. Check following examples.</dd>
<dd><code>imports</code> - string containing imports (in the query language syntax, each import statement
        separated by a semicolon), provides packages and classes used in variable typing in the
        Indexed and FROM expressions. The use is the same as for the FROM clause in querying.

        Example: Query1: "Select * from /portfolio p where p.mktValue &gt; 25.00" For index on
        mktValue field: indexExpression: "p.mktValue" regionPath: "/portfolio p"

        Query2: "Select * from /portfolio p, p.positions.values pos where pos.secId ='VMWARE'"
        For index on secId field: indexExpression: "pos.secId" regionPath: "/portfolio p,
        p.positions.values pos TYPE Position" imports: "package.Position"</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which overflows to
         disk</dd>
</dl>
</li>
</ul>
<a name="createKeyIndex-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createKeyIndex</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;createKeyIndex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexedExpression,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionPath)
              throws <a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a>,
                     <a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a>,
                     <a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a>,
                     <a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a>,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block">Create a key index that can be used when executing queries. The key index expression indicates
 query engine to use region key as index for query evaluation. They are used to make use of the
 implicit hash index supported with GemFire regions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexName</code> - the name of this index.</dd>
<dd><code>indexedExpression</code> - refers to the keys of the region that is referenced by the regionPath.
        For example, an index with indexedExpression "ID" might be used for a query with a WHERE
        clause of "ID &gt; 10", In this case the ID value is evaluated using region keys.</dd>
<dd><code>regionPath</code> - that resolves to the region which will correspond to the FROM clause in a
        query. The regionPath must include exactly one region.

        Example: Query1: "Select * from /portfolio p where p.ID = 10" indexExpression: "p.ID"
        regionPath: "/portfolio p"</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created Index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if the argument query language strings have invalid syntax</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexInvalidException.html" title="class in org.apache.geode.cache.query">IndexInvalidException</a></code> - if the arguments do not correctly specify an index</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexNameConflictException.html" title="class in org.apache.geode.cache.query">IndexNameConflictException</a></code> - if an index with this name already exists</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/IndexExistsException.html" title="class in org.apache.geode.cache.query">IndexExistsException</a></code> - if an index with these parameters already exists with a different
         name</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/RegionNotFoundException.html" title="class in org.apache.geode.cache.query">RegionNotFoundException</a></code> - if the region referred to in the fromClause doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If Index is being created on a region which overflows to
         disk</dd>
</dl>
</li>
</ul>
<a name="createDefinedIndexes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDefinedIndexes</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;&nbsp;createDefinedIndexes()
                          throws <a href="../../../../../org/apache/geode/cache/query/MultiIndexCreationException.html" title="class in org.apache.geode.cache.query">MultiIndexCreationException</a></pre>
<div class="block">Creates all the indexes that were defined using <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String)</code></a></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a list of all created indexes</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/MultiIndexCreationException.html" title="class in org.apache.geode.cache.query">MultiIndexCreationException</a></code> - which consists a map of failed indexNames and the
         Exceptions.</dd>
</dl>
</li>
</ul>
<a name="clearDefinedIndexes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearDefinedIndexes</h4>
<pre>boolean&nbsp;clearDefinedIndexes()</pre>
<div class="block">Clears all the indexes that were defined using <a href="../../../../../org/apache/geode/cache/query/QueryService.html#defineIndex-java.lang.String-java.lang.String-java.lang.String-"><code>defineIndex(String, String, String)</code></a></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if indexes were successfully cleared</dd>
</dl>
</li>
</ul>
<a name="getIndex-org.apache.geode.cache.Region-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndex</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;getIndex(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;indexName)</pre>
<div class="block">Get the Index from the specified Region with the specified name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>region</code> - the Region for the requested index</dd>
<dd><code>indexName</code> - the name of the index to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index of the region with this name, or null if there isn't one</dd>
</dl>
</li>
</ul>
<a name="getIndexes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndexes</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;&nbsp;getIndexes()</pre>
<div class="block">Get a collection of all the indexes in the Cache.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the collection of all indexes in this Cache, or an empty (unmodifiable) collection if
         no indexes are found.</dd>
</dl>
</li>
</ul>
<a name="getIndexes-org.apache.geode.cache.Region-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndexes</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;&nbsp;getIndexes(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region)</pre>
<div class="block">Get a collection of all the indexes on the specified Region</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>region</code> - the region for the requested indexes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the collection of indexes on the specified region, or an empty (unmodifiable)
         collection if no indexes are found.</dd>
</dl>
</li>
</ul>
<a name="getIndexes-org.apache.geode.cache.Region-org.apache.geode.cache.query.IndexType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndexes</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&gt;&nbsp;getIndexes(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region,
                                         <a href="../../../../../org/apache/geode/cache/query/IndexType.html" title="enum in org.apache.geode.cache.query">IndexType</a>&nbsp;indexType)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of 6.6.2, use <a href="../../../../../org/apache/geode/cache/query/QueryService.html#getIndexes-org.apache.geode.cache.Region-"><code>getIndexes(Region)</code></a> only.

             Get a collection of all the indexes on the specified Region of the specified index
             type.</span></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>region</code> - the region for the requested indexes</dd>
<dd><code>indexType</code> - the type of indexes to get. Currently must be Indexable.FUNCTIONAL</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the collection of indexes for the specified region and type, or an empty (unmodifiable)
         collection if no indexes are found.</dd>
</dl>
</li>
</ul>
<a name="removeIndex-org.apache.geode.cache.query.Index-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeIndex</h4>
<pre>void&nbsp;removeIndex(<a href="../../../../../org/apache/geode/cache/query/Index.html" title="interface in org.apache.geode.cache.query">Index</a>&nbsp;index)</pre>
<div class="block">Remove the specified index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the Index to remove</dd>
</dl>
</li>
</ul>
<a name="removeIndexes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeIndexes</h4>
<pre>void&nbsp;removeIndexes()</pre>
<div class="block">Remove all the indexes from this cache.</div>
</li>
</ul>
<a name="removeIndexes-org.apache.geode.cache.Region-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeIndexes</h4>
<pre>void&nbsp;removeIndexes(<a href="../../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&nbsp;region)</pre>
<div class="block">Remove all the indexes on the specified Region</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>region</code> - the Region to remove all indexes from</dd>
</dl>
</li>
</ul>
<a name="newCq-java.lang.String-org.apache.geode.cache.query.CqAttributes-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newCq</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>&nbsp;newCq(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
              <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr)
       throws <a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a>,
              <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Constructs a new continuous query, represented by an instance of CqQuery. The CqQuery is not
 executed until the execute method is invoked on the CqQuery.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryString</code> - the OQL query</dd>
<dd><code>cqAttr</code> - the CqAttributes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created CqQuery object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if queryString or cqAttr is null.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this method is called from a cache server.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if there is a syntax error in the query.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failed to create CQ. E.g.: Query string should refer to only one region.
         Joins are not supported. The query must be a SELECT statement. DISTINCT queries are not
         supported. Projections are not supported. Only one iterator in the FROM clause is
         supported, and it must be a region path. Bind parameters in the query are not yet
         supported.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="newCq-java.lang.String-org.apache.geode.cache.query.CqAttributes-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newCq</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>&nbsp;newCq(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
              <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr,
              boolean&nbsp;isDurable)
       throws <a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a>,
              <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Constructs a new continuous query, represented by an instance of CqQuery. The CqQuery is not
 executed until the execute method is invoked on the CqQuery.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryString</code> - the OQL query</dd>
<dd><code>cqAttr</code> - the CqAttributes</dd>
<dd><code>isDurable</code> - true if the CQ is durable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created CqQuery object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if queryString or cqAttr is null.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this method is called from a cache server.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if there is a syntax error in the query.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failed to create CQ. E.g.: Query string should refer to only one region.
         Joins are not supported. The query must be a SELECT statement. DISTINCT queries are not
         supported. Projections are not supported. Only one iterator in the FROM clause is
         supported, and it must be a region path. Bind parameters in the query are not yet
         supported.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="newCq-java.lang.String-java.lang.String-org.apache.geode.cache.query.CqAttributes-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newCq</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>&nbsp;newCq(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
              <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr)
       throws <a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a>,
              <a href="../../../../../org/apache/geode/cache/query/CqExistsException.html" title="class in org.apache.geode.cache.query">CqExistsException</a>,
              <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Constructs a new named continuous query, represented by an instance of CqQuery. The CqQuery is
 not executed until the execute method is invoked on the CqQuery. The name of the query will be
 used to identify this query in statistics archival.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the String name for this query</dd>
<dd><code>queryString</code> - the OQL query</dd>
<dd><code>cqAttr</code> - the CqAttributes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created CqQuery object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqExistsException.html" title="class in org.apache.geode.cache.query">CqExistsException</a></code> - if a CQ by this name already exists on this client</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if queryString or cqAttr is null.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this method is called from a cache server.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if there is a syntax error in the query.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failed to create cq. E.g.: Query string should refer to only one region.
         Joins are not supported. The query must be a SELECT statement. DISTINCT queries are not
         supported. Projections are not supported. Only one iterator in the FROM clause is
         supported, and it must be a region path. Bind parameters in the query are not yet
         supported.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="newCq-java.lang.String-java.lang.String-org.apache.geode.cache.query.CqAttributes-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newCq</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>&nbsp;newCq(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryString,
              <a href="../../../../../org/apache/geode/cache/query/CqAttributes.html" title="interface in org.apache.geode.cache.query">CqAttributes</a>&nbsp;cqAttr,
              boolean&nbsp;isDurable)
       throws <a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a>,
              <a href="../../../../../org/apache/geode/cache/query/CqExistsException.html" title="class in org.apache.geode.cache.query">CqExistsException</a>,
              <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Constructs a new named continuous query, represented by an instance of CqQuery. The CqQuery is
 not executed until the execute method is invoked on the CqQuery. The name of the query will be
 used to identify this query in statistics archival.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the String name for this query</dd>
<dd><code>queryString</code> - the OQL query</dd>
<dd><code>cqAttr</code> - the CqAttributes</dd>
<dd><code>isDurable</code> - true if the CQ is durable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created CqQuery object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqExistsException.html" title="class in org.apache.geode.cache.query">CqExistsException</a></code> - if a CQ by this name already exists on this client</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if queryString or cqAttr is null.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this method is called from a cache server.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - if there is a syntax error in the query.</dd>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failed to create cq. E.g.: Query string should refer to only one region.
         Joins are not supported. The query must be a SELECT statement. DISTINCT queries are not
         supported. Projections are not supported. Only one iterator in the FROM clause is
         supported, and it must be a region path. Bind parameters in the query are not yet
         supported.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="closeCqs--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeCqs</h4>
<pre>void&nbsp;closeCqs()</pre>
<div class="block">Unregister all Continuous Queries. All artifacts and resources associated with the CQs are
 released. Any attempt to access closed CqQuery objects will result in the CqClosedException
 being thrown to the caller.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="getCqs--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCqs</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>[]&nbsp;getCqs()</pre>
<div class="block">Retrieve all registered Continuous Queries. This is a collection of CqQuery objects.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CqQuery[] list of registered CQs, null if there are no CQs.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="getCqs-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCqs</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>[]&nbsp;getCqs(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)
          throws <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Retrieves all the registered Continuous Queries for a given region. This is a collection of
 CqQuery objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regionName</code> - the name of the region on which registered CQs will be retrieved</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CqQuery[] list of registered CQs on the specified region, null if there are no CQs.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if the region does not exist.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="getCq-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCq</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqQuery.html" title="interface in org.apache.geode.cache.query">CqQuery</a>&nbsp;getCq(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cqName)</pre>
<div class="block">Retrieves the Continuous Query specified by the name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cqName</code> - - String, name of the CQ</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CqQuery object, null if no CqQuery object is found.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
</dl>
</li>
</ul>
<a name="executeCqs--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeCqs</h4>
<pre>void&nbsp;executeCqs()
         throws <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Starts execution of all the registered continuous queries for this client. This is
 complementary to stopCqs.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failure to execute CQ.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/cache/query/QueryService.html#stopCqs--"><code>stopCqs()</code></a></dd>
</dl>
</li>
</ul>
<a name="stopCqs--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stopCqs</h4>
<pre>void&nbsp;stopCqs()
      throws <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Stops execution of all the continuous queries for this client to become inactive. This is
 useful when client needs to control the incoming CQ messages during bulk region operations.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failure to stop CQ.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/cache/query/QueryService.html#executeCqs--"><code>executeCqs()</code></a></dd>
</dl>
</li>
</ul>
<a name="executeCqs-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeCqs</h4>
<pre>void&nbsp;executeCqs(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)
         throws <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Starts execution of all the continuous queries registered on the specified region for this
 client. This is complementary method to stopCQs().</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regionName</code> - the name of the region on which registered CQs will be executed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failure to execute CQs.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/cache/query/QueryService.html#stopCqs--"><code>stopCqs()</code></a></dd>
</dl>
</li>
</ul>
<a name="stopCqs-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stopCqs</h4>
<pre>void&nbsp;stopCqs(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)
      throws <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Stops execution of all the continuous queries registered on the specified region for this
 client. This is useful when client needs to control the incoming CQ messages during bulk region
 operations.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regionName</code> - the name of the region on which registered CQs will be stopped</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if failure to stop CQs.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/cache/query/QueryService.html#executeCqs--"><code>executeCqs()</code></a></dd>
</dl>
</li>
</ul>
<a name="getAllDurableCqsFromServer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllDurableCqsFromServer</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAllDurableCqsFromServer()
                                 throws <a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></pre>
<div class="block">Retrieves all the durable CQs registered by the client calling this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of names of registered durable CQs, empty list if no durable cqs.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/cache/query/CqException.html" title="class in org.apache.geode.cache.query">CqException</a></code> - if an exception is encountered when retrieving CQs</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 7.0</dd>
</dl>
</li>
</ul>
<a name="getCqStatistics--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getCqStatistics</h4>
<pre><a href="../../../../../org/apache/geode/cache/query/CqServiceStatistics.html" title="interface in org.apache.geode.cache.query">CqServiceStatistics</a>&nbsp;getCqStatistics()</pre>
<div class="block">Returns CqServiceStatistics object, which provides helper methods to get CQ service related
 statistics for this client. Specifically the following aggregate information on the client's
 CQs is collected: Number of CQs created (cumulative) Number of CQs active currently Number of
 CQs stopped or suspended currently Number of CQs closed (cumulative) Number of CQs active on a
 specified region currently</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CqServiceStatistics object</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/cache/query/CqServiceStatistics.html" title="interface in org.apache.geode.cache.query"><code>CqServiceStatistics</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/geode/cache/query/QueryStatistics.html" title="interface in org.apache.geode.cache.query"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/geode/cache/query/QueryService.html" target="_top">Frames</a></li>
<li><a href="QueryService.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
