<!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>FlinkCatalog</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="FlinkCatalog";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/iceberg/flink/CatalogLoader.HiveCatalogLoader.html" title="class in org.apache.iceberg.flink"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/iceberg/flink/FlinkCatalogFactory.html" title="class in org.apache.iceberg.flink"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/iceberg/flink/FlinkCatalog.html" target="_top">Frames</a></li>
<li><a href="FlinkCatalog.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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.iceberg.flink</div>
<h2 title="Class FlinkCatalog" class="title">Class FlinkCatalog</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.flink.table.catalog.AbstractCatalog</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.flink.FlinkCatalog</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.apache.flink.table.catalog.Catalog</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">FlinkCatalog</span>
extends org.apache.flink.table.catalog.AbstractCatalog</pre>
<div class="block">A Flink Catalog implementation that wraps an Iceberg <a href="../../../../org/apache/iceberg/catalog/Catalog.html" title="interface in org.apache.iceberg.catalog"><code>Catalog</code></a>.
 <p>
 The mapping between Flink database and Iceberg namespace:
 Supplying a base namespace for a given catalog, so if you have a catalog that supports a 2-level namespace, you
 would supply the first level in the catalog configuration and the second level would be exposed as Flink databases.
 <p>
 The Iceberg table manages its partitions by itself. The partition of the Iceberg table is independent of the
 partition of Flink.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#FlinkCatalog-java.lang.String-java.lang.String-org.apache.iceberg.catalog.Namespace-org.apache.iceberg.flink.CatalogLoader-boolean-">FlinkCatalog</a></span>(java.lang.String&nbsp;catalogName,
            java.lang.String&nbsp;defaultDatabase,
            <a href="../../../../org/apache/iceberg/catalog/Namespace.html" title="class in org.apache.iceberg.catalog">Namespace</a>&nbsp;baseNamespace,
            <a href="../../../../org/apache/iceberg/flink/CatalogLoader.html" title="interface in org.apache.iceberg.flink">CatalogLoader</a>&nbsp;catalogLoader,
            boolean&nbsp;cacheEnabled)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterDatabase-java.lang.String-org.apache.flink.table.catalog.CatalogDatabase-boolean-">alterDatabase</a></span>(java.lang.String&nbsp;name,
             org.apache.flink.table.catalog.CatalogDatabase&nbsp;newDatabase,
             boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#alterFunction-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogFunction-boolean-">alterFunction</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath,
             org.apache.flink.table.catalog.CatalogFunction&nbsp;newFunction,
             boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.CatalogPartition-boolean-">alterPartition</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
              org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
              org.apache.flink.table.catalog.CatalogPartition&nbsp;newPartition,
              boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterPartitionColumnStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.stats.CatalogColumnStatistics-boolean-">alterPartitionColumnStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                              org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                              org.apache.flink.table.catalog.stats.CatalogColumnStatistics&nbsp;columnStatistics,
                              boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterPartitionStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.stats.CatalogTableStatistics-boolean-">alterPartitionStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                        org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                        org.apache.flink.table.catalog.stats.CatalogTableStatistics&nbsp;partitionStatistics,
                        boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterTable-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogBaseTable-boolean-">alterTable</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
          org.apache.flink.table.catalog.CatalogBaseTable&nbsp;newTable,
          boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterTableColumnStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.stats.CatalogColumnStatistics-boolean-">alterTableColumnStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                          org.apache.flink.table.catalog.stats.CatalogColumnStatistics&nbsp;columnStatistics,
                          boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#alterTableStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.stats.CatalogTableStatistics-boolean-">alterTableStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                    org.apache.flink.table.catalog.stats.CatalogTableStatistics&nbsp;tableStatistics,
                    boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/iceberg/catalog/Catalog.html" title="interface in org.apache.iceberg.catalog">Catalog</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#catalog--">catalog</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#close--">close</a></span>()</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#createDatabase-java.lang.String-org.apache.flink.table.catalog.CatalogDatabase-boolean-">createDatabase</a></span>(java.lang.String&nbsp;name,
              org.apache.flink.table.catalog.CatalogDatabase&nbsp;database,
              boolean&nbsp;ignoreIfExists)</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#createFunction-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogFunction-boolean-">createFunction</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath,
              org.apache.flink.table.catalog.CatalogFunction&nbsp;function,
              boolean&nbsp;ignoreIfExists)</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#createPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.CatalogPartition-boolean-">createPartition</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
               org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
               org.apache.flink.table.catalog.CatalogPartition&nbsp;partition,
               boolean&nbsp;ignoreIfExists)</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#createTable-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogBaseTable-boolean-">createTable</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
           org.apache.flink.table.catalog.CatalogBaseTable&nbsp;table,
           boolean&nbsp;ignoreIfExists)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#databaseExists-java.lang.String-">databaseExists</a></span>(java.lang.String&nbsp;databaseName)</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#dropDatabase-java.lang.String-boolean-boolean-">dropDatabase</a></span>(java.lang.String&nbsp;name,
            boolean&nbsp;ignoreIfNotExists,
            boolean&nbsp;cascade)</code>&nbsp;</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/iceberg/flink/FlinkCatalog.html#dropFunction-org.apache.flink.table.catalog.ObjectPath-boolean-">dropFunction</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath,
            boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#dropPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-boolean-">dropPartition</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
             org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
             boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#dropTable-org.apache.flink.table.catalog.ObjectPath-boolean-">dropTable</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
         boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#functionExists-org.apache.flink.table.catalog.ObjectPath-">functionExists</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.CatalogDatabase</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getDatabase-java.lang.String-">getDatabase</a></span>(java.lang.String&nbsp;databaseName)</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>java.util.Optional&lt;org.apache.flink.table.factories.Factory&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getFactory--">getFactory</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.CatalogFunction</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getFunction-org.apache.flink.table.catalog.ObjectPath-">getFunction</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath)</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.CatalogPartition</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">getPartition</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
            org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.stats.CatalogColumnStatistics</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getPartitionColumnStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">getPartitionColumnStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                            org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.stats.CatalogTableStatistics</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getPartitionStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">getPartitionStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                      org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.CatalogTable</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getTable-org.apache.flink.table.catalog.ObjectPath-">getTable</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.stats.CatalogColumnStatistics</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getTableColumnStatistics-org.apache.flink.table.catalog.ObjectPath-">getTableColumnStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>org.apache.flink.table.catalog.stats.CatalogTableStatistics</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#getTableStatistics-org.apache.flink.table.catalog.ObjectPath-">getTableStatistics</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listDatabases--">listDatabases</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listFunctions-java.lang.String-">listFunctions</a></span>(java.lang.String&nbsp;dbName)</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;org.apache.flink.table.catalog.CatalogPartitionSpec&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listPartitions-org.apache.flink.table.catalog.ObjectPath-">listPartitions</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>java.util.List&lt;org.apache.flink.table.catalog.CatalogPartitionSpec&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listPartitions-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">listPartitions</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
              org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)</code>&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;org.apache.flink.table.catalog.CatalogPartitionSpec&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listPartitionsByFilter-org.apache.flink.table.catalog.ObjectPath-java.util.List-">listPartitionsByFilter</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                      java.util.List&lt;org.apache.flink.table.expressions.Expression&gt;&nbsp;filters)</code>&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listTables-java.lang.String-">listTables</a></span>(java.lang.String&nbsp;databaseName)</code>&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#listViews-java.lang.String-">listViews</a></span>(java.lang.String&nbsp;databaseName)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#open--">open</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#partitionExists-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">partitionExists</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
               org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)</code>&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#renameTable-org.apache.flink.table.catalog.ObjectPath-java.lang.String-boolean-">renameTable</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
           java.lang.String&nbsp;newTableName,
           boolean&nbsp;ignoreIfNotExists)</code>&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/flink/FlinkCatalog.html#tableExists-org.apache.flink.table.catalog.ObjectPath-">tableExists</a></span>(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.flink.table.catalog.AbstractCatalog">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.flink.table.catalog.AbstractCatalog</h3>
