QPML is a YAML-based DSL for describing query plans for the purposes of producing diagrams and textual representations of query plans for use in documentation and presentations.
yaml
title: 'Inner Join: cs_ship_date_sk = d3.d_date_sk'
inputs:
- title: 'Inner Join: inv_date_sk = d2.d_date_sk'
inputs:
- title: 'Inner Join: cs_sold_date_sk = d1.d_date_sk'
inputs:
- title: 'Inner Join: cs_bill_hdemo_sk = hd_demo_sk'
inputs:
- title: 'Inner Join: cs_bill_cdemo_sk = cd_demo_sk'
inputs:
- title: 'Inner Join: i_item_sk = cs_item_sk'
inputs:
- title: 'Inner Join: w_warehouse_sk = inv_warehouse_sk'
inputs:
- title: 'Inner Join: cs_item_sk = inv_item_sk'
inputs:
- title: catalog_sales
inputs: []
- title: inventory
inputs: []
- title: warehouse
inputs: []
- title: item
inputs: []
- title: customer_demographics
inputs: []
- title: household_demographics
inputs: []
- title: d1
inputs: []
- title: d2
inputs: []
- title: d3
inputs: []
```shell $ qpml print example1.yaml
Inner Join: csshipdatesk = d3.ddatesk Inner Join: invdatesk = d2.ddatesk Inner Join: cssolddatesk = d1.ddatesk Inner Join: csbillhdemosk = hddemosk Inner Join: csbillcdemosk = cddemosk Inner Join: iitemsk = csitemsk Inner Join: wwarehousesk = invwarehousesk Inner Join: csitemsk = invitemsk catalogsales inventory warehouse item customerdemographics household_demographics d1 d2 d3 ```
TODO