<!--
  ~ 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.
  -->
  
# What's new in Apache Atlas 1.0?

## Features

* Introduction of relationships as a first-class type
* Support for propagation of classifications along entity relationships – like lineage
* Fine-grained metadata security, which enables access controls up to entity instance level
* Introduction of Glossary feature
* Introduction of V2 style notifications
* Introduction of Atlas hook for HBase
* Support for Cassandra and Elasticsearch (tech-preview)
    
## Updates

* Graph store has been updated from Titan 0.5.4 to JanusGraph 0.2.0
* DSL rewrite, to replace use of Scala based implementation with ANTLR
* Performance improvements in Atlas Hooks, by switching to use V2 style notifications
* Significant updates in Atlas Web UI

## Changes

### DSL search

With DSL rewrite and simplification, some older constructs may not work. Here's a list of behavior changes from previous
releases. More DSL related changes can be found [here](Search-Advanced.html).

   * When filtering or narrowing results using string attribute, the value **MUST** be enclosed in double quotes
      * Table name="Table1"
      * Table where name="Table1"
   * Join queries are no longer supported e.g. hive_table, hive_db 
   * Select clauses only work with immediate entity attributes or a single referred (entity) type.
      * Table select name, owner
      * Table select Columns 
      * Table select name, owner, Columns _*(won't work)*_
   * OrderBy clause can only be used with a _*single primitive*_ attribute.
   * GroupBy clause can only be used with a _*single primitive*_ attribute.
      * Table groupby name
      * Table groupby Columns (won't work)
   * Typename can't have multiple aliases
      * Table as t (OK)
      * Table as t1, t2 (won't work)
  * Has clause only works with primitive attributes.
     * Table has name
      * Table has Columns or Table has DB (NOT supported)
  * Aggregator clause can only be used with a _*single primitive*_ attribute.
      * Table select min(name)
      * Table select max(name)
      * Table select sum(createTime)
      * Table select min(Columns) (won't work)
      * Table select max(Columns) (won't work)
      * Table select sum(Columns) (won't work)
  * Aggregator clause can't be repeated with different _*primitive attribute*_, the clause appearing last would take preference.
      * Table select min(name), min(createTime) will ignore _*min(name)*_
  * Limit and offset are not applicable when using aggregator clauses (min, max, sum)
      *  Table select min(name) limit 10 offset 5 - min(name) is computed over **ALL** entities of type Asset