<code>getDefaultDatabase, getName</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.flink.table.catalog.Catalog">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.flink.table.catalog.Catalog</h3>
<code>dropDatabase, getFunctionDefinitionFactory, getTableFactory</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="FlinkCatalog-java.lang.String-java.lang.String-org.apache.iceberg.catalog.Namespace-org.apache.iceberg.flink.CatalogLoader-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FlinkCatalog</h4>
<pre>public&nbsp;FlinkCatalog(java.lang.String&nbsp;catalogName,
                    java.lang.String&nbsp;defaultDatabase,
                    <a href="../../../../org/apache/iceberg/catalog/Namespace.html" title="class in org.apache.iceberg.catalog">Namespace</a>&nbsp;baseNamespace,
                    <a href="../../../../org/apache/iceberg/flink/CatalogLoader.html" title="interface in org.apache.iceberg.flink">CatalogLoader</a>&nbsp;catalogLoader,
                    boolean&nbsp;cacheEnabled)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="open--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre>public&nbsp;void&nbsp;open()
          throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="close--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()
           throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="catalog--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>catalog</h4>
<pre>public&nbsp;<a href="../../../../org/apache/iceberg/catalog/Catalog.html" title="interface in org.apache.iceberg.catalog">Catalog</a>&nbsp;catalog()</pre>
</li>
</ul>
<a name="listDatabases--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listDatabases</h4>
<pre>public&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;listDatabases()
                                               throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getDatabase-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDatabase</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.CatalogDatabase&nbsp;getDatabase(java.lang.String&nbsp;databaseName)
                                                           throws org.apache.flink.table.catalog.exceptions.DatabaseNotExistException,
                                                                  org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.DatabaseNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="databaseExists-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>databaseExists</h4>
