drizzle-cube 0.6.3 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/ActivityGridChart.config-Bvi50jl_.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-BwswifOD.js +2 -0
- package/dist/adapters/AreaChart.config-Cehf1Kjo.cjs +1 -0
- package/dist/adapters/AreaChart.config-DC-gnmli.js +2 -0
- package/dist/adapters/BarChart.config-BY53r96T.cjs +1 -0
- package/dist/adapters/BarChart.config-DJN5Oqmw.js +2 -0
- package/dist/adapters/BoxPlotChart.config-9hLT3yMs.js +2 -0
- package/dist/adapters/BoxPlotChart.config-D9P4PMTf.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CEVSsy7u.js +2 -0
- package/dist/adapters/BubbleChart.config-Cji0z0Tb.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-DPv76FmM.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-tcHTorLu.js +2 -0
- package/dist/adapters/DataTable.config-D4txBrlQ.cjs +1 -0
- package/dist/adapters/DataTable.config-DrObkanI.js +2 -0
- package/dist/adapters/FunnelChart.config-BFYSkibE.js +2 -0
- package/dist/adapters/FunnelChart.config-BTSFeha-.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BFz6NZfT.js +2 -0
- package/dist/adapters/GaugeChart.config-DJKD6oh8.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-C3EZl9Sy.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-jUCb5NAE.js +2 -0
- package/dist/adapters/KpiDelta.config-DhuealNk.js +2 -0
- package/dist/adapters/KpiDelta.config-m6FEIeWo.cjs +1 -0
- package/dist/adapters/KpiNumber.config-Cmd7eHmg.cjs +1 -0
- package/dist/adapters/KpiNumber.config-KQdKrkK-.js +2 -0
- package/dist/adapters/KpiText.config-D_pU4jH3.cjs +1 -0
- package/dist/adapters/KpiText.config-V8SvhllA.js +2 -0
- package/dist/adapters/LineChart.config-BuWM0TJx.js +2 -0
- package/dist/adapters/LineChart.config-CsxJ3f5A.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-CJdjenj7.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-oCWrAuom.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-DBLnhtOk.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-DWg0jzxA.js +2 -0
- package/dist/adapters/PieChart.config-D3qI6nbM.cjs +1 -0
- package/dist/adapters/PieChart.config-R2rcul2D.js +2 -0
- package/dist/adapters/RadarChart.config-BlK8QuDi.js +2 -0
- package/dist/adapters/RadarChart.config-fH3ce10I.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CqCnb27I.js +2 -0
- package/dist/adapters/RadialBarChart.config-DQQHJOCs.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-BFJ8i-kp.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-B_Wd_YjX.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-BLqu9-Ft.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-MvOPw_Dd.cjs +1 -0
- package/dist/adapters/SankeyChart.config-C_4u9Xiq.js +2 -0
- package/dist/adapters/SankeyChart.config-EH6wsjPr.cjs +1 -0
- package/dist/adapters/ScatterChart.config-D-MlQ7mP.js +2 -0
- package/dist/adapters/ScatterChart.config-DmwiEBN-.cjs +1 -0
- package/dist/adapters/SunburstChart.config-BRr_as_L.js +2 -0
- package/dist/adapters/SunburstChart.config-CptDj8e4.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-D5wX2xaT.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-Dyhwpwq3.js +2 -0
- package/dist/adapters/WaterfallChart.config-B_LGJIov.js +2 -0
- package/dist/adapters/WaterfallChart.config-Q4Fv196W.cjs +1 -0
- package/dist/adapters/compiler-D0v5KJhv.cjs +166 -0
- package/dist/adapters/{compiler-LKTN9PTt.js → compiler-ZruQ85ff.js} +247 -238
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-F1pCQPde.cjs → core-CVqTwOR3.cjs} +1 -1
- package/dist/adapters/{core-Bbchr0ui.js → core-DoSUiMmv.js} +60 -60
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.js +80 -75
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +63 -58
- package/dist/adapters/{handler-DRZb2ip6.cjs → handler-DyIyrFFp.cjs} +3 -3
- package/dist/adapters/{handler-u8FyzPBT.js → handler-j74EJDdo.js} +28 -28
- package/dist/adapters/hono/index.cjs +2 -2
- package/dist/adapters/hono/index.js +57 -52
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-BuU5CrKL.cjs +40 -0
- package/dist/adapters/mcp-transport-l8DhKzR5.js +601 -0
- package/dist/adapters/mcp-transport.d.ts +21 -3
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.d.ts +10 -0
- package/dist/adapters/nextjs/index.js +114 -105
- package/dist/{server/openai-CmMzrs1Y.js → adapters/openai-BCSKRcbD.js} +10 -10
- package/dist/{server/openai-DhzGY9R4.js → adapters/openai-BjR3ohaS.js} +1 -1
- package/dist/{server/openai-B4kAJTSD.cjs → adapters/openai-ClVVLjNl.cjs} +2 -2
- package/dist/adapters/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
- package/dist/adapters/utils-CBR-9AMD.cjs +128 -0
- package/dist/adapters/{utils-BPWZsX7k.js → utils-U7gV5wQL.js} +789 -788
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +16 -4
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/mcp-transport.d.ts +21 -3
- package/dist/cjs/adapters/nextjs/index.d.ts +10 -0
- package/dist/cjs/adapters/utils.d.ts +16 -4
- package/dist/cjs/client/components/AnalysisBuilder/utils/filterUtils.d.ts +4 -10
- package/dist/cjs/client/components/shared/utils.d.ts +2 -1
- package/dist/cjs/client/shared/filters/filterOperations.d.ts +95 -0
- package/dist/cjs/client/shared/filters/index.d.ts +10 -0
- package/dist/cjs/client/shared/filters/operators.d.ts +23 -0
- package/dist/cjs/client/shared/index.d.ts +3 -2
- package/dist/cjs/client/shared/types.d.ts +3 -10
- package/dist/cjs/client/shared/utils.d.ts +1 -59
- package/dist/cjs/client/utils/filterUtils.d.ts +2 -9
- package/dist/cjs/server/executors/sqlite-executor.d.ts +8 -2
- package/dist/cjs/server/logical-plan/logical-plan-builder.d.ts +0 -5
- package/dist/cjs/server/logical-plan/schema-builder.d.ts +19 -0
- package/dist/client/charts.js +13 -13
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +3283 -0
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +1 -0
- package/dist/client/chunks/{DashboardEditModal-CWurUU2B.js → DashboardEditModal-DFQSxR_C.js} +1157 -4011
- package/dist/client/chunks/DashboardEditModal-DFQSxR_C.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js → RetentionCombinedChart-DY7wKLs5.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js.map → RetentionCombinedChart-DY7wKLs5.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js → RetentionHeatmap-iNCG-dLd.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js.map → RetentionHeatmap-iNCG-dLd.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-Uj_Fxv0-.js → analysis-builder-CBZ7lOC-.js} +323 -323
- package/dist/client/chunks/{analysis-builder-Uj_Fxv0-.js.map → analysis-builder-CBZ7lOC-.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-AdAYIfj_.js → analysis-builder-shared-8alCn-zw.js} +989 -1064
- package/dist/client/chunks/analysis-builder-shared-8alCn-zw.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js → chart-activity-grid-DDqFVWoa.js} +5 -2
- package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js.map → chart-activity-grid-DDqFVWoa.js.map} +1 -1
- package/dist/client/chunks/{chart-area-of01_62R.js → chart-area-BHxPNsmc.js} +2 -2
- package/dist/client/chunks/{chart-area-of01_62R.js.map → chart-area-BHxPNsmc.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-BqelQE_I.js → chart-bar-DAO3PPcE.js} +3 -3
- package/dist/client/chunks/{chart-bar-BqelQE_I.js.map → chart-bar-DAO3PPcE.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-kkBixZ27.js → chart-box-plot-CUpFyQQk.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-kkBixZ27.js.map → chart-box-plot-CUpFyQQk.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-B2he1--4.js → chart-bubble-DvP_6_n9.js} +2 -2
- package/dist/client/chunks/{chart-bubble-B2he1--4.js.map → chart-bubble-DvP_6_n9.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js → chart-candlestick-Dx8ZCMzl.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js.map → chart-candlestick-Dx8ZCMzl.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-D4g5_jfF.js → chart-data-table-BP6DMdom.js} +32 -16
- package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-CToKSBaL.js → chart-funnel-xeVGBy-p.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CToKSBaL.js.map → chart-funnel-xeVGBy-p.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DTVezSk7.js → chart-gauge-DXQ4r3cb.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DTVezSk7.js.map → chart-gauge-DXQ4r3cb.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js → chart-heat-map-Pnk6rhqQ.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js.map → chart-heat-map-Pnk6rhqQ.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js → chart-kpi-delta-nXQnRRBr.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js.map → chart-kpi-delta-nXQnRRBr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js → chart-kpi-number-m8UGJfBr.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js.map → chart-kpi-number-m8UGJfBr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js → chart-kpi-text-CurpqmaD.js} +7 -4
- package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js.map → chart-kpi-text-CurpqmaD.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DKgrQA6c.js → chart-line-sJK-cJc0.js} +3 -3
- package/dist/client/chunks/{chart-line-DKgrQA6c.js.map → chart-line-sJK-cJc0.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-CV75S_zL.js → chart-markdown-BVrqqygz.js} +1263 -1192
- package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js → chart-measure-profile-k9_QDQbB.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js.map → chart-measure-profile-k9_QDQbB.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-ByieAX5H.js → chart-pie-BDaaYt7a.js} +3 -3
- package/dist/client/chunks/{chart-pie-ByieAX5H.js.map → chart-pie-BDaaYt7a.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-CiSwHWp4.js → chart-radar-Bz07PIVe.js} +3 -3
- package/dist/client/chunks/{chart-radar-CiSwHWp4.js.map → chart-radar-Bz07PIVe.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js → chart-radial-bar-DpyxKQMj.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js.map → chart-radial-bar-DpyxKQMj.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-DjrvKw6K.js → chart-sankey-BAeNbI-p.js} +2 -2
- package/dist/client/chunks/{chart-sankey-DjrvKw6K.js.map → chart-sankey-BAeNbI-p.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js → chart-scatter-CRhGLCcy.js} +3 -3
- package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js.map → chart-scatter-CRhGLCcy.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-leGpuDj7.js → chart-sunburst-D3wV5OrK.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-leGpuDj7.js.map → chart-sunburst-D3wV5OrK.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js → chart-tree-map-iI3ewOKY.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js.map → chart-tree-map-iI3ewOKY.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-DyvQReN5.js → chart-waterfall-BrrYTZfs.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-DyvQReN5.js.map → chart-waterfall-BrrYTZfs.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DaXSt1Dd.js → charts-core-Cs-UIsQa.js} +2 -2
- package/dist/client/chunks/{charts-core-DaXSt1Dd.js.map → charts-core-Cs-UIsQa.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DAJbAD7a.js +84 -0
- package/dist/client/chunks/{charts-loader-B0DOQMFH.js.map → charts-loader-DAJbAD7a.js.map} +1 -1
- package/dist/client/chunks/core-D7vPfUIe.js.map +1 -1
- package/dist/client/chunks/{dist-zPWyTBdU.js → dist-BwQr11Fz.js} +251 -252
- package/dist/client/chunks/{dist-zPWyTBdU.js.map → dist-BwQr11Fz.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CIqBqwTW.js → exceljs.min-Dey-qIFL.js} +16 -16
- package/dist/client/chunks/{exceljs.min-CIqBqwTW.js.map → exceljs.min-Dey-qIFL.js.map} +1 -1
- package/dist/client/chunks/javascript-DFnKaHmQ.js.map +1 -1
- package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
- package/dist/client/chunks/{schema-visualization-DJPTktM6.js → schema-visualization-BGT_cNon.js} +12 -12
- package/dist/client/chunks/{schema-visualization-DJPTktM6.js.map → schema-visualization-BGT_cNon.js.map} +1 -1
- package/dist/client/chunks/sql-CmVzGP4w.js.map +1 -1
- package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js +30 -0
- package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js.map +1 -0
- package/dist/client/chunks/{useDirtyStateTracking-BY_IIG1n.js → useDebounce-7suCFq9v.js} +250 -653
- package/dist/client/chunks/useDebounce-7suCFq9v.js.map +1 -0
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +66 -0
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-PjMBmj2p.js → useExplainAI-CEf04DPE.js} +14 -14
- package/dist/client/chunks/{useExplainAI-PjMBmj2p.js.map → useExplainAI-CEf04DPE.js.map} +1 -1
- package/dist/client/chunks/useNotebookLayout-Ck3Z3uzg.js.map +1 -1
- package/dist/client/chunks/utils-DjLiJKS_.js +104 -0
- package/dist/client/chunks/utils-DjLiJKS_.js.map +1 -0
- package/dist/client/chunks/{vendor-D4jADu8t.js → vendor-DFAQ4Ucl.js} +5 -3
- package/dist/client/chunks/{vendor-D4jADu8t.js.map → vendor-DFAQ4Ucl.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/utils/filterUtils.d.ts +4 -10
- package/dist/client/components/shared/utils.d.ts +2 -1
- package/dist/client/components.js +4 -3
- package/dist/client/hooks.js +5 -4
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +34 -30
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/filters/filterOperations.d.ts +95 -0
- package/dist/client/shared/filters/index.d.ts +10 -0
- package/dist/client/shared/filters/operators.d.ts +23 -0
- package/dist/client/shared/index.d.ts +3 -2
- package/dist/client/shared/types.d.ts +3 -10
- package/dist/client/shared/utils.d.ts +1 -59
- package/dist/client/styles.css +1 -1
- package/dist/client/utils/filterUtils.d.ts +2 -9
- package/dist/client/utils.js +32 -6
- package/dist/client/utils.js.map +1 -0
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +145 -50
- package/dist/server/executors/sqlite-executor.d.ts +8 -2
- package/dist/server/index.cjs +34 -34
- package/dist/server/index.js +1557 -1547
- package/dist/server/logical-plan/logical-plan-builder.d.ts +0 -5
- package/dist/server/logical-plan/schema-builder.d.ts +19 -0
- package/dist/{adapters/openai-CmMzrs1Y.js → server/openai-BCSKRcbD.js} +10 -10
- package/dist/{adapters/openai-DhzGY9R4.js → server/openai-BjR3ohaS.js} +1 -1
- package/dist/{adapters/openai-B4kAJTSD.cjs → server/openai-ClVVLjNl.cjs} +2 -2
- package/dist/server/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
- package/package.json +11 -7
- package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +0 -2
- package/dist/adapters/AreaChart.config-1B8iQnfn.js +0 -2
- package/dist/adapters/AreaChart.config-hnncyQL4.cjs +0 -1
- package/dist/adapters/BarChart.config-C-QCf1rL.cjs +0 -1
- package/dist/adapters/BarChart.config-CFelK1qP.js +0 -2
- package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +0 -1
- package/dist/adapters/BubbleChart.config-B_M4hzzV.js +0 -2
- package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-fuhyFvob.js +0 -2
- package/dist/adapters/DataTable.config-q2gqBi6t.cjs +0 -1
- package/dist/adapters/DataTable.config-wIQnHX5R.js +0 -2
- package/dist/adapters/FunnelChart.config-Dz710ssx.js +0 -2
- package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +0 -1
- package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +0 -1
- package/dist/adapters/GaugeChart.config-CgwniXkd.js +0 -2
- package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +0 -2
- package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +0 -1
- package/dist/adapters/KpiDelta.config-C_dYM64q.js +0 -2
- package/dist/adapters/KpiNumber.config-CXg6toZG.js +0 -2
- package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +0 -1
- package/dist/adapters/KpiText.config-BY-SJvAF.js +0 -2
- package/dist/adapters/KpiText.config-GSIxy0CE.cjs +0 -1
- package/dist/adapters/LineChart.config-CJtF8SOu.js +0 -2
- package/dist/adapters/LineChart.config-d0y60gw9.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +0 -2
- package/dist/adapters/PieChart.config-CDxfXCIt.cjs +0 -1
- package/dist/adapters/PieChart.config-CuZxQc5m.js +0 -2
- package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +0 -1
- package/dist/adapters/RadarChart.config-KrxwaaGu.js +0 -2
- package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +0 -2
- package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +0 -1
- package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +0 -1
- package/dist/adapters/SankeyChart.config-kzAnW0C7.js +0 -2
- package/dist/adapters/ScatterChart.config-4Okvn27v.js +0 -2
- package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +0 -1
- package/dist/adapters/SunburstChart.config-BsUQkIM_.js +0 -2
- package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +0 -1
- package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +0 -2
- package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +0 -2
- package/dist/adapters/compiler-ChGO4ZLU.cjs +0 -166
- package/dist/adapters/mcp-transport-Bw_zqky2.js +0 -591
- package/dist/adapters/mcp-transport-CNIPoe1i.cjs +0 -40
- package/dist/adapters/utils-_whV4fXL.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-CWurUU2B.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-AdAYIfj_.js.map +0 -1
- package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +0 -1
- package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +0 -1
- package/dist/client/chunks/charts-loader-B0DOQMFH.js +0 -84
- package/dist/client/chunks/useDirtyStateTracking-BY_IIG1n.js.map +0 -1
- package/dist/client/chunks/utils-Cq-j5E5I.js +0 -155
- package/dist/client/chunks/utils-Cq-j5E5I.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as e, D as t, E as n, O as r, S as i, T as a, w as o } from "./utils-
|
|
1
|
+
import { C as e, D as t, E as n, O as r, S as i, T as a, w as o } from "./utils-U7gV5wQL.js";
|
|
2
2
|
//#region node_modules/drizzle-orm/entity.js
|
|
3
3
|
var s = Symbol.for("drizzle:entityKind");
|
|
4
4
|
function c(e, t) {
|
|
@@ -1484,23 +1484,28 @@ var ft = class extends P {
|
|
|
1484
1484
|
async execute(e, t) {
|
|
1485
1485
|
if (e && typeof e == "object" && typeof e.execute == "function") {
|
|
1486
1486
|
let n = await e.execute();
|
|
1487
|
-
return Array.isArray(n) ?
|
|
1487
|
+
return Array.isArray(n) ? this.convertNumericFieldsInPlace(n, t) : n;
|
|
1488
1488
|
}
|
|
1489
1489
|
try {
|
|
1490
1490
|
if (this.db.all) {
|
|
1491
1491
|
let n = this.db.all(e);
|
|
1492
|
-
return Array.isArray(n) ?
|
|
1492
|
+
return Array.isArray(n) ? this.convertNumericFieldsInPlace(n, t) : n;
|
|
1493
1493
|
} else if (this.db.run) return this.db.run(e);
|
|
1494
1494
|
else throw Error("SQLite database instance must have an all() or run() method");
|
|
1495
1495
|
} catch (e) {
|
|
1496
1496
|
throw Error(`SQLite execution failed: ${e instanceof Error ? e.message : "Unknown error"}`, { cause: e });
|
|
1497
1497
|
}
|
|
1498
1498
|
}
|
|
1499
|
-
|
|
1500
|
-
if (!
|
|
1501
|
-
let n = {
|
|
1502
|
-
|
|
1503
|
-
|
|
1499
|
+
convertNumericFieldsInPlace(e, t) {
|
|
1500
|
+
if (!t || t.length === 0) return e;
|
|
1501
|
+
for (let n = 0; n < e.length; n++) {
|
|
1502
|
+
let r = e[n];
|
|
1503
|
+
if (!(!r || typeof r != "object")) for (let e of t) {
|
|
1504
|
+
let t = r[e];
|
|
1505
|
+
t != null && typeof t != "number" && (r[e] = this.coerceToNumber(t));
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
return e;
|
|
1504
1509
|
}
|
|
1505
1510
|
coerceToNumber(e) {
|
|
1506
1511
|
if (e == null || typeof e == "number") return e;
|
|
@@ -2631,7 +2636,7 @@ var Y = class {
|
|
|
2631
2636
|
dependencyGraph;
|
|
2632
2637
|
cubes;
|
|
2633
2638
|
constructor(e) {
|
|
2634
|
-
this.cubes = e instanceof Map ? e : new Map([[e.name, e]]), this.dependencyGraph = /* @__PURE__ */ new Map();
|
|
2639
|
+
this.cubes = e instanceof Map ? e : /* @__PURE__ */ new Map([[e.name, e]]), this.dependencyGraph = /* @__PURE__ */ new Map();
|
|
2635
2640
|
}
|
|
2636
2641
|
extractDependencies(e) {
|
|
2637
2642
|
if (e.length > 1e3) return [];
|
|
@@ -2923,7 +2928,7 @@ var X = class e {
|
|
|
2923
2928
|
if (n.type === "calculated" && n.calculatedSql) {
|
|
2924
2929
|
let t = i.primaryCube.name === e ? i.primaryCube : i.joinCubes?.find((t) => t.cube.name === e)?.cube;
|
|
2925
2930
|
if (!t) throw Error(`Cube ${e} not found in query plan`);
|
|
2926
|
-
let o = new Map([[i.primaryCube.name, i.primaryCube]]);
|
|
2931
|
+
let o = /* @__PURE__ */ new Map([[i.primaryCube.name, i.primaryCube]]);
|
|
2927
2932
|
if (i.joinCubes) for (let e of i.joinCubes) o.set(e.cube.name, e.cube);
|
|
2928
2933
|
return this.buildCTECalculatedMeasure(n, t, a, o, r);
|
|
2929
2934
|
}
|
|
@@ -3108,7 +3113,7 @@ var X = class e {
|
|
|
3108
3113
|
}
|
|
3109
3114
|
buildGroupByFields(e, t, n, r) {
|
|
3110
3115
|
if (t.ungrouped) return [];
|
|
3111
|
-
let i = [], a = e instanceof Map ? e : new Map([[e.name, e]]), o = t.dimensions && t.dimensions.length > 0 || t.timeDimensions && t.timeDimensions.length > 0, s = t.measures && t.measures.length > 0, c = o && !s;
|
|
3116
|
+
let i = [], a = e instanceof Map ? e : /* @__PURE__ */ new Map([[e.name, e]]), o = t.dimensions && t.dimensions.length > 0 || t.timeDimensions && t.timeDimensions.length > 0, s = t.measures && t.measures.length > 0, c = o && !s;
|
|
3112
3117
|
if (!this.hasAggregateMeasures(t, a) && !c) return [];
|
|
3113
3118
|
for (let e of t.dimensions || []) {
|
|
3114
3119
|
let t = this.resolveDimensionGroupField(e, a, n, r);
|
|
@@ -3166,7 +3171,7 @@ var X = class e {
|
|
|
3166
3171
|
return this.measureBuilder.buildResolvedMeasures(e, t, n, r);
|
|
3167
3172
|
}
|
|
3168
3173
|
buildSelections(e, t, n) {
|
|
3169
|
-
let r = {}, i = e instanceof Map ? e : new Map([[e.name, e]]);
|
|
3174
|
+
let r = {}, i = e instanceof Map ? e : /* @__PURE__ */ new Map([[e.name, e]]);
|
|
3170
3175
|
if (t.dimensions) for (let e of t.dimensions) {
|
|
3171
3176
|
let [t, a] = e.split("."), o = i.get(t);
|
|
3172
3177
|
if (o && o.dimensions && o.dimensions[a]) {
|
|
@@ -3206,7 +3211,7 @@ var X = class e {
|
|
|
3206
3211
|
return this.dateTimeBuilder.buildTimeDimensionExpression(e, t, n);
|
|
3207
3212
|
}
|
|
3208
3213
|
buildWhereConditions(e, t, n, r, i) {
|
|
3209
|
-
let a = [], o = e instanceof Map ? e : new Map([[e.name, e]]), s = /* @__PURE__ */ new Set();
|
|
3214
|
+
let a = [], o = e instanceof Map ? e : /* @__PURE__ */ new Map([[e.name, e]]), s = /* @__PURE__ */ new Set();
|
|
3210
3215
|
if (t.filters && t.filters.length > 0) for (let e of t.filters) this.appendWhereFilter(e, o, n, r, i, s, a);
|
|
3211
3216
|
if (t.timeDimensions) for (let e of t.timeDimensions) this.appendTimeDimensionWhere(e, o, n, r, a);
|
|
3212
3217
|
return a;
|
|
@@ -3240,7 +3245,7 @@ var X = class e {
|
|
|
3240
3245
|
return !!t?.preAggregationCTEs?.some((t) => t.cube.name === e);
|
|
3241
3246
|
}
|
|
3242
3247
|
buildHavingConditions(e, t, n, r) {
|
|
3243
|
-
let i = [], a = e instanceof Map ? e : new Map([[e.name, e]]);
|
|
3248
|
+
let i = [], a = e instanceof Map ? e : /* @__PURE__ */ new Map([[e.name, e]]);
|
|
3244
3249
|
if (t.filters && t.filters.length > 0) for (let e of t.filters) {
|
|
3245
3250
|
let t = this.processFilter(e, a, n, "having", r);
|
|
3246
3251
|
t && i.push(t);
|
|
@@ -3308,7 +3313,7 @@ var X = class e {
|
|
|
3308
3313
|
return n;
|
|
3309
3314
|
}
|
|
3310
3315
|
collectNumericFields(e, t) {
|
|
3311
|
-
let n = [], r = e instanceof Map ? e : new Map([[e.name, e]]);
|
|
3316
|
+
let n = [], r = e instanceof Map ? e : /* @__PURE__ */ new Map([[e.name, e]]);
|
|
3312
3317
|
if (t.measures && n.push(...t.measures), t.dimensions) for (let e of t.dimensions) {
|
|
3313
3318
|
let [t, i] = e.split("."), a = r.get(t);
|
|
3314
3319
|
if (a) {
|
|
@@ -3366,7 +3371,7 @@ var X = class e {
|
|
|
3366
3371
|
let a = [{
|
|
3367
3372
|
cube: e,
|
|
3368
3373
|
path: []
|
|
3369
|
-
}], o = new Set([e, ...n]);
|
|
3374
|
+
}], o = /* @__PURE__ */ new Set([e, ...n]);
|
|
3370
3375
|
for (; a.length > 0;) {
|
|
3371
3376
|
let { cube: e, path: n } = a.shift();
|
|
3372
3377
|
for (let { nextCube: i, step: s } of this.neighbourSteps(e, !1)) {
|
|
@@ -3465,7 +3470,7 @@ var X = class e {
|
|
|
3465
3470
|
let i = [], a = [{
|
|
3466
3471
|
cube: e,
|
|
3467
3472
|
path: [],
|
|
3468
|
-
visited: new Set([e, ...n])
|
|
3473
|
+
visited: /* @__PURE__ */ new Set([e, ...n])
|
|
3469
3474
|
}];
|
|
3470
3475
|
for (; a.length > 0;) {
|
|
3471
3476
|
let { cube: e, path: n, visited: o } = a.shift();
|
|
@@ -3498,7 +3503,7 @@ var X = class e {
|
|
|
3498
3503
|
let r = [{
|
|
3499
3504
|
cube: e,
|
|
3500
3505
|
path: []
|
|
3501
|
-
}], i = new Set([e, ...n]);
|
|
3506
|
+
}], i = /* @__PURE__ */ new Set([e, ...n]);
|
|
3502
3507
|
for (; r.length > 0;) {
|
|
3503
3508
|
let { cube: e, path: n } = r.shift();
|
|
3504
3509
|
for (let { nextCube: a, step: o } of this.neighbourSteps(e, !0)) {
|
|
@@ -3522,7 +3527,7 @@ var X = class e {
|
|
|
3522
3527
|
return k(...r);
|
|
3523
3528
|
}
|
|
3524
3529
|
getReachableCubes(e) {
|
|
3525
|
-
let t = new Set([e]), n = [e];
|
|
3530
|
+
let t = /* @__PURE__ */ new Set([e]), n = [e];
|
|
3526
3531
|
for (; n.length > 0;) {
|
|
3527
3532
|
let e = n.shift();
|
|
3528
3533
|
for (let { nextCube: r } of this.neighbourSteps(e, !1)) t.has(r) || (t.add(r), n.push(r));
|
|
@@ -3586,7 +3591,7 @@ var Bn = class {
|
|
|
3586
3591
|
this.resolverCache = e;
|
|
3587
3592
|
}
|
|
3588
3593
|
buildJoinPlan(e, t, n, i, a) {
|
|
3589
|
-
let o = this.resolverCache.get(e), s = [], c = new Set([t.name]), l = /* @__PURE__ */ new Set();
|
|
3594
|
+
let o = this.resolverCache.get(e), s = [], c = /* @__PURE__ */ new Set([t.name]), l = /* @__PURE__ */ new Set();
|
|
3590
3595
|
if (a.measures) for (let e of a.measures) {
|
|
3591
3596
|
let [t] = e.split(".");
|
|
3592
3597
|
l.add(t);
|
|
@@ -3765,11 +3770,11 @@ var qn = class {
|
|
|
3765
3770
|
return a;
|
|
3766
3771
|
}
|
|
3767
3772
|
buildCTEForJoinCube(e, t, n, r, i) {
|
|
3768
|
-
let a = e.target.cube, o = e.alias, s = (i.measures ?? []).filter((e) => e.startsWith(a.name + ".")), c = this.extractMeasuresFromFilters(i, a), l = [
|
|
3773
|
+
let a = e.target.cube, o = e.alias, s = (i.measures ?? []).filter((e) => e.startsWith(a.name + ".")), c = this.extractMeasuresFromFilters(i, a), l = [.../* @__PURE__ */ new Set([...s, ...c])];
|
|
3769
3774
|
if (l.length === 0) return null;
|
|
3770
3775
|
let u = this.resolveCTEJoinKeys(n, r, a, i);
|
|
3771
3776
|
if (!u) return null;
|
|
3772
|
-
let { joinKeys: d, intermediateJoins: f } = u, p = this.filterPropagation.findPropagatingFilters(i, a, n), { aggregateMeasures: m, requiredBaseMeasures: h } = Dn(l, new Map([[a.name, a]])), g = [
|
|
3777
|
+
let { joinKeys: d, intermediateJoins: f } = u, p = this.filterPropagation.findPropagatingFilters(i, a, n), { aggregateMeasures: m, requiredBaseMeasures: h } = Dn(l, /* @__PURE__ */ new Map([[a.name, a]])), g = [.../* @__PURE__ */ new Set([...m, ...Array.from(h).filter((e) => e.startsWith(a.name + "."))])];
|
|
3773
3778
|
if (g.length === 0) return null;
|
|
3774
3779
|
let _ = this.expandCalculatedMeasureDependencies(a, g), v = this.findDownstreamJoinKeys(a, i, n);
|
|
3775
3780
|
return {
|
|
@@ -4246,7 +4251,7 @@ var Qn = class {
|
|
|
4246
4251
|
if (t.downstreamJoinKeys) for (let n of t.downstreamJoinKeys) for (let t of n.joinKeys) t.sourceColumnObj && (e[t.sourceColumn] = t.sourceColumnObj);
|
|
4247
4252
|
}
|
|
4248
4253
|
addMeasureSelections(e, t, n, r) {
|
|
4249
|
-
let i = new Map([[n.name, n]]), a = this.queryBuilder.buildResolvedMeasures(t.measures, i, r);
|
|
4254
|
+
let i = /* @__PURE__ */ new Map([[n.name, n]]), a = this.queryBuilder.buildResolvedMeasures(t.measures, i, r);
|
|
4250
4255
|
for (let n of t.measures) {
|
|
4251
4256
|
let [, t] = n.split("."), r = a.get(n);
|
|
4252
4257
|
r && (e[t] = T`${r()}`.as(t));
|
|
@@ -4360,7 +4365,7 @@ var Qn = class {
|
|
|
4360
4365
|
let n = e.sourceCube, r = n.sql(t), i = [];
|
|
4361
4366
|
if (r.where && i.push(r.where), e.preBuiltFilterSQL) i.push(e.preBuiltFilterSQL);
|
|
4362
4367
|
else {
|
|
4363
|
-
let r = { filters: e.filters }, a = new Map([[n.name, n]]), o = this.queryBuilder.buildWhereConditions(a, r, t);
|
|
4368
|
+
let r = { filters: e.filters }, a = /* @__PURE__ */ new Map([[n.name, n]]), o = this.queryBuilder.buildWhereConditions(a, r, t);
|
|
4364
4369
|
i.push(...o);
|
|
4365
4370
|
}
|
|
4366
4371
|
if (i.length === 0) return null;
|
|
@@ -4909,7 +4914,7 @@ function Ar(e, t, n, i) {
|
|
|
4909
4914
|
}));
|
|
4910
4915
|
}
|
|
4911
4916
|
}
|
|
4912
|
-
var jr = new Set([
|
|
4917
|
+
var jr = /* @__PURE__ */ new Set([
|
|
4913
4918
|
"count",
|
|
4914
4919
|
"countDistinct",
|
|
4915
4920
|
"countDistinctApprox",
|
|
@@ -6317,7 +6322,88 @@ var ti = {
|
|
|
6317
6322
|
buildPeriodNumberExpression(e, t, n) {
|
|
6318
6323
|
return this.databaseAdapter.buildDateDiffPeriods(e, t, n);
|
|
6319
6324
|
}
|
|
6320
|
-
}
|
|
6325
|
+
};
|
|
6326
|
+
//#endregion
|
|
6327
|
+
//#region src/server/logical-plan/schema-builder.ts
|
|
6328
|
+
function Q(e) {
|
|
6329
|
+
return {
|
|
6330
|
+
name: e.name,
|
|
6331
|
+
cube: e
|
|
6332
|
+
};
|
|
6333
|
+
}
|
|
6334
|
+
function ri(e, t) {
|
|
6335
|
+
return e.measures ? e.measures.map((e) => {
|
|
6336
|
+
let [n, i] = e.split("."), a = t.get(n);
|
|
6337
|
+
if (!a) throw Error(r("server.errors.cubeNotFoundForMeasure", {
|
|
6338
|
+
cubeName: n,
|
|
6339
|
+
measure: e
|
|
6340
|
+
}));
|
|
6341
|
+
return {
|
|
6342
|
+
name: e,
|
|
6343
|
+
cube: Q(a),
|
|
6344
|
+
localName: i
|
|
6345
|
+
};
|
|
6346
|
+
}) : [];
|
|
6347
|
+
}
|
|
6348
|
+
function ii(e, t) {
|
|
6349
|
+
return e.dimensions ? e.dimensions.map((e) => {
|
|
6350
|
+
let [n, i] = e.split("."), a = t.get(n);
|
|
6351
|
+
if (!a) throw Error(r("server.errors.cubeNotFoundForDimension", {
|
|
6352
|
+
cubeName: n,
|
|
6353
|
+
dimension: e
|
|
6354
|
+
}));
|
|
6355
|
+
return {
|
|
6356
|
+
name: e,
|
|
6357
|
+
cube: Q(a),
|
|
6358
|
+
localName: i
|
|
6359
|
+
};
|
|
6360
|
+
}) : [];
|
|
6361
|
+
}
|
|
6362
|
+
function ai(e, t) {
|
|
6363
|
+
return e.timeDimensions ? e.timeDimensions.map((e) => {
|
|
6364
|
+
let [n, i] = e.dimension.split("."), a = t.get(n);
|
|
6365
|
+
if (!a) throw Error(r("server.errors.cubeNotFoundForTimeDimension", {
|
|
6366
|
+
cubeName: n,
|
|
6367
|
+
timeDimension: e.dimension
|
|
6368
|
+
}));
|
|
6369
|
+
return {
|
|
6370
|
+
name: e.dimension,
|
|
6371
|
+
cube: Q(a),
|
|
6372
|
+
localName: i,
|
|
6373
|
+
granularity: e.granularity,
|
|
6374
|
+
dateRange: e.dateRange,
|
|
6375
|
+
fillMissingDates: e.fillMissingDates,
|
|
6376
|
+
compareDateRange: e.compareDateRange
|
|
6377
|
+
};
|
|
6378
|
+
}) : [];
|
|
6379
|
+
}
|
|
6380
|
+
function oi(e, t) {
|
|
6381
|
+
return {
|
|
6382
|
+
measures: ri(e, t),
|
|
6383
|
+
dimensions: ii(e, t),
|
|
6384
|
+
timeDimensions: ai(e, t)
|
|
6385
|
+
};
|
|
6386
|
+
}
|
|
6387
|
+
function si(e, t) {
|
|
6388
|
+
return {
|
|
6389
|
+
measures: e.measures.map((e) => {
|
|
6390
|
+
let [n, r] = e.split(".");
|
|
6391
|
+
return {
|
|
6392
|
+
name: e,
|
|
6393
|
+
cube: {
|
|
6394
|
+
name: n,
|
|
6395
|
+
cube: t.get(n)
|
|
6396
|
+
},
|
|
6397
|
+
localName: r
|
|
6398
|
+
};
|
|
6399
|
+
}),
|
|
6400
|
+
dimensions: [],
|
|
6401
|
+
timeDimensions: []
|
|
6402
|
+
};
|
|
6403
|
+
}
|
|
6404
|
+
//#endregion
|
|
6405
|
+
//#region src/server/logical-plan/logical-plan-builder.ts
|
|
6406
|
+
var ci = class {
|
|
6321
6407
|
queryPlanner;
|
|
6322
6408
|
constructor(e) {
|
|
6323
6409
|
this.queryPlanner = e;
|
|
@@ -6417,7 +6503,7 @@ var ti = {
|
|
|
6417
6503
|
source: o,
|
|
6418
6504
|
strategy: "multiFactMerge",
|
|
6419
6505
|
classification: {
|
|
6420
|
-
regular:
|
|
6506
|
+
regular: ri(i, r),
|
|
6421
6507
|
multiplied: [],
|
|
6422
6508
|
deduplicationSafe: []
|
|
6423
6509
|
}
|
|
@@ -6434,11 +6520,11 @@ var ti = {
|
|
|
6434
6520
|
};
|
|
6435
6521
|
}
|
|
6436
6522
|
buildSimpleSourceFromPhases(e, t, n, r, i) {
|
|
6437
|
-
let a =
|
|
6438
|
-
let t =
|
|
6523
|
+
let a = Q(e), o = t, s = n.map((e) => {
|
|
6524
|
+
let t = Q(e.cube);
|
|
6439
6525
|
return {
|
|
6440
6526
|
type: "ctePreAggregate",
|
|
6441
|
-
schema:
|
|
6527
|
+
schema: si(e, r),
|
|
6442
6528
|
cube: t,
|
|
6443
6529
|
alias: e.alias,
|
|
6444
6530
|
cteAlias: e.cteAlias,
|
|
@@ -6453,14 +6539,10 @@ var ti = {
|
|
|
6453
6539
|
});
|
|
6454
6540
|
return {
|
|
6455
6541
|
type: "simpleSource",
|
|
6456
|
-
schema:
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
},
|
|
6461
|
-
primaryCube: c,
|
|
6462
|
-
joins: l,
|
|
6463
|
-
ctes: u
|
|
6542
|
+
schema: oi(i, r),
|
|
6543
|
+
primaryCube: a,
|
|
6544
|
+
joins: o,
|
|
6545
|
+
ctes: s
|
|
6464
6546
|
};
|
|
6465
6547
|
}
|
|
6466
6548
|
tryBuildMultiFactMergeSource(e, t, n) {
|
|
@@ -6485,13 +6567,13 @@ var ti = {
|
|
|
6485
6567
|
if (r.has(a) || !t.get(a)) return null;
|
|
6486
6568
|
let o = Array.from(r);
|
|
6487
6569
|
if (!o.every((e) => this.hasDirectJoinToSharedDimension(t.get(e), a, t))) return null;
|
|
6488
|
-
let s =
|
|
6489
|
-
measures:
|
|
6570
|
+
let s = ii(e, t), c = ai(e, t), l = {
|
|
6571
|
+
measures: ri(e, t),
|
|
6490
6572
|
dimensions: s,
|
|
6491
6573
|
timeDimensions: c
|
|
6492
6574
|
}, u = [];
|
|
6493
6575
|
for (let r of o) {
|
|
6494
|
-
let i = (e.measures ?? []).filter((e) => e.startsWith(`${r}.`)), o = new Set([r, a]), s = {
|
|
6576
|
+
let i = (e.measures ?? []).filter((e) => e.startsWith(`${r}.`)), o = /* @__PURE__ */ new Set([r, a]), s = {
|
|
6495
6577
|
measures: i,
|
|
6496
6578
|
dimensions: e.dimensions,
|
|
6497
6579
|
timeDimensions: e.timeDimensions,
|
|
@@ -6647,20 +6729,16 @@ var ti = {
|
|
|
6647
6729
|
return Array.from(t.values());
|
|
6648
6730
|
}
|
|
6649
6731
|
buildQueryNode(e, t, n, r) {
|
|
6650
|
-
let i =
|
|
6732
|
+
let i = oi(t, n), { measures: a, dimensions: o, timeDimensions: s } = i, c = this.buildOrderByRefs(t);
|
|
6651
6733
|
return {
|
|
6652
6734
|
type: "query",
|
|
6653
|
-
schema:
|
|
6654
|
-
measures: i,
|
|
6655
|
-
dimensions: a,
|
|
6656
|
-
timeDimensions: o
|
|
6657
|
-
},
|
|
6735
|
+
schema: i,
|
|
6658
6736
|
source: e,
|
|
6659
|
-
dimensions:
|
|
6660
|
-
measures:
|
|
6661
|
-
filters:
|
|
6662
|
-
timeDimensions:
|
|
6663
|
-
orderBy:
|
|
6737
|
+
dimensions: o,
|
|
6738
|
+
measures: a,
|
|
6739
|
+
filters: t.filters ?? [],
|
|
6740
|
+
timeDimensions: s,
|
|
6741
|
+
orderBy: c,
|
|
6664
6742
|
limit: t.limit,
|
|
6665
6743
|
offset: t.offset,
|
|
6666
6744
|
ungrouped: t.ungrouped,
|
|
@@ -6681,82 +6759,13 @@ var ti = {
|
|
|
6681
6759
|
cteType: e.cteType
|
|
6682
6760
|
}));
|
|
6683
6761
|
}
|
|
6684
|
-
buildMeasureRefs(e, t) {
|
|
6685
|
-
return e.measures ? e.measures.map((e) => {
|
|
6686
|
-
let [n, i] = e.split("."), a = t.get(n);
|
|
6687
|
-
if (!a) throw Error(r("server.errors.cubeNotFoundForMeasure", {
|
|
6688
|
-
cubeName: n,
|
|
6689
|
-
measure: e
|
|
6690
|
-
}));
|
|
6691
|
-
return {
|
|
6692
|
-
name: e,
|
|
6693
|
-
cube: this.toCubeRef(a),
|
|
6694
|
-
localName: i
|
|
6695
|
-
};
|
|
6696
|
-
}) : [];
|
|
6697
|
-
}
|
|
6698
|
-
buildDimensionRefs(e, t) {
|
|
6699
|
-
return e.dimensions ? e.dimensions.map((e) => {
|
|
6700
|
-
let [n, i] = e.split("."), a = t.get(n);
|
|
6701
|
-
if (!a) throw Error(r("server.errors.cubeNotFoundForDimension", {
|
|
6702
|
-
cubeName: n,
|
|
6703
|
-
dimension: e
|
|
6704
|
-
}));
|
|
6705
|
-
return {
|
|
6706
|
-
name: e,
|
|
6707
|
-
cube: this.toCubeRef(a),
|
|
6708
|
-
localName: i
|
|
6709
|
-
};
|
|
6710
|
-
}) : [];
|
|
6711
|
-
}
|
|
6712
|
-
buildTimeDimensionRefs(e, t) {
|
|
6713
|
-
return e.timeDimensions ? e.timeDimensions.map((e) => {
|
|
6714
|
-
let [n, i] = e.dimension.split("."), a = t.get(n);
|
|
6715
|
-
if (!a) throw Error(r("server.errors.cubeNotFoundForTimeDimension", {
|
|
6716
|
-
cubeName: n,
|
|
6717
|
-
timeDimension: e.dimension
|
|
6718
|
-
}));
|
|
6719
|
-
return {
|
|
6720
|
-
name: e.dimension,
|
|
6721
|
-
cube: this.toCubeRef(a),
|
|
6722
|
-
localName: i,
|
|
6723
|
-
granularity: e.granularity,
|
|
6724
|
-
dateRange: e.dateRange,
|
|
6725
|
-
fillMissingDates: e.fillMissingDates,
|
|
6726
|
-
compareDateRange: e.compareDateRange
|
|
6727
|
-
};
|
|
6728
|
-
}) : [];
|
|
6729
|
-
}
|
|
6730
6762
|
buildOrderByRefs(e) {
|
|
6731
6763
|
return e.order ? Object.entries(e.order).map(([e, t]) => ({
|
|
6732
6764
|
name: e,
|
|
6733
6765
|
direction: t
|
|
6734
6766
|
})) : [];
|
|
6735
6767
|
}
|
|
6736
|
-
|
|
6737
|
-
return {
|
|
6738
|
-
name: e.name,
|
|
6739
|
-
cube: e
|
|
6740
|
-
};
|
|
6741
|
-
}
|
|
6742
|
-
buildCTESchema(e, t) {
|
|
6743
|
-
return {
|
|
6744
|
-
measures: e.measures.map((e) => {
|
|
6745
|
-
let [n, r] = e.split(".");
|
|
6746
|
-
return {
|
|
6747
|
-
name: e,
|
|
6748
|
-
cube: {
|
|
6749
|
-
name: n,
|
|
6750
|
-
cube: t.get(n)
|
|
6751
|
-
},
|
|
6752
|
-
localName: r
|
|
6753
|
-
};
|
|
6754
|
-
}),
|
|
6755
|
-
dimensions: [],
|
|
6756
|
-
timeDimensions: []
|
|
6757
|
-
};
|
|
6758
|
-
}
|
|
6759
|
-
}, ii = class {
|
|
6768
|
+
}, li = class {
|
|
6760
6769
|
name = "identity";
|
|
6761
6770
|
optimise(e) {
|
|
6762
6771
|
return e;
|
|
@@ -6764,11 +6773,11 @@ var ti = {
|
|
|
6764
6773
|
};
|
|
6765
6774
|
//#endregion
|
|
6766
6775
|
//#region src/server/physical-plan/processors/cte-processor.ts
|
|
6767
|
-
function
|
|
6768
|
-
let i =
|
|
6776
|
+
function ui(e, t, n, r) {
|
|
6777
|
+
let i = di(e, n, r), a = [], o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
|
|
6769
6778
|
if (e.preAggregationCTEs && e.preAggregationCTEs.length > 0) for (let c of e.preAggregationCTEs) {
|
|
6770
6779
|
let l = r.cteBuilder.buildPreAggregationCTE(c, t, n, e, i);
|
|
6771
|
-
l && (a.push(l), o.set(c.cube.name, c.cteAlias),
|
|
6780
|
+
l && (a.push(l), o.set(c.cube.name, c.cteAlias), fi(c, s));
|
|
6772
6781
|
}
|
|
6773
6782
|
return {
|
|
6774
6783
|
preBuiltFilterMap: i,
|
|
@@ -6777,13 +6786,13 @@ function ai(e, t, n, r) {
|
|
|
6777
6786
|
downstreamCubeMap: s
|
|
6778
6787
|
};
|
|
6779
6788
|
}
|
|
6780
|
-
function
|
|
6789
|
+
function di(e, t, n) {
|
|
6781
6790
|
let r = /* @__PURE__ */ new Map();
|
|
6782
6791
|
if (!e.preAggregationCTEs || e.preAggregationCTEs.length === 0) return r;
|
|
6783
6792
|
for (let i of e.preAggregationCTEs) if (!(!i.propagatingFilters || i.propagatingFilters.length === 0)) for (let e of i.propagatingFilters) {
|
|
6784
6793
|
let i = e.sourceCube.name;
|
|
6785
6794
|
if (!r.has(i)) {
|
|
6786
|
-
let a = { filters: e.filters }, o = new Map([[i, e.sourceCube]]), s = n.queryBuilder.buildWhereConditions(o, a, t);
|
|
6795
|
+
let a = { filters: e.filters }, o = /* @__PURE__ */ new Map([[i, e.sourceCube]]), s = n.queryBuilder.buildWhereConditions(o, a, t);
|
|
6787
6796
|
r.set(i, s);
|
|
6788
6797
|
}
|
|
6789
6798
|
let a = r.get(i);
|
|
@@ -6791,7 +6800,7 @@ function oi(e, t, n) {
|
|
|
6791
6800
|
}
|
|
6792
6801
|
return r;
|
|
6793
6802
|
}
|
|
6794
|
-
function
|
|
6803
|
+
function fi(e, t) {
|
|
6795
6804
|
if (e.downstreamJoinKeys) for (let n of e.downstreamJoinKeys) t.set(n.targetCubeName, {
|
|
6796
6805
|
cteAlias: e.cteAlias,
|
|
6797
6806
|
joinKeys: n.joinKeys
|
|
@@ -6799,7 +6808,7 @@ function si(e, t) {
|
|
|
6799
6808
|
}
|
|
6800
6809
|
//#endregion
|
|
6801
6810
|
//#region src/server/physical-plan/processors/window-processor.ts
|
|
6802
|
-
function
|
|
6811
|
+
function pi(e, t, n, r, i, a) {
|
|
6803
6812
|
if (n.measures) for (let o of n.measures) {
|
|
6804
6813
|
let [s, c] = o.split("."), l = i.get(s);
|
|
6805
6814
|
if (!l?.measures?.[c]) continue;
|
|
@@ -6811,11 +6820,11 @@ function ci(e, t, n, r, i, a) {
|
|
|
6811
6820
|
if (!m?.measures?.[p]) continue;
|
|
6812
6821
|
let h = m.measures[p], g = t.preAggregationCTEs?.find((e) => e.cube?.name === f && e.measures?.includes(d)), _;
|
|
6813
6822
|
_ = g ? T`sum(${T`${T.identifier(g.cteAlias)}.${T.identifier(p)}`})` : a.queryBuilder.buildMeasureExpression(h, r, m), e[d] || (e[d] = T`${_}`.as(d));
|
|
6814
|
-
let v =
|
|
6823
|
+
let v = mi(u, _, n, r, l, t, a);
|
|
6815
6824
|
v && (e[o] = T`${v}`.as(o));
|
|
6816
6825
|
}
|
|
6817
6826
|
}
|
|
6818
|
-
function
|
|
6827
|
+
function mi(e, t, n, r, i, a, o) {
|
|
6819
6828
|
let s = e.windowConfig || {}, c = (e, t) => {
|
|
6820
6829
|
if (!a.preAggregationCTEs) return null;
|
|
6821
6830
|
let n = a.preAggregationCTEs.find((t) => t.cube?.name === e);
|
|
@@ -6885,23 +6894,23 @@ function li(e, t, n, r, i, a, o) {
|
|
|
6885
6894
|
}
|
|
6886
6895
|
//#endregion
|
|
6887
6896
|
//#region src/server/physical-plan/processors/selection-processor.ts
|
|
6888
|
-
function
|
|
6897
|
+
function hi(e, t, n, r, i) {
|
|
6889
6898
|
let a = { ...i.queryBuilder.buildSelections(e.joinCubes.length > 0 ? r : e.primaryCube, t, n) };
|
|
6890
|
-
if (e.preAggregationCTEs) for (let o of e.preAggregationCTEs)
|
|
6891
|
-
return
|
|
6899
|
+
if (e.preAggregationCTEs) for (let o of e.preAggregationCTEs) gi(a, o, t, n, r, i), vi(a, o, r);
|
|
6900
|
+
return pi(a, e, t, n, r, i), a;
|
|
6892
6901
|
}
|
|
6893
|
-
function
|
|
6902
|
+
function gi(e, t, n, r, i, a) {
|
|
6894
6903
|
let o = t.cube.name;
|
|
6895
6904
|
for (let s of t.measures) {
|
|
6896
6905
|
if (!e[s]) continue;
|
|
6897
6906
|
let [, c] = s.split("."), l = i.get(o);
|
|
6898
6907
|
if (!l?.measures?.[c]) continue;
|
|
6899
6908
|
let u = l.measures[c], d = T`${T.identifier(t.cteAlias)}.${T.identifier(c)}`, f;
|
|
6900
|
-
f = u.type === "calculated" && u.calculatedSql ? a.queryBuilder.buildCTECalculatedMeasure(u, l, t, i, r) :
|
|
6909
|
+
f = u.type === "calculated" && u.calculatedSql ? a.queryBuilder.buildCTECalculatedMeasure(u, l, t, i, r) : _i(u, d, t, n, i, a), e[s] = T`${f}`.as(s);
|
|
6901
6910
|
}
|
|
6902
6911
|
}
|
|
6903
|
-
function
|
|
6904
|
-
let o = n.cteReason === "fanOutPrevention", s =
|
|
6912
|
+
function _i(e, t, n, r, i, a) {
|
|
6913
|
+
let o = n.cteReason === "fanOutPrevention", s = yi(n, r, i), c = o || s;
|
|
6905
6914
|
switch (e.type) {
|
|
6906
6915
|
case "count":
|
|
6907
6916
|
case "countDistinct":
|
|
@@ -6913,7 +6922,7 @@ function fi(e, t, n, r, i, a) {
|
|
|
6913
6922
|
default: return c ? M(t) : j(t);
|
|
6914
6923
|
}
|
|
6915
6924
|
}
|
|
6916
|
-
function
|
|
6925
|
+
function vi(e, t, n) {
|
|
6917
6926
|
let r = t.cube.name;
|
|
6918
6927
|
for (let i in e) {
|
|
6919
6928
|
let [a, o] = i.split(".");
|
|
@@ -6928,10 +6937,10 @@ function pi(e, t, n) {
|
|
|
6928
6937
|
(u || l && s?.dimensions?.[o]) && (e[i] = T`${T.identifier(t.cteAlias)}.${T.identifier(o)}`.as(i));
|
|
6929
6938
|
}
|
|
6930
6939
|
}
|
|
6931
|
-
function
|
|
6932
|
-
return e.cteReason !== "hasMany" || e.downstreamJoinKeys && e.downstreamJoinKeys.length > 0 || e.intermediateJoins && e.intermediateJoins.length > 0 || !(t.dimensions && t.dimensions.length > 0 || t.timeDimensions && t.timeDimensions.length > 0) || t.dimensions?.some((t) => t.startsWith(`${e.cube.name}.`)) || t.timeDimensions?.some((t) => t.dimension.startsWith(`${e.cube.name}.`)) ? !1 : e.joinKeys.length > 0 && e.joinKeys.every((e) => !!e.sourceColumnObj &&
|
|
6940
|
+
function yi(e, t, n) {
|
|
6941
|
+
return e.cteReason !== "hasMany" || e.downstreamJoinKeys && e.downstreamJoinKeys.length > 0 || e.intermediateJoins && e.intermediateJoins.length > 0 || !(t.dimensions && t.dimensions.length > 0 || t.timeDimensions && t.timeDimensions.length > 0) || t.dimensions?.some((t) => t.startsWith(`${e.cube.name}.`)) || t.timeDimensions?.some((t) => t.dimension.startsWith(`${e.cube.name}.`)) ? !1 : e.joinKeys.length > 0 && e.joinKeys.every((e) => !!e.sourceColumnObj && bi(e.sourceColumnObj, t, n));
|
|
6933
6942
|
}
|
|
6934
|
-
function
|
|
6943
|
+
function bi(e, t, n) {
|
|
6935
6944
|
if (t.dimensions) for (let r of t.dimensions) {
|
|
6936
6945
|
let [t, i] = r.split(".");
|
|
6937
6946
|
if (n.get(t)?.dimensions?.[i]?.sql === e) return !0;
|
|
@@ -6945,7 +6954,7 @@ function hi(e, t, n) {
|
|
|
6945
6954
|
}
|
|
6946
6955
|
//#endregion
|
|
6947
6956
|
//#region src/server/physical-plan/processors/shared.ts
|
|
6948
|
-
function
|
|
6957
|
+
function $(e, t, n, r) {
|
|
6949
6958
|
switch (t) {
|
|
6950
6959
|
case "inner": return e.innerJoin(n, r);
|
|
6951
6960
|
case "right": return e.rightJoin(n, r);
|
|
@@ -6953,20 +6962,20 @@ function Q(e, t, n, r) {
|
|
|
6953
6962
|
default: return e.leftJoin(n, r);
|
|
6954
6963
|
}
|
|
6955
6964
|
}
|
|
6956
|
-
function
|
|
6965
|
+
function xi(e) {
|
|
6957
6966
|
let t = /* @__PURE__ */ new Map();
|
|
6958
6967
|
if (t.set(e.primaryCube.name, e.primaryCube), e.joinCubes) for (let n of e.joinCubes) t.set(n.cube.name, n.cube);
|
|
6959
6968
|
return t;
|
|
6960
6969
|
}
|
|
6961
6970
|
//#endregion
|
|
6962
6971
|
//#region src/server/physical-plan/processors/joins-processor.ts
|
|
6963
|
-
function
|
|
6964
|
-
let o = [], s =
|
|
6965
|
-
s =
|
|
6966
|
-
let c = /* @__PURE__ */ new Set(), l =
|
|
6972
|
+
function Si(e, t, n, r, i, a) {
|
|
6973
|
+
let o = [], s = Ci(t, n, r, i);
|
|
6974
|
+
s = wi(s, n.joins);
|
|
6975
|
+
let c = /* @__PURE__ */ new Set(), l = Ti(e);
|
|
6967
6976
|
if (e.joinCubes && e.joinCubes.length > 0) for (let n of e.joinCubes) {
|
|
6968
6977
|
let r = n.cube.name;
|
|
6969
|
-
l.has(r) && !i.cteAliasMap.has(r) || (s =
|
|
6978
|
+
l.has(r) && !i.cteAliasMap.has(r) || (s = Ei(s, n, e, i, t, o), s = ki(s, n, e, i, t, a, c));
|
|
6970
6979
|
}
|
|
6971
6980
|
return {
|
|
6972
6981
|
drizzleQuery: s,
|
|
@@ -6975,38 +6984,38 @@ function _i(e, t, n, r, i, a) {
|
|
|
6975
6984
|
absorbedIntermediateCubes: l
|
|
6976
6985
|
};
|
|
6977
6986
|
}
|
|
6978
|
-
function
|
|
6987
|
+
function Ci(e, t, n, r) {
|
|
6979
6988
|
return r.ctes.length > 0 ? e.db.with(...r.ctes).select(n).from(t.from) : e.db.select(n).from(t.from);
|
|
6980
6989
|
}
|
|
6981
|
-
function
|
|
6990
|
+
function wi(e, t) {
|
|
6982
6991
|
if (!t) return e;
|
|
6983
6992
|
let n = e;
|
|
6984
|
-
for (let e of t) n =
|
|
6993
|
+
for (let e of t) n = $(n, e.type ?? "left", e.table, e.on);
|
|
6985
6994
|
return n;
|
|
6986
6995
|
}
|
|
6987
|
-
function
|
|
6996
|
+
function Ti(e) {
|
|
6988
6997
|
let t = /* @__PURE__ */ new Set();
|
|
6989
6998
|
if (e.preAggregationCTEs) {
|
|
6990
6999
|
for (let n of e.preAggregationCTEs) if (n.intermediateJoins && n.intermediateJoins.length > 0) for (let e of n.intermediateJoins) t.add(e.cube.name);
|
|
6991
7000
|
}
|
|
6992
7001
|
return t;
|
|
6993
7002
|
}
|
|
6994
|
-
function
|
|
7003
|
+
function Ei(e, t, n, r, i, a) {
|
|
6995
7004
|
let o = t.junctionTable;
|
|
6996
7005
|
if (!o) return e;
|
|
6997
|
-
let s =
|
|
7006
|
+
let s = Di(o, t, n, r), c = [];
|
|
6998
7007
|
if (o.securitySql) {
|
|
6999
7008
|
let e = o.securitySql(i.securityContext);
|
|
7000
7009
|
Array.isArray(e) ? c.push(...e) : c.push(e);
|
|
7001
7010
|
}
|
|
7002
7011
|
try {
|
|
7003
|
-
let t =
|
|
7012
|
+
let t = $(e, o.joinType ?? "left", o.table, s);
|
|
7004
7013
|
return c.length > 0 && a.push(...c), t;
|
|
7005
7014
|
} catch {
|
|
7006
7015
|
return e;
|
|
7007
7016
|
}
|
|
7008
7017
|
}
|
|
7009
|
-
function
|
|
7018
|
+
function Di(e, t, n, r) {
|
|
7010
7019
|
let i = e.joinCondition, a = e.sourceCubeName ? r.cteAliasMap.get(e.sourceCubeName) : void 0;
|
|
7011
7020
|
if (!a) return i;
|
|
7012
7021
|
let o = (n.preAggregationCTEs?.find((t) => t.cube.name === e.sourceCubeName))?.downstreamJoinKeys?.find((e) => e.targetCubeName === t.cube.name);
|
|
@@ -7020,7 +7029,7 @@ function Si(e, t, n, r) {
|
|
|
7020
7029
|
}
|
|
7021
7030
|
return i;
|
|
7022
7031
|
}
|
|
7023
|
-
function
|
|
7032
|
+
function Oi(e, t, n, r, i, a) {
|
|
7024
7033
|
if (t) return {
|
|
7025
7034
|
joinTarget: T`${T.identifier(t)}`,
|
|
7026
7035
|
joinCondition: a.cteBuilder.buildCTEJoinCondition(e, t, r),
|
|
@@ -7043,26 +7052,26 @@ function Ci(e, t, n, r, i, a) {
|
|
|
7043
7052
|
joinCubeBase: s
|
|
7044
7053
|
};
|
|
7045
7054
|
}
|
|
7046
|
-
function
|
|
7047
|
-
let { joinTarget: s, joinCondition: c, securityCondition: l, joinCubeBase: u } =
|
|
7055
|
+
function ki(e, t, n, r, i, a, o) {
|
|
7056
|
+
let { joinTarget: s, joinCondition: c, securityCondition: l, joinCubeBase: u } = Oi(t, r.cteAliasMap.get(t.cube.name), r, n, i, a), d = t.joinType || "left", f = d !== "inner" && l ? k(c, l) : c;
|
|
7048
7057
|
try {
|
|
7049
7058
|
let n;
|
|
7050
|
-
return d === "inner" ? n = e.innerJoin(s, c) : (n =
|
|
7059
|
+
return d === "inner" ? n = e.innerJoin(s, c) : (n = $(e, d, s, f), l && o.add(t.cube.name)), wi(n, u?.joins);
|
|
7051
7060
|
} catch {
|
|
7052
7061
|
return e;
|
|
7053
7062
|
}
|
|
7054
7063
|
}
|
|
7055
7064
|
//#endregion
|
|
7056
7065
|
//#region src/server/physical-plan/processors/predicates-processor.ts
|
|
7057
|
-
function
|
|
7058
|
-
let c =
|
|
7066
|
+
function Ai(e, t, n, r, i, a, o, s) {
|
|
7067
|
+
let c = ji(e, t, n, r, i, a, o, s), l = o.drizzleQuery;
|
|
7059
7068
|
if (c.length > 0) {
|
|
7060
7069
|
let e = c.length === 1 ? c[0] : k(...c);
|
|
7061
7070
|
l = l.where(e);
|
|
7062
7071
|
}
|
|
7063
|
-
return
|
|
7072
|
+
return Mi(l, e, t, n, r, s);
|
|
7064
7073
|
}
|
|
7065
|
-
function
|
|
7074
|
+
function ji(e, t, n, r, i, a, o, s) {
|
|
7066
7075
|
let c = [...o.allWhereConditions];
|
|
7067
7076
|
if (i.where && c.push(i.where), e.joinCubes && e.joinCubes.length > 0) for (let t of e.joinCubes) {
|
|
7068
7077
|
let e = t.cube.name;
|
|
@@ -7073,7 +7082,7 @@ function Ei(e, t, n, r, i, a, o, s) {
|
|
|
7073
7082
|
let l = s.queryBuilder.buildWhereConditions(e.joinCubes.length > 0 ? r : e.primaryCube, t, n, e, a.preBuiltFilterMap);
|
|
7074
7083
|
return l.length > 0 && c.push(...l), c;
|
|
7075
7084
|
}
|
|
7076
|
-
function
|
|
7085
|
+
function Mi(e, t, n, r, i, a) {
|
|
7077
7086
|
let o = t.joinCubes.length > 0 ? i : t.primaryCube, s = e, c = a.queryBuilder.buildGroupByFields(o, n, r, t);
|
|
7078
7087
|
if (c.length > 0 && (s = s.groupBy(...c)), !n.ungrouped) {
|
|
7079
7088
|
let e = a.queryBuilder.buildHavingConditions(o, n, r, t);
|
|
@@ -7087,17 +7096,17 @@ function Di(e, t, n, r, i, a) {
|
|
|
7087
7096
|
}
|
|
7088
7097
|
//#endregion
|
|
7089
7098
|
//#region src/server/physical-plan/processors/keys-dedup-processor.ts
|
|
7090
|
-
function
|
|
7099
|
+
function Ni(e, t, n, r) {
|
|
7091
7100
|
let i = e.keysDeduplication;
|
|
7092
7101
|
if (!i?.multipliedCubeName || !t.measures?.length) return null;
|
|
7093
|
-
let a = e.joinCubes.length > 0 ?
|
|
7094
|
-
if (!o || !
|
|
7095
|
-
let s = i.primaryKeyDimensions.length > 0 ? i.primaryKeyDimensions :
|
|
7102
|
+
let a = e.joinCubes.length > 0 ? xi(e) : /* @__PURE__ */ new Map([[e.primaryCube.name, e.primaryCube]]), o = a.get(i.multipliedCubeName);
|
|
7103
|
+
if (!o || !Hi(t, o, i.multipliedCubeName)) return null;
|
|
7104
|
+
let s = i.primaryKeyDimensions.length > 0 ? i.primaryKeyDimensions : Wi(o);
|
|
7096
7105
|
if (s.length === 0) return null;
|
|
7097
|
-
let c = `${i.multipliedCubeName.toLowerCase()}_keys`, l = `${i.multipliedCubeName.toLowerCase()}_pk_agg`, u = i.regularMeasures ?? [], d =
|
|
7106
|
+
let c = `${i.multipliedCubeName.toLowerCase()}_keys`, l = `${i.multipliedCubeName.toLowerCase()}_pk_agg`, u = i.regularMeasures ?? [], d = Pi(t, n, r, a, o, s, u);
|
|
7098
7107
|
if (!d) return null;
|
|
7099
|
-
let f =
|
|
7100
|
-
return p ?
|
|
7108
|
+
let f = Fi(e, t, n, r, a, c, d.keysSelections, d.keyGroupBy), p = Ri(t, n, r, o, s, d.multipliedMeasures, l);
|
|
7109
|
+
return p ? Vi(t, n, r, a, o, {
|
|
7101
7110
|
keysAlias: c,
|
|
7102
7111
|
aggAlias: l,
|
|
7103
7112
|
keysCte: f,
|
|
@@ -7108,7 +7117,7 @@ function Oi(e, t, n, r) {
|
|
|
7108
7117
|
regularMeasureNames: u
|
|
7109
7118
|
}) : null;
|
|
7110
7119
|
}
|
|
7111
|
-
function
|
|
7120
|
+
function Pi(e, t, n, r, i, a, o) {
|
|
7112
7121
|
let s = {}, c = [];
|
|
7113
7122
|
if (e.dimensions) for (let n of e.dimensions) {
|
|
7114
7123
|
let [e, i] = n.split("."), a = r.get(e), o = a?.dimensions?.[i];
|
|
@@ -7146,35 +7155,35 @@ function ki(e, t, n, r, i, a, o) {
|
|
|
7146
7155
|
multipliedMeasures: d
|
|
7147
7156
|
};
|
|
7148
7157
|
}
|
|
7149
|
-
function
|
|
7158
|
+
function Fi(e, t, n, r, i, a, o, s) {
|
|
7150
7159
|
let c = e.primaryCube.sql(n), l = [];
|
|
7151
7160
|
c.where && l.push(c.where);
|
|
7152
7161
|
let u = n.db.select(o).from(c.from);
|
|
7153
|
-
if (c.joins) for (let e of c.joins) u =
|
|
7154
|
-
for (let t of e.joinCubes) u =
|
|
7155
|
-
return l.push(...r.queryBuilder.buildWhereConditions(i, t, n)), u =
|
|
7162
|
+
if (c.joins) for (let e of c.joins) u = $(u, e.type ?? "left", e.table, e.on);
|
|
7163
|
+
for (let t of e.joinCubes) u = Ii(u, t, n, l);
|
|
7164
|
+
return l.push(...r.queryBuilder.buildWhereConditions(i, t, n)), u = Bi(u, l), s.length > 0 && (u = u.groupBy(...s)), n.db.$with(a).as(u);
|
|
7156
7165
|
}
|
|
7157
|
-
function
|
|
7166
|
+
function Ii(e, t, n, r) {
|
|
7158
7167
|
let i = e;
|
|
7159
|
-
t.junctionTable && (i =
|
|
7168
|
+
t.junctionTable && (i = $(i, t.junctionTable.joinType ?? "left", t.junctionTable.table, t.junctionTable.joinCondition), Li(t.junctionTable.securitySql, n, r));
|
|
7160
7169
|
let a = t.cube.sql(n);
|
|
7161
|
-
if (i =
|
|
7170
|
+
if (i = $(i, t.joinType ?? "left", a.from, t.joinCondition), a.joins) for (let e of a.joins) i = $(i, e.type ?? "left", e.table, e.on);
|
|
7162
7171
|
return a.where && r.push(a.where), i;
|
|
7163
7172
|
}
|
|
7164
|
-
function
|
|
7173
|
+
function Li(e, t, n) {
|
|
7165
7174
|
if (!e) return;
|
|
7166
7175
|
let r = e(t.securityContext);
|
|
7167
7176
|
Array.isArray(r) ? n.push(...r) : n.push(r);
|
|
7168
7177
|
}
|
|
7169
|
-
function
|
|
7170
|
-
let s = r.sql(t), c =
|
|
7178
|
+
function Ri(e, t, n, r, i, a, o) {
|
|
7179
|
+
let s = r.sql(t), c = zi(t, n, r, i, a);
|
|
7171
7180
|
if (!c) return null;
|
|
7172
7181
|
let l = t.db.select(c.aggSelections).from(s.from);
|
|
7173
|
-
if (s.joins) for (let e of s.joins) l =
|
|
7182
|
+
if (s.joins) for (let e of s.joins) l = $(l, e.type ?? "left", e.table, e.on);
|
|
7174
7183
|
let u = [];
|
|
7175
|
-
return s.where && u.push(s.where), u.push(...n.queryBuilder.buildWhereConditions(r, e, t)), l =
|
|
7184
|
+
return s.where && u.push(s.where), u.push(...n.queryBuilder.buildWhereConditions(r, e, t)), l = Bi(l, u), c.aggGroupBy.length > 0 && (l = l.groupBy(...c.aggGroupBy)), t.db.$with(o).as(l);
|
|
7176
7185
|
}
|
|
7177
|
-
function
|
|
7186
|
+
function zi(e, t, n, r, i) {
|
|
7178
7187
|
let a = {}, o = [];
|
|
7179
7188
|
for (let t of r) {
|
|
7180
7189
|
let r = n.dimensions?.[t];
|
|
@@ -7192,7 +7201,7 @@ function Pi(e, t, n, r, i) {
|
|
|
7192
7201
|
return !s.has(t);
|
|
7193
7202
|
});
|
|
7194
7203
|
if (c.length > 0) {
|
|
7195
|
-
let r = t.queryBuilder.buildResolvedMeasures(c, new Map([[n.name, n]]), e);
|
|
7204
|
+
let r = t.queryBuilder.buildResolvedMeasures(c, /* @__PURE__ */ new Map([[n.name, n]]), e);
|
|
7196
7205
|
for (let e of c) {
|
|
7197
7206
|
let [, t] = e.split("."), n = r.get(e);
|
|
7198
7207
|
if (!n || typeof n != "function") return null;
|
|
@@ -7212,20 +7221,20 @@ function Pi(e, t, n, r, i) {
|
|
|
7212
7221
|
aggGroupBy: o
|
|
7213
7222
|
};
|
|
7214
7223
|
}
|
|
7215
|
-
function
|
|
7224
|
+
function Bi(e, t) {
|
|
7216
7225
|
return t.length === 0 ? e : e.where(t.length === 1 ? t[0] : k(...t));
|
|
7217
7226
|
}
|
|
7218
|
-
function
|
|
7227
|
+
function Vi(e, t, n, r, i, a) {
|
|
7219
7228
|
let { keysAlias: o, aggAlias: s, keysCte: c, aggCte: l, pkDimensions: u, pkAliases: d, multipliedMeasures: f, regularMeasureNames: p } = a, m = {};
|
|
7220
7229
|
for (let t of e.dimensions ?? []) m[t] = T`${T.identifier(o)}.${T.identifier(t)}`.as(t);
|
|
7221
7230
|
for (let t of e.timeDimensions ?? []) m[t.dimension] = T`${T.identifier(o)}.${T.identifier(t.dimension)}`.as(t.dimension);
|
|
7222
7231
|
for (let e of f) {
|
|
7223
7232
|
let [, t] = e.split("."), n = i.measures?.[t];
|
|
7224
|
-
m[e] =
|
|
7233
|
+
m[e] = Gi(n?.type ?? "sum", s, t, e);
|
|
7225
7234
|
}
|
|
7226
7235
|
for (let e of p) {
|
|
7227
7236
|
let [t, n] = e.split("."), i = r.get(t)?.measures?.[n], a = `__reg__${e.replace(".", "__")}`;
|
|
7228
|
-
m[e] =
|
|
7237
|
+
m[e] = Gi(i?.type ?? "sum", o, a, e);
|
|
7229
7238
|
}
|
|
7230
7239
|
let h = t.db.with(c, l).select(m).from(T`${T.identifier(o)}`), g = d.map((e, t) => O(T`${T.identifier(o)}.${T.identifier(e)}`, T`${T.identifier(s)}.${T.identifier(u[t])}`)), _ = g.length === 1 ? g[0] : k(...g);
|
|
7231
7240
|
h = h.leftJoin(T`${T.identifier(s)}`, _);
|
|
@@ -7234,7 +7243,7 @@ function Ii(e, t, n, r, i, a) {
|
|
|
7234
7243
|
let y = n.queryBuilder.buildOrderBy(e, Object.keys(m));
|
|
7235
7244
|
return y.length > 0 && (h = h.orderBy(...y)), n.queryBuilder.applyLimitAndOffset(h, e);
|
|
7236
7245
|
}
|
|
7237
|
-
function
|
|
7246
|
+
function Hi(e, t, n) {
|
|
7238
7247
|
if (!e.measures?.length) return !1;
|
|
7239
7248
|
for (let r of e.measures) {
|
|
7240
7249
|
let [e, i] = r.split(".");
|
|
@@ -7249,9 +7258,9 @@ function Li(e, t, n) {
|
|
|
7249
7258
|
"avg"
|
|
7250
7259
|
].includes(a.type)) return !1;
|
|
7251
7260
|
}
|
|
7252
|
-
return !
|
|
7261
|
+
return !Ui(e, t, n);
|
|
7253
7262
|
}
|
|
7254
|
-
function
|
|
7263
|
+
function Ui(e, t, n) {
|
|
7255
7264
|
let r = (e) => {
|
|
7256
7265
|
if (!e) return !1;
|
|
7257
7266
|
for (let i of e) {
|
|
@@ -7272,10 +7281,10 @@ function Ri(e, t, n) {
|
|
|
7272
7281
|
};
|
|
7273
7282
|
return r(e.filters);
|
|
7274
7283
|
}
|
|
7275
|
-
function
|
|
7284
|
+
function Wi(e) {
|
|
7276
7285
|
return Object.entries(e.dimensions ?? {}).filter(([, e]) => !!e.primaryKey).map(([e]) => e);
|
|
7277
7286
|
}
|
|
7278
|
-
function
|
|
7287
|
+
function Gi(e, t, n, r) {
|
|
7279
7288
|
switch (e) {
|
|
7280
7289
|
case "min": return T`min(${T`${T.identifier(t)}.${T.identifier(n)}`})`.as(r);
|
|
7281
7290
|
case "max": return T`max(${T`${T.identifier(t)}.${T.identifier(n)}`})`.as(r);
|
|
@@ -7285,38 +7294,38 @@ function Bi(e, t, n, r) {
|
|
|
7285
7294
|
}
|
|
7286
7295
|
//#endregion
|
|
7287
7296
|
//#region src/server/physical-plan/processors/multi-fact-processor.ts
|
|
7288
|
-
function
|
|
7297
|
+
function Ki(e, t, n, r, i) {
|
|
7289
7298
|
let a = e.multiFactMerge;
|
|
7290
7299
|
if (!a || a.groups.length < 2) return null;
|
|
7291
|
-
let o = [...t.dimensions ?? [], ...(t.timeDimensions ?? []).map((e) => e.dimension)], s = Array.from(new Set(o)), c = s.length > 0, l =
|
|
7300
|
+
let o = [...t.dimensions ?? [], ...(t.timeDimensions ?? []).map((e) => e.dimension)], s = Array.from(new Set(o)), c = s.length > 0, l = $i(r), u = c && a.mergeStrategy === "fullJoin" && !l, d = a.groups.map((e) => {
|
|
7292
7301
|
let t = i(e.queryPlan, e.query, n);
|
|
7293
7302
|
return n.db.$with(e.alias).as(t);
|
|
7294
7303
|
});
|
|
7295
|
-
return u ?
|
|
7304
|
+
return u ? Xi(t, n, r, a, d, s) : Yi(t, n, r, a, d, s, Qi(a.mergeStrategy, c, l));
|
|
7296
7305
|
}
|
|
7297
|
-
function
|
|
7306
|
+
function qi(e, t, n) {
|
|
7298
7307
|
let r = {};
|
|
7299
|
-
for (let e of t) r[e] = T`${
|
|
7308
|
+
for (let e of t) r[e] = T`${ea(n, e)}`.as(e);
|
|
7300
7309
|
for (let t of e.groups) for (let e of t.measures) r[e] = T`coalesce(${T`${T.identifier(t.alias)}.${T.identifier(e)}`}, 0)`.as(e);
|
|
7301
7310
|
return r;
|
|
7302
7311
|
}
|
|
7303
|
-
function
|
|
7312
|
+
function Ji(e, t, n) {
|
|
7304
7313
|
if (t.length === 0) return T`1 = 1`;
|
|
7305
7314
|
let r = t.map((t) => O(n.get(t), T`${T.identifier(e)}.${T.identifier(t)}`));
|
|
7306
7315
|
return r.length === 1 ? r[0] : k(...r);
|
|
7307
7316
|
}
|
|
7308
|
-
function
|
|
7309
|
-
let s = r.groups[0].alias, c =
|
|
7317
|
+
function Yi(e, t, n, r, i, a, o) {
|
|
7318
|
+
let s = r.groups[0].alias, c = qi(r, a, r.groups.map((e) => e.alias)), l = t.db.with(...i).select(c).from(T`${T.identifier(s)}`), u = /* @__PURE__ */ new Map();
|
|
7310
7319
|
for (let e of a) u.set(e, T`${T.identifier(s)}.${T.identifier(e)}`);
|
|
7311
7320
|
for (let e = 1; e < r.groups.length; e++) {
|
|
7312
|
-
let t = r.groups[e].alias, n =
|
|
7313
|
-
if (l =
|
|
7321
|
+
let t = r.groups[e].alias, n = Ji(t, a, u);
|
|
7322
|
+
if (l = $(l, o, T`${T.identifier(t)}`, n), a.length > 0 && o === "full") for (let e of a) u.set(e, T`coalesce(${u.get(e)}, ${T`${T.identifier(t)}.${T.identifier(e)}`})`);
|
|
7314
7323
|
}
|
|
7315
7324
|
let d = n.queryBuilder.buildOrderBy(e, Object.keys(c));
|
|
7316
7325
|
return d.length > 0 && (l = l.orderBy(...d)), n.queryBuilder.applyLimitAndOffset(l, e);
|
|
7317
7326
|
}
|
|
7318
|
-
function
|
|
7319
|
-
let o = "mf_all_keys", s = r.groups.map((e) => T`select ${
|
|
7327
|
+
function Xi(e, t, n, r, i, a) {
|
|
7328
|
+
let o = "mf_all_keys", s = r.groups.map((e) => T`select ${Zi(e.alias, a)} from ${T.identifier(e.alias)}`), c = T`${T.join(s, T` union `)}`, l = t.db.$with(o).as(c), u = {};
|
|
7320
7329
|
for (let e of a) u[e] = T`${T.identifier(o)}.${T.identifier(e)}`.as(e);
|
|
7321
7330
|
for (let e of r.groups) for (let t of e.measures) u[t] = T`coalesce(${T`${T.identifier(e.alias)}.${T.identifier(t)}`}, 0)`.as(t);
|
|
7322
7331
|
let d = t.db.with(...i, l).select(u).from(T`${T.identifier(o)}`);
|
|
@@ -7327,18 +7336,18 @@ function Gi(e, t, n, r, i, a) {
|
|
|
7327
7336
|
let f = n.queryBuilder.buildOrderBy(e, Object.keys(u));
|
|
7328
7337
|
return f.length > 0 && (d = d.orderBy(...f)), n.queryBuilder.applyLimitAndOffset(d, e);
|
|
7329
7338
|
}
|
|
7330
|
-
function
|
|
7339
|
+
function Zi(e, t) {
|
|
7331
7340
|
let n = t.map((t) => T`${T.identifier(e)}.${T.identifier(t)} as ${T.identifier(t)}`);
|
|
7332
7341
|
return T.join(n, T`, `);
|
|
7333
7342
|
}
|
|
7334
|
-
function
|
|
7343
|
+
function Qi(e, t, n) {
|
|
7335
7344
|
return !t || e === "innerJoin" ? "inner" : e === "leftJoin" ? "left" : n ? "full" : "left";
|
|
7336
7345
|
}
|
|
7337
|
-
function
|
|
7346
|
+
function $i(e) {
|
|
7338
7347
|
let t = e.databaseAdapter.getEngineType();
|
|
7339
7348
|
return t === "postgres" || t === "duckdb";
|
|
7340
7349
|
}
|
|
7341
|
-
function
|
|
7350
|
+
function ea(e, t) {
|
|
7342
7351
|
if (e.length === 1) return T`${T.identifier(e[0])}.${T.identifier(t)}`;
|
|
7343
7352
|
let n = e.map((e) => T`${T.identifier(e)}.${T.identifier(t)}`), r = n[0];
|
|
7344
7353
|
for (let e = 1; e < n.length; e++) r = T`coalesce(${r}, ${n[e]})`;
|
|
@@ -7346,7 +7355,7 @@ function Yi(e, t) {
|
|
|
7346
7355
|
}
|
|
7347
7356
|
//#endregion
|
|
7348
7357
|
//#region src/server/physical-plan/drizzle-plan-builder.ts
|
|
7349
|
-
var
|
|
7358
|
+
var ta = class {
|
|
7350
7359
|
queryBuilder;
|
|
7351
7360
|
cteBuilder;
|
|
7352
7361
|
databaseAdapter;
|
|
@@ -7507,23 +7516,23 @@ var Xi = class {
|
|
|
7507
7516
|
queryBuilder: this.queryBuilder,
|
|
7508
7517
|
cteBuilder: this.cteBuilder,
|
|
7509
7518
|
databaseAdapter: this.databaseAdapter
|
|
7510
|
-
}, i =
|
|
7519
|
+
}, i = Ki(e, t, n, r, (e, t, n) => this.build(e, t, n));
|
|
7511
7520
|
if (i) return i;
|
|
7512
|
-
let a =
|
|
7521
|
+
let a = Ni(e, t, n, r);
|
|
7513
7522
|
if (a) return a;
|
|
7514
|
-
let o =
|
|
7515
|
-
return
|
|
7523
|
+
let o = ui(e, t, n, r), s = e.primaryCube.sql(n), c = e.joinCubes.length > 0 ? xi(e) : /* @__PURE__ */ new Map([[e.primaryCube.name, e.primaryCube]]);
|
|
7524
|
+
return Ai(e, t, n, c, s, o, Si(e, n, s, hi(e, t, n, c, r), o, r), r);
|
|
7516
7525
|
}
|
|
7517
7526
|
};
|
|
7518
7527
|
//#endregion
|
|
7519
7528
|
//#region src/server/executor.ts
|
|
7520
|
-
function
|
|
7529
|
+
function na(e, t) {
|
|
7521
7530
|
if (!(typeof process > "u" || !process.env?.DC_DEBUG)) try {
|
|
7522
7531
|
let { sql: n, params: r } = t.toSQL();
|
|
7523
7532
|
console.log(`\n[DC_DEBUG] ${e}`), console.log(n), r.length > 0 && console.log("params:", r), console.log();
|
|
7524
7533
|
} catch {}
|
|
7525
7534
|
}
|
|
7526
|
-
var
|
|
7535
|
+
var ra = class {
|
|
7527
7536
|
dbExecutor;
|
|
7528
7537
|
queryBuilder;
|
|
7529
7538
|
drizzlePlanBuilder;
|
|
@@ -7542,7 +7551,7 @@ var Zi = class {
|
|
|
7542
7551
|
if (this.dbExecutor = e, this.databaseAdapter = e.databaseAdapter, !this.databaseAdapter) throw Error(r("server.errors.dbAdapterRequired"));
|
|
7543
7552
|
this.queryBuilder = new Fn(this.databaseAdapter);
|
|
7544
7553
|
let a = new Xn(), o = new Qn(this.queryBuilder);
|
|
7545
|
-
this.drizzlePlanBuilder = new
|
|
7554
|
+
this.drizzlePlanBuilder = new ta(this.queryBuilder, o, this.databaseAdapter), this.comparisonQueryBuilder = new Jr(this.databaseAdapter), this.funnelQueryBuilder = new Yr(this.databaseAdapter), this.flowQueryBuilder = new Xr(this.databaseAdapter), this.retentionQueryBuilder = new ni(this.databaseAdapter), this.logicalPlanBuilder = new ci(a), this.planOptimiser = i ?? new li(), this.rlsSetup = n, this.modeRouter = new Rr({
|
|
7546
7555
|
comparison: this.comparisonQueryBuilder,
|
|
7547
7556
|
funnel: this.funnelQueryBuilder,
|
|
7548
7557
|
flow: this.flowQueryBuilder,
|
|
@@ -7622,7 +7631,7 @@ var Zi = class {
|
|
|
7622
7631
|
schema: this.dbExecutor.schema,
|
|
7623
7632
|
securityContext: n
|
|
7624
7633
|
}, a = this.funnelQueryBuilder.buildFunnelQuery(r, e, i);
|
|
7625
|
-
|
|
7634
|
+
na("funnel query", a);
|
|
7626
7635
|
let o = await a, s = this.funnelQueryBuilder.transformResult(o, r), c = {
|
|
7627
7636
|
measures: {},
|
|
7628
7637
|
dimensions: {},
|
|
@@ -7647,7 +7656,7 @@ var Zi = class {
|
|
|
7647
7656
|
schema: this.dbExecutor.schema,
|
|
7648
7657
|
securityContext: n
|
|
7649
7658
|
}, a = this.flowQueryBuilder.buildFlowQuery(r, e, i);
|
|
7650
|
-
|
|
7659
|
+
na("flow query", a);
|
|
7651
7660
|
let o = await a, s = this.flowQueryBuilder.transformResult(o), c = {
|
|
7652
7661
|
measures: {},
|
|
7653
7662
|
dimensions: {},
|
|
@@ -7670,7 +7679,7 @@ var Zi = class {
|
|
|
7670
7679
|
schema: this.dbExecutor.schema,
|
|
7671
7680
|
securityContext: n
|
|
7672
7681
|
}, a = this.retentionQueryBuilder.buildRetentionQuery(r, e, i);
|
|
7673
|
-
|
|
7682
|
+
na("retention query", a);
|
|
7674
7683
|
let o = await a, s = this.retentionQueryBuilder.transformResult(o, r), c = {
|
|
7675
7684
|
measures: {},
|
|
7676
7685
|
dimensions: {},
|
|
@@ -7694,7 +7703,7 @@ var Zi = class {
|
|
|
7694
7703
|
let { optimisedPlan: o } = this.buildRegularQueryArtifacts(e, t, a), s = this.drizzlePlanBuilder.derivePhysicalPlanContext(o), c = this.drizzlePlanBuilder.toSemanticQuery(o);
|
|
7695
7704
|
this.validateSecurityContext(s, a);
|
|
7696
7705
|
let l = this.drizzlePlanBuilder.build(s, c, a);
|
|
7697
|
-
|
|
7706
|
+
na("query", l);
|
|
7698
7707
|
let u = this.queryBuilder.collectNumericFields(e, t), d = {
|
|
7699
7708
|
data: yr(await this.dbExecutor.execute(l, u), t, this.databaseAdapter),
|
|
7700
7709
|
annotation: $n(s, t),
|
|
@@ -7827,7 +7836,7 @@ var Zi = class {
|
|
|
7827
7836
|
let r = this.buildComparisonExecutionPlan(t).periodQueries[0];
|
|
7828
7837
|
return this.generateUnifiedSQL(e, r, n);
|
|
7829
7838
|
}
|
|
7830
|
-
},
|
|
7839
|
+
}, ia = [
|
|
7831
7840
|
"year",
|
|
7832
7841
|
"quarter",
|
|
7833
7842
|
"month",
|
|
@@ -7835,14 +7844,14 @@ var Zi = class {
|
|
|
7835
7844
|
"day",
|
|
7836
7845
|
"hour"
|
|
7837
7846
|
];
|
|
7838
|
-
function
|
|
7847
|
+
function aa(e, t) {
|
|
7839
7848
|
return t.includes(".") ? t : `${e}.${t}`;
|
|
7840
7849
|
}
|
|
7841
|
-
function
|
|
7850
|
+
function oa(e) {
|
|
7842
7851
|
let t = Object.keys(e.measures), n = Array(t.length);
|
|
7843
7852
|
for (let r = 0; r < t.length; r++) {
|
|
7844
7853
|
let i = t[r], a = e.measures[i], o;
|
|
7845
|
-
a.drillMembers && a.drillMembers.length > 0 && (o = a.drillMembers.map((t) =>
|
|
7854
|
+
a.drillMembers && a.drillMembers.length > 0 && (o = a.drillMembers.map((t) => aa(e.name, t))), n[r] = {
|
|
7846
7855
|
name: `${e.name}.${i}`,
|
|
7847
7856
|
title: a.title || i,
|
|
7848
7857
|
shortTitle: a.title || i,
|
|
@@ -7855,10 +7864,10 @@ function ea(e) {
|
|
|
7855
7864
|
}
|
|
7856
7865
|
return n;
|
|
7857
7866
|
}
|
|
7858
|
-
function
|
|
7867
|
+
function sa(e) {
|
|
7859
7868
|
let t = Object.keys(e.dimensions), n = Array(t.length);
|
|
7860
7869
|
for (let r = 0; r < t.length; r++) {
|
|
7861
|
-
let i = t[r], a = e.dimensions[i], o = a.type === "time" ? a.granularities ||
|
|
7870
|
+
let i = t[r], a = e.dimensions[i], o = a.type === "time" ? a.granularities || ia : void 0;
|
|
7862
7871
|
n[r] = {
|
|
7863
7872
|
name: `${e.name}.${i}`,
|
|
7864
7873
|
title: a.title || i,
|
|
@@ -7872,7 +7881,7 @@ function ta(e) {
|
|
|
7872
7881
|
}
|
|
7873
7882
|
return n;
|
|
7874
7883
|
}
|
|
7875
|
-
function
|
|
7884
|
+
function ca(e, t, n) {
|
|
7876
7885
|
let r = [];
|
|
7877
7886
|
if (!e.joins) return r;
|
|
7878
7887
|
for (let [, i] of Object.entries(e.joins)) {
|
|
@@ -7888,20 +7897,20 @@ function na(e, t, n) {
|
|
|
7888
7897
|
}
|
|
7889
7898
|
return r;
|
|
7890
7899
|
}
|
|
7891
|
-
function
|
|
7900
|
+
function la(e) {
|
|
7892
7901
|
let t = [];
|
|
7893
7902
|
if (!e.hierarchies) return t;
|
|
7894
7903
|
for (let [, n] of Object.entries(e.hierarchies)) t.push({
|
|
7895
7904
|
name: n.name,
|
|
7896
7905
|
title: n.title || n.name,
|
|
7897
7906
|
cubeName: e.name,
|
|
7898
|
-
levels: n.levels.map((t) =>
|
|
7907
|
+
levels: n.levels.map((t) => aa(e.name, t))
|
|
7899
7908
|
});
|
|
7900
7909
|
return t;
|
|
7901
7910
|
}
|
|
7902
7911
|
//#endregion
|
|
7903
7912
|
//#region src/server/compiler.ts
|
|
7904
|
-
var
|
|
7913
|
+
var ua = class {
|
|
7905
7914
|
cubes = /* @__PURE__ */ new Map();
|
|
7906
7915
|
metadataCache;
|
|
7907
7916
|
cacheConfig;
|
|
@@ -7930,7 +7939,7 @@ var ia = class {
|
|
|
7930
7939
|
return Mt(this.db, this.schema, this.engineType);
|
|
7931
7940
|
}
|
|
7932
7941
|
createQueryExecutor(e = !1) {
|
|
7933
|
-
return new
|
|
7942
|
+
return new ra(this.createDbExecutor(), e ? this.cacheConfig : void 0, this.rlsSetup, this.planOptimiser);
|
|
7934
7943
|
}
|
|
7935
7944
|
formatSqlResult(e) {
|
|
7936
7945
|
let t = this.getEngineType() ?? "postgres";
|
|
@@ -8025,7 +8034,7 @@ var ia = class {
|
|
|
8025
8034
|
return "unknown_column";
|
|
8026
8035
|
}
|
|
8027
8036
|
generateCubeMetadata(e) {
|
|
8028
|
-
let t =
|
|
8037
|
+
let t = oa(e), n = sa(e), r = ca(e, this.cubes, (e) => this.getColumnName(e)), i = la(e);
|
|
8029
8038
|
return {
|
|
8030
8039
|
name: e.name,
|
|
8031
8040
|
title: e.title || e.name,
|
|
@@ -8092,4 +8101,4 @@ var ia = class {
|
|
|
8092
8101
|
}
|
|
8093
8102
|
};
|
|
8094
8103
|
//#endregion
|
|
8095
|
-
export {
|
|
8104
|
+
export { ua as t };
|