<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Apache Flink: Apache Flink 1.9.1 Released</title>
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="/css/flink.css">
    <link rel="stylesheet" href="/css/syntax.css">

    <!-- Blog RSS feed -->
    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
    <script src="/js/jquery.min.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>  
    

    <!-- Main content. -->
    <div class="container">
    <div class="row">

      
     <div id="sidebar" class="col-sm-3">
        

<!-- Top navbar. -->
    <nav class="navbar navbar-default">
        <!-- The logo. -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <div class="navbar-logo">
            <a href="/">
              <img alt="Apache Flink" src="/img/flink-header-logo.svg" width="147px" height="73px">
            </a>
          </div>
        </div><!-- /.navbar-header -->

        <!-- The navigation links. -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav navbar-main">

            <!-- First menu section explains visitors what Flink is -->

            <!-- What is Stream Processing? -->
            <!--
            <li><a href="/streamprocessing1.html">What is Stream Processing?</a></li>
            -->

            <!-- What is Flink? -->
            <li><a href="/flink-architecture.html">What is Apache Flink?</a></li>

            

            <!-- What is Stateful Functions? -->

            <li><a href="/stateful-functions.html">What is Stateful Functions?</a></li>

            <!-- Use cases -->
            <li><a href="/usecases.html">Use Cases</a></li>

            <!-- Powered by -->
            <li><a href="/poweredby.html">Powered By</a></li>


            &nbsp;
            <!-- Second menu section aims to support Flink users -->

            <!-- Downloads -->
            <li><a href="/downloads.html">Downloads</a></li>

            <!-- Getting Started -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Getting Started<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11/getting-started/index.html" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/getting-started/project-setup.html" target="_blank">With Flink Stateful Functions <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="/training.html">Training Course</a></li>
              </ul>
            </li>

            <!-- Documentation -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11" target="_blank">Flink 1.11 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-master" target="_blank">Flink Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1" target="_blank">Flink Stateful Functions 2.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
              </ul>
            </li>

            <!-- getting help -->
            <li><a href="/gettinghelp.html">Getting Help</a></li>

            <!-- Blog -->
            <li class="active"><a href="/blog/"><b>Flink Blog</b></a></li>


            <!-- Flink-packages -->
            <li>
              <a href="https://flink-packages.org" target="_blank">flink-packages.org <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>
            &nbsp;

            <!-- Third menu section aim to support community and contributors -->

            <!-- Community -->
            <li><a href="/community.html">Community &amp; Project Info</a></li>

            <!-- Roadmap -->
            <li><a href="/roadmap.html">Roadmap</a></li>

            <!-- Contribute -->
            <li><a href="/contributing/how-to-contribute.html">How to Contribute</a></li>
            

            <!-- GitHub -->
            <li>
              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>

            &nbsp;

            <!-- Language Switcher -->
            <li>
              
                
                  <!-- link to the Chinese home page when current is blog page -->
                  <a href="/zh">中文版</a>
                
              
            </li>

          </ul>

          <ul class="nav navbar-nav navbar-bottom">
          <hr />

            <!-- Twitter -->
            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <!-- Visualizer -->
            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

          <hr />

            <li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <li>
              <style>
                .smalllinks:link {
                  display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
                }
              </style>

              <a class="smalllinks" href="https://www.apache.org/licenses/" target="_blank">License</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/security/" target="_blank">Security</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
            </li>

          </ul>
        </div><!-- /.navbar-collapse -->
    </nav>

      </div>
      <div class="col-sm-9">
      <div class="row-fluid">
  <div class="col-sm-12">
    <div class="row">
      <h1>Apache Flink 1.9.1 Released</h1>
      <p><i></i></p>

      <article>
        <p>18 Oct 2019 Jark Wu (<a href="https://twitter.com/JarkWu">@JarkWu</a>)</p>

<p>The Apache Flink community released the first bugfix version of the Apache Flink 1.9 series.</p>

<p>This release includes 96 fixes and minor improvements for Flink 1.9.0. The list below includes a detailed list of all fixes and improvements.</p>

<p>We highly recommend all users to upgrade to Flink 1.9.1.</p>

<p>Updated Maven dependencies:</p>

<div class="highlight"><pre><code class="language-xml"><span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-java<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.9.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-streaming-java_2.11<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.9.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-clients_2.11<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.9.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></div>

<p>You can find the binaries on the updated <a href="/downloads.html">Downloads page</a>.</p>

<p>List of resolved issues:</p>