<pre>public&nbsp;boolean&nbsp;databaseExists(java.lang.String&nbsp;databaseName)
                       throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="createDatabase-java.lang.String-org.apache.flink.table.catalog.CatalogDatabase-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDatabase</h4>
<pre>public&nbsp;void&nbsp;createDatabase(java.lang.String&nbsp;name,
                           org.apache.flink.table.catalog.CatalogDatabase&nbsp;database,
                           boolean&nbsp;ignoreIfExists)
                    throws org.apache.flink.table.catalog.exceptions.DatabaseAlreadyExistException,
                           org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.DatabaseAlreadyExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="dropDatabase-java.lang.String-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropDatabase</h4>
<pre>public&nbsp;void&nbsp;dropDatabase(java.lang.String&nbsp;name,
                         boolean&nbsp;ignoreIfNotExists,
                         boolean&nbsp;cascade)
                  throws org.apache.flink.table.catalog.exceptions.DatabaseNotExistException,
                         org.apache.flink.table.catalog.exceptions.DatabaseNotEmptyException,
                         org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.DatabaseNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.DatabaseNotEmptyException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterDatabase-java.lang.String-org.apache.flink.table.catalog.CatalogDatabase-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterDatabase</h4>
<pre>public&nbsp;void&nbsp;alterDatabase(java.lang.String&nbsp;name,
                          org.apache.flink.table.catalog.CatalogDatabase&nbsp;newDatabase,
                          boolean&nbsp;ignoreIfNotExists)
                   throws org.apache.flink.table.catalog.exceptions.DatabaseNotExistException,
                          org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.DatabaseNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="listTables-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listTables</h4>
<pre>public&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;listTables(java.lang.String&nbsp;databaseName)
                                            throws org.apache.flink.table.catalog.exceptions.DatabaseNotExistException,
                                                   org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.DatabaseNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getTable-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTable</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.CatalogTable&nbsp;getTable(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)
                                                     throws org.apache.flink.table.catalog.exceptions.TableNotExistException,
                                                            org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.TableNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="tableExists-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableExists</h4>
<pre>public&nbsp;boolean&nbsp;tableExists(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)
                    throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="dropTable-org.apache.flink.table.catalog.ObjectPath-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropTable</h4>
<pre>public&nbsp;void&nbsp;dropTable(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                      boolean&nbsp;ignoreIfNotExists)
               throws org.apache.flink.table.catalog.exceptions.TableNotExistException,
                      org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.TableNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="renameTable-org.apache.flink.table.catalog.ObjectPath-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renameTable</h4>
