Description
As of this moment, there exist many catalogs in Spark. For Spark 2.0, we will have two high level catalogs only: SessionCatalog and ExternalCatalog. SessionCatalog (implemented in SPARK-13923) keeps track of temporary functions and tables and delegates other operations to ExternalCatalog.
At the same time, there's this legacy catalog called `analysis.Catalog` that also tracks temporary functions and tables. The goal is to get rid of this legacy catalog and replace it with SessionCatalog, which is the new thing.