(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{611:function(e,a,t){"use strict";t.r(a);var r=t(71),i=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"execution-plan-generator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#execution-plan-generator"}},[e._v("#")]),e._v(" Execution plan generator")]),e._v(" "),t("ul",[t("li",[e._v("org.apache.iotdb.db.qp.Planner")])]),e._v(" "),t("p",[e._v("Transform the syntax tree parsed by SQL into logical plans, logical optimizations, and physical plans.")]),e._v(" "),t("h2",{attrs:{id:"sql-parsing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sql-parsing"}},[e._v("#")]),e._v(" SQL  parsing")]),e._v(" "),t("p",[e._v("SQL parsing using Antlr4")]),e._v(" "),t("ul",[t("li",[e._v("server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4")])]),e._v(" "),t("p",[e._v("mvn clean compile")]),e._v(" "),t("p",[e._v("Generated code location ：server/target/generated-sources/antlr4")]),e._v(" "),t("h2",{attrs:{id:"logical-plan-generator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#logical-plan-generator"}},[e._v("#")]),e._v(" Logical plan generator")]),e._v(" "),t("ul",[t("li",[e._v("org.apache.iotdb.db.qp.strategy.LogicalGenerator")])]),e._v(" "),t("h2",{attrs:{id:"logical-plan-optimizer"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#logical-plan-optimizer"}},[e._v("#")]),e._v(" Logical plan optimizer")]),e._v(" "),t("p",[e._v("There are currently three logical plan optimizers")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer")]),e._v(" "),t("p",[e._v("The path optimizer splices query paths in SQL, interacts with MManager, removes wildcards, and performs path checking.")])]),e._v(" "),t("li",[t("p",[e._v("org.apache.iotdb.db.qp.strategy.optimizer.RemoveNotOptimizer")]),e._v(" "),t("p",[e._v("The predicate de-optimizer removes the non-operators in the predicate logic.")])]),e._v(" "),t("li",[t("p",[e._v("org.apache.iotdb.db.qp.strategy.optimizer.DnfFilterOptimizer")]),e._v(" "),t("p",[e._v("Turn predicates into disjunctive normal form.")])]),e._v(" "),t("li",[t("p",[e._v("org.apache.iotdb.db.qp.strategy.optimizer.MergeSingleFilterOptimizer")]),e._v(" "),t("p",[e._v("Combine predicates of the same path logically.")])])]),e._v(" "),t("h2",{attrs:{id:"physical-plan-generator"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#physical-plan-generator"}},[e._v("#")]),e._v(" Physical plan generator")]),e._v(" "),t("ul",[t("li",[e._v("org.apache.iotdb.db.qp.strategy.PhysicalGenerator")])])])}),[],!1,null,null,null);a.default=i.exports}}]);