<h2>        Bug
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11630">FLINK-11630</a>] -         TaskExecutor does not wait for Task termination when terminating itself
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13490">FLINK-13490</a>] -         Fix if one column value is null when reading JDBC, the following values are all null
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13941">FLINK-13941</a>] -         Prevent data-loss by not cleaning up small part files from S3.
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-12501">FLINK-12501</a>] -         AvroTypeSerializer does not work with types generated by avrohugger
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13386">FLINK-13386</a>] -         Fix some frictions in the new default Web UI
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13526">FLINK-13526</a>] -         Switching to a non existing catalog or database crashes sql-client
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13568">FLINK-13568</a>] -         DDL create table doesn&#39;t allow STRING data type
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13805">FLINK-13805</a>] -         Bad Error Message when TaskManager is lost
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13806">FLINK-13806</a>] -         Metric Fetcher floods the JM log with errors when TM is lost
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14010">FLINK-14010</a>] -         Dispatcher &amp; JobManagers don&#39;t give up leadership when AM is shut down
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14145">FLINK-14145</a>] -         CompletedCheckpointStore#getLatestCheckpoint(true) returns wrong checkpoint
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13059">FLINK-13059</a>] -         Cassandra Connector leaks Semaphore on Exception and hangs on close
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13534">FLINK-13534</a>] -         Unable to query Hive table with decimal column
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13562">FLINK-13562</a>] -         Throws exception when FlinkRelMdColumnInterval meets two stage stream group aggregate
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13563">FLINK-13563</a>] -         TumblingGroupWindow should implement toString method
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13564">FLINK-13564</a>] -         Throw exception if constant with YEAR TO MONTH resolution was used for group windows
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13588">FLINK-13588</a>] -         StreamTask.handleAsyncException throws away the exception cause
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13653">FLINK-13653</a>] -         ResultStore should avoid using RowTypeInfo when creating a result
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13711">FLINK-13711</a>] -         Hive array values not properly displayed in SQL CLI
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13737">FLINK-13737</a>] -         flink-dist should add provided dependency on flink-examples-table
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13738">FLINK-13738</a>] -         Fix NegativeArraySizeException in LongHybridHashTable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13742">FLINK-13742</a>] -         Fix code generation when aggregation contains both distinct aggregate with and without filter
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13760">FLINK-13760</a>] -         Fix hardcode Scala version dependency in hive connector
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13761">FLINK-13761</a>] -         `SplitStream` should be deprecated because `SplitJavaStream` is deprecated
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13789">FLINK-13789</a>] -         Transactional Id Generation fails due to user code impacting formatting string
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13823">FLINK-13823</a>] -         Incorrect debug log in CompileUtils
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13825">FLINK-13825</a>] -         The original plugins dir is not restored after e2e test run
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13831">FLINK-13831</a>] -         Free Slots / All Slots display error
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13887">FLINK-13887</a>] -         Ensure defaultInputDependencyConstraint to be non-null when setting it in ExecutionConfig
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13897">FLINK-13897</a>] -         OSS FS NOTICE file is placed in wrong directory
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13933">FLINK-13933</a>] -         Hive Generic UDTF can not be used in table API both stream and batch mode
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13936">FLINK-13936</a>] -         NOTICE-binary is outdated
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13966">FLINK-13966</a>] -         Jar sorting in collect_license_files.sh is locale dependent
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14009">FLINK-14009</a>] -         Cron jobs broken due to verifying incorrect NOTICE-binary file
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14049">FLINK-14049</a>] -         Update error message for failed partition updates to include task name
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14076">FLINK-14076</a>] -         &#39;ClassNotFoundException: KafkaException&#39; on Flink v1.9 w/ checkpointing
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14107">FLINK-14107</a>] -         Kinesis consumer record emitter deadlock under event time alignment
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14119">FLINK-14119</a>] -         Clean idle state for RetractableTopNFunction
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14139">FLINK-14139</a>] -         Fix potential memory leak of rest server when using session/standalone cluster
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14140">FLINK-14140</a>] -         The Flink Logo Displayed in Flink Python Shell is Broken
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14150">FLINK-14150</a>] -         Unnecessary __pycache__ directories appears in pyflink.zip
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14288">FLINK-14288</a>] -         Add Py4j NOTICE for source release
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13892">FLINK-13892</a>] -         HistoryServerTest failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14043">FLINK-14043</a>] -         SavepointMigrationTestBase is super slow
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-12164">FLINK-12164</a>] -         JobMasterTest.testJobFailureWhenTaskExecutorHeartbeatTimeout is unstable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-9900">FLINK-9900</a>] -         Fix unstable test ZooKeeperHighAvailabilityITCase#testRestoreBehaviourWithFaultyStateHandles
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13484">FLINK-13484</a>] -         ConnectedComponents end-to-end test instable with NoResourceAvailableException
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13489">FLINK-13489</a>] -         Heavy deployment end-to-end test fails on Travis with TM heartbeat timeout
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13514">FLINK-13514</a>] -         StreamTaskTest.testAsyncCheckpointingConcurrentCloseAfterAcknowledge unstable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13530">FLINK-13530</a>] -         AbstractServerTest failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13585">FLINK-13585</a>] -         Fix sporadical deallock in TaskAsyncCallTest#testSetsUserCodeClassLoader()
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13599">FLINK-13599</a>] -         Kinesis end-to-end test failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13663">FLINK-13663</a>] -         SQL Client end-to-end test for modern Kafka failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13688">FLINK-13688</a>] -         HiveCatalogUseBlinkITCase.testBlinkUdf constantly failed
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13739">FLINK-13739</a>] -         BinaryRowTest.testWriteString() fails in some environments
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13746">FLINK-13746</a>] -         Elasticsearch (v2.3.5) sink end-to-end test fails on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13769">FLINK-13769</a>] -         BatchFineGrainedRecoveryITCase.testProgram failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13807">FLINK-13807</a>] -         Flink-avro unit tests fails if the character encoding in the environment is not default to UTF-8
</li>
</ul>

