//===----------------------------------------------------------------------===// // DuckDB // // duckdb/parser/expression_map.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/common/unordered_map.hpp" #include "duckdb/common/unordered_set.hpp" #include "duckdb/parser/base_expression.hpp" #include "duckdb/parser/parsed_expression.hpp" #include "duckdb/planner/expression.hpp" namespace duckdb { class Expression; template struct ExpressionHashFunction { uint64_t operator()(const reference &expr) const { return (uint64_t)expr.get().Hash(); } }; template struct ExpressionEquality { bool operator()(const reference &a, const reference &b) const { return a.get().Equals(b.get()); } }; template using expression_map_t = unordered_map, T, ExpressionHashFunction, ExpressionEquality>; using expression_set_t = unordered_set, ExpressionHashFunction, ExpressionEquality>; template using parsed_expression_map_t = unordered_map, T, ExpressionHashFunction, ExpressionEquality>; using parsed_expression_set_t = unordered_set, ExpressionHashFunction, ExpressionEquality>; } // namespace duckdb