<pre>public&nbsp;void&nbsp;renameTable(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                        java.lang.String&nbsp;newTableName,
                        boolean&nbsp;ignoreIfNotExists)
                 throws org.apache.flink.table.catalog.exceptions.TableNotExistException,
                        org.apache.flink.table.catalog.exceptions.TableAlreadyExistException,
                        org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.TableNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.TableAlreadyExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="createTable-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogBaseTable-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTable</h4>
<pre>public&nbsp;void&nbsp;createTable(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                        org.apache.flink.table.catalog.CatalogBaseTable&nbsp;table,
                        boolean&nbsp;ignoreIfExists)
                 throws org.apache.flink.table.catalog.exceptions.CatalogException,
                        org.apache.flink.table.catalog.exceptions.TableAlreadyExistException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.TableAlreadyExistException</code></dd>
</dl>
</li>
</ul>
<a name="alterTable-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogBaseTable-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterTable</h4>
<pre>public&nbsp;void&nbsp;alterTable(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                       org.apache.flink.table.catalog.CatalogBaseTable&nbsp;newTable,
                       boolean&nbsp;ignoreIfNotExists)
                throws org.apache.flink.table.catalog.exceptions.CatalogException,
                       org.apache.flink.table.catalog.exceptions.TableNotExistException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.TableNotExistException</code></dd>
</dl>
</li>
</ul>
<a name="getFactory--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFactory</h4>
<pre>public&nbsp;java.util.Optional&lt;org.apache.flink.table.factories.Factory&gt;&nbsp;getFactory()</pre>
</li>
</ul>
<a name="listViews-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listViews</h4>
<pre>public&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;listViews(java.lang.String&nbsp;databaseName)
                                           throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPartition</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.CatalogPartition&nbsp;getPartition(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                                                    org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)
                                                             throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="partitionExists-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>partitionExists</h4>
<pre>public&nbsp;boolean&nbsp;partitionExists(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                               org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)
                        throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="createPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.CatalogPartition-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPartition</h4>
<pre>public&nbsp;void&nbsp;createPartition(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                            org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                            org.apache.flink.table.catalog.CatalogPartition&nbsp;partition,
                            boolean&nbsp;ignoreIfExists)
                     throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="dropPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropPartition</h4>
<pre>public&nbsp;void&nbsp;dropPartition(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                          org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                          boolean&nbsp;ignoreIfNotExists)
                   throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterPartition-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.CatalogPartition-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterPartition</h4>
<pre>public&nbsp;void&nbsp;alterPartition(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                           org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                           org.apache.flink.table.catalog.CatalogPartition&nbsp;newPartition,
                           boolean&nbsp;ignoreIfNotExists)
                    throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="listFunctions-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listFunctions</h4>
<pre>public&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;listFunctions(java.lang.String&nbsp;dbName)
                                               throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getFunction-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFunction</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.CatalogFunction&nbsp;getFunction(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath)
                                                           throws org.apache.flink.table.catalog.exceptions.FunctionNotExistException,
                                                                  org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.FunctionNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="functionExists-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>functionExists</h4>
<pre>public&nbsp;boolean&nbsp;functionExists(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath)
                       throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="createFunction-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogFunction-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFunction</h4>
<pre>public&nbsp;void&nbsp;createFunction(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath,
                           org.apache.flink.table.catalog.CatalogFunction&nbsp;function,
                           boolean&nbsp;ignoreIfExists)
                    throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterFunction-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogFunction-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterFunction</h4>
<pre>public&nbsp;void&nbsp;alterFunction(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath,
                          org.apache.flink.table.catalog.CatalogFunction&nbsp;newFunction,
                          boolean&nbsp;ignoreIfNotExists)
                   throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="dropFunction-org.apache.flink.table.catalog.ObjectPath-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropFunction</h4>
<pre>public&nbsp;void&nbsp;dropFunction(org.apache.flink.table.catalog.ObjectPath&nbsp;functionPath,
                         boolean&nbsp;ignoreIfNotExists)
                  throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterTableStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.stats.CatalogTableStatistics-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterTableStatistics</h4>
