{"repo":"zhouqingqing/qpmodel","free":true,"listed":false,"github":"https://github.com/zhouqingqing/qpmodel","clone":"git clone https://github.com/zhouqingqing/qpmodel.git","description":"A Relational Optimizer and Executor","language":"C#","stars":66,"topics":["query-optimizer","query-executor","codegen","cascades-optimizer","distributed-query","property-enforcer"],"license":"MIT","category":"dev-tools","readme_excerpt":"An Experimental Relational Optimizer and Executor This project implements a relational optimizer and executor in c#. It is called \"experimental\" because it does not have all the details carved. The main target is the optimizer, and the purpose is to prepare for a more serious production implementation later. The executor part is needed for plan correctness verification with TPCH/DS end to end runnable. It is built on top of many database research results, and it has been open-sourced in the hope that others may find it useful and database community can provide feedback and ways to improve it. Why C# Optimizer is logic centric, so a high-level language is preferred. After experiments, production may want to turn it into some C/C++ code, so the language must be a close relative of them. C# (.net core) provides some great features like cross-platform, LINQ, dynamic types to make modeling easy, and it is close enough to C++ (and that's why not python). Optimizer The optimizer exercises the following constructs: - Top down/bottom up structure: the optimizer does utilize a top down cascades style optimizer structure but optionally you can choose to use bottom up join order resolver. It currently use DPccp (\"Analysis of Two Existing and One New Dynamic Programming Algorithm\") by G. Moerkotte, et al. It also implements some other join order resolver like DPBushy (TDBasic, GOO), mainly for the purpose of correctness verification. - Subquery decorrelation: it follows the \"Unnesting Arb","default_branch":null,"files":null,"tree":[],"storefront":"/r/zhouqingqing","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/zhouqingqing/qpmodel/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}