<h2>        Improvement
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13965">FLINK-13965</a>] -         Keep hasDeprecatedKeys and deprecatedKeys methods in ConfigOption and mark it with @Deprecated annotation
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-9941">FLINK-9941</a>] -         Flush in ScalaCsvOutputFormat before close method
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13336">FLINK-13336</a>] -         Remove the legacy batch fault tolerance page and redirect it to the new task failure recovery page
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13380">FLINK-13380</a>] -         Improve the usability of Flink session cluster on Kubernetes
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13819">FLINK-13819</a>] -         Introduce RpcEndpoint State
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13845">FLINK-13845</a>] -         Drop all the content of removed &quot;Checkpointed&quot; interface
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13957">FLINK-13957</a>] -         Log dynamic properties on job submission
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13967">FLINK-13967</a>] -         Generate full binary licensing via collect_license_files.sh
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13968">FLINK-13968</a>] -         Add travis check for the correctness of the binary licensing
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13449">FLINK-13449</a>] -         Add ARM architecture to MemoryArchitecture
</li>
</ul>

<h2>        Documentation
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13105">FLINK-13105</a>] -         Add documentation for blink planner&#39;s built-in functions
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13277">FLINK-13277</a>] -         add documentation of Hive source/sink
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13354">FLINK-13354</a>] -         Add documentation for how to use blink planner
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13355">FLINK-13355</a>] -         Add documentation for Temporal Table Join in blink planner
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13356">FLINK-13356</a>] -         Add documentation for TopN and Deduplication in blink planner
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13359">FLINK-13359</a>] -         Add documentation for DDL introduction
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13362">FLINK-13362</a>] -         Add documentation for Kafka &amp; ES &amp; FileSystem DDL
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13363">FLINK-13363</a>] -         Add documentation for streaming aggregate performance tunning.
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13706">FLINK-13706</a>] -         add documentation of how to use Hive functions in Flink
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13942">FLINK-13942</a>] -         Add Overview page for Getting Started section
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13863">FLINK-13863</a>] -         Update Operations Playground to Flink 1.9.0
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13937">FLINK-13937</a>] -         Fix wrong hive dependency version in documentation
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13830">FLINK-13830</a>] -         The Document about Cluster on yarn have some problems
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-14160">FLINK-14160</a>] -         Extend Operations Playground with --backpressure option
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13388">FLINK-13388</a>] -         Update UI screenshots in the documentation to the new default Web Frontend
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13415">FLINK-13415</a>] -         Document how to use hive connector in scala shell
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13517">FLINK-13517</a>] -         Restructure Hive Catalog documentation
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13643">FLINK-13643</a>] -         Document the workaround for users with a different minor Hive version
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-13757">FLINK-13757</a>] -         Fix wrong description of "IS NOT TRUE" function documentation
</li>
</ul>


      </article>
    </div>

    <div class="row">
      <div id="disqus_thread"></div>
      <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'stratosphere-eu'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
             (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
      </script>
    </div>
  </div>
</div>
      </div>
    </div>

    <hr />

    <div class="row">
      <div class="footer text-center col-sm-12">
        <p>Copyright © 2014-2019 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
        <p>Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
      </div>
    </div>
    </div><!-- /.container -->

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.0/jquery.matchHeight-min.js"></script>
    <script src="/js/codetabs.js"></script>
    <script src="/js/stickysidebar.js"></script>

    <!-- Google Analytics -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-52545728-1', 'auto');
      ga('send', 'pageview');
    </script>
  </body>
</html>