<pre>public&nbsp;void&nbsp;alterTableStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                 org.apache.flink.table.catalog.stats.CatalogTableStatistics&nbsp;tableStatistics,
                                 boolean&nbsp;ignoreIfNotExists)
                          throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterTableColumnStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.stats.CatalogColumnStatistics-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterTableColumnStatistics</h4>
<pre>public&nbsp;void&nbsp;alterTableColumnStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                       org.apache.flink.table.catalog.stats.CatalogColumnStatistics&nbsp;columnStatistics,
                                       boolean&nbsp;ignoreIfNotExists)
                                throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterPartitionStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.stats.CatalogTableStatistics-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterPartitionStatistics</h4>
<pre>public&nbsp;void&nbsp;alterPartitionStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                     org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                                     org.apache.flink.table.catalog.stats.CatalogTableStatistics&nbsp;partitionStatistics,
                                     boolean&nbsp;ignoreIfNotExists)
                              throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="alterPartitionColumnStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-org.apache.flink.table.catalog.stats.CatalogColumnStatistics-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterPartitionColumnStatistics</h4>
<pre>public&nbsp;void&nbsp;alterPartitionColumnStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                           org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec,
                                           org.apache.flink.table.catalog.stats.CatalogColumnStatistics&nbsp;columnStatistics,
                                           boolean&nbsp;ignoreIfNotExists)
                                    throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="listPartitions-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listPartitions</h4>
<pre>public&nbsp;java.util.List&lt;org.apache.flink.table.catalog.CatalogPartitionSpec&gt;&nbsp;listPartitions(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)
                                                                                   throws org.apache.flink.table.catalog.exceptions.TableNotExistException,
                                                                                          org.apache.flink.table.catalog.exceptions.TableNotPartitionedException,
                                                                                          org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.TableNotExistException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.TableNotPartitionedException</code></dd>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="listPartitions-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listPartitions</h4>
<pre>public&nbsp;java.util.List&lt;org.apache.flink.table.catalog.CatalogPartitionSpec&gt;&nbsp;listPartitions(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                                                                          org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)
                                                                                   throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="listPartitionsByFilter-org.apache.flink.table.catalog.ObjectPath-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listPartitionsByFilter</h4>
<pre>public&nbsp;java.util.List&lt;org.apache.flink.table.catalog.CatalogPartitionSpec&gt;&nbsp;listPartitionsByFilter(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                                                                                  java.util.List&lt;org.apache.flink.table.expressions.Expression&gt;&nbsp;filters)
                                                                                           throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getTableStatistics-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableStatistics</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.stats.CatalogTableStatistics&nbsp;getTableStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)
                                                                               throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getTableColumnStatistics-org.apache.flink.table.catalog.ObjectPath-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableColumnStatistics</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.stats.CatalogColumnStatistics&nbsp;getTableColumnStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath)
                                                                                      throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getPartitionStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPartitionStatistics</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.stats.CatalogTableStatistics&nbsp;getPartitionStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                                                                          org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)
                                                                                   throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></dd>
</dl>
</li>
</ul>
<a name="getPartitionColumnStatistics-org.apache.flink.table.catalog.ObjectPath-org.apache.flink.table.catalog.CatalogPartitionSpec-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPartitionColumnStatistics</h4>
<pre>public&nbsp;org.apache.flink.table.catalog.stats.CatalogColumnStatistics&nbsp;getPartitionColumnStatistics(org.apache.flink.table.catalog.ObjectPath&nbsp;tablePath,
                                                                                                 org.apache.flink.table.catalog.CatalogPartitionSpec&nbsp;partitionSpec)
                                                                                          throws org.apache.flink.table.catalog.exceptions.CatalogException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.flink.table.catalog.exceptions.CatalogException</code></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/iceberg/flink/CatalogLoader.HiveCatalogLoader.html" title="class in org.apache.iceberg.flink"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/iceberg/flink/FlinkCatalogFactory.html" title="class in org.apache.iceberg.flink"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/iceberg/flink/FlinkCatalog.html" target="_top">Frames</a></li>
<li><a href="FlinkCatalog.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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
