https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html
http://people.csail.mit.edu/matei/papers/2015/sigmod_spark_sql.pdf
https://en.wikipedia.org/wiki/Reynold_Xin