***************************************************************************
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
***************************************************************************

Release Notes - Apache MRQL 0.9.6-incubating
--------------------------------------------

New Features

[MRQL-72] Add support for stream input on TCP sockets
[MRQL-79] Add support for incremental query processing

Bugs

[MRQL-67] Fix maven build errors for JDK 1.8
[MRQL-69] Allow escaped quotes in JSON strings
[MRQL-73] Set the max number of tasks in Spark mode
[MRQL-76] Change the mrql.flink shell script to work with Flink 0.9.0
[MRQL-78] Turn off Flink log INFO messages
[MRQL-81] Fix the coercion of persistent collections to in-memory bags
[MRQL-82] Fix the split size calculation in map-reduce mode

Improvements

[MRQL-70] Update Flink version to 0.8.1
[MRQL-74] Update Flink version to 0.9.0
[MRQL-75] Add support for Hama v0.7 on Yarn
[MRQL-77] Support single Flink jobs on YARN
[MRQL-80] Support Flink 0.10
[MRQL-84] Improve performance of Incremental MRQL

Tasks

[MRQL-68] GitHub integration for MRQL
[MRQL-71] Add google analytics tracking and bring the MRQL web site up-to-date
[MRQL-85] Prepare for the 0.9.6 release


Release Notes - Apache MRQL 0.9.4-incubating
--------------------------------------------

New Features

[MRQL-45] Add support for Apache Flink
[MRQL-49] Add Flink support info on the project web site
[MRQL-63] Add support for MRQL streaming in spark streaming mode

Bugs

[MRQL-41] Post-release improvements
[MRQL-42] Fix bug in XML projections
[MRQL-44] Fix the map-reduce join for a complex reducer on map-reduce mode
[MRQL-46] MRQL does not build with Java 8
[MRQL-47] Fix various bugs for the Flink evaluation mode
[MRQL-48] Fix global variable bindings in Spark and Flink modes
[MRQL-50] Fix result dumping to a text file in Flink mode
[MRQL-51] Support for Spark 1.1.0
[MRQL-52] Fix Flink evaluation mode to pass all Junit tests
[MRQL-53] Fix processing of directories of text files in MapReduce mode
[MRQL-58] Fix config file and shell run scripts to support multiple HDFS users
[MRQL-60] Fix building dependencies for hadoop 1.x
[MRQL-61] Fix bug on select over union queries
[MRQL-62] Fix Map-Reduce mode on MultipleInput sources
[MRQL-67]: Fix maven build errors for JDK 1.8

Improvements

[MRQL-43] Add support for tracing
[MRQL-54] Adjust the split size of a map-reduce input file based on the number of requested nodes
[MRQL-55] Add support for Hadoop Sequence input format in flink mode
[MRQL-56] Improve total aggregations and repetitions with shared results in Flink mode
[MRQL-57] Make floating-point literals to be double instead of float

Tasks

[MRQL-64] Prepare for 0.9.4 release


Release Notes - Apache MRQL 0.9.2-incubating
--------------------------------------------

New Features

[MRQL-23] Add support for Yarn
[MRQL-29] Support for Spark 0.9.0

Bugs

[MRQL-22] The compiler must load the hadoop core lib before compilation
[MRQL-28] Fixed dumping of HDFS sequence file in Spark mode
[MRQL-31] Broken hyperlink in website
[MRQL-33] Fix various bugs in iteration queries
[MRQL-36] Fix evaluation errors during Junit testing
[MRQL-40] Fix 0.9.2-RC1 and prepare for release

Improvements

[MRQL-21] Modify shell scripts to work on Mac OS
[MRQL-24] Improve Serializable methods for Spark
[MRQL-25] Changed Translator/Evaluator interface to improve Spark efficiency
[MRQL-26] Support for Spark 0.8.1
[MRQL-27] Improve the build process and support hadoop 0.20.x
[MRQL-30] Improved run scripts and support for Spark on YARN
[MRQL-32] Refactoring directory structure for Eclipse
[MRQL-34] Introduce junit for testing
[MRQL-37] Support installation on a Cloudera CDH distribution
[MRQL-38] Support for Spark 1.0.0

Tasks

[MRQL-39] Prepare for 0.9.2 release


Release Notes - Apache MRQL 0.9.0-incubating
--------------------------------------------

New Features

[MRQL-1] New MRQL website
[MRQL-4] Create a testbed for MRQL queries using JUnit

Bugs

[MRQL-2] Mavenize MRQL
[MRQL-5] JSON parser has a null scanner
[MRQL-7] Refactor directory layout to be more Maven compliant
[MRQL-9] Make BSP mode compatible with Hama 0.7.0
[MRQL-10] Add dist module to generate release tarball

Improvements

[MRQL-3] some trivial code improvements
[MRQL-6] Add developers guide to the website
[MRQL-8] Overload projections to work on JSON data
[MRQL-12] Support query evaluation in Spark mode

Tasks

[MRQL-11] Establish whether "Apache MRQL" is a suitable name
[MRQL-13] Umbrella task for first Apache MRQL release
[MRQL-14] Add the "-SNAPSHOT" suffix
[MRQL-15] Setup svnpubsub for the MRQL dist directory
[MRQL-16] correct source files. ASF licenses, and POMs for release
[MRQL-17] Update the MRQL status page
[MRQL-18] correct NOTICE, DISCLAIMER, xdoc
[MRQL-19] Fix license issues to prepare a new release candidate
[MRQL-20] Fix maven problems to prepare a new release candidate
