<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRResult" id="SR_data">
 <div class="SREntry">
  <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classkudu_1_1Slice.html#a2d90a4590b995fb55229d25effb0c5bb" target="_parent">data</a>
  <span class="SRScope">kudu::Slice</span>
 </div>
</div>
<div class="SRResult" id="SR_datatypetostring">
 <div class="SREntry">
  <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classkudu_1_1client_1_1KuduColumnSchema.html#af362af4f9c937c2b7fa90ef284cfbd1c" target="_parent">DataTypeToString</a>
  <span class="SRScope">kudu::client::KuduColumnSchema</span>
 </div>
</div>
<div class="SRResult" id="SR_default">
 <div class="SREntry">
  <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../classkudu_1_1client_1_1KuduColumnSpec.html#a92c63c0e1872c03fcabeac19d802f6c7" target="_parent">Default</a>
  <span class="SRScope">kudu::client::KuduColumnSpec</span>
 </div>
</div>
<div class="SRResult" id="SR_default_5fadmin_5foperation_5ftimeout">
 <div class="SREntry">
  <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_default_5fadmin_5foperation_5ftimeout')">default_admin_operation_timeout</a>
  <div class="SRChildren">
    <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../classkudu_1_1client_1_1KuduClientBuilder.html#a6114bb56e4d9d1231df0ef73c9aec752" target="_parent">kudu::client::KuduClientBuilder::default_admin_operation_timeout()</a>
    <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../classkudu_1_1client_1_1KuduClient.html#aacfcd61c7cc1bf7817d1aa0bb738414f" target="_parent">kudu::client::KuduClient::default_admin_operation_timeout()</a>
  </div>
 </div>
</div>
<div class="SRResult" id="SR_default_5frpc_5ftimeout">
 <div class="SREntry">
  <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_default_5frpc_5ftimeout')">default_rpc_timeout</a>
  <div class="SRChildren">
    <a id="Item4_c0" onkeydown="return searchResults.NavChild(event,4,0)" onkeypress="return searchResults.NavChild(event,4,0)" onkeyup="return searchResults.NavChild(event,4,0)" class="SRScope" href="../classkudu_1_1client_1_1KuduClientBuilder.html#a1813e8c8d24e92a0a710724000e2b3df" target="_parent">kudu::client::KuduClientBuilder::default_rpc_timeout()</a>
    <a id="Item4_c1" onkeydown="return searchResults.NavChild(event,4,1)" onkeypress="return searchResults.NavChild(event,4,1)" onkeyup="return searchResults.NavChild(event,4,1)" class="SRScope" href="../classkudu_1_1client_1_1KuduClient.html#a2d0e8397e979e651a23eb240513a5556" target="_parent">kudu::client::KuduClient::default_rpc_timeout()</a>
  </div>
 </div>
</div>
<div class="SRResult" id="SR_deletetable">
 <div class="SREntry">
  <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../classkudu_1_1client_1_1KuduClient.html#a9d7cbad036bc74c71873a428abce5c1d" target="_parent">DeleteTable</a>
  <span class="SRScope">kudu::client::KuduClient</span>
 </div>
</div>
<div class="SRResult" id="SR_deserializeintoscanner">
 <div class="SREntry">
  <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../classkudu_1_1client_1_1KuduScanToken.html#ae90d9422476cf6eee5c33afb41d1f867" target="_parent">DeserializeIntoScanner</a>
  <span class="SRScope">kudu::client::KuduScanToken</span>
 </div>
</div>
<div class="SRResult" id="SR_dropcolumn">
 <div class="SREntry">
  <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../classkudu_1_1client_1_1KuduTableAlterer.html#ac5a4ec376ec53ba912b85ea0057d10a7" target="_parent">DropColumn</a>
  <span class="SRScope">kudu::client::KuduTableAlterer</span>
 </div>
</div>
<div class="SRResult" id="SR_droprangepartition">
 <div class="SREntry">
  <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../classkudu_1_1client_1_1KuduTableAlterer.html#ab0f8abf78d35725198876aaa04b737a7" target="_parent">DropRangePartition</a>
  <span class="SRScope">kudu::client::KuduTableAlterer</span>
 </div>
</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
