├── .dockerignore ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ ├── question.md │ └── sql_api_query_issue.md ├── actions │ ├── codecov-fix.sh │ ├── deploy-example.sh │ ├── init-ci │ │ └── action.yaml │ ├── integration │ │ ├── athena.sh │ │ ├── bigquery.sh │ │ ├── clickhouse.sh │ │ ├── crate.sh │ │ ├── cubestore.sh │ │ ├── dremio.sh │ │ ├── druid.sh │ │ ├── elasticsearch.sh │ │ ├── firebolt.sh │ │ ├── mongobi.sh │ │ ├── mssql.sh │ │ ├── mysql-aurora-serverless.sh │ │ ├── mysql.sh │ │ ├── postgres.sh │ │ ├── prestodb.sh │ │ ├── snowflake.sh │ │ ├── trino.sh │ │ └── vertica.sh │ └── smoke.sh ├── buildkitd.toml ├── dependabot.yml ├── label-actions.yml ├── pull_request_template.md └── workflows │ ├── cross-images.yml │ ├── drivers-tests.yml │ ├── examples-publish.yml │ ├── issue-labeler.yml │ ├── master.yml │ ├── post-release.yml │ ├── pr.yml │ ├── publish.yml │ ├── push.yml │ ├── rust-cubesql.yml │ ├── rust-cubestore-master.yml │ ├── rust-cubestore.yml │ └── workflow-lint.yml ├── .gitignore ├── .npmpackagejsonlintrc.json ├── .nvmrc ├── .yarnrc.yml ├── CHANGELOG.md ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DCO.md ├── DEPRECATION.md ├── LICENSE ├── README.md ├── SECURITY.md ├── codecov.yml ├── dev-env.sh ├── docs ├── .claude │ └── commands │ │ └── move-page.md ├── .gitignore ├── CLAUDE.md ├── README.md ├── components │ ├── common │ │ ├── BlogButton │ │ │ ├── Button.module.css │ │ │ ├── Button.tsx │ │ │ └── index.ts │ │ ├── Button │ │ │ ├── Button.module.scss │ │ │ ├── Button.tsx │ │ │ ├── dislike.inline.svg │ │ │ └── like.inline.svg │ │ ├── CubeLogo.tsx │ │ ├── FeedbackBlock │ │ │ ├── FeedbackBlock.module.css │ │ │ ├── FeedbackBlock.tsx │ │ │ ├── FeedbackForm.module.css │ │ │ └── FeedbackForm.tsx │ │ ├── Footer │ │ │ ├── Footer.module.css │ │ │ ├── Footer.tsx │ │ │ └── index.ts │ │ ├── LogoWithVersion │ │ │ ├── LogoWithVersion.module.scss │ │ │ └── LogoWithVersion.tsx │ │ ├── Navigation.tsx │ │ └── SocialIcon │ │ │ ├── SocialIcon.module.css │ │ │ └── SocialIcon.tsx │ ├── layouts │ │ └── MainLayout.tsx │ ├── mdx │ │ ├── AlertBox │ │ │ ├── AlertBox.module.css │ │ │ └── AlertBox.tsx │ │ ├── Banners │ │ │ └── CommunitySupportedDriver.tsx │ │ ├── CaseStudyPromoBlock │ │ │ ├── CaseStudyPromoBlock.module.scss │ │ │ └── CaseStudyPromoBlock.tsx │ │ ├── CloudPromoBlock │ │ │ ├── CloudPromoBlock.module.scss │ │ │ ├── CloudPromoBlock.tsx │ │ │ └── cube-cloud-icon.svg │ │ ├── CodeTabs │ │ │ ├── CodeTabs.module.scss │ │ │ ├── CodeTabs.tsx │ │ │ ├── dictionary.ts │ │ │ └── index.ts │ │ ├── CubeQueryResultSet │ │ │ └── index.tsx │ │ ├── EventPromoBlock │ │ │ ├── EventPromoBlock.module.scss │ │ │ ├── EventPromoBlock.tsx │ │ │ ├── now.svg │ │ │ └── upcoming.svg │ │ ├── GitHubCodeBlock │ │ │ └── index.tsx │ │ ├── GitHubFolderLink │ │ │ └── index.tsx │ │ ├── Grid │ │ │ ├── Grid.module.css │ │ │ ├── Grid.tsx │ │ │ ├── GridItem.module.css │ │ │ └── GridItem.tsx │ │ ├── InlineButton │ │ │ ├── InlineButton.module.scss │ │ │ └── InlineButton.tsx │ │ ├── LoomVideo │ │ │ ├── LoomVideo.module.scss │ │ │ └── LoomVideo.tsx │ │ ├── ReferenceDocs │ │ │ └── ParameterTable.tsx │ │ ├── Screenshot │ │ │ ├── index.tsx │ │ │ └── styles.module.scss │ │ ├── Snippets │ │ │ ├── SnippetGroup.tsx │ │ │ └── styles.module.css │ │ ├── YouTubeVideo │ │ │ ├── YouTubeVideo.tsx │ │ │ └── YoutubeVideo.module.scss │ │ └── index.ts │ ├── overrides │ │ ├── Anchor │ │ │ ├── Anchor.tsx │ │ │ ├── Link.module.scss │ │ │ └── Link.tsx │ │ ├── Code │ │ │ ├── Code.module.scss │ │ │ └── Code.tsx │ │ ├── Headings │ │ │ └── H1.tsx │ │ ├── TOC │ │ │ └── TOCTitle.tsx │ │ └── Table │ │ │ ├── Table.module.scss │ │ │ ├── Table.tsx │ │ │ ├── Td.module.scss │ │ │ ├── Td.tsx │ │ │ ├── Th.module.scss │ │ │ ├── Th.tsx │ │ │ ├── Tr.module.scss │ │ │ └── Tr.tsx │ └── pages │ │ └── Overview.tsx ├── content │ └── cube-logo-with-bg.png ├── fonts │ ├── CeraPro-Bold.woff │ ├── CeraPro-Bold.woff2 │ ├── CeraPro-Medium.woff │ ├── CeraPro-Medium.woff2 │ ├── CeraPro-Regular-Italic.woff │ ├── CeraPro-Regular-Italic.woff2 │ ├── CeraPro-Regular.woff │ ├── CeraPro-Regular.woff2 │ ├── JetBrainsMono-Regular.woff2 │ ├── SourceCodePro-Regular.otf │ ├── SourceCodePro-Regular.woff2 │ └── original │ │ ├── CeraPro-Bold.otf │ │ ├── CeraPro-Bold.woff │ │ ├── CeraPro-Bold.woff2 │ │ ├── CeraPro-Medium.eot │ │ ├── CeraPro-Medium.woff │ │ ├── CeraPro-Medium.woff2 │ │ ├── CeraPro-Regular.eot │ │ ├── CeraPro-Regular.woff │ │ └── CeraPro-Regular.woff2 ├── next-sitemap.config.js ├── next.config.mjs ├── package.json ├── pages │ ├── _app.tsx │ ├── _meta.js │ ├── docs.mdx │ └── product │ │ ├── _meta.js │ │ ├── apis-integrations.mdx │ │ ├── apis-integrations │ │ ├── _meta.js │ │ ├── dax-api.mdx │ │ ├── dax-api │ │ │ ├── _meta.js │ │ │ └── reference.mdx │ │ ├── google-sheets.mdx │ │ ├── graphql-api.mdx │ │ ├── graphql-api │ │ │ ├── _meta.js │ │ │ └── reference.mdx │ │ ├── javascript-sdk.mdx │ │ ├── javascript-sdk │ │ │ ├── _meta.js │ │ │ ├── angular.mdx │ │ │ ├── react.mdx │ │ │ ├── reference │ │ │ │ ├── _meta.js │ │ │ │ ├── cubejs-client-core.mdx │ │ │ │ ├── cubejs-client-ngx.mdx │ │ │ │ ├── cubejs-client-react.mdx │ │ │ │ ├── cubejs-client-vue.mdx │ │ │ │ └── cubejs-client-ws-transport.mdx │ │ │ └── vue.mdx │ │ ├── mdx-api.mdx │ │ ├── microsoft-excel.mdx │ │ ├── orchestration-api.mdx │ │ ├── orchestration-api │ │ │ ├── airflow.mdx │ │ │ ├── dagster.mdx │ │ │ └── prefect.mdx │ │ ├── queries.mdx │ │ ├── recipes │ │ │ ├── _meta.js │ │ │ ├── cast-numerics.mdx │ │ │ ├── drilldowns.mdx │ │ │ ├── getting-unique-values-for-a-field.mdx │ │ │ ├── pagination.mdx │ │ │ ├── real-time-data-fetch.mdx │ │ │ └── sorting.mdx │ │ ├── rest-api.mdx │ │ ├── rest-api │ │ │ ├── _meta.js │ │ │ ├── query-format.mdx │ │ │ └── reference.mdx │ │ ├── semantic-layer-sync.mdx │ │ ├── semantic-layer-sync │ │ │ ├── _meta.js │ │ │ ├── metabase.mdx │ │ │ ├── preset.mdx │ │ │ ├── superset.mdx │ │ │ └── tableau.mdx │ │ ├── sql-api.mdx │ │ └── sql-api │ │ │ ├── _meta.js │ │ │ ├── joins.mdx │ │ │ ├── query-format.mdx │ │ │ ├── reference.mdx │ │ │ └── security.mdx │ │ ├── auth.mdx │ │ ├── auth │ │ ├── _meta.js │ │ ├── context.mdx │ │ ├── data-access-policies.mdx │ │ ├── member-level-security.mdx │ │ ├── methods.mdx │ │ ├── methods │ │ │ ├── _meta.js │ │ │ ├── identity-provider.mdx │ │ │ ├── jwt.mdx │ │ │ ├── kerberos.mdx │ │ │ ├── name-password.mdx │ │ │ └── ntlm.mdx │ │ ├── recipes │ │ │ ├── _meta.js │ │ │ ├── auth0-guide.mdx │ │ │ ├── aws-cognito.mdx │ │ │ ├── column-based-access.mdx │ │ │ ├── controlling-access-to-cubes-and-views.mdx │ │ │ ├── enforcing-mandatory-filters.mdx │ │ │ ├── role-based-access.mdx │ │ │ └── sql-api-ldap.mdx │ │ └── row-level-security.mdx │ │ ├── caching.mdx │ │ ├── caching │ │ ├── _meta.js │ │ ├── getting-started-pre-aggregations.mdx │ │ ├── lambda-pre-aggregations.mdx │ │ ├── matching-pre-aggregations.mdx │ │ ├── recipes │ │ │ ├── _meta.js │ │ │ ├── disabling-pre-aggregations.mdx │ │ │ ├── incrementally-building-pre-aggregations-for-a-date-range.mdx │ │ │ ├── joining-multiple-data-sources.mdx │ │ │ ├── non-additivity.mdx │ │ │ ├── refreshing-select-partitions.mdx │ │ │ └── using-originalsql-and-rollups-effectively.mdx │ │ ├── refreshing-pre-aggregations.mdx │ │ ├── running-in-production.mdx │ │ └── using-pre-aggregations.mdx │ │ ├── configuration.mdx │ │ ├── configuration │ │ ├── _meta.js │ │ ├── concurrency.mdx │ │ ├── data-sources.mdx │ │ ├── data-sources │ │ │ ├── _meta.js │ │ │ ├── aws-athena.mdx │ │ │ ├── aws-redshift.mdx │ │ │ ├── clickhouse.mdx │ │ │ ├── databricks-jdbc.mdx │ │ │ ├── druid.mdx │ │ │ ├── duckdb.mdx │ │ │ ├── elasticsearch.mdx │ │ │ ├── firebolt.mdx │ │ │ ├── google-bigquery.mdx │ │ │ ├── hive.mdx │ │ │ ├── ksqldb.mdx │ │ │ ├── materialize.mdx │ │ │ ├── mongodb.mdx │ │ │ ├── ms-fabric.mdx │ │ │ ├── ms-sql.mdx │ │ │ ├── mysql.mdx │ │ │ ├── oracle.mdx │ │ │ ├── pinot.mdx │ │ │ ├── postgres.mdx │ │ │ ├── presto.mdx │ │ │ ├── questdb.mdx │ │ │ ├── risingwave.mdx │ │ │ ├── singlestore.mdx │ │ │ ├── snowflake.mdx │ │ │ ├── sqlite.mdx │ │ │ ├── trino.mdx │ │ │ └── vertica.mdx │ │ ├── multiple-data-sources.mdx │ │ ├── multitenancy.mdx │ │ ├── recipes │ │ │ ├── _meta.js │ │ │ ├── custom-data-model-per-tenant.mdx │ │ │ ├── data-store-cost-saving-guide.mdx │ │ │ ├── environment-variables.mdx │ │ │ ├── multiple-sources-same-schema.mdx │ │ │ └── using-ssl-connections-to-data-source.mdx │ │ ├── reference │ │ │ ├── _meta.js │ │ │ ├── config.mdx │ │ │ └── environment-variables.mdx │ │ ├── visualization-tools.mdx │ │ └── visualization-tools │ │ │ ├── _meta.js │ │ │ ├── appsmith.mdx │ │ │ ├── bubble.mdx │ │ │ ├── budibase.mdx │ │ │ ├── deepnote.mdx │ │ │ ├── excel.mdx │ │ │ ├── explo.mdx │ │ │ ├── google-sheets.mdx │ │ │ ├── hashboard.mdx │ │ │ ├── hex.mdx │ │ │ ├── hightouch.mdx │ │ │ ├── jupyter.mdx │ │ │ ├── klipfolio.mdx │ │ │ ├── langchain.mdx │ │ │ ├── looker-studio.mdx │ │ │ ├── metabase.mdx │ │ │ ├── observable.mdx │ │ │ ├── powerbi.mdx │ │ │ ├── push-ai.mdx │ │ │ ├── qlik-sense.mdx │ │ │ ├── quicksight.mdx │ │ │ ├── retool.mdx │ │ │ ├── rudderstack.mdx │ │ │ ├── sigma.mdx │ │ │ ├── steep.mdx │ │ │ ├── streamlit.mdx │ │ │ ├── superset.mdx │ │ │ ├── tableau.mdx │ │ │ ├── thoughtspot.mdx │ │ │ └── unity-catalog.mdx │ │ ├── data-modeling │ │ ├── _meta.js │ │ ├── concepts.mdx │ │ ├── concepts │ │ │ ├── _meta.js │ │ │ ├── calculated-members.mdx │ │ │ ├── code-reusability-extending-cubes.mdx │ │ │ ├── data-blending.mdx │ │ │ ├── multi-stage-calculations.mdx │ │ │ ├── polymorphic-cubes.mdx │ │ │ └── working-with-joins.mdx │ │ ├── dynamic.mdx │ │ ├── dynamic │ │ │ ├── _meta.js │ │ │ ├── code-reusability-export-and-import.mdx │ │ │ ├── javascript.mdx │ │ │ ├── jinja.mdx │ │ │ └── schema-execution-environment.mdx │ │ ├── overview.mdx │ │ ├── recipes │ │ │ ├── _meta.js │ │ │ ├── active-users.mdx │ │ │ ├── cohort-retention.mdx │ │ │ ├── custom-calendar.mdx │ │ │ ├── custom-granularity.mdx │ │ │ ├── dbt.mdx │ │ │ ├── designing-metrics.mdx │ │ │ ├── dynamic-union-tables.mdx │ │ │ ├── entity-attribute-value.mdx │ │ │ ├── event-analytics.mdx │ │ │ ├── filtered-aggregates.mdx │ │ │ ├── funnels.mdx │ │ │ ├── nested-aggregates.mdx │ │ │ ├── passing-dynamic-parameters-in-a-query.mdx │ │ │ ├── percentiles.mdx │ │ │ ├── period-over-period.mdx │ │ │ ├── snapshots.mdx │ │ │ ├── string-time-dimensions.mdx │ │ │ ├── style-guide.mdx │ │ │ ├── using-dynamic-measures.mdx │ │ │ └── xirr.mdx │ │ ├── reference │ │ │ ├── _meta.js │ │ │ ├── context-variables.mdx │ │ │ ├── cube-package.mdx │ │ │ ├── cube.mdx │ │ │ ├── cube_dbt.mdx │ │ │ ├── data-access-policies.mdx │ │ │ ├── dimensions.mdx │ │ │ ├── hierarchies.mdx │ │ │ ├── joins.mdx │ │ │ ├── lkml2cube.mdx │ │ │ ├── measures.mdx │ │ │ ├── pre-aggregations.mdx │ │ │ ├── segments.mdx │ │ │ ├── types-and-formats.mdx │ │ │ └── view.mdx │ │ └── syntax.mdx │ │ ├── deployment.mdx │ │ ├── deployment │ │ ├── _meta.js │ │ ├── cloud.mdx │ │ ├── cloud │ │ │ ├── _meta.js │ │ │ ├── auto-suspension.mdx │ │ │ ├── byoc.mdx │ │ │ ├── byoc │ │ │ │ ├── _meta.js │ │ │ │ ├── aws.mdx │ │ │ │ └── azure.mdx │ │ │ ├── continuous-deployment.mdx │ │ │ ├── custom-domains.mdx │ │ │ ├── deployment-types.mdx │ │ │ ├── deployments.mdx │ │ │ ├── infrastructure.mdx │ │ │ ├── limits.mdx │ │ │ ├── pricing.mdx │ │ │ ├── providers.mdx │ │ │ ├── providers │ │ │ │ ├── _meta.js │ │ │ │ ├── aws.mdx │ │ │ │ ├── azure.mdx │ │ │ │ └── gcp.mdx │ │ │ ├── scalability.mdx │ │ │ ├── support.mdx │ │ │ ├── vpc.mdx │ │ │ ├── vpc │ │ │ │ ├── _meta.js │ │ │ │ ├── aws.mdx │ │ │ │ ├── aws │ │ │ │ │ ├── _meta.js │ │ │ │ │ ├── private-link.mdx │ │ │ │ │ └── vpc-peering.mdx │ │ │ │ ├── azure.mdx │ │ │ │ └── gcp.mdx │ │ │ └── warm-up.mdx │ │ ├── core.mdx │ │ └── production-checklist.mdx │ │ ├── distribution.mdx │ │ ├── getting-started.mdx │ │ ├── getting-started │ │ ├── _meta.js │ │ ├── cloud.mdx │ │ ├── cloud │ │ │ ├── _meta.js │ │ │ ├── connect-to-snowflake.mdx │ │ │ ├── create-data-model.mdx │ │ │ ├── load-data.mdx │ │ │ ├── query-from-bi.mdx │ │ │ └── query-from-react-app.mdx │ │ ├── core.mdx │ │ ├── core │ │ │ ├── _meta.js │ │ │ ├── add-a-pre-aggregation.mdx │ │ │ ├── create-a-project.mdx │ │ │ ├── learn-more.mdx │ │ │ └── query-data.mdx │ │ ├── databricks.mdx │ │ ├── databricks │ │ │ ├── _meta.js │ │ │ ├── connect-to-databricks.mdx │ │ │ ├── create-data-model.mdx │ │ │ ├── load-data.mdx │ │ │ ├── query-from-bi.mdx │ │ │ └── query-from-react-app.mdx │ │ └── migrate-from-core │ │ │ ├── _meta.js │ │ │ ├── import-bitbucket-repository-via-ssh.mdx │ │ │ ├── import-git-repository-via-ssh.mdx │ │ │ ├── import-github-repository.mdx │ │ │ ├── import-gitlab-repository-via-ssh.mdx │ │ │ └── upload-with-cli.mdx │ │ ├── introduction.mdx │ │ ├── workspace.mdx │ │ └── workspace │ │ ├── _meta.js │ │ ├── access-control.mdx │ │ ├── audit-log.mdx │ │ ├── budgets.mdx │ │ ├── cli.mdx │ │ ├── cli │ │ ├── _meta.js │ │ └── reference.mdx │ │ ├── data-model.mdx │ │ ├── dev-mode.mdx │ │ ├── encryption-keys.mdx │ │ ├── environments.mdx │ │ ├── integrations.mdx │ │ ├── monitoring.mdx │ │ ├── monitoring │ │ ├── _meta.js │ │ ├── cloudwatch.mdx │ │ ├── datadog.mdx │ │ ├── grafana-cloud.mdx │ │ ├── new-relic.mdx │ │ └── s3.mdx │ │ ├── performance.mdx │ │ ├── playground.mdx │ │ ├── pre-aggregations.mdx │ │ ├── preferences.mdx │ │ ├── query-history.mdx │ │ ├── recipes │ │ ├── _meta.js │ │ └── query-history-export.mdx │ │ ├── rollup-designer.mdx │ │ ├── saved-reports.mdx │ │ ├── semantic-catalog.mdx │ │ ├── sql-runner.mdx │ │ ├── sso.mdx │ │ ├── sso │ │ ├── _meta.js │ │ ├── google-workspace.mdx │ │ ├── microsoft-entra-id.mdx │ │ └── okta.mdx │ │ ├── visual-model.mdx │ │ └── vizard.mdx ├── plugins │ └── link-environment-variables.mjs ├── postcss.config.js ├── public │ ├── .gitkeep │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── apple-touch-icon.png │ ├── cube-scheme-dark.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── favicon.svg │ ├── images │ │ └── github-icon.svg │ └── mstile-150x150.png ├── redirects.json ├── scripts │ ├── create-redirects.mjs │ ├── migrate-content.ts │ ├── tsconfig.json │ └── update-links.mjs ├── styles │ ├── globals.css │ ├── images.css │ ├── math.css │ ├── palette.css │ └── typography.css ├── tailwind.config.js ├── theme.config.tsx ├── tsconfig.json ├── utils │ └── parseHref.ts ├── vercel-deploy-check.sh ├── vercel.json └── yarn.lock ├── examples ├── .gitignore ├── README.md └── recipes │ ├── active-users │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── query.json │ │ └── run.sh │ └── schema │ │ └── ActiveUsers.js │ ├── changing-visibility-of-cubes-or-views │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── package.json │ └── schema │ │ ├── Orders.js │ │ ├── TotalRevenuePerCustomer.js │ │ └── Users.js │ ├── column-based-access │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── query.json │ │ └── run.sh │ └── schema │ │ ├── Products.js │ │ └── Suppliers.js │ ├── entity-attribute-value │ ├── .env │ ├── Dockerfile │ ├── cube.js │ ├── docker-compose.yml │ ├── fetch.js │ ├── package.json │ ├── queries │ │ ├── dry.json │ │ ├── dynamic.json │ │ ├── joins.json │ │ ├── run.sh │ │ └── statuses.json │ └── schema │ │ ├── Orders.js │ │ ├── Users.js │ │ ├── UsersStatuses_DRY.js │ │ ├── UsersStatuses_Dynamic.js │ │ └── UsersStatuses_Joins.js │ ├── getting-unique-values-for-a-field │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── load.json │ │ └── run.sh │ └── schema │ │ └── Users.js │ ├── joining-multiple-databases-data │ ├── .env │ ├── .gitignore │ ├── README.md │ ├── cube.js │ ├── package.json │ ├── schema │ │ ├── Products.js │ │ └── Suppliers.js │ └── yarn.lock │ ├── joining-multiple-datasources-data │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── pre-agg-query.json │ │ └── run.sh │ └── schema │ │ ├── Products.js │ │ └── Suppliers.js │ ├── lambda-view │ ├── .env │ ├── .gitignore │ ├── cube.js │ ├── package.json │ ├── queries.json │ ├── schema │ │ └── Orders.js │ └── yarn.lock │ ├── mandatory-filters │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── completed-orders.json │ │ ├── run.sh │ │ ├── shipped-orders.json │ │ └── users.json │ └── schema │ │ └── Orders.js │ ├── multiple-data-sources │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── run.sh │ │ └── users.json │ ├── schema │ │ └── Users.js │ └── scripts │ │ └── localDB.sql │ ├── non-additivity │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── matching-non-additive.json │ │ ├── matching-refactored.json │ │ ├── non-matching-non-additive.json │ │ └── run.sh │ └── schema │ │ ├── Users.js │ │ └── UsersRefactored.js │ ├── pagination │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── count.json │ │ ├── first.json │ │ ├── run.sh │ │ └── second.json │ └── schema │ │ └── Orders.js │ ├── passing-dynamic-parameters-in-query │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── query.json │ │ └── run.sh │ └── schema │ │ └── Users.js │ ├── percentiles │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── age.json │ │ ├── run.sh │ │ └── stats.json │ └── schema │ │ └── Users.js │ ├── referencing-dynamic-measures │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── percentage.json │ │ └── run.sh │ └── schema │ │ └── Orders.js │ ├── refreshing-select-partitions │ ├── .env │ ├── Dockerfile │ ├── cube.js │ ├── data-updater │ │ ├── data-updater.js │ │ └── data-updater.sh │ ├── db-scripts │ │ └── orders.sql │ ├── docker-compose.yml │ ├── package.json │ ├── queries │ │ ├── orders.json │ │ └── run.sh │ └── schema │ │ └── Orders .js │ ├── role-based-access │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── query.json │ │ └── run.sh │ └── schema │ │ └── Orders.js │ ├── snapshots │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ │ ├── run.sh │ │ ├── snapshot-1.json │ │ ├── snapshot-2.json │ │ └── statuses.json │ └── schema │ │ ├── StatusSnapshots.js │ │ └── Statuses.js │ └── using-different-schemas-for-tenants │ ├── .env │ ├── cube.js │ ├── docker-compose.yml │ ├── queries │ ├── query.json │ └── run.sh │ └── schema │ ├── avocado │ └── Products.js │ └── mango │ └── Products.js ├── jest.base-ts.config.js ├── jest.base.config.js ├── jest.setup.js ├── lerna-publish.sh ├── lerna.json ├── package.json ├── packages ├── cubejs-api-gateway │ ├── .eslintignore │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest.config.js │ ├── openspec.yml │ ├── package.json │ ├── src │ │ ├── CubejsHandlerError.ts │ │ ├── LocalSubscriptionStore.ts │ │ ├── SubscriptionServer.ts │ │ ├── UserError.ts │ │ ├── cached-handler.ts │ │ ├── dateParser.js │ │ ├── gateway.ts │ │ ├── graphql.ts │ │ ├── helpers │ │ │ ├── prepareAnnotation.ts │ │ │ ├── toConfigMap.ts │ │ │ └── transformMetaExtended.ts │ │ ├── index.ts │ │ ├── interfaces.ts │ │ ├── jwk.ts │ │ ├── query.js │ │ ├── requestParser.ts │ │ ├── sql-server.ts │ │ └── types │ │ │ ├── auth.ts │ │ │ ├── enums.ts │ │ │ ├── gateway.ts │ │ │ ├── query.ts │ │ │ ├── request.ts │ │ │ ├── responses.ts │ │ │ └── strings.ts │ ├── test │ │ ├── __snapshots__ │ │ │ └── graphql.test.ts.snap │ │ ├── auth.test.ts │ │ ├── cached-handler.test.ts │ │ ├── dateParser.test.js │ │ ├── graphql-queries │ │ │ ├── base-snake-case.gql │ │ │ └── base.gql │ │ ├── graphql.test.ts │ │ ├── helpers │ │ │ ├── prepareAnnotation.test.ts │ │ │ └── transformMetaExtended.test.ts │ │ ├── index.test.ts │ │ ├── mocks.ts │ │ ├── permissions.test.ts │ │ ├── snapshotResolver.js │ │ └── utils.ts │ └── tsconfig.json ├── cubejs-athena-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── AthenaDriver.ts │ │ └── index.ts │ ├── test │ │ └── AthenaDriver.test.ts │ └── tsconfig.json ├── cubejs-backend-cloud │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── cloud.ts │ │ ├── config.ts │ │ ├── deploy.ts │ │ ├── index.ts │ │ └── live-preview.ts │ ├── test │ │ ├── cloud.test.ts │ │ ├── config.test.ts │ │ ├── deploy.test.ts │ │ └── live-preview.test.ts │ └── tsconfig.json ├── cubejs-backend-maven │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── maven-resolve │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── maven-resolve.ts │ │ └── maven.ts │ ├── test │ │ ├── fixtures │ │ │ └── generate-xml-1.xml │ │ └── maven.test.ts │ └── tsconfig.json ├── cubejs-backend-native │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── CHANGELOG.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── DEVELOPMENT.md │ ├── LICENSE │ ├── README.md │ ├── TECH.md │ ├── jest.config.js │ ├── js │ │ ├── ResultWrapper.ts │ │ └── index.ts │ ├── package.json │ ├── python │ │ ├── README.md │ │ └── cube │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── pyproject.toml │ │ │ └── src │ │ │ └── __init__.py │ ├── rust-toolchain.toml │ ├── src │ │ ├── auth.rs │ │ ├── channel.rs │ │ ├── config.rs │ │ ├── cross │ │ │ ├── clrepr.rs │ │ │ ├── clrepr_python.rs │ │ │ ├── mod.rs │ │ │ └── py_in_js.rs │ │ ├── cubesql_utils.rs │ │ ├── gateway │ │ │ ├── auth_middleware.rs │ │ │ ├── auth_service.rs │ │ │ ├── handlers │ │ │ │ ├── mod.rs │ │ │ │ └── stream.rs │ │ │ ├── http_error.rs │ │ │ ├── mod.rs │ │ │ ├── router.rs │ │ │ ├── server.rs │ │ │ └── state.rs │ │ ├── lib.rs │ │ ├── logger.rs │ │ ├── node_export.rs │ │ ├── node_obj_deserializer.rs │ │ ├── node_obj_serializer.rs │ │ ├── orchestrator.rs │ │ ├── python │ │ │ ├── cube_config.rs │ │ │ ├── entry.rs │ │ │ ├── linux_dylib.rs │ │ │ ├── mod.rs │ │ │ ├── neon_py.rs │ │ │ ├── python_model.rs │ │ │ ├── runtime.rs │ │ │ └── utils.rs │ │ ├── sql4sql.rs │ │ ├── stream.rs │ │ ├── template │ │ │ ├── engine_python.rs │ │ │ ├── entry.rs │ │ │ ├── mj_value │ │ │ │ ├── mod.rs │ │ │ │ ├── python.rs │ │ │ │ └── value.rs │ │ │ ├── mod.rs │ │ │ ├── neon_mj.rs │ │ │ └── workers.rs │ │ ├── transport.rs │ │ └── utils.rs │ ├── test │ │ ├── __snapshots__ │ │ │ └── jinja.test.ts.snap │ │ ├── config.py │ │ ├── connect.js │ │ ├── cross.test.ts │ │ ├── fixtures │ │ │ └── schema-tenant-1 │ │ │ │ ├── test.yml │ │ │ │ └── test.yml.jinja │ │ ├── globals.py │ │ ├── globals_w_import_path.py │ │ ├── jinja.test.ts │ │ ├── meta.js │ │ ├── old-config.py │ │ ├── python.test.ts │ │ ├── python.ts │ │ ├── python_async_bench.ts │ │ ├── response-fake.ts │ │ ├── server.js │ │ ├── setup │ │ │ ├── extend-expect.d.ts │ │ │ └── index.ts │ │ ├── snapshotResolver.js │ │ ├── sql.test.ts │ │ ├── subdir_for_test │ │ │ └── meta.py │ │ ├── templates │ │ │ ├── .utils.jinja │ │ │ ├── 01.yml.jinja │ │ │ ├── 02.yml.jinja │ │ │ ├── 03.yml.jinja │ │ │ ├── 04.yml.jinja │ │ │ ├── 05.yml.jinja │ │ │ ├── 06.yml.jinja │ │ │ ├── 07.yml.jinja │ │ │ ├── 08.yml.jinja │ │ │ ├── arguments-test.yml.jinja │ │ │ ├── class-model.yml.jinja │ │ │ ├── data-model.yml.jinja │ │ │ ├── dump_context.yml.jinja │ │ │ ├── filters.yml.jinja │ │ │ ├── jinja-instance.py │ │ │ ├── python.yml │ │ │ ├── template_error_python.jinja │ │ │ ├── template_error_syntax.jinja │ │ │ └── variables.yml.jinja │ │ └── utils.py │ └── tsconfig.json ├── cubejs-backend-shared │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── FileRepository.ts │ │ ├── cli.ts │ │ ├── convert.ts │ │ ├── enums.ts │ │ ├── env.ts │ │ ├── errors.ts │ │ ├── helpers.ts │ │ ├── http-utils.ts │ │ ├── index.ts │ │ ├── machine-id.ts │ │ ├── node-check.ts │ │ ├── package.ts │ │ ├── platform.ts │ │ ├── process.ts │ │ ├── promises.ts │ │ ├── proxy.ts │ │ ├── time.ts │ │ ├── track.ts │ │ └── type-helpers.ts │ ├── test │ │ ├── convert.test.ts │ │ ├── db_env_multi.test.ts │ │ ├── db_env_single.test.ts │ │ ├── env.test.ts │ │ ├── helper.test.ts │ │ ├── iterators.test.ts │ │ ├── machine-id.test.ts │ │ ├── package.test.ts │ │ ├── promises.test.ts │ │ └── time.test.ts │ └── tsconfig.json ├── cubejs-base-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── BaseDriver.ts │ │ ├── cache-driver.interface.ts │ │ ├── driver.interface.ts │ │ ├── index.ts │ │ ├── queue-driver.interface.ts │ │ └── utils.ts │ ├── test │ │ └── unit │ │ │ └── BaseDriver.test.ts │ └── tsconfig.json ├── cubejs-bigquery-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── BigQueryDriver.ts │ │ ├── HydrationStream.ts │ │ └── index.ts │ ├── test │ │ └── BigQueryDriver.test.ts │ └── tsconfig.json ├── cubejs-cli │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── cli.ts │ │ ├── command │ │ │ ├── auth.ts │ │ │ ├── create.ts │ │ │ ├── deploy.ts │ │ │ ├── generate.ts │ │ │ ├── proxy-command.ts │ │ │ ├── server.ts │ │ │ ├── token.ts │ │ │ ├── typegen.ts │ │ │ └── validate.ts │ │ ├── config.ts │ │ ├── index.ts │ │ ├── templates.ts │ │ └── utils.ts │ ├── test │ │ ├── templates.test.ts │ │ └── utils.test.ts │ └── tsconfig.json ├── cubejs-clickhouse-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── ClickHouseDriver.ts │ │ ├── HydrationStream.ts │ │ └── index.ts │ ├── test │ │ └── ClickHouseDriver.test.ts │ └── tsconfig.json ├── cubejs-client-core │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── HttpTransport.ts │ │ ├── Meta.ts │ │ ├── ProgressResult.ts │ │ ├── RequestError.ts │ │ ├── ResultSet.ts │ │ ├── SqlQuery.ts │ │ ├── index.ts │ │ ├── index.umd.ts │ │ ├── time.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── test │ │ ├── CubeApi.test.ts │ │ ├── HttpTransport.test.ts │ │ ├── ResultSet.test.ts │ │ ├── SqlQuery.test.ts │ │ ├── compare-date-range.test.ts │ │ ├── data-blending.test.ts │ │ ├── default-heuristics.test.ts │ │ ├── drill-down.test.ts │ │ ├── fixtures │ │ │ └── datablending │ │ │ │ └── load-responses.json │ │ ├── granularity.test.ts │ │ ├── helpers.ts │ │ ├── index.test.ts │ │ ├── table.test.ts │ │ └── utils.test.ts │ └── tsconfig.json ├── cubejs-client-dx │ ├── .eslintrc.js │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── babel.config.js │ ├── generated.d.ts │ ├── index.d.ts │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── index.js │ │ └── index.mjs │ └── tsconfig.json ├── cubejs-client-ngx │ ├── .gitignore │ ├── .prettierrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── angular.json │ ├── index.ts │ ├── ng-package.json │ ├── package.json │ ├── src │ │ ├── client.ts │ │ ├── module.ts │ │ ├── public_api.ts │ │ └── query-builder │ │ │ ├── builder-meta.ts │ │ │ ├── chart-type.ts │ │ │ ├── common.ts │ │ │ ├── pivot-config.ts │ │ │ ├── query-builder.service.ts │ │ │ ├── query-members.ts │ │ │ └── query.ts │ ├── tsconfig.json │ └── tsconfig.prod.json ├── cubejs-client-react │ ├── .eslintrc.js │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── package.json │ └── src │ │ ├── CubeContext.js │ │ ├── CubeProvider.jsx │ │ ├── QueryBuilder.jsx │ │ ├── QueryRenderer.jsx │ │ ├── QueryRendererWithTotals.jsx │ │ ├── hooks │ │ ├── cube-fetch.js │ │ ├── cube-meta.js │ │ ├── cube-query.js │ │ ├── cube-sql.js │ │ ├── deep-compare-memoize.js │ │ ├── dry-run.js │ │ ├── is-mounted.js │ │ └── lazy-dry-run.js │ │ ├── index.js │ │ └── utils.js ├── cubejs-client-vue │ ├── .gitignore │ ├── .prettierrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── babel.config.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── QueryBuilder.js │ │ ├── QueryRenderer.js │ │ └── index.js │ └── tests │ │ └── unit │ │ ├── .eslintrc.js │ │ ├── QueryBuilder.spec.js │ │ ├── QueryRenderer.spec.js │ │ ├── __mocks__ │ │ └── responses.js │ │ └── utils.js ├── cubejs-client-vue3 │ ├── .gitignore │ ├── .prettierrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── babel.config.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── QueryBuilder.js │ │ ├── QueryRenderer.js │ │ └── index.js │ └── tests │ │ └── unit │ │ ├── .eslintrc.js │ │ ├── QueryBuilder.spec.js │ │ ├── QueryRenderer.spec.js │ │ ├── __mocks__ │ │ └── responses.js │ │ └── utils.js ├── cubejs-client-ws-transport │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json ├── cubejs-crate-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── CrateDriver.ts │ │ └── index.ts │ ├── test │ │ └── CrateDriver.test.ts │ └── tsconfig.json ├── cubejs-cubestore-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── codegen │ │ ├── generate.sh │ │ ├── http-column-value.ts │ │ ├── http-command.ts │ │ ├── http-error.ts │ │ ├── http-message.ts │ │ ├── http-query.ts │ │ ├── http-result-set.ts │ │ ├── http-row.ts │ │ ├── http-table.ts │ │ └── index.ts │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── CubeStoreCacheDriver.ts │ │ ├── CubeStoreDevDriver.ts │ │ ├── CubeStoreDriver.ts │ │ ├── CubeStoreQueueDriver.ts │ │ ├── WebSocketConnection.ts │ │ ├── index.ts │ │ ├── rexport.ts │ │ └── types.ts │ └── tsconfig.json ├── cubejs-databricks-jdbc-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── post-install │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── DatabricksDriver.ts │ │ ├── DatabricksQuery.ts │ │ ├── helpers.ts │ │ ├── index.ts │ │ ├── installer.ts │ │ └── post-install.ts │ ├── test │ │ └── DatabricksDriver.test.ts │ └── tsconfig.json ├── cubejs-dbt-schema-extension │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ └── Dbt.ts │ └── tsconfig.json ├── cubejs-docker │ ├── .dockerignore │ ├── .gitignore │ ├── CHANGELOG.md │ ├── DEVELOPMENT.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── cubejs-dev │ │ └── cubestore-dev │ ├── dev.Dockerfile │ ├── latest-debian-jdk.Dockerfile │ ├── latest.Dockerfile │ ├── local.Dockerfile │ ├── package.json │ ├── package.json.local │ └── testing-drivers.Dockerfile ├── cubejs-dremio-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── driver │ │ ├── DremioDriver.js │ │ └── DremioQuery.js │ ├── jest.config.js │ ├── package.json │ ├── test │ │ ├── DremioDriver.test.ts │ │ ├── DremioQuery.test.ts │ │ └── test-env.js │ └── tsconfig.json ├── cubejs-druid-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── environment │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── DruidClient.ts │ │ ├── DruidDriver.ts │ │ ├── DruidQuery.ts │ │ └── index.ts │ ├── test │ │ ├── druid-driver.test.ts │ │ └── druid-query.test.ts │ └── tsconfig.json ├── cubejs-duckdb-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── DuckDBDriver.ts │ │ ├── DuckDBQuery.ts │ │ ├── HydrationStream.ts │ │ └── index.ts │ ├── test │ │ └── DuckDBDriver.test.ts │ └── tsconfig.json ├── cubejs-elasticsearch-driver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── driver │ │ ├── ElasticSearchDriver.js │ │ └── index.d.ts │ ├── jest.config.js │ ├── package.json │ └── test │ │ └── ElasticSearchOpenDistro.integration.js ├── cubejs-firebolt-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── FireboltDriver.ts │ │ ├── FireboltQuery.ts │ │ └── index.ts │ ├── test │ │ ├── FireboltDriver.test.ts │ │ ├── FireboltQuery.test.ts │ │ ├── autostart.test.ts │ │ └── test-env.js │ └── tsconfig.json ├── cubejs-hive-driver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── idl │ │ ├── Hive_2.1.1 │ │ │ ├── TCLIService.js │ │ │ └── TCLIService_types.js │ │ ├── Hive_2.2.3 │ │ │ ├── TCLIService.js │ │ │ └── TCLIService_types.js │ │ └── Hive_2.3.4 │ │ │ ├── TCLIService.js │ │ │ └── TCLIService_types.js │ ├── package.json │ └── src │ │ ├── HiveDriver.js │ │ └── TSaslTransport.js ├── cubejs-jdbc-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── JDBCDriver.ts │ │ ├── QueryStream.ts │ │ ├── index.ts │ │ ├── supported-drivers.ts │ │ └── types.ts │ └── tsconfig.json ├── cubejs-ksql-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── KsqlDriver.ts │ │ ├── KsqlQuery.ts │ │ └── index.ts │ └── tsconfig.json ├── cubejs-linter │ ├── CHANGELOG.md │ ├── index.js │ └── package.json ├── cubejs-materialize-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── MaterializeDriver.ts │ │ └── index.ts │ ├── test │ │ └── MaterializeDriver.test.ts │ └── tsconfig.json ├── cubejs-mongobi-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── MongoBIDriver.ts │ │ ├── MySQLType.ts │ │ └── index.ts │ ├── test │ │ ├── Dockerfile │ │ ├── MongoBiDriver.test.ts │ │ ├── config.yaml │ │ ├── docker-compose.yml │ │ └── mongo-init.js │ └── tsconfig.json ├── cubejs-mssql-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── MSSqlDriver.ts │ │ ├── QueryStream.ts │ │ ├── index.ts │ │ └── types │ │ │ └── mssql.d.ts │ └── tsconfig.json ├── cubejs-mysql-aurora-serverless-driver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── driver │ │ ├── AuroraServerlessMySqlDriver.js │ │ └── index.d.ts │ ├── jest.config.js │ ├── package.json │ └── test │ │ ├── AuroraServerlessMySqlDriver.integration.js │ │ └── AuroraServerlessMySqlDriver.test.js ├── cubejs-mysql-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── MySqlDriver.ts │ │ └── index.ts │ ├── test │ │ ├── MySqlDriver.test.ts │ │ ├── MySqlDriverPool.disabled.ts │ │ └── mysql.db.runner.ts │ └── tsconfig.json ├── cubejs-oracle-driver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── driver │ │ └── OracleDriver.js │ └── package.json ├── cubejs-pinot-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── pinot-resources │ │ ├── broker.conf │ │ ├── controller.conf │ │ ├── rawdata │ │ │ ├── scores │ │ │ │ └── scores.csv │ │ │ └── students │ │ │ │ └── students.csv │ │ ├── scores.jobspec.yml │ │ ├── scores.schema.json │ │ ├── scores.table.json │ │ ├── students.jobspec.yml │ │ ├── students.schema.json │ │ └── students.table.json │ ├── src │ │ ├── PinotDriver.ts │ │ ├── PinotQuery.ts │ │ └── index.ts │ ├── test │ │ └── Pinot.test.ts │ └── tsconfig.json ├── cubejs-playground │ ├── .babelrc │ ├── .env │ ├── .eslintignore │ ├── .gitignore │ ├── .prettierrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── charts-gen │ │ ├── README.md │ │ ├── angular │ │ │ ├── build.sh │ │ │ ├── code-chunks-gen.js │ │ │ ├── index.js │ │ │ └── move.js │ │ ├── build-all.sh │ │ ├── env.js │ │ ├── package.json │ │ ├── react │ │ │ ├── build.sh │ │ │ ├── code-chunks-gen.js │ │ │ ├── index.js │ │ │ └── move.js │ │ ├── tsconfig.json │ │ ├── utils.js │ │ ├── vue │ │ │ ├── build.sh │ │ │ ├── code-chunks-gen.js │ │ │ ├── index.js │ │ │ └── move.js │ │ └── yarn.lock │ ├── index.html │ ├── package.json │ ├── postbuild.js │ ├── public │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── antd.min.css │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── cube-logo.svg │ │ ├── cubejs-logo.svg │ │ ├── docs-icon.svg │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── Inter-Bold.woff │ │ │ ├── Inter-Bold.woff2 │ │ │ ├── Inter-Medium.woff │ │ │ ├── Inter-Medium.woff2 │ │ │ ├── Inter-Regular.woff │ │ │ ├── Inter-Regular.woff2 │ │ │ ├── Inter-SemiBold.woff │ │ │ ├── Inter-SemiBold.woff2 │ │ │ ├── JetBrainsMono-Bold.woff │ │ │ ├── JetBrainsMono-Bold.woff2 │ │ │ ├── JetBrainsMono-Medium.woff │ │ │ ├── JetBrainsMono-Medium.woff2 │ │ │ ├── JetBrainsMono-Regular.woff │ │ │ ├── JetBrainsMono-Regular.woff2 │ │ │ ├── SourceCodePro-Regular.woff │ │ │ ├── SourceCodePro-Regular.woff2 │ │ │ ├── text-security-disc.woff │ │ │ └── text-security-disc.woff2 │ │ ├── manifest.json │ │ ├── mstile-150x150.png │ │ └── slack-icon.svg │ ├── src │ │ ├── App.tsx │ │ ├── ChartContainer.tsx │ │ ├── PrismCode.tsx │ │ ├── QueryBuilder │ │ │ ├── ButtonDropdown.tsx │ │ │ ├── FilterGroup.tsx │ │ │ ├── FilterInput.tsx │ │ │ ├── MemberDropdown.tsx │ │ │ ├── MemberGroup.tsx │ │ │ ├── MissingMemberTooltip.tsx │ │ │ ├── RemoveButtonGroup.tsx │ │ │ ├── SelectChartType.tsx │ │ │ ├── TimeGroup.tsx │ │ │ └── TimeRangeSelector.tsx │ │ ├── QueryBuilderV2 │ │ │ ├── Pivot │ │ │ │ ├── Axes.tsx │ │ │ │ ├── DroppableArea.tsx │ │ │ │ ├── Item.tsx │ │ │ │ ├── Options.tsx │ │ │ │ └── index.ts │ │ │ ├── QueryBuilder.tsx │ │ │ ├── QueryBuilderChart.tsx │ │ │ ├── QueryBuilderChartResults.tsx │ │ │ ├── QueryBuilderError.tsx │ │ │ ├── QueryBuilderExtras.tsx │ │ │ ├── QueryBuilderFilters.tsx │ │ │ ├── QueryBuilderGeneratedSQL.tsx │ │ │ ├── QueryBuilderGraphQL.tsx │ │ │ ├── QueryBuilderInternals.tsx │ │ │ ├── QueryBuilderRest.tsx │ │ │ ├── QueryBuilderResults.tsx │ │ │ ├── QueryBuilderSQL.tsx │ │ │ ├── QueryBuilderSidePanel.tsx │ │ │ ├── QueryBuilderToolBar.tsx │ │ │ ├── color-tokens.ts │ │ │ ├── components │ │ │ │ ├── Accordion │ │ │ │ │ ├── Accordion.tsx │ │ │ │ │ ├── AccordionDetails.tsx │ │ │ │ │ ├── AccordionItem.tsx │ │ │ │ │ ├── AccordionItemTitle.tsx │ │ │ │ │ ├── AccordionNestedContext.tsx │ │ │ │ │ ├── AccordionProvider.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── AccordionCard │ │ │ │ │ ├── AccordionCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AddFilterInput.tsx │ │ │ │ ├── Arrow.tsx │ │ │ │ ├── Badge.tsx │ │ │ │ ├── ChartRenderer.tsx │ │ │ │ ├── CopyButton.tsx │ │ │ │ ├── CopyIcon.tsx │ │ │ │ ├── DateRangeFilter.tsx │ │ │ │ ├── EditQueryDialogForm.tsx │ │ │ │ ├── FilterByMemberButton.tsx │ │ │ │ ├── FilterLabel.tsx │ │ │ │ ├── FilterMember.tsx │ │ │ │ ├── FilterOptionsButton.tsx │ │ │ │ ├── FilteredLabel.tsx │ │ │ │ ├── Folder.tsx │ │ │ │ ├── GranularityListMember.tsx │ │ │ │ ├── HierarchyMember.tsx │ │ │ │ ├── Icon.tsx │ │ │ │ ├── InfoIconButton.tsx │ │ │ │ ├── InstanceTooltipProvider.tsx │ │ │ │ ├── ListButton.tsx │ │ │ │ ├── ListCube.tsx │ │ │ │ ├── ListMember.tsx │ │ │ │ ├── ListMemberButton.tsx │ │ │ │ ├── ListMemberOptionButton.tsx │ │ │ │ ├── LocalError.tsx │ │ │ │ ├── LogicalFilter.tsx │ │ │ │ ├── MemberLabel.tsx │ │ │ │ ├── MemberLabelText.tsx │ │ │ │ ├── MemberSection.tsx │ │ │ │ ├── OutdatedLabel.tsx │ │ │ │ ├── PreAggregationAlerts.tsx │ │ │ │ ├── ReorderableList.tsx │ │ │ │ ├── ScrollableArea.tsx │ │ │ │ ├── ScrollableCodeContainer.tsx │ │ │ │ ├── SegmentFilter.tsx │ │ │ │ ├── SidePanelCubeItem.tsx │ │ │ │ ├── TabPaneWithToolbar.tsx │ │ │ │ ├── Tabs │ │ │ │ │ ├── Tabs.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TimeDateRangeSelector.tsx │ │ │ │ ├── TimeDateSelector.tsx │ │ │ │ ├── TimeListMember.tsx │ │ │ │ └── ValuesInput.tsx │ │ │ ├── context.tsx │ │ │ ├── hooks │ │ │ │ ├── auto-size.ts │ │ │ │ ├── debounced-callback.ts │ │ │ │ ├── debounced-state.ts │ │ │ │ ├── debounced-value.ts │ │ │ │ ├── deep-dependencies.ts │ │ │ │ ├── deep-memo.ts │ │ │ │ ├── dimension-values.tsx │ │ │ │ ├── event.ts │ │ │ │ ├── filtered-cubes.ts │ │ │ │ ├── filtered-members.ts │ │ │ │ ├── has-overflow.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── interval-effect.ts │ │ │ │ ├── is-first-render.ts │ │ │ │ ├── local-storage.ts │ │ │ │ ├── outside-focus.ts │ │ │ │ ├── previous.ts │ │ │ │ ├── query-builder.ts │ │ │ │ ├── raw-filter.ts │ │ │ │ ├── server-core-version-gte.ts │ │ │ │ ├── shown-member-name.ts │ │ │ │ ├── stored-timezones.ts │ │ │ │ ├── sync-ref.ts │ │ │ │ ├── uniq-id.ts │ │ │ │ ├── unmount-effect.ts │ │ │ │ └── window-size.ts │ │ │ ├── icons │ │ │ │ ├── ChevronIcon.tsx │ │ │ │ ├── Icon.tsx │ │ │ │ ├── ItemInfoIcon.tsx │ │ │ │ ├── NonPublicIcon.tsx │ │ │ │ ├── PrimaryKeyIcon.tsx │ │ │ │ └── timestamp.svg │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── are-queries-equal.tsx │ │ │ │ ├── capitalize.ts │ │ │ │ ├── chart-colors.ts │ │ │ │ ├── contains.ts │ │ │ │ ├── cube-sql-converter.ts │ │ │ │ ├── format-date-by-granularity.tsx │ │ │ │ ├── formatters.ts │ │ │ │ ├── get-member-search-name.ts │ │ │ │ ├── get-query-hash.tsx │ │ │ │ ├── get-type-icon.tsx │ │ │ │ ├── get-used-cubes-and-members.ts │ │ │ │ ├── graphql-converters.ts │ │ │ │ ├── index.ts │ │ │ │ ├── labels.ts │ │ │ │ ├── loadable.ts │ │ │ │ ├── move-pivot-config.ts │ │ │ │ ├── prepare-query.tsx │ │ │ │ ├── query-helpers.tsx │ │ │ │ ├── timezones.js │ │ │ │ ├── titleize.ts │ │ │ │ ├── uncapitalize.ts │ │ │ │ ├── uniq-array.ts │ │ │ │ ├── use-commit-press.ts │ │ │ │ ├── use-is-first-render.tsx │ │ │ │ └── validate-query.ts │ │ │ └── values.ts │ │ ├── __tests__ │ │ │ ├── __snapshots__ │ │ │ │ └── cube-graphql-converter.test.ts.snap │ │ │ └── cube-graphql-converter.test.ts │ │ ├── atoms │ │ │ ├── Alert.tsx │ │ │ ├── Button.tsx │ │ │ ├── Card.tsx │ │ │ ├── CodeSnippet.tsx │ │ │ ├── CubeLoader.tsx │ │ │ ├── Popover.tsx │ │ │ └── index.tsx │ │ ├── base-types.d.ts │ │ ├── cloud │ │ │ ├── CloudProvider.tsx │ │ │ └── index.ts │ │ ├── components │ │ │ ├── AppContext.tsx │ │ │ ├── CachePane.tsx │ │ │ ├── ChartRenderer │ │ │ │ └── ChartRenderer.tsx │ │ │ ├── CopiableInput.tsx │ │ │ ├── DrilldownModal │ │ │ │ ├── DrilldownModal.tsx │ │ │ │ └── TableQueryRenderer.tsx │ │ │ ├── Error │ │ │ │ ├── FatalError.tsx │ │ │ │ └── utils.ts │ │ │ ├── GlobalStyles.tsx │ │ │ ├── GraphQL │ │ │ │ ├── CubeGraphQLConverter.ts │ │ │ │ └── GraphiQLSandbox.tsx │ │ │ ├── Header │ │ │ │ ├── Header.tsx │ │ │ │ ├── Menu.tsx │ │ │ │ └── RunOnCubeCloud.tsx │ │ │ ├── Input.tsx │ │ │ ├── LivePreviewContext │ │ │ │ ├── LivePreviewBar.tsx │ │ │ │ └── LivePreviewContextProvider.tsx │ │ │ ├── Menu.tsx │ │ │ ├── Order │ │ │ │ ├── DraggableItem.tsx │ │ │ │ └── OrderGroup.tsx │ │ │ ├── Pivot │ │ │ │ ├── Axes.tsx │ │ │ │ ├── DroppableArea.tsx │ │ │ │ ├── Item.tsx │ │ │ │ └── Options.tsx │ │ │ ├── PlaygroundQueryBuilder │ │ │ │ ├── QueryBuilderContainer.tsx │ │ │ │ └── components │ │ │ │ │ ├── PlaygroundQueryBuilder.tsx │ │ │ │ │ ├── PreAggregationStatus.tsx │ │ │ │ │ └── index.ts │ │ │ ├── QueryTabs │ │ │ │ ├── ChartRendererStateProvider.tsx │ │ │ │ └── QueryTabs.tsx │ │ │ ├── SectionHeader.tsx │ │ │ ├── SectionRow.tsx │ │ │ ├── SecurityContext │ │ │ │ ├── SecurityContext.tsx │ │ │ │ └── SecurityContextProvider.tsx │ │ │ ├── Select.tsx │ │ │ ├── Settings │ │ │ │ └── Settings.tsx │ │ │ ├── SqlQueryTab.tsx │ │ │ ├── Tabs.tsx │ │ │ ├── Tree.tsx │ │ │ ├── Vizard │ │ │ │ └── Vizard.tsx │ │ │ └── index.tsx │ │ ├── events.ts │ │ ├── grid │ │ │ ├── Box.tsx │ │ │ ├── Flex.tsx │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── app-context.ts │ │ │ ├── cubejs-api.ts │ │ │ ├── deep-compare-memoize.ts │ │ │ ├── deep-dependencies.ts │ │ │ ├── deep-effect.ts │ │ │ ├── deep-memo.ts │ │ │ ├── identifier.ts │ │ │ ├── index.ts │ │ │ ├── is-mounted.ts │ │ │ ├── live-preview-context.ts │ │ │ ├── local-storage.ts │ │ │ ├── security-context.ts │ │ │ ├── server-core-version.ts │ │ │ ├── setter.ts │ │ │ ├── toggle.ts │ │ │ └── window-size.tsx │ │ ├── img │ │ │ ├── bi │ │ │ │ ├── deepnote.svg │ │ │ │ ├── excel.svg │ │ │ │ ├── google-data-studio.svg │ │ │ │ ├── google-sheets.svg │ │ │ │ ├── hex.svg │ │ │ │ ├── hightouch.svg │ │ │ │ ├── jupyter.svg │ │ │ │ ├── metabase.svg │ │ │ │ ├── observable.svg │ │ │ │ ├── postgresql.svg │ │ │ │ ├── power-bi.svg │ │ │ │ ├── streamlit.svg │ │ │ │ ├── superset.svg │ │ │ │ ├── tableau.svg │ │ │ │ └── thoughtspot.svg │ │ │ ├── db │ │ │ │ ├── athena.svg │ │ │ │ ├── bigquery.svg │ │ │ │ ├── clickhouse.svg │ │ │ │ ├── crate.svg │ │ │ │ ├── databricks.svg │ │ │ │ ├── druid.svg │ │ │ │ ├── firebolt.svg │ │ │ │ ├── hive.svg │ │ │ │ ├── ksqldb.svg │ │ │ │ ├── materialize.svg │ │ │ │ ├── mongodb.svg │ │ │ │ ├── mssql.svg │ │ │ │ ├── mysql.svg │ │ │ │ ├── oracle.svg │ │ │ │ ├── postgres.svg │ │ │ │ ├── presto.svg │ │ │ │ ├── questdb.svg │ │ │ │ ├── redshift.svg │ │ │ │ ├── snowflake.svg │ │ │ │ └── trino.svg │ │ │ └── semantic-layer.svg │ │ ├── index.tsx │ │ ├── loadable.tsx │ │ ├── pages │ │ │ ├── ConnectToBI │ │ │ │ └── ConnectToBiPage.tsx │ │ │ ├── ConnectionWizard │ │ │ │ ├── ConnectionWizardPage.tsx │ │ │ │ └── components │ │ │ │ │ ├── Base64Upload.tsx │ │ │ │ │ ├── ConnectionTest.tsx │ │ │ │ │ ├── DatabaseCard.tsx │ │ │ │ │ ├── DatabaseForm.tsx │ │ │ │ │ └── LocalhostTipBox.tsx │ │ │ ├── Explore │ │ │ │ └── ExplorePage.tsx │ │ │ ├── FrontendIntegrations │ │ │ │ └── FrontendIntegrationsPage.tsx │ │ │ ├── Index │ │ │ │ └── IndexPage.tsx │ │ │ ├── Schema │ │ │ │ └── SchemaPage.tsx │ │ │ ├── components │ │ │ │ └── Ui.tsx │ │ │ └── index.tsx │ │ ├── playground │ │ │ ├── components │ │ │ │ ├── PlaygroundWrapper.tsx │ │ │ │ └── QueryBuilder.tsx │ │ │ ├── index.less │ │ │ └── index.ts │ │ ├── react-app-env.d.ts │ │ ├── rollup-designer │ │ │ ├── Context.tsx │ │ │ ├── RollupDesigner.tsx │ │ │ ├── components │ │ │ │ ├── Cubes.tsx │ │ │ │ ├── MemberTag.tsx │ │ │ │ ├── Members.tsx │ │ │ │ ├── RollupDesignerModal.tsx │ │ │ │ ├── Settings.tsx │ │ │ │ ├── TimeDimension.tsx │ │ │ │ └── cube-member-search.ts │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ ├── shared │ │ │ ├── env-vars-db-map.tsx │ │ │ ├── helpers.ts │ │ │ ├── icons │ │ │ │ ├── CubejsIcon.tsx │ │ │ │ ├── GraphQLIcon.tsx │ │ │ │ └── LightningIcon.tsx │ │ │ ├── members.ts │ │ │ ├── request.ts │ │ │ ├── svg.d.ts │ │ │ └── time-zones.ts │ │ ├── theme.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ └── variables.ts │ ├── tsconfig.json │ ├── variables-esm.js │ ├── variables.js │ ├── vite.config.ts │ ├── vitest.config.ts │ └── vizard │ │ ├── .env.example │ │ ├── .eslintrc │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .nvmrc │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── apps │ │ ├── react-typescript-antd-table │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── App.tsx │ │ │ │ ├── ChartViewer.tsx │ │ │ │ ├── QueryRenderer.tsx │ │ │ │ ├── config.ts │ │ │ │ ├── index.css │ │ │ │ ├── main.tsx │ │ │ │ ├── types.ts │ │ │ │ └── vite-env.d.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ ├── vite.config.ts │ │ │ └── yarn.lock │ │ └── react-typescript-chartjs-area+bar+doughnut+line+pie │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── App.tsx │ │ │ ├── ChartViewer.tsx │ │ │ ├── QueryRenderer.tsx │ │ │ ├── config.ts │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── types.ts │ │ │ └── vite-env.d.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ ├── vite.config.ts │ │ │ └── yarn.lock │ │ ├── build-apps.js │ │ ├── convert-apps.js │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── Inter-Bold.woff │ │ │ ├── Inter-Bold.woff2 │ │ │ ├── Inter-Medium.woff │ │ │ ├── Inter-Medium.woff2 │ │ │ ├── Inter-Regular.woff │ │ │ ├── Inter-Regular.woff2 │ │ │ ├── Inter-SemiBold.woff │ │ │ ├── Inter-SemiBold.woff2 │ │ │ ├── JetBrainsMono-Bold.woff │ │ │ ├── JetBrainsMono-Bold.woff2 │ │ │ ├── JetBrainsMono-Medium.woff │ │ │ ├── JetBrainsMono-Medium.woff2 │ │ │ ├── JetBrainsMono-Regular.woff │ │ │ ├── JetBrainsMono-Regular.woff2 │ │ │ ├── SourceCodePro-Regular.woff │ │ │ ├── SourceCodePro-Regular.woff2 │ │ │ ├── text-security-disc.woff │ │ │ └── text-security-disc.woff2 │ │ └── logos │ │ │ ├── angular.svg │ │ │ ├── js.svg │ │ │ ├── react.svg │ │ │ ├── svelte.svg │ │ │ ├── ts.svg │ │ │ └── vue.svg │ │ ├── src │ │ ├── CodeViewer.tsx │ │ ├── Editor.tsx │ │ ├── Preview.tsx │ │ ├── Setup.tsx │ │ ├── Vizard.tsx │ │ ├── app-files.ts │ │ ├── app-name.ts │ │ ├── app-options.js │ │ ├── assets │ │ │ └── react.svg │ │ ├── components │ │ │ └── Tabs.tsx │ │ ├── helpers.ts │ │ ├── hooks │ │ │ ├── event.ts │ │ │ ├── index.ts │ │ │ ├── sync-ref.ts │ │ │ └── window-size.ts │ │ ├── icons │ │ │ └── CloseIcon.tsx │ │ ├── index.css │ │ ├── main.tsx │ │ ├── monaco │ │ │ ├── config.ts │ │ │ ├── index.ts │ │ │ ├── setup-monaco.ts │ │ │ ├── setup-workers.ts │ │ │ └── workers │ │ │ │ ├── css.worker.ts │ │ │ │ ├── editor.worker.ts │ │ │ │ ├── json.worker.ts │ │ │ │ ├── ts.worker.ts │ │ │ │ └── yaml.worker.ts │ │ ├── options.tsx │ │ ├── types.ts │ │ ├── utils │ │ │ └── download-file.ts │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ └── yarn.lock ├── cubejs-postgres-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── PostgresDriver.ts │ │ ├── QueryStream.ts │ │ └── index.ts │ ├── test │ │ └── PostgresDriver.test.ts │ └── tsconfig.json ├── cubejs-prestodb-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ └── catalog │ │ │ └── postgresql.properties │ ├── docker-compose.yml │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── PrestoDriver.ts │ │ └── index.ts │ ├── test │ │ └── presto-driver.test.ts │ └── tsconfig.json ├── cubejs-query-orchestrator │ ├── .gitignore │ ├── CHANGELOG.md │ ├── DEVELOPMENT.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── orchestrator │ │ │ ├── BaseQueueDriver.ts │ │ │ ├── BaseQueueEventsBus.ts │ │ │ ├── ContinueWaitError.ts │ │ │ ├── DriverFactory.ts │ │ │ ├── LocalCacheDriver.ts │ │ │ ├── LocalQueueDriver.js │ │ │ ├── LocalQueueEventsBus.ts │ │ │ ├── PreAggregationLoadCache.ts │ │ │ ├── PreAggregationLoader.ts │ │ │ ├── PreAggregationPartitionRangeLoader.ts │ │ │ ├── PreAggregations.ts │ │ │ ├── QueryCache.ts │ │ │ ├── QueryOrchestrator.ts │ │ │ ├── QueryQueue.js │ │ │ ├── QueryStream.ts │ │ │ ├── StreamObjectsCounter.ts │ │ │ ├── TimeoutError.ts │ │ │ ├── index.ts │ │ │ └── utils.ts │ ├── test │ │ ├── benchmarks │ │ │ ├── QueueBench.abstract.ts │ │ │ ├── QueueCubestore.bench.ts │ │ │ └── QueueMemory.bench.ts │ │ ├── integration │ │ │ └── cubestore │ │ │ │ ├── QueryCacheCubestore.test.ts │ │ │ │ └── QueryQueueCubestore.test.ts │ │ └── unit │ │ │ ├── PreAggregations.test.js │ │ │ ├── QueryCache.abstract.ts │ │ │ ├── QueryCache.test.ts │ │ │ ├── QueryOrchestrator.test.js │ │ │ ├── QueryQueue.abstract.ts │ │ │ └── QueryQueue.test.ts │ └── tsconfig.json ├── cubejs-questdb-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── QuestDriver.ts │ │ ├── QuestQuery.ts │ │ └── index.ts │ ├── test │ │ ├── QuestDriver.test.ts │ │ └── QuestQuery.test.ts │ └── tsconfig.json ├── cubejs-redshift-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── RedshiftDriver.ts │ │ └── index.ts │ └── tsconfig.json ├── cubejs-schema-compiler │ ├── .eslintignore │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── adapter │ │ │ ├── AWSElasticSearchQuery.ts │ │ │ ├── BaseDimension.ts │ │ │ ├── BaseFilter.ts │ │ │ ├── BaseGroupFilter.ts │ │ │ ├── BaseMeasure.ts │ │ │ ├── BaseQuery.js │ │ │ ├── BaseSegment.ts │ │ │ ├── BaseTimeDimension.ts │ │ │ ├── BigqueryQuery.ts │ │ │ ├── ClickHouseQuery.ts │ │ │ ├── CrateQuery.ts │ │ │ ├── CubeStoreQuery.ts │ │ │ ├── ElasticSearchQuery.ts │ │ │ ├── Granularity.ts │ │ │ ├── HiveQuery.ts │ │ │ ├── MongoBiQuery.ts │ │ │ ├── MssqlQuery.ts │ │ │ ├── MysqlQuery.ts │ │ │ ├── OracleQuery.ts │ │ │ ├── ParamAllocator.ts │ │ │ ├── PostgresQuery.ts │ │ │ ├── PreAggregations.ts │ │ │ ├── PrestodbQuery.ts │ │ │ ├── QueryBuilder.ts │ │ │ ├── QueryCache.ts │ │ │ ├── QueryFactory.ts │ │ │ ├── RedshiftQuery.ts │ │ │ ├── SnowflakeQuery.ts │ │ │ ├── SqliteQuery.ts │ │ │ ├── VerticaQuery.ts │ │ │ └── index.ts │ │ ├── compiler │ │ │ ├── CompileError.ts │ │ │ ├── CompilerCache.ts │ │ │ ├── ContextEvaluator.js │ │ │ ├── CubeDictionary.js │ │ │ ├── CubeEvaluator.ts │ │ │ ├── CubeSymbols.ts │ │ │ ├── CubeToMetaTransformer.js │ │ │ ├── CubeValidator.ts │ │ │ ├── DataSchemaCompiler.ts │ │ │ ├── DynamicReference.ts │ │ │ ├── ErrorReporter.ts │ │ │ ├── JoinGraph.js │ │ │ ├── PrepareCompiler.ts │ │ │ ├── UserError.ts │ │ │ ├── ViewCompilationGate.ts │ │ │ ├── YamlCompiler.ts │ │ │ ├── converters │ │ │ │ ├── CubePreAggregationConverter.ts │ │ │ │ ├── CubeSchemaConverter.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── transpilers │ │ │ │ ├── CubeCheckDuplicatePropTranspiler.ts │ │ │ │ ├── CubePropContextTranspiler.ts │ │ │ │ ├── ImportExportTranspiler.ts │ │ │ │ ├── LightweightNodeCubeDictionary.ts │ │ │ │ ├── LightweightSymbolResolver.ts │ │ │ │ ├── ValidationTranspiler.ts │ │ │ │ ├── index.ts │ │ │ │ ├── transpiler.interface.ts │ │ │ │ └── transpiler_worker.ts │ │ │ └── utils.ts │ │ ├── extensions │ │ │ ├── Funnels.ts │ │ │ ├── Reflection.ts │ │ │ ├── RefreshKeys.ts │ │ │ ├── extension.abstract.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── parser │ │ │ ├── GenericSql.g4 │ │ │ ├── GenericSql.interp │ │ │ ├── GenericSql.tokens │ │ │ ├── GenericSqlLexer.interp │ │ │ ├── GenericSqlLexer.tokens │ │ │ ├── GenericSqlLexer.ts │ │ │ ├── GenericSqlListener.ts │ │ │ ├── GenericSqlParser.ts │ │ │ ├── GenericSqlVisitor.ts │ │ │ ├── Python3Lexer.g4 │ │ │ ├── Python3Lexer.interp │ │ │ ├── Python3Lexer.tokens │ │ │ ├── Python3Lexer.ts │ │ │ ├── Python3Parser.g4 │ │ │ ├── Python3Parser.interp │ │ │ ├── Python3Parser.tokens │ │ │ ├── Python3Parser.ts │ │ │ ├── Python3ParserListener.ts │ │ │ ├── Python3ParserVisitor.ts │ │ │ ├── PythonParser.ts │ │ │ └── SqlParser.ts │ │ └── scaffolding │ │ │ ├── ScaffoldingSchema.ts │ │ │ ├── ScaffoldingTemplate.ts │ │ │ ├── descriptors │ │ │ ├── MemberReference.ts │ │ │ └── ValueWithComments.ts │ │ │ ├── formatters │ │ │ ├── BaseSchemaFormatter.ts │ │ │ ├── JavaScriptSchemaFormatter.ts │ │ │ ├── YamlSchemaFormatter.ts │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── utils.ts │ ├── test │ │ ├── global-setup.ts │ │ ├── integration │ │ │ ├── clickhouse │ │ │ │ ├── ClickHouseDbRunner.ts │ │ │ │ ├── clickhouse-dataschema-compiler.test.ts │ │ │ │ ├── clickhouse-graph-builder.test.ts │ │ │ │ ├── complex-joins.test.ts │ │ │ │ └── custom-granularities.test.ts │ │ │ ├── mssql │ │ │ │ ├── MSSqlDbRunner.js │ │ │ │ ├── custom-granularities.test.ts │ │ │ │ ├── mssql-cumulative-measures.test.ts │ │ │ │ ├── mssql-pre-aggregations.test.ts │ │ │ │ └── mssql-ungrouped.test.ts │ │ │ ├── mysql │ │ │ │ ├── MySqlDbRunner.js │ │ │ │ ├── custom-granularities.test.ts │ │ │ │ └── mysql-pre-aggregations.test.ts │ │ │ ├── postgres │ │ │ │ ├── PostgresDBRunner.js │ │ │ │ ├── async-module.test.ts │ │ │ │ ├── calendars.test.ts │ │ │ │ ├── cube-views.test.ts │ │ │ │ ├── custom-granularities.test.ts │ │ │ │ ├── dataschema-compiler.test.ts │ │ │ │ ├── member-expression.test.ts │ │ │ │ ├── member-expressions-on-views.test.ts │ │ │ │ ├── multi-fact-join.test.ts │ │ │ │ ├── multi-stage.test.ts │ │ │ │ ├── multiple-join-paths.test.ts │ │ │ │ ├── pre-agg-allow-non-strict.test.ts │ │ │ │ ├── pre-aggregation-utils.ts │ │ │ │ ├── pre-aggregations-alias.test.ts │ │ │ │ ├── pre-aggregations-multi-stage.test.ts │ │ │ │ ├── pre-aggregations-time.test.ts │ │ │ │ ├── pre-aggregations.test.ts │ │ │ │ ├── sql-generation-logic.test.ts │ │ │ │ ├── sql-generation.test.ts │ │ │ │ ├── sub-query-dimensions.test.ts │ │ │ │ ├── view-deduplication.test.ts │ │ │ │ ├── views-join-order-2.test.ts │ │ │ │ ├── views-join-order.test.ts │ │ │ │ ├── views.test.ts │ │ │ │ └── yaml-compiler.test.ts │ │ │ └── utils │ │ │ │ └── BaseDbRunner.ts │ │ ├── snapshotResolver.js │ │ └── unit │ │ │ ├── PrepareCompiler.ts │ │ │ ├── TestHelperForImport.js │ │ │ ├── TestUtil.js │ │ │ ├── __snapshots__ │ │ │ ├── cube-schema-converter.test.ts.snap │ │ │ ├── scaffolding-template.test.ts.snap │ │ │ ├── schema.test.ts.snap │ │ │ └── views.test.ts.snap │ │ │ ├── base-query.test.ts │ │ │ ├── cube-schema-converter.test.ts │ │ │ ├── cube-validator.test.ts │ │ │ ├── extensions.test.ts │ │ │ ├── fixtures │ │ │ ├── calendar_orders.yml │ │ │ ├── custom_calendar.js │ │ │ ├── custom_calendar.yml │ │ │ ├── folders.yml │ │ │ ├── folders_invalid_path.yml │ │ │ ├── folders_non_exist.yml │ │ │ ├── hierarchies-extended-cubes.yml │ │ │ ├── hierarchies.yml │ │ │ ├── hierarchy-with-measure.yml │ │ │ ├── invalid_cubes.yaml │ │ │ ├── line_items.yml │ │ │ ├── order_users.yml │ │ │ ├── orders.js │ │ │ ├── orders_and_items_multiplied_pre_agg.yml │ │ │ ├── orders_big.js │ │ │ ├── orders_big.yml │ │ │ ├── orders_dup_members.js │ │ │ ├── orders_ext.js │ │ │ ├── orders_ext.yml │ │ │ ├── orders_incorrect_acl.yml │ │ │ ├── orders_nonexist_acl.yml │ │ │ ├── validate_preaggs.js │ │ │ └── validate_preaggs.yml │ │ │ ├── folders.test.ts │ │ │ ├── hierarchies.test.ts │ │ │ ├── mongobi-query.test.ts │ │ │ ├── mssql-query.test.ts │ │ │ ├── postgres-query.test.ts │ │ │ ├── pre-agg-by-filter-match.test.ts │ │ │ ├── pre-agg-time-dim-match.test.ts │ │ │ ├── pre-aggregations.test.ts │ │ │ ├── scaffolding-schema.test.ts │ │ │ ├── scaffolding-template.test.ts │ │ │ ├── schema.test.ts │ │ │ ├── sql-parser.test.ts │ │ │ ├── transpile-speed.test.ts │ │ │ ├── transpilers.test.ts │ │ │ ├── utils.test.ts │ │ │ ├── utils.ts │ │ │ ├── views.test.ts │ │ │ └── yaml-schema.test.ts │ └── tsconfig.json ├── cubejs-server-core │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── core │ │ │ ├── CompilerApi.js │ │ │ ├── DevServer.ts │ │ │ ├── DriverDependencies.js │ │ │ ├── DriverResolvers.ts │ │ │ ├── OptsHandler.ts │ │ │ ├── OrchestratorApi.ts │ │ │ ├── OrchestratorStorage.ts │ │ │ ├── RefreshScheduler.ts │ │ │ ├── agentCollect.ts │ │ │ ├── logger.js │ │ │ ├── optionsValidate.ts │ │ │ ├── server.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ └── index.ts │ ├── test │ │ ├── setup.ts │ │ └── unit │ │ │ ├── OptsHandler.test.ts │ │ │ ├── RefreshScheduler.test.ts │ │ │ └── index.test.ts │ └── tsconfig.json ├── cubejs-server │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── dev-server │ │ └── server │ ├── command │ │ ├── README.md │ │ ├── dev-server.ts │ │ └── server.ts │ ├── examples │ │ ├── simple-mysql │ │ │ └── package.json │ │ └── simple-postgres │ │ │ └── package.json │ ├── index.js │ ├── jest.config.js │ ├── package.json │ ├── scripts │ │ └── test.js │ ├── src │ │ ├── bin │ │ │ ├── dev-server.ts │ │ │ └── server.ts │ │ ├── command │ │ │ ├── dev-server.ts │ │ │ └── server.ts │ │ ├── graceful-middleware.ts │ │ ├── index.ts │ │ ├── server-status.ts │ │ ├── server.ts │ │ ├── server │ │ │ ├── container.ts │ │ │ ├── diagnostic-host.ts │ │ │ ├── gracefull-http.ts │ │ │ ├── typescript-compiler.ts │ │ │ └── utils.ts │ │ └── websocket-server.ts │ ├── test │ │ ├── __mocks__ │ │ │ ├── http.js │ │ │ └── server-core.js │ │ └── index.test.js │ └── tsconfig.json ├── cubejs-snowflake-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── src │ │ ├── HydrationStream.ts │ │ ├── SnowflakeDriver.ts │ │ └── index.ts │ └── tsconfig.json ├── cubejs-sqlite-driver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── driver │ │ ├── SqliteDriver.js │ │ └── index.d.ts │ └── package.json ├── cubejs-templates │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── AppContainer.ts │ │ ├── DependencyTree.ts │ │ ├── DevPackageFetcher.ts │ │ ├── PackageFetcher.ts │ │ ├── SourceContainer.ts │ │ ├── index.ts │ │ └── utils.ts │ └── tsconfig.json ├── cubejs-testing-drivers │ ├── .gitignore │ ├── .integration │ │ └── _PreAggregationLoader.test.ts_ │ ├── CHANGELOG.md │ ├── LICENSE │ ├── fixtures │ │ ├── _cube.js │ │ ├── _package.json │ │ ├── _schemas.json │ │ ├── athena.json │ │ ├── bigquery.json │ │ ├── clickhouse.json │ │ ├── databricks-jdbc.json │ │ ├── mssql.json │ │ ├── mysql.json │ │ ├── postgres.json │ │ ├── redshift.json │ │ └── snowflake.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── dataset.ts │ │ ├── helpers │ │ │ ├── buildCube.ts │ │ │ ├── buildPreaggs.ts │ │ │ ├── getComposePath.ts │ │ │ ├── getCore.ts │ │ │ ├── getCreateQueries.ts │ │ │ ├── getCubeJsPath.ts │ │ │ ├── getDriver.ts │ │ │ ├── getFixtures.ts │ │ │ ├── getPackageJsonPath.ts │ │ │ ├── getSchemaPath.ts │ │ │ ├── getSelectQueries.ts │ │ │ ├── getTempPath.ts │ │ │ ├── index.ts │ │ │ ├── patchDriver.ts │ │ │ └── runEnvironment.ts │ │ ├── index.ts │ │ ├── tests │ │ │ ├── testConnection.ts │ │ │ ├── testExternalSchemas.ts │ │ │ ├── testIncrementalSchemaLoading.ts │ │ │ ├── testQueries.ts │ │ │ └── testSequence.ts │ │ └── types │ │ │ ├── Cast.ts │ │ │ ├── CubejsServerCoreExposed.ts │ │ │ ├── Environment.ts │ │ │ ├── Fixture.ts │ │ │ └── PatchedDriver.ts │ ├── test │ │ ├── __snapshots__ │ │ │ ├── athena-core.test.ts.snap │ │ │ ├── athena-driver.test.ts.snap │ │ │ ├── athena-export-bucket-s3-full.test.ts.snap │ │ │ ├── bigquery-core.test.ts.snap │ │ │ ├── bigquery-driver.test.ts.snap │ │ │ ├── bigquery-export-bucket-gcs-full.test.ts.snap │ │ │ ├── clickhouse-core.test.ts.snap │ │ │ ├── clickhouse-driver.test.ts.snap │ │ │ ├── clickhouse-export-bucket-s3-full.test.ts.snap │ │ │ ├── clickhouse-export-bucket-s3-prefix-full.test.ts.snap │ │ │ ├── clickhouse-full.test.ts.snap │ │ │ ├── databricks-jdbc-core.test.ts.snap │ │ │ ├── databricks-jdbc-driver.test.ts.snap │ │ │ ├── databricks-jdbc-export-bucket-azure-full.test.ts.snap │ │ │ ├── databricks-jdbc-export-bucket-azure-prefix-full.test.ts.snap │ │ │ ├── databricks-jdbc-export-bucket-gcs-full.test.ts.snap │ │ │ ├── databricks-jdbc-export-bucket-gcs-prefix-full.test.ts.snap │ │ │ ├── databricks-jdbc-export-bucket-s3-full.test.ts.snap │ │ │ ├── databricks-jdbc-export-bucket-s3-prefix-full.test.ts.snap │ │ │ ├── databricks-jdbc-full.test.ts.snap │ │ │ ├── mssql-core.test.ts.snap │ │ │ ├── mssql-driver.test.ts.snap │ │ │ ├── mssql-full.test.ts.snap │ │ │ ├── mysql-core.test.ts.snap │ │ │ ├── mysql-driver.test.ts.snap │ │ │ ├── mysql-full.test.ts.snap │ │ │ ├── postgres-core.test.ts.snap │ │ │ ├── postgres-driver.test.ts.snap │ │ │ ├── postgres-full.test.ts.snap │ │ │ ├── redshift-export-bucket-s3-full.test.ts.snap │ │ │ ├── redshift-full.test.ts.snap │ │ │ ├── snowflake-driver.test.ts.snap │ │ │ ├── snowflake-encrypted-pk-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-azure-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-azure-prefix-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-azure-via-storage-integration-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-gcs-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-gcs-prefix-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-s3-full.test.ts.snap │ │ │ ├── snowflake-export-bucket-s3-prefix-full.test.ts.snap │ │ │ └── snowflake-full.test.ts.snap │ │ ├── athena-core.test.ts │ │ ├── athena-driver.test.ts │ │ ├── athena-export-bucket-s3-full.test.ts │ │ ├── bigquery-core.test.ts │ │ ├── bigquery-driver.test.ts │ │ ├── bigquery-export-bucket-gcs-full.test.ts │ │ ├── buildCubeImage.ts │ │ ├── clickhouse-core.test.ts │ │ ├── clickhouse-driver.test.ts │ │ ├── clickhouse-export-bucket-s3-full.test.ts │ │ ├── clickhouse-export-bucket-s3-prefix-full.test.ts │ │ ├── clickhouse-full.test.ts │ │ ├── databricks-jdbc-core.test.ts │ │ ├── databricks-jdbc-driver.test.ts │ │ ├── databricks-jdbc-export-bucket-azure-full.test.ts │ │ ├── databricks-jdbc-export-bucket-azure-prefix-full.test.ts │ │ ├── databricks-jdbc-export-bucket-gcs-full.test.ts │ │ ├── databricks-jdbc-export-bucket-gcs-prefix-full.test.ts │ │ ├── databricks-jdbc-export-bucket-s3-full.test.ts │ │ ├── databricks-jdbc-export-bucket-s3-prefix-full.test.ts │ │ ├── databricks-jdbc-full.test.ts │ │ ├── mssql-core.test.ts │ │ ├── mssql-driver.test.ts │ │ ├── mssql-full.test.ts │ │ ├── mysql-core.test.ts │ │ ├── mysql-driver.test.ts │ │ ├── mysql-full.test.ts │ │ ├── postgres-core.test.ts │ │ ├── postgres-driver.test.ts │ │ ├── postgres-full.test.ts │ │ ├── redshift-core.test.ts │ │ ├── redshift-driver.test.ts │ │ ├── redshift-export-bucket-s3-full.test.ts │ │ ├── redshift-full.test.ts │ │ ├── snapshotResolver.js │ │ ├── snowflake-core.test.ts │ │ ├── snowflake-driver.test.ts │ │ ├── snowflake-encrypted-pk-full.test.ts │ │ ├── snowflake-export-bucket-azure-full.test.ts │ │ ├── snowflake-export-bucket-azure-prefix-full.test.ts │ │ ├── snowflake-export-bucket-azure-via-storage-integration-full.test.ts │ │ ├── snowflake-export-bucket-gcs-full.test.ts │ │ ├── snowflake-export-bucket-gcs-prefix-full.test.ts │ │ ├── snowflake-export-bucket-s3-full.test.ts │ │ ├── snowflake-export-bucket-s3-prefix-full.test.ts │ │ └── snowflake-full.test.ts │ └── tsconfig.json ├── cubejs-testing-shared │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── DriverTests.ts │ │ ├── db-container-runners │ │ │ ├── clickhouse.ts │ │ │ ├── crate.ts │ │ │ ├── cubestore.ts │ │ │ ├── db-runner.abstract.ts │ │ │ ├── index.ts │ │ │ ├── kafka.ts │ │ │ ├── ksql.ts │ │ │ ├── materialize.ts │ │ │ ├── mssql.ts │ │ │ ├── mysql.ts │ │ │ ├── oracle.ts │ │ │ ├── postgres.ts │ │ │ ├── prestodb.ts │ │ │ ├── questdb.ts │ │ │ ├── trino.ts │ │ │ └── vertica.ts │ │ ├── index.ts │ │ ├── query-test.abstract.ts │ │ └── utils.ts │ └── tsconfig.json ├── cubejs-testing │ ├── .gitignore │ ├── CHANGELOG.md │ ├── DEVELOPMENT.md │ ├── LICENSE │ ├── README.md │ ├── birdbox-fixtures │ │ ├── athena.yml │ │ ├── bigquery.yml │ │ ├── databricks-jdbc.yml │ │ ├── databricks-jdbc │ │ │ └── cube.js │ │ ├── driver-test-data │ │ │ ├── CAST.js │ │ │ ├── Customers.js │ │ │ ├── Customers.sql.js │ │ │ ├── ECommerce.js │ │ │ ├── ECommerce.sql.js │ │ │ ├── HiddenECommerce.js │ │ │ ├── Products.js │ │ │ └── Products.sql.js │ │ ├── duckdb │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── firebolt │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── lambda │ │ │ ├── cube.js │ │ │ └── schema │ │ │ │ ├── Orders.js │ │ │ │ ├── Requests.js │ │ │ │ └── RequestsNonReadOnly.js │ │ ├── materialize.yml │ │ ├── materialize │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── mssql │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── multidb.yml │ │ ├── multidb │ │ │ ├── cube.js │ │ │ └── schema │ │ │ │ ├── Products.js │ │ │ │ └── Suppliers.js │ │ ├── oracle │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── postgresql-cubestore.yml │ │ ├── postgresql.yml │ │ ├── postgresql │ │ │ ├── cube.js │ │ │ ├── cubestore │ │ │ │ └── cube.js │ │ │ ├── dbt-project │ │ │ │ ├── dbt_project.yml │ │ │ │ └── target │ │ │ │ │ └── manifest.json │ │ │ ├── schema │ │ │ │ ├── BigOrders.js │ │ │ │ ├── Dbt.js │ │ │ │ ├── Events.js │ │ │ │ ├── Orders.js │ │ │ │ ├── PreAggregationTest.js │ │ │ │ ├── SecurityContextTest.js │ │ │ │ ├── SegmentTest.js │ │ │ │ └── unusualDataTypes.js │ │ │ ├── scripts │ │ │ │ ├── load-pre-aggregations.sh │ │ │ │ ├── load.sh │ │ │ │ ├── postgres-load-events.sh │ │ │ │ └── pre-aggregations.sql │ │ │ └── single │ │ │ │ ├── cube.js │ │ │ │ └── sqlapi.js │ │ ├── presto │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── prestodb.yml │ │ ├── questdb.yml │ │ ├── questdb │ │ │ ├── schema │ │ │ │ └── Orders.js │ │ │ └── scripts │ │ │ │ └── questdb-load-events.sh │ │ ├── rbac-python │ │ │ ├── cube.py │ │ │ └── model │ │ │ │ ├── cubes │ │ │ │ ├── products.yaml │ │ │ │ └── users.yaml │ │ │ │ └── views │ │ │ │ └── users_view.yaml │ │ ├── rbac │ │ │ ├── cube.js │ │ │ └── model │ │ │ │ ├── cubes │ │ │ │ ├── line_items.js │ │ │ │ ├── orders.js │ │ │ │ ├── orders_open.yaml │ │ │ │ ├── products.yaml │ │ │ │ └── users.yaml │ │ │ │ └── views │ │ │ │ ├── users.js │ │ │ │ └── views.yaml │ │ ├── smoke │ │ │ ├── cube.js │ │ │ └── schema │ │ │ │ ├── Orders.js │ │ │ │ └── OrdersPA.js │ │ ├── snowflake │ │ │ └── schema │ │ │ │ └── Orders.js │ │ ├── vertica.yml │ │ └── vertica │ │ │ └── schema │ │ │ └── Orders.js │ ├── cypress.config.ts │ ├── cypress │ │ ├── e2e │ │ │ ├── chart-renderers.spec.js │ │ │ ├── playground-docker-connection-wizard.spec.js │ │ │ ├── playground-explore.spec.js │ │ │ └── rollup-designer.js │ │ ├── fixtures │ │ │ ├── databases.json │ │ │ └── example.json │ │ ├── global.d.ts │ │ ├── plugins │ │ │ └── index.js │ │ ├── queries.ts │ │ ├── support │ │ │ ├── commands.ts │ │ │ └── e2e.ts │ │ └── tsconfig.json │ ├── jest.config.js │ ├── package.json │ ├── src │ │ ├── REQUIRED_ENV_VARS.ts │ │ ├── birdbox.ts │ │ └── index.ts │ ├── test │ │ ├── __snapshots__ │ │ │ ├── birdbox-postgresql-cubestore.test.ts.snap │ │ │ ├── birdbox-postgresql-pre-aggregations.test.ts.snap │ │ │ ├── birdbox-postgresql.test.ts.snap │ │ │ ├── cli-postgresql-pre-aggregations.test.ts.snap │ │ │ ├── cli-postgresql.test.ts.snap │ │ │ ├── driver-athena.test.ts.snap │ │ │ ├── driver-bigquery.test.ts.snap │ │ │ ├── driver-databricks.test.ts.snap │ │ │ ├── driver-firebolt.test.ts.snap │ │ │ ├── driver-postgres.test.ts.snap │ │ │ ├── driver-vertica.test.ts.snap │ │ │ ├── smoke-athena.test.ts.snap │ │ │ ├── smoke-bigquery.test.ts.snap │ │ │ ├── smoke-crate.test.ts.snap │ │ │ ├── smoke-cubesql.test.ts.snap │ │ │ ├── smoke-duckdb.test.ts.snap │ │ │ ├── smoke-firebolt.test.ts.snap │ │ │ ├── smoke-graceful-shutdown.test.ts.snap │ │ │ ├── smoke-materialize.test.ts.snap │ │ │ ├── smoke-mssql.test.ts.snap │ │ │ ├── smoke-multidb.test.ts.snap │ │ │ ├── smoke-oracle.test.ts.snap │ │ │ ├── smoke-prestodb.test.ts.snap │ │ │ ├── smoke-questdb.test.ts.snap │ │ │ ├── smoke-rbac.test.ts.snap │ │ │ ├── smoke-redshift.test.ts.snap │ │ │ ├── smoke-snowflake.test.ts.snap │ │ │ └── smoke-trino.test.ts.snap │ │ ├── abstract-test-case.ts │ │ ├── bin │ │ │ ├── cypress-birdbox.ts │ │ │ ├── download-dataset.ts │ │ │ ├── manual.sh │ │ │ ├── start-birdbox.ts │ │ │ └── utils.ts │ │ ├── birdbox-postgresql-cubestore.test.ts │ │ ├── birdbox-postgresql-pre-aggregations.test.ts │ │ ├── birdbox-postgresql.test.ts │ │ ├── cli-postgresql-pre-aggregations.test.ts │ │ ├── cli-postgresql.test.ts │ │ ├── driver-athena.test.ts │ │ ├── driver-bigquery.test.ts │ │ ├── driver-cubestore.test.ts │ │ ├── driver-databricks.test.ts │ │ ├── driver-firebolt.test.ts │ │ ├── driver-postgres.test.ts │ │ ├── driver-questdb.test.ts │ │ ├── driver-test-case.ts │ │ ├── driver-test-suite.ts │ │ ├── driver-vertica.test.ts │ │ ├── driverTests │ │ │ ├── driverTest.ts │ │ │ ├── testSets.ts │ │ │ └── tests.ts │ │ ├── pre-aggregations-test-case.ts │ │ ├── rest-postgres.test.ts │ │ ├── rest-test-suite.ts │ │ ├── smoke-athena.test.ts │ │ ├── smoke-bigquery.test.ts │ │ ├── smoke-crate.test.ts │ │ ├── smoke-cubesql.test.ts │ │ ├── smoke-duckdb.test.ts │ │ ├── smoke-firebolt.test.ts │ │ ├── smoke-graceful-shutdown.test.ts │ │ ├── smoke-lambda.test.ts │ │ ├── smoke-materialize.test.ts │ │ ├── smoke-mssql.test.ts │ │ ├── smoke-multidb.test.ts │ │ ├── smoke-oracle.test.ts │ │ ├── smoke-postgres.test.ts │ │ ├── smoke-prestodb.test.ts │ │ ├── smoke-questdb.test.ts │ │ ├── smoke-rbac.test.ts │ │ ├── smoke-redshift.test.ts │ │ ├── smoke-snowflake.test.ts │ │ ├── smoke-tests.ts │ │ ├── smoke-trino.test.ts │ │ ├── smoke-vertica.test.ts │ │ └── snapshotResolver.js │ └── tsconfig.json ├── cubejs-trino-driver │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── index.js │ ├── package.json │ ├── src │ │ ├── TrinoDriver.ts │ │ └── index.ts │ ├── test │ │ └── trino-driver.test.ts │ └── tsconfig.json └── cubejs-vertica-driver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker-compose.yml │ ├── jest.config.js │ ├── package.json │ ├── src │ ├── VerticaDriver.js │ └── VerticaQuery.js │ └── test │ ├── VerticaDriver.test.js │ └── VerticaQuery.test.js ├── rollup.config.js ├── rust ├── cubenativeutils │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── rust-toolchain.toml │ ├── rustfmt.toml │ └── src │ │ ├── lib.rs │ │ └── wrappers │ │ ├── args_holder.rs │ │ ├── context.rs │ │ ├── inner_types.rs │ │ ├── mod.rs │ │ ├── neon │ │ ├── context.rs │ │ ├── inner_types.rs │ │ ├── mod.rs │ │ └── object │ │ │ ├── base_types.rs │ │ │ ├── mod.rs │ │ │ ├── neon_array.rs │ │ │ ├── neon_function.rs │ │ │ └── neon_struct.rs │ │ ├── object.rs │ │ ├── object_handle.rs │ │ ├── object_handler.rs │ │ └── serializer │ │ ├── deserialize.rs │ │ ├── deserializer.rs │ │ ├── error.rs │ │ ├── mod.rs │ │ ├── serialize.rs │ │ └── serializer.rs ├── cubeorchestrator │ ├── .gitignore │ ├── CHANGELOG.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── rust-toolchain.toml │ ├── rustfmt.toml │ └── src │ │ ├── lib.rs │ │ ├── query_message_parser.rs │ │ ├── query_result_transform.rs │ │ └── transport.rs ├── cubeshared │ ├── .gitignore │ ├── CHANGELOG.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── flatbuffers-codegen.sh │ ├── rust-toolchain.toml │ ├── rustfmt.toml │ └── src │ │ ├── codegen │ │ ├── http_message.fbs │ │ ├── http_message_generated.rs │ │ └── mod.rs │ │ └── lib.rs ├── cubesql │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── CHANGELOG.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── DEVELOPMENT.md │ ├── cubeclient │ │ ├── .gitignore │ │ ├── .openapi-generator-ignore │ │ ├── .openapi-generator │ │ │ ├── FILES │ │ │ └── VERSION │ │ ├── Cargo.toml │ │ ├── DEVELOPMENT.md │ │ ├── README.md │ │ └── src │ │ │ ├── apis │ │ │ ├── configuration.rs │ │ │ ├── default_api.rs │ │ │ └── mod.rs │ │ │ ├── lib.rs │ │ │ └── models │ │ │ ├── mod.rs │ │ │ ├── v1_cube_meta.rs │ │ │ ├── v1_cube_meta_dimension.rs │ │ │ ├── v1_cube_meta_dimension_granularity.rs │ │ │ ├── v1_cube_meta_folder.rs │ │ │ ├── v1_cube_meta_hierarchy.rs │ │ │ ├── v1_cube_meta_join.rs │ │ │ ├── v1_cube_meta_measure.rs │ │ │ ├── v1_cube_meta_segment.rs │ │ │ ├── v1_cube_meta_type.rs │ │ │ ├── v1_error.rs │ │ │ ├── v1_load_continue_wait.rs │ │ │ ├── v1_load_request.rs │ │ │ ├── v1_load_request_query.rs │ │ │ ├── v1_load_request_query_filter_base.rs │ │ │ ├── v1_load_request_query_filter_item.rs │ │ │ ├── v1_load_request_query_filter_logical_and.rs │ │ │ ├── v1_load_request_query_filter_logical_or.rs │ │ │ ├── v1_load_request_query_join_subquery.rs │ │ │ ├── v1_load_request_query_time_dimension.rs │ │ │ ├── v1_load_request_query_time_dimension_date_range_filter.rs │ │ │ ├── v1_load_response.rs │ │ │ ├── v1_load_result.rs │ │ │ ├── v1_load_result_annotation.rs │ │ │ └── v1_meta_response.rs │ ├── cubesql │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── benches │ │ │ ├── benchmarks.rs │ │ │ └── large_model.rs │ │ ├── e2e │ │ │ ├── main.rs │ │ │ └── tests │ │ │ │ ├── basic.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── postgres.rs │ │ │ │ ├── snapshots │ │ │ │ ├── e2e__tests__postgres__datepart_quarter.snap │ │ │ │ ├── e2e__tests__postgres__pg_test_types.snap │ │ │ │ ├── e2e__tests__postgres__select_count(asterisk)_count_status_from_orders_group_by_status_order_by_count_desc.snap │ │ │ │ ├── e2e__tests__postgres__system_information_schema.columns.snap │ │ │ │ ├── e2e__tests__postgres__system_information_schema.tables.snap │ │ │ │ ├── e2e__tests__postgres__system_pg_catalog.pg_class.snap │ │ │ │ ├── e2e__tests__postgres__system_pg_catalog.pg_proc.snap │ │ │ │ ├── e2e__tests__postgres__system_pg_catalog.pg_tables.snap │ │ │ │ └── e2e__tests__postgres__system_pg_catalog.pg_type.snap │ │ │ │ └── utils.rs │ │ ├── egraph-debug-template │ │ │ ├── package.json │ │ │ ├── public │ │ │ │ └── index.html │ │ │ ├── src │ │ │ │ └── index.tsx │ │ │ └── tsconfig.json │ │ ├── src │ │ │ ├── bin │ │ │ │ └── cubesqld.rs │ │ │ ├── compile │ │ │ │ ├── builder.rs │ │ │ │ ├── date_parser.rs │ │ │ │ ├── engine │ │ │ │ │ ├── context.rs │ │ │ │ │ ├── context_mysql.rs │ │ │ │ │ ├── context_postgresql.rs │ │ │ │ │ ├── df │ │ │ │ │ │ ├── coerce.rs │ │ │ │ │ │ ├── columar.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── optimizers │ │ │ │ │ │ │ ├── filter_push_down.rs │ │ │ │ │ │ │ ├── filter_split_meta.rs │ │ │ │ │ │ │ ├── limit_push_down.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── snapshots │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__filter_push_down__tests__filter_down_cross_join_right_one_row.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__filter_push_down__tests__filter_down_projection.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__filter_push_down__tests__filter_down_sort.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__filter_push_down__tests__filters_down_aggregate.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__filter_push_down__tests__multiple_filters_down_projections.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__filter_push_down__tests__multiple_filters_down_projections_with_post_processing.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_cross_join_sort_left.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_cross_join_sort_right.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_join_sort_left.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_join_sort_right.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_multiple_projections.snap │ │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_projection.snap │ │ │ │ │ │ │ │ └── cubesql__compile__engine__df__optimizers__sort_push_down__tests__sort_down_sort.snap │ │ │ │ │ │ │ ├── sort_push_down.rs │ │ │ │ │ │ │ └── utils.rs │ │ │ │ │ │ ├── planner.rs │ │ │ │ │ │ ├── scan.rs │ │ │ │ │ │ ├── snapshots │ │ │ │ │ │ │ ├── cubesql__compile__engine__df__wrapper__tests__member_expression_patch_measure.snap │ │ │ │ │ │ │ └── cubesql__compile__engine__df__wrapper__tests__member_expression_sql.snap │ │ │ │ │ │ └── wrapper.rs │ │ │ │ │ ├── information_schema │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── mysql │ │ │ │ │ │ │ ├── collations.rs │ │ │ │ │ │ │ ├── columns.rs │ │ │ │ │ │ │ ├── ext.rs │ │ │ │ │ │ │ ├── key_column_usage.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── processlist.rs │ │ │ │ │ │ │ ├── referential_constraints.rs │ │ │ │ │ │ │ ├── schemata.rs │ │ │ │ │ │ │ ├── statistics.rs │ │ │ │ │ │ │ ├── tables.rs │ │ │ │ │ │ │ └── variables.rs │ │ │ │ │ │ ├── postgres │ │ │ │ │ │ │ ├── character_sets.rs │ │ │ │ │ │ │ ├── columns.rs │ │ │ │ │ │ │ ├── constraint_column_usage.rs │ │ │ │ │ │ │ ├── ext.rs │ │ │ │ │ │ │ ├── key_column_usage.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── pg_am.rs │ │ │ │ │ │ │ ├── pg_attrdef.rs │ │ │ │ │ │ │ ├── pg_attribute.rs │ │ │ │ │ │ │ ├── pg_class.rs │ │ │ │ │ │ │ ├── pg_constraint.rs │ │ │ │ │ │ │ ├── pg_database.rs │ │ │ │ │ │ │ ├── pg_depend.rs │ │ │ │ │ │ │ ├── pg_description.rs │ │ │ │ │ │ │ ├── pg_enum.rs │ │ │ │ │ │ │ ├── pg_extension.rs │ │ │ │ │ │ │ ├── pg_index.rs │ │ │ │ │ │ │ ├── pg_inherits.rs │ │ │ │ │ │ │ ├── pg_matviews.rs │ │ │ │ │ │ │ ├── pg_namespace.rs │ │ │ │ │ │ │ ├── pg_partitioned_table.rs │ │ │ │ │ │ │ ├── pg_prepared_statements.rs │ │ │ │ │ │ │ ├── pg_proc.rs │ │ │ │ │ │ │ ├── pg_range.rs │ │ │ │ │ │ │ ├── pg_roles.rs │ │ │ │ │ │ │ ├── pg_sequence.rs │ │ │ │ │ │ │ ├── pg_settings.rs │ │ │ │ │ │ │ ├── pg_stat_activity.rs │ │ │ │ │ │ │ ├── pg_stat_user_tables.rs │ │ │ │ │ │ │ ├── pg_statio_user_tables.rs │ │ │ │ │ │ │ ├── pg_stats.rs │ │ │ │ │ │ │ ├── pg_tables.rs │ │ │ │ │ │ │ ├── pg_type.rs │ │ │ │ │ │ │ ├── pg_user.rs │ │ │ │ │ │ │ ├── pg_views.rs │ │ │ │ │ │ │ ├── referential_constraints.rs │ │ │ │ │ │ │ ├── role_column_grants.rs │ │ │ │ │ │ │ ├── role_table_grants.rs │ │ │ │ │ │ │ ├── schemata.rs │ │ │ │ │ │ │ ├── sql_implementation_info.rs │ │ │ │ │ │ │ ├── sql_sizing.rs │ │ │ │ │ │ │ ├── table_constraints.rs │ │ │ │ │ │ │ ├── tables.rs │ │ │ │ │ │ │ ├── testing_blocking.rs │ │ │ │ │ │ │ ├── testing_dataset.rs │ │ │ │ │ │ │ └── views.rs │ │ │ │ │ │ ├── redshift │ │ │ │ │ │ │ ├── late_binding_view_unpacked.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── pg_external_schema.rs │ │ │ │ │ │ │ ├── stl_ddltext.rs │ │ │ │ │ │ │ ├── stl_query.rs │ │ │ │ │ │ │ ├── stl_querytext.rs │ │ │ │ │ │ │ ├── stv_slices.rs │ │ │ │ │ │ │ ├── svv_external_schemas.rs │ │ │ │ │ │ │ ├── svv_table_info.rs │ │ │ │ │ │ │ └── svv_tables.rs │ │ │ │ │ │ └── utils.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── udf │ │ │ │ │ │ ├── common.rs │ │ │ │ │ │ ├── extension │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── xirr.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── pg_catalog.rs │ │ │ │ │ │ ├── redshift.rs │ │ │ │ │ │ └── utils.rs │ │ │ │ │ └── variable_provider.rs │ │ │ │ ├── error.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── parser.rs │ │ │ │ ├── plan.rs │ │ │ │ ├── protocol.rs │ │ │ │ ├── qtrace.rs │ │ │ │ ├── query_engine.rs │ │ │ │ ├── rewrite │ │ │ │ │ ├── analysis.rs │ │ │ │ │ ├── converter.rs │ │ │ │ │ ├── cost.rs │ │ │ │ │ ├── language.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── rewriter.rs │ │ │ │ │ └── rules │ │ │ │ │ │ ├── case.rs │ │ │ │ │ │ ├── common.rs │ │ │ │ │ │ ├── dates.rs │ │ │ │ │ │ ├── filters.rs │ │ │ │ │ │ ├── flatten │ │ │ │ │ │ ├── column.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── pass_through.rs │ │ │ │ │ │ └── top_level.rs │ │ │ │ │ │ ├── members.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── old_split.rs │ │ │ │ │ │ ├── order.rs │ │ │ │ │ │ ├── split │ │ │ │ │ │ ├── aggregate_function.rs │ │ │ │ │ │ ├── alias.rs │ │ │ │ │ │ ├── binary_expr.rs │ │ │ │ │ │ ├── case.rs │ │ │ │ │ │ ├── cast.rs │ │ │ │ │ │ ├── column.rs │ │ │ │ │ │ ├── dates.rs │ │ │ │ │ │ ├── functions.rs │ │ │ │ │ │ ├── granularity.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── top_level.rs │ │ │ │ │ │ ├── utils.rs │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── aggregate.rs │ │ │ │ │ │ ├── aggregate_function.rs │ │ │ │ │ │ ├── alias.rs │ │ │ │ │ │ ├── binary_expr.rs │ │ │ │ │ │ ├── case.rs │ │ │ │ │ │ ├── cast.rs │ │ │ │ │ │ ├── column.rs │ │ │ │ │ │ ├── cube_scan_wrapper.rs │ │ │ │ │ │ ├── distinct.rs │ │ │ │ │ │ ├── extract.rs │ │ │ │ │ │ ├── filter.rs │ │ │ │ │ │ ├── in_list_expr.rs │ │ │ │ │ │ ├── in_subquery_expr.rs │ │ │ │ │ │ ├── is_null_expr.rs │ │ │ │ │ │ ├── join.rs │ │ │ │ │ │ ├── like_expr.rs │ │ │ │ │ │ ├── limit.rs │ │ │ │ │ │ ├── literal.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── negative_expr.rs │ │ │ │ │ │ ├── not_expr.rs │ │ │ │ │ │ ├── order.rs │ │ │ │ │ │ ├── projection.rs │ │ │ │ │ │ ├── scalar_function.rs │ │ │ │ │ │ ├── sort_expr.rs │ │ │ │ │ │ ├── subquery.rs │ │ │ │ │ │ ├── udf_function.rs │ │ │ │ │ │ ├── window.rs │ │ │ │ │ │ ├── window_function.rs │ │ │ │ │ │ └── wrapper_pull_up.rs │ │ │ │ ├── router.rs │ │ │ │ ├── service.rs │ │ │ │ ├── session.rs │ │ │ │ ├── snapshots │ │ │ │ │ ├── cubesql__compile__tests__avg_null_type.snap │ │ │ │ │ ├── cubesql__compile__tests__cast_decimal_default_precision.snap │ │ │ │ │ ├── cubesql__compile__tests__cast_float_to_text.snap │ │ │ │ │ ├── cubesql__compile__tests__constraint_column_usage_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__cube_scan_exec.snap │ │ │ │ │ ├── cubesql__compile__tests__current_date.snap │ │ │ │ │ ├── cubesql__compile__tests__current_schema_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__date_part_day_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__date_part_dow_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__date_part_doy_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__date_part_epoch_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__date_part_qtr_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__date_part_quarter_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__df_compare_int_with_null.snap │ │ │ │ │ ├── cubesql__compile__tests__df_escaped_strings.snap │ │ │ │ │ ├── cubesql__compile__tests__df_fork_bitwise_shit.snap │ │ │ │ │ ├── cubesql__compile__tests__df_fork_case_fixes.snap │ │ │ │ │ ├── cubesql__compile__tests__df_fork_cast_date32_additional_formats.snap │ │ │ │ │ ├── cubesql__compile__tests__df_fork_coalesce.snap │ │ │ │ │ ├── cubesql__compile__tests__df_fork_is_boolean.snap │ │ │ │ │ ├── cubesql__compile__tests__df_fork_nullif.snap │ │ │ │ │ ├── cubesql__compile__tests__df_string_boolean_comparison.snap │ │ │ │ │ ├── cubesql__compile__tests__discard_postgres_all.snap │ │ │ │ │ ├── cubesql__compile__tests__discard_postgres_plans.snap │ │ │ │ │ ├── cubesql__compile__tests__discard_postgres_sequences.snap │ │ │ │ │ ├── cubesql__compile__tests__discard_postgres_temp.snap │ │ │ │ │ ├── cubesql__compile__tests__discard_postgres_temporary.snap │ │ │ │ │ ├── cubesql__compile__tests__domo_group_date_by_month.snap │ │ │ │ │ ├── cubesql__compile__tests__dynamic_regclass_postgres_int32.snap │ │ │ │ │ ├── cubesql__compile__tests__dynamic_regclass_postgres_int64.snap │ │ │ │ │ ├── cubesql__compile__tests__dynamic_regclass_postgres_utf8.snap │ │ │ │ │ ├── cubesql__compile__tests__explain-2.snap │ │ │ │ │ ├── cubesql__compile__tests__explain.snap │ │ │ │ │ ├── cubesql__compile__tests__exponentiate_op.snap │ │ │ │ │ ├── cubesql__compile__tests__extract_day_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__extract_dow_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__extract_doy_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__extract_epoch_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__extract_quarter_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__fetch_next_rows_only.snap │ │ │ │ │ ├── cubesql__compile__tests__formatted_identifier.snap │ │ │ │ │ ├── cubesql__compile__tests__formatted_identifiers.snap │ │ │ │ │ ├── cubesql__compile__tests__formatted_null_string_is_empty.snap │ │ │ │ │ ├── cubesql__compile__tests__formatted_string.snap │ │ │ │ │ ├── cubesql__compile__tests__formatted_strings.snap │ │ │ │ │ ├── cubesql__compile__tests__holistics_date_trunc_date32.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_character_sets_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_collations.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_columns_mysql.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_columns_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_key_column_usage_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_processlist.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_referential_constraints_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_role_column_grants_postgresql.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_role_table_grants_postgresql.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_schemata.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_table_constraints_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_tables_mysql.snap │ │ │ │ │ ├── cubesql__compile__tests__information_schema_tables_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__interval_div.snap │ │ │ │ │ ├── cubesql__compile__tests__interval_mul.snap │ │ │ │ │ ├── cubesql__compile__tests__interval_sum.snap │ │ │ │ │ ├── cubesql__compile__tests__isnull_two_arg.snap │ │ │ │ │ ├── cubesql__compile__tests__join_where_and_or.snap │ │ │ │ │ ├── cubesql__compile__tests__langchain_array_agg_order_by.snap │ │ │ │ │ ├── cubesql__compile__tests__langchain_pgcatalog_schema.snap │ │ │ │ │ ├── cubesql__compile__tests__like_escape_symbol.snap │ │ │ │ │ ├── cubesql__compile__tests__localtimestamp.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_pg_class_query.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_pg_namespace.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_pg_type_any.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_regproc_query.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_table_exists.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_table_privilege_query.snap │ │ │ │ │ ├── cubesql__compile__tests__metabase_table_privilege_query_v2.snap │ │ │ │ │ ├── cubesql__compile__tests__monte_carlo_ddl_introspection.snap │ │ │ │ │ ├── cubesql__compile__tests__monte_carlo_query_introspection.snap │ │ │ │ │ ├── cubesql__compile__tests__monte_carlo_table_introspection.snap │ │ │ │ │ ├── cubesql__compile__tests__noninjective_coalesce_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__noninjective_left_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__noninjective_nullif_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__noninjective_right_from_dimension.snap │ │ │ │ │ ├── cubesql__compile__tests__nonrewritable_date_trunc.snap │ │ │ │ │ ├── cubesql__compile__tests__observable_grants.snap │ │ │ │ │ ├── cubesql__compile__tests__performance_schema_global_variables.snap │ │ │ │ │ ├── cubesql__compile__tests__performance_schema_session_variables.snap │ │ │ │ │ ├── cubesql__compile__tests__pg_catalog_udf_search_path.snap │ │ │ │ │ ├── cubesql__compile__tests__pg_set_app_show.snap │ │ │ │ │ ├── cubesql__compile__tests__pg_set_role_show.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pg_stat_activity_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgam_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgattrdef_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgattribute_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgclass_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgconstraint_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgdatabase_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgdepend_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgdescription_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgenum_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgextension_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgindex_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgmatviews_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgnamespace_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgprepared_statements_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgproc_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgrange_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgroles_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgsequence_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgstatiousertables_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgstats_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgtables_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pgtype_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__pgcatalog_pguser_postgres.snap │ │ │ │ │ ├── cubesql__compile__tests__psql_list.snap │ │ │ │ │ ├── cubesql__compile__tests__psqlodbc_null.snap │ │ │ │ │ ├── cubesql__compile__tests__quicksight_pg_external_schema.snap │ │ │ │ │ ├── cubesql__compile__tests__quicksight_regexp_instr.snap │ │ │ │ │ ├── cubesql__compile__tests__quicksight_sql_implementation_info.snap │ │ │ │ │ ├── cubesql__compile__tests__quicksight_sql_sizing.snap │ │ │ │ │ ├── cubesql__compile__tests__quicksight_stv_slices.snap │ │ │ │ │ ├── cubesql__compile__tests__quoted_identifier.snap │ │ │ │ │ ├── cubesql__compile__tests__quoted_keyword.snap │ │ │ │ │ ├── cubesql__compile__tests__redshift_regexp_replace_default_replacer.snap │ │ │ │ │ ├── cubesql__compile__tests__redshift_stl_ddltext.snap │ │ │ │ │ ├── cubesql__compile__tests__redshift_stl_query.snap │ │ │ │ │ ├── cubesql__compile__tests__redshift_stl_querytext.snap │ │ │ │ │ ├── cubesql__compile__tests__redshift_svv_table_info.snap │ │ │ │ │ ├── cubesql__compile__tests__redshift_svv_tables.snap │ │ │ │ │ ├── cubesql__compile__tests__set_bad_user.snap │ │ │ │ │ ├── cubesql__compile__tests__set_good_user.snap │ │ │ │ │ ├── cubesql__compile__tests__sha1_redshift.snap │ │ │ │ │ ├── cubesql__compile__tests__show_max_identifier_length.snap │ │ │ │ │ ├── cubesql__compile__tests__show_variable_quoted.snap │ │ │ │ │ ├── cubesql__compile__tests__subquery_with_same_name_excel.snap │ │ │ │ │ ├── cubesql__compile__tests__sum_null_type.snap │ │ │ │ │ ├── cubesql__compile__tests__tableau_extract_epoch.snap │ │ │ │ │ ├── cubesql__compile__tests__test_case_mixed_values_with_null.snap │ │ │ │ │ ├── cubesql__compile__tests__test_cast_string_to_interval.snap │ │ │ │ │ ├── cubesql__compile__tests__test_cast_to_timestamp_timezone_utc_1.snap │ │ │ │ │ ├── cubesql__compile__tests__test_cast_to_timestamp_timezone_utc_2.snap │ │ │ │ │ ├── cubesql__compile__tests__test_extract_string_field.snap │ │ │ │ │ ├── cubesql__compile__tests__test_gdata_studio.snap │ │ │ │ │ ├── cubesql__compile__tests__test_information_schema_stats_for_columns.snap │ │ │ │ │ ├── cubesql__compile__tests__test_join_with_distinct.snap │ │ │ │ │ ├── cubesql__compile__tests__test_offset_limit_1.snap │ │ │ │ │ ├── cubesql__compile__tests__test_offset_limit_2.snap │ │ │ │ │ ├── cubesql__compile__tests__test_offset_limit_3.snap │ │ │ │ │ ├── cubesql__compile__tests__test_offset_limit_4.snap │ │ │ │ │ ├── cubesql__compile__tests__test_offset_limit_5.snap │ │ │ │ │ ├── cubesql__compile__tests__test_select_column_with_same_name_as_table.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_0.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_1.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_2.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_3.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_4.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_5.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_6.snap │ │ │ │ │ ├── cubesql__compile__tests__test_sort_relations_7.snap │ │ │ │ │ ├── cubesql__compile__tests__test_string_multiply_interval.snap │ │ │ │ │ ├── cubesql__compile__tests__test_union_with_cast_count_to_decimal.snap │ │ │ │ │ ├── cubesql__compile__tests__thought_spot_attributes.snap │ │ │ │ │ ├── cubesql__compile__tests__thought_spot_svv_external_schemas.snap │ │ │ │ │ ├── cubesql__compile__tests__thought_spot_table_columns.snap │ │ │ │ │ ├── cubesql__compile__tests__thought_spot_tables.snap │ │ │ │ │ ├── cubesql__compile__tests__thoughtspot_dateadd_literal_date32.snap │ │ │ │ │ ├── cubesql__compile__tests__union_ctes.snap │ │ │ │ │ ├── cubesql__compile__tests__values_literal_table.snap │ │ │ │ │ └── cubesql__compile__tests__views_postgres.snap │ │ │ │ └── test │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── rewrite_engine.rs │ │ │ │ │ ├── snapshots │ │ │ │ │ ├── cubesql__compile__test__test_cube_join__join_with_trivial_cast.snap │ │ │ │ │ ├── cubesql__compile__test__test_df_execution__date_part_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_df_execution__join_with_coercion.snap │ │ │ │ │ ├── cubesql__compile__test__test_df_execution__numeric_math_scalar.snap │ │ │ │ │ ├── cubesql__compile__test__test_df_execution__round.snap │ │ │ │ │ ├── cubesql__compile__test__test_df_execution__triple_join_with_coercion.snap │ │ │ │ │ ├── cubesql__compile__test__test_df_execution__union_all_alias_mismatch.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__datagrip_introspection.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__dbeaver_introspection_databases.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__dbeaver_introspection_init.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__dbeaver_introspection_namespaces.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__dbeaver_introspection_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_exists_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_fkey_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_large_select_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_pg_attribute_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_pg_constraint_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_select_db_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_typname_aclitem_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__excel_typname_big_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__google_sheets_pg_database_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__grafana_insubquery_where_tables.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__grafana_insubquery_where_tables_spacing.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__grafana_pg_version_introspection.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__holistics_in_subquery_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__holistics_left_join_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__holistics_schema_privilege_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__langchain_pg_get_indexdef_and_in_realiasing.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase-2.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase-3.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase_introspection_indoption.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase_pktable_cat_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase_table_cat_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__metabase_type_in_subquery_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__microstrategy_subquery_current_schema.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__pg_get_expr_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__pg_get_expr_2.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__pg_truetypid_truetypmod.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__pgcli_queries_d.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__postico1_schemas.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_composite_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_enums.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_from_subquery.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_schemas.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_supported_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_table_columns.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__powerbi_uppercase_alias.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__quicksight_has_schema_privilege_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__quicksight_pktable_cat_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__quicksight_table_cat_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__rust_client_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sigma_computing_array_subquery_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sigma_computing_attnames.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sigma_computing_ilike_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sigma_computing_pg_matviews_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sigma_computing_with_subquery_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sqlalchemy_new_conname_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__sqlalchemy_regtype.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__superset_attname_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__superset_attype_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__superset_conname_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__superset_indkey_varchar_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__superset_subquery.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__superset_visible_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_desktop_constraints.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_desktop_indexes.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_desktop_pkeys.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_desktop_table_columns.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_desktop_tables.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_get_expr_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_null_text_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_regclass_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_table_cat_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__tableau_table_name_column_name_query.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__test_extended_table_introspection.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__test_metabase_v0_51_2_introspection_field_indoption.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__test_metabase_v0_51_8_introspection.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__thoughtspot_table_introspection.snap │ │ │ │ │ ├── cubesql__compile__test__test_introspection__zoho_inet_server_addr.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__age.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__array_lower_column.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__array_lower_scalar.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__array_lower_string.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__array_upper_column.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__array_upper_scalar.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__array_upper_string.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__current_schemas_including_implicit_postgres.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__current_schemas_postgres.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__current_setting.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__date_part_quarter.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__ends_with.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__extension_udf_xirr.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__format_type.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_date32_2_args.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_date32_3_args_2days_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_date32_3_args_3years_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_empty_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_empty_2.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_f64_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_f64_2.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_from_table.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_i64_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_2_args.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_3_args_1h_30m_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_3_args_20s_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_3_args_2days_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_3_args_2months_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_3_args_2years_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__generate_series_timestamp_3_args_6y_5m_4d_3h_2min_1s_interval.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_any_column_privilege.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_any_column_privilege_default_user.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_schema_privilege.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_schema_privilege_default_user.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_schema_privilege_multiple.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_table_privilege.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__has_table_privilege_default_user.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_backend_pid.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_catalog_generate_series_i64.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_datetime_precision_simple.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_datetime_precision_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_expandarray_index.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_expandarray_value.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_generate_subscripts_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_generate_subscripts_2_forward.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_generate_subscripts_2_reverse.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_generate_subscripts_3.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_get_constraintdef_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_get_constraintdef_2.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_get_userbyid.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_numeric_precision_simple.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_numeric_precision_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_numeric_scale_simple.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_numeric_scale_types.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_to_regtype.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_total_relation_size.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pg_type_is_visible.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__pi.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__quote_ident.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__redshift_charindex.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__regexp_substr.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__regexp_substr_column.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__test_bool_and_or.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__to_char_1.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__to_char_2.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__to_char_3.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__unnest_i64_from_table.snap │ │ │ │ │ ├── cubesql__compile__test__test_udfs__unnest_i64_scalar.snap │ │ │ │ │ └── cubesql__compile__test__test_udfs__unnest_str_from_table.snap │ │ │ │ │ ├── test_bi_workarounds.rs │ │ │ │ │ ├── test_cube_join.rs │ │ │ │ │ ├── test_cube_join_grouped.rs │ │ │ │ │ ├── test_cube_scan.rs │ │ │ │ │ ├── test_df_execution.rs │ │ │ │ │ ├── test_filters.rs │ │ │ │ │ ├── test_introspection.rs │ │ │ │ │ ├── test_udfs.rs │ │ │ │ │ ├── test_user_change.rs │ │ │ │ │ ├── test_wrapper.rs │ │ │ │ │ └── utils.rs │ │ │ ├── config │ │ │ │ ├── injection.rs │ │ │ │ ├── mod.rs │ │ │ │ └── processing_loop.rs │ │ │ ├── error.rs │ │ │ ├── lib.rs │ │ │ ├── sql │ │ │ │ ├── auth_service.rs │ │ │ │ ├── compiler_cache.rs │ │ │ │ ├── database_variables │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mysql │ │ │ │ │ │ ├── global_vars.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── session_vars.rs │ │ │ │ │ └── postgres │ │ │ │ │ │ ├── global_vars.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── session_vars.rs │ │ │ │ ├── dataframe.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── postgres │ │ │ │ │ ├── extended.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── pg_auth_service.rs │ │ │ │ │ ├── pg_type.rs │ │ │ │ │ ├── service.rs │ │ │ │ │ ├── shim.rs │ │ │ │ │ └── writer.rs │ │ │ │ ├── server_manager.rs │ │ │ │ ├── session.rs │ │ │ │ ├── session_manager.rs │ │ │ │ ├── snapshots │ │ │ │ │ └── cubesql__sql__dataframe__tests__table_value_serializer.snap │ │ │ │ ├── statement.rs │ │ │ │ ├── temp_tables.rs │ │ │ │ └── types.rs │ │ │ ├── telemetry │ │ │ │ └── mod.rs │ │ │ ├── transport │ │ │ │ ├── ctx.rs │ │ │ │ ├── ext.rs │ │ │ │ ├── mod.rs │ │ │ │ └── service.rs │ │ │ └── utils │ │ │ │ └── mod.rs │ │ └── test.sql │ ├── index.js │ ├── package.json │ ├── pg-srv │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ └── src │ │ │ ├── buffer.rs │ │ │ ├── decoding.rs │ │ │ ├── encoding.rs │ │ │ ├── extended.rs │ │ │ ├── lib.rs │ │ │ ├── pg_type.rs │ │ │ └── protocol.rs │ ├── rust-toolchain.toml │ └── rustfmt.toml ├── cubesqlplanner │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── cubesqlplanner │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ └── src │ │ │ ├── cube_bridge │ │ │ ├── base_query_options.rs │ │ │ ├── base_tools.rs │ │ │ ├── case_definition.rs │ │ │ ├── case_else_item.rs │ │ │ ├── case_item.rs │ │ │ ├── case_label.rs │ │ │ ├── cube_definition.rs │ │ │ ├── dimension_definition.rs │ │ │ ├── driver_tools.rs │ │ │ ├── evaluator.rs │ │ │ ├── filter_group.rs │ │ │ ├── filter_params.rs │ │ │ ├── geo_item.rs │ │ │ ├── granularity_definition.rs │ │ │ ├── join_definition.rs │ │ │ ├── join_graph.rs │ │ │ ├── join_hints.rs │ │ │ ├── join_item.rs │ │ │ ├── join_item_definition.rs │ │ │ ├── measure_definition.rs │ │ │ ├── member_definition.rs │ │ │ ├── member_expression.rs │ │ │ ├── member_order_by.rs │ │ │ ├── member_sql.rs │ │ │ ├── mod.rs │ │ │ ├── options_member.rs │ │ │ ├── pre_aggregation_description.rs │ │ │ ├── pre_aggregation_obj.rs │ │ │ ├── security_context.rs │ │ │ ├── segment_definition.rs │ │ │ ├── sql_templates_render.rs │ │ │ ├── sql_utils.rs │ │ │ └── struct_with_sql_member.rs │ │ │ ├── lib.rs │ │ │ ├── logical_plan │ │ │ ├── aggregate_multiplied_subquery.rs │ │ │ ├── cube.rs │ │ │ ├── dimension_subquery.rs │ │ │ ├── filter.rs │ │ │ ├── full_key_aggregate.rs │ │ │ ├── full_key_aggregate_query.rs │ │ │ ├── join.rs │ │ │ ├── keys_subquery.rs │ │ │ ├── measure_subquery.rs │ │ │ ├── mod.rs │ │ │ ├── multistage │ │ │ │ ├── calculation.rs │ │ │ │ ├── common.rs │ │ │ │ ├── get_date_range.rs │ │ │ │ ├── leaf_measure.rs │ │ │ │ ├── member.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── rolling_window.rs │ │ │ │ └── time_series.rs │ │ │ ├── optimizers │ │ │ │ ├── common │ │ │ │ │ ├── cube_names_collector.rs │ │ │ │ │ ├── helper.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ └── pre_aggregation │ │ │ │ │ ├── compiled_pre_aggregation.rs │ │ │ │ │ ├── dimension_matcher.rs │ │ │ │ │ ├── measure_matcher.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── optimizer.rs │ │ │ │ │ ├── original_sql_collector.rs │ │ │ │ │ └── original_sql_optimizer.rs │ │ │ ├── pre_aggregation.rs │ │ │ ├── pretty_print.rs │ │ │ ├── query.rs │ │ │ ├── regular_measures_query.rs │ │ │ ├── resolve_multiplied_measures.rs │ │ │ ├── schema.rs │ │ │ └── simple_query.rs │ │ │ ├── physical_plan_builder │ │ │ ├── builder.rs │ │ │ └── mod.rs │ │ │ ├── plan │ │ │ ├── builder │ │ │ │ ├── join.rs │ │ │ │ ├── mod.rs │ │ │ │ └── select.rs │ │ │ ├── cte.rs │ │ │ ├── expression.rs │ │ │ ├── filter.rs │ │ │ ├── from.rs │ │ │ ├── join.rs │ │ │ ├── mod.rs │ │ │ ├── order.rs │ │ │ ├── query_plan.rs │ │ │ ├── schema │ │ │ │ ├── column.rs │ │ │ │ ├── mod.rs │ │ │ │ └── schema.rs │ │ │ ├── select.rs │ │ │ ├── subquery.rs │ │ │ ├── time_series.rs │ │ │ └── union.rs │ │ │ └── planner │ │ │ ├── base_cube.rs │ │ │ ├── base_dimension.rs │ │ │ ├── base_join_condition.rs │ │ │ ├── base_measure.rs │ │ │ ├── base_member.rs │ │ │ ├── base_query.rs │ │ │ ├── base_time_dimension.rs │ │ │ ├── filter │ │ │ ├── base_filter.rs │ │ │ ├── base_segment.rs │ │ │ ├── compiler.rs │ │ │ ├── filter_operator.rs │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── params_allocator.rs │ │ │ ├── planners │ │ │ ├── common_utils.rs │ │ │ ├── dimension_subquery_planner.rs │ │ │ ├── full_key_query_aggregate_planner.rs │ │ │ ├── join_planner.rs │ │ │ ├── mod.rs │ │ │ ├── multi_stage │ │ │ │ ├── applied_state.rs │ │ │ │ ├── member.rs │ │ │ │ ├── member_query_planner.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── multi_stage_query_planner.rs │ │ │ │ └── query_description.rs │ │ │ ├── multiplied_measures_query_planner.rs │ │ │ ├── order_planner.rs │ │ │ ├── query_planner.rs │ │ │ └── simple_query_planer.rs │ │ │ ├── query_properties.rs │ │ │ ├── query_tools.rs │ │ │ ├── sql_evaluator │ │ │ ├── collectors │ │ │ │ ├── cube_names_collector.rs │ │ │ │ ├── find_owned_by_cube.rs │ │ │ │ ├── has_cumulative_members.rs │ │ │ │ ├── has_multi_stage_members.rs │ │ │ │ ├── join_hints_collector.rs │ │ │ │ ├── member_childs_collector.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── multiplied_measures_collector.rs │ │ │ │ └── sub_query_dimensions.rs │ │ │ ├── compiler.rs │ │ │ ├── dependecy.rs │ │ │ ├── mod.rs │ │ │ ├── references_builder.rs │ │ │ ├── sql_call.rs │ │ │ ├── sql_nodes │ │ │ │ ├── auto_prefix.rs │ │ │ │ ├── case_dimension.rs │ │ │ │ ├── evaluate_sql.rs │ │ │ │ ├── factory.rs │ │ │ │ ├── final_measure.rs │ │ │ │ ├── final_pre_aggregation_measure.rs │ │ │ │ ├── geo_dimension.rs │ │ │ │ ├── measure_filter.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── multi_stage_rank.rs │ │ │ │ ├── multi_stage_window.rs │ │ │ │ ├── original_sql_pre_aggregation.rs │ │ │ │ ├── render_references.rs │ │ │ │ ├── rolling_window.rs │ │ │ │ ├── root_processor.rs │ │ │ │ ├── sql_node.rs │ │ │ │ ├── time_dimension.rs │ │ │ │ ├── time_shift.rs │ │ │ │ ├── ungroupped_measure.rs │ │ │ │ └── ungroupped_query_final_measure.rs │ │ │ ├── sql_visitor.rs │ │ │ ├── symbols │ │ │ │ ├── cube_symbol.rs │ │ │ │ ├── dimension_symbol.rs │ │ │ │ ├── measure_symbol.rs │ │ │ │ ├── member_expression_symbol.rs │ │ │ │ ├── member_symbol.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── symbol_factory.rs │ │ │ │ └── time_dimension_symbol.rs │ │ │ └── visitor.rs │ │ │ ├── sql_templates │ │ │ ├── filter.rs │ │ │ ├── mod.rs │ │ │ ├── plan.rs │ │ │ └── structs.rs │ │ │ ├── time_dimension │ │ │ ├── date_time.rs │ │ │ ├── date_time_helper.rs │ │ │ ├── granularity.rs │ │ │ ├── granularity_helper.rs │ │ │ ├── mod.rs │ │ │ └── sql_interval.rs │ │ │ ├── utils.rs │ │ │ └── visitor_context.rs │ ├── nativebridge │ │ ├── Cargo.toml │ │ └── src │ │ │ └── lib.rs │ └── rust-toolchain.toml └── cubestore │ ├── .cargo │ └── config.toml │ ├── .dockerignore │ ├── .gitignore │ ├── CHANGELOG.md │ ├── Cargo.lock │ ├── Cargo.toml │ ├── Cross.toml │ ├── Dockerfile │ ├── README.md │ ├── bin │ ├── cubestore-dev │ └── post-install │ ├── builder.Dockerfile │ ├── cross │ ├── README.md │ ├── aarch64-unknown-linux-gnu-python.Dockerfile │ ├── aarch64-unknown-linux-gnu.Dockerfile │ ├── docker-bake.hcl │ ├── x86_64-unknown-linux-gnu-python.Dockerfile │ ├── x86_64-unknown-linux-gnu.Dockerfile │ └── x86_64-unknown-linux-musl.Dockerfile │ ├── cubedatasketches │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── error.rs │ │ ├── lib.rs │ │ ├── native.rs │ │ └── unsupported.rs │ ├── cubehll │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── bias_correction.rs │ │ ├── error.rs │ │ ├── instance.rs │ │ ├── lib.rs │ │ └── sketch.rs │ ├── cuberockstore │ ├── Cargo.toml │ └── src │ │ └── lib.rs │ ├── cuberpc │ ├── Cargo.toml │ └── src │ │ └── lib.rs │ ├── cubestore-sql-tests │ ├── Cargo.toml │ ├── benches │ │ └── in_process.rs │ ├── src │ │ ├── benches.rs │ │ ├── files.rs │ │ ├── lib.rs │ │ ├── multiproc.rs │ │ ├── rows.rs │ │ └── tests.rs │ └── tests │ │ ├── cluster.rs │ │ ├── in_process.rs │ │ └── multi_process.rs │ ├── cubestore │ ├── Cargo.toml │ ├── LICENSE │ ├── benches │ │ └── cachestore_queue.rs │ ├── flatbuffers-codegen.sh │ ├── src │ │ ├── app_metrics.rs │ │ ├── bin │ │ │ └── cubestored.rs │ │ ├── cachestore │ │ │ ├── cache_eviction_manager.rs │ │ │ ├── cache_item.rs │ │ │ ├── cache_rocksstore.rs │ │ │ ├── compaction.rs │ │ │ ├── lazy.rs │ │ │ ├── listener.rs │ │ │ ├── mod.rs │ │ │ ├── queue_item.rs │ │ │ ├── queue_item_payload.rs │ │ │ ├── queue_result.rs │ │ │ └── scheduler.rs │ │ ├── cluster │ │ │ ├── ingestion │ │ │ │ ├── job_processor.rs │ │ │ │ ├── job_runner.rs │ │ │ │ └── mod.rs │ │ │ ├── message.rs │ │ │ ├── mod.rs │ │ │ ├── rate_limiter.rs │ │ │ ├── transport.rs │ │ │ ├── worker_pool.rs │ │ │ └── worker_services.rs │ │ ├── config │ │ │ ├── injection.rs │ │ │ ├── mod.rs │ │ │ └── processing_loop.rs │ │ ├── http │ │ │ ├── mod.rs │ │ │ └── status.rs │ │ ├── import │ │ │ ├── limits.rs │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── metastore │ │ │ ├── chunks.rs │ │ │ ├── index.rs │ │ │ ├── job.rs │ │ │ ├── listener.rs │ │ │ ├── mod.rs │ │ │ ├── multi_index.rs │ │ │ ├── partition.rs │ │ │ ├── replay_handle.rs │ │ │ ├── rocks_fs.rs │ │ │ ├── rocks_store.rs │ │ │ ├── rocks_table.rs │ │ │ ├── schema.rs │ │ │ ├── snapshot_info.rs │ │ │ ├── source.rs │ │ │ ├── table.rs │ │ │ ├── trace_object.rs │ │ │ └── wal.rs │ │ ├── mysql │ │ │ └── mod.rs │ │ ├── queryplanner │ │ │ ├── check_memory.rs │ │ │ ├── coalesce.rs │ │ │ ├── filter_by_key_range.rs │ │ │ ├── flatten_union.rs │ │ │ ├── hll.rs │ │ │ ├── info_schema │ │ │ │ ├── info_schema_columns.rs │ │ │ │ ├── info_schema_schemata.rs │ │ │ │ ├── info_schema_tables.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── rocksdb_properties.rs │ │ │ │ ├── system_cache.rs │ │ │ │ ├── system_chunks.rs │ │ │ │ ├── system_indexes.rs │ │ │ │ ├── system_jobs.rs │ │ │ │ ├── system_partitions.rs │ │ │ │ ├── system_queue.rs │ │ │ │ ├── system_queue_results.rs │ │ │ │ ├── system_replay_handles.rs │ │ │ │ ├── system_snapshots.rs │ │ │ │ └── system_tables.rs │ │ │ ├── mod.rs │ │ │ ├── now.rs │ │ │ ├── optimizations │ │ │ │ ├── check_memory.rs │ │ │ │ ├── distributed_partial_aggregate.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── prefer_inplace_aggregates.rs │ │ │ │ ├── rewrite_plan.rs │ │ │ │ └── trace_data_loaded.rs │ │ │ ├── panic.rs │ │ │ ├── partition_filter.rs │ │ │ ├── physical_plan_flags.rs │ │ │ ├── planning.rs │ │ │ ├── pretty_printers.rs │ │ │ ├── projection_above_limit.rs │ │ │ ├── providers │ │ │ │ ├── mod.rs │ │ │ │ └── query_cache.rs │ │ │ ├── query_executor.rs │ │ │ ├── serialized_plan.rs │ │ │ ├── tail_limit.rs │ │ │ ├── test_utils.rs │ │ │ ├── topk │ │ │ │ ├── execute.rs │ │ │ │ ├── mod.rs │ │ │ │ └── plan.rs │ │ │ ├── trace_data_loaded.rs │ │ │ ├── udf_xirr.rs │ │ │ └── udfs.rs │ │ ├── remotefs │ │ │ ├── cleanup.rs │ │ │ ├── gcs.rs │ │ │ ├── minio.rs │ │ │ ├── mod.rs │ │ │ ├── queue.rs │ │ │ └── s3.rs │ │ ├── scheduler │ │ │ └── mod.rs │ │ ├── shared │ │ │ ├── deadline_queue.rs │ │ │ └── mod.rs │ │ ├── sql │ │ │ ├── cache.rs │ │ │ ├── cachestore.rs │ │ │ ├── mod.rs │ │ │ ├── parser.rs │ │ │ └── table_creator.rs │ │ ├── store │ │ │ ├── compaction.rs │ │ │ └── mod.rs │ │ ├── streaming │ │ │ ├── buffered_stream.rs │ │ │ ├── kafka.rs │ │ │ ├── kafka_post_processing.rs │ │ │ ├── mod.rs │ │ │ ├── topic_table_provider.rs │ │ │ └── traffic_sender.rs │ │ ├── sys │ │ │ ├── malloc.rs │ │ │ ├── mod.rs │ │ │ └── process.rs │ │ ├── table │ │ │ ├── data.rs │ │ │ ├── mod.rs │ │ │ ├── parquet.rs │ │ │ └── redistribute.rs │ │ ├── telemetry │ │ │ ├── mod.rs │ │ │ └── tracing.rs │ │ └── util │ │ │ ├── aborting_join_handle.rs │ │ │ ├── batch_memory.rs │ │ │ ├── cancellation_token_guard.rs │ │ │ ├── decimal.rs │ │ │ ├── error.rs │ │ │ ├── int96.rs │ │ │ ├── lock.rs │ │ │ ├── logger.rs │ │ │ ├── malloc_trim_loop.rs │ │ │ ├── maybe_owned.rs │ │ │ ├── memory.rs │ │ │ ├── metrics.rs │ │ │ ├── mod.rs │ │ │ ├── respawn.rs │ │ │ ├── strings.rs │ │ │ └── time_span.rs │ └── testing-fixtures │ │ └── cachestore-migration │ │ ├── 000010.log │ │ ├── 000012.sst │ │ ├── CURRENT │ │ ├── IDENTITY │ │ ├── LOCK │ │ ├── LOG │ │ ├── MANIFEST-000005 │ │ ├── OPTIONS-000007 │ │ ├── OPTIONS-000009 │ │ ├── README.md │ │ └── archive │ │ └── 000004.log │ ├── cubezetasketch │ ├── Cargo.toml │ ├── README.md │ ├── proto │ │ ├── aggregator.proto │ │ ├── hllplus-unique.proto │ │ └── unique-stats.proto │ └── src │ │ ├── data.rs │ │ ├── difference_encoding.rs │ │ ├── encoding.rs │ │ ├── error.rs │ │ ├── lib.rs │ │ ├── normal.rs │ │ ├── sketch.rs │ │ ├── sparse.rs │ │ └── state.rs │ ├── docker-bake.hcl │ ├── js-wrapper │ ├── src │ │ ├── cubestore-dev.ts │ │ ├── download.ts │ │ ├── index.ts │ │ ├── post-install.ts │ │ ├── process.ts │ │ └── utils.ts │ └── test │ │ ├── process-test-fork.ts │ │ └── process.test.ts │ ├── package.json │ ├── rust-toolchain.toml │ └── tsconfig.json ├── tsconfig.base.json ├── tsconfig.jest.json ├── tsconfig.json ├── vetur.config.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.rs] 13 | indent_size = 4 14 | 15 | [rust/cubesql/cubesql/egraph-debug-template/**/*.{js,jsx,ts,tsx}] 16 | indent_size = 4 17 | -------------------------------------------------------------------------------- /.github/actions/integration/crate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | export DEBUG=testcontainers 5 | 6 | echo "::group::Crate" 7 | yarn lerna run --concurrency 1 --stream --no-prefix integration:crate 8 | echo "::endgroup::" 9 | -------------------------------------------------------------------------------- /.github/actions/integration/dremio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | # Debug log for test containers 5 | export DEBUG=testcontainers 6 | 7 | echo "::group::Dremio [cloud]" 8 | yarn lerna run --concurrency 1 --stream --no-prefix integration:dremio 9 | 10 | echo "::endgroup::" 11 | -------------------------------------------------------------------------------- /.github/actions/integration/firebolt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | # Debug log for test containers 5 | export DEBUG=testcontainers 6 | 7 | echo "::group::Firebolt [cloud]" 8 | yarn lerna run --concurrency 1 --stream --no-prefix integration:firebolt 9 | 10 | echo "::endgroup::" 11 | -------------------------------------------------------------------------------- /.github/buildkitd.toml: -------------------------------------------------------------------------------- 1 | [worker.oci] 2 | max-parallelism = 1 3 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/packages" 5 | schedule: 6 | interval: "weekly" 7 | - package-ecosystem: "npm" 8 | directory: "/examples" 9 | schedule: 10 | interval: "monthly" 11 | labels: [ ] 12 | ignore: 13 | - dependency-name: "*" 14 | -------------------------------------------------------------------------------- /.npmpackagejsonlintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "require-author": "error", 4 | "require-engines": "error", 5 | "require-license": "error", 6 | "require-name": "error", 7 | "bin-type": "error", 8 | "dependencies-type": "error", 9 | "devDependencies-type": "error" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22.16.0 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Source code in this repository is covered by one of two licenses: (i) the 2 | Apache License 2.0 (ii) an MIT license. 3 | The default license throughout the repository is Apache License 2.0 4 | unless the header or package LICENSE file specifies another license. 5 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | Please email security reports to info@cube.dev or reach out to maintainers directly in https://slack.cube.dev. 6 | Please do not create issues or public conversations for discovered security issues until patch is shipped. 7 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | round: down 3 | range: "70...100" 4 | status: 5 | project: 6 | default: 7 | informational: true 8 | target: auto 9 | threshold: 2% 10 | patch: 11 | default: 12 | informational: true 13 | 14 | github_checks: 15 | annotations: false 16 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Cube Docs 2 | -------------------------------------------------------------------------------- /docs/components/common/BlogButton/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Button'; -------------------------------------------------------------------------------- /docs/components/common/Footer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Footer'; 2 | -------------------------------------------------------------------------------- /docs/components/common/LogoWithVersion/LogoWithVersion.module.scss: -------------------------------------------------------------------------------- 1 | .Logo { 2 | 3 | } 4 | 5 | .Version { 6 | color: var(--dark_03); 7 | font-size: 0.875rem; 8 | padding: 0.25rem 0.5rem; 9 | border-radius: 0.375rem; 10 | background: var(--dark_bg); 11 | margin-left: 0.625rem; 12 | } 13 | -------------------------------------------------------------------------------- /docs/components/common/SocialIcon/SocialIcon.module.css: -------------------------------------------------------------------------------- 1 | .SocialIcon { 2 | --hover_transtion: 300ms; 3 | display: block; 4 | } 5 | 6 | .SocialIcon:hover { 7 | cursor: pointer; 8 | } 9 | 10 | .SocialIcon path { 11 | transition: fill var(--hover_transtion); 12 | } 13 | 14 | .SocialIcon:not(:hover) path { 15 | fill: var(--dark_03_a50); 16 | } 17 | -------------------------------------------------------------------------------- /docs/components/mdx/CodeTabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CodeTabs'; 2 | -------------------------------------------------------------------------------- /docs/components/mdx/LoomVideo/LoomVideo.module.scss: -------------------------------------------------------------------------------- 1 | .LoomVideo__Wrapper { 2 | margin: 1.5rem 0; 3 | 4 | > iframe { 5 | border-radius: 6px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docs/components/mdx/Snippets/SnippetGroup.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styles from "./styles.module.css"; 3 | 4 | export const Snippet = ({ children }) => children; 5 | 6 | export const SnippetGroup = ({ children }) => { 7 | return <div className={styles.snippetGroup}>{children}</div>; 8 | }; 9 | -------------------------------------------------------------------------------- /docs/components/mdx/Snippets/styles.module.css: -------------------------------------------------------------------------------- 1 | .snippetGroup { 2 | display: flex; 3 | gap: 1rem; 4 | } 5 | -------------------------------------------------------------------------------- /docs/components/mdx/YouTubeVideo/YoutubeVideo.module.scss: -------------------------------------------------------------------------------- 1 | .YoutubeVideo__Wrapper { 2 | margin: 1.5rem 0; 3 | 4 | > iframe { 5 | border-radius: 6px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docs/components/overrides/Code/Code.module.scss: -------------------------------------------------------------------------------- 1 | pre > .Code { 2 | white-space: inherit; 3 | } 4 | 5 | table .Code { 6 | white-space: nowrap; 7 | } -------------------------------------------------------------------------------- /docs/components/overrides/Headings/H1.tsx: -------------------------------------------------------------------------------- 1 | import type { ComponentProps } from 'react'; 2 | 3 | export const H1 = (props: ComponentProps<'h1'>) => { 4 | // console.log({ props }); 5 | return ( 6 | <h1 7 | className="nx-mt-2 nx-text-4xl nx-font-bold nx-tracking-tight" 8 | {...props} 9 | /> 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /docs/components/overrides/TOC/TOCTitle.tsx: -------------------------------------------------------------------------------- 1 | export const TOCTitle = () => { 2 | return ( 3 | <div className="TOCTitle"> 4 | <h1 className="nx-mt-2 nx-text-4xl nx-font-bold nx-tracking-tight">TOC</h1> 5 | </div> 6 | ); 7 | }; 8 | -------------------------------------------------------------------------------- /docs/components/overrides/Table/Table.module.scss: -------------------------------------------------------------------------------- 1 | .Table { 2 | margin: 1.5rem 0; 3 | 4 | border-collapse: separate; 5 | border-spacing: 0; 6 | border: 1px solid var(--dark_05); 7 | border-radius: 0.5rem; 8 | } 9 | -------------------------------------------------------------------------------- /docs/content/cube-logo-with-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/content/cube-logo-with-bg.png -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Bold.woff -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Bold.woff2 -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Medium.woff -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Medium.woff2 -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Regular-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Regular-Italic.woff -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Regular-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Regular-Italic.woff2 -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Regular.woff -------------------------------------------------------------------------------- /docs/fonts/CeraPro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/CeraPro-Regular.woff2 -------------------------------------------------------------------------------- /docs/fonts/JetBrainsMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/JetBrainsMono-Regular.woff2 -------------------------------------------------------------------------------- /docs/fonts/SourceCodePro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/SourceCodePro-Regular.otf -------------------------------------------------------------------------------- /docs/fonts/SourceCodePro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/SourceCodePro-Regular.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Bold.otf -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Bold.woff -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Bold.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Medium.eot -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Medium.woff -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Medium.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Regular.eot -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Regular.woff -------------------------------------------------------------------------------- /docs/fonts/original/CeraPro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/fonts/original/CeraPro-Regular.woff2 -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/dax-api/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "reference": "Reference" 3 | } -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/graphql-api/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "reference": "Reference" 3 | } -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/javascript-sdk/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "react": "React", 3 | "vue": "Vue", 4 | "angular": "Angular", 5 | "reference": "Reference" 6 | } -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/javascript-sdk/reference/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "cubejs-client-core": "core", 3 | "cubejs-client-react": "react", 4 | "cubejs-client-ngx": "ngx", 5 | "cubejs-client-vue": "vue", 6 | "cubejs-client-ws-transport": "ws-transport" 7 | } -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/recipes/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "getting-unique-values-for-a-field": "Unique values", 3 | "cast-numerics": "Numeric values", 4 | "sorting": "Custom sorting", 5 | "pagination": "Pagination", 6 | "drilldowns": "Drilldowns", 7 | "real-time-data-fetch": "Real-time data fetch" 8 | } 9 | -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/rest-api/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "query-format": "Query format", 3 | "reference": "Reference" 4 | } -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/semantic-layer-sync/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "superset": "Apache Superset", 3 | "metabase": "Metabase", 4 | "preset": "Preset", 5 | "tableau": "Tableau" 6 | } -------------------------------------------------------------------------------- /docs/pages/product/apis-integrations/sql-api/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "query-format": "Query format", 3 | "joins": "Joins", 4 | "security": "Authentication and Authorization", 5 | "reference": "Reference" 6 | } -------------------------------------------------------------------------------- /docs/pages/product/auth/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "methods": "Authentication", 3 | "context": "Security context", 4 | "member-level-security": "Member-level security", 5 | "row-level-security": "Row-level security", 6 | "data-access-policies": "Data access policies", 7 | "recipes": "Recipes" 8 | } -------------------------------------------------------------------------------- /docs/pages/product/auth/methods/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "name-password": "Name and password", 3 | "kerberos": "Kerberos", 4 | "ntlm": "NTLM", 5 | "identity-provider": "Identity provider", 6 | "jwt": "JSON Web Token" 7 | } -------------------------------------------------------------------------------- /docs/pages/product/configuration/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "data-sources": "Data sources", 3 | "visualization-tools": "Visualization tools", 4 | "multiple-data-sources": "Multiple data sources", 5 | "concurrency": "Concurrency", 6 | "multitenancy": "Multitenancy", 7 | "reference": "Reference", 8 | "recipes": "Recipes" 9 | } 10 | -------------------------------------------------------------------------------- /docs/pages/product/configuration/reference/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "environment-variables": "Environment variables", 3 | "config": "Configuration options" 4 | } -------------------------------------------------------------------------------- /docs/pages/product/data-modeling/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "overview": "Overview", 3 | "concepts": "Concepts", 4 | "syntax": "Syntax", 5 | "dynamic": "Dynamic data models", 6 | "reference": "Reference", 7 | "recipes": "Recipes" 8 | } -------------------------------------------------------------------------------- /docs/pages/product/data-modeling/dynamic/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "jinja": "Dynamic data models with Jinja and Python", 3 | "javascript": "Dynamic data models with JavaScript", 4 | "code-reusability-export-and-import": "Export and import", 5 | "schema-execution-environment": "Execution environment (JavaScript models)" 6 | } -------------------------------------------------------------------------------- /docs/pages/product/deployment/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "production-checklist": "Production checklist", 3 | "cloud": "Cube Cloud", 4 | "core": "Cube Core" 5 | } -------------------------------------------------------------------------------- /docs/pages/product/deployment/cloud/byoc/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "aws": "AWS", 3 | "azure": "Azure", 4 | } 5 | -------------------------------------------------------------------------------- /docs/pages/product/deployment/cloud/providers/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "aws": "AWS", 3 | "gcp": "GCP", 4 | "azure": "Azure" 5 | } -------------------------------------------------------------------------------- /docs/pages/product/deployment/cloud/vpc/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "aws": "AWS", 3 | "gcp": "GCP", 4 | "azure": "Azure" 5 | } -------------------------------------------------------------------------------- /docs/pages/product/deployment/cloud/vpc/aws/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "private-link": "PrivateLink", 3 | "vpc-peering": "VPC Peering", 4 | } -------------------------------------------------------------------------------- /docs/pages/product/getting-started/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "cloud": "Cube Cloud and Snowflake", 3 | "databricks": "Cube Cloud and Databricks", 4 | "core": "Cube Core", 5 | "migrate-from-core": "Migrate from Cube Core" 6 | } 7 | -------------------------------------------------------------------------------- /docs/pages/product/getting-started/cloud/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "load-data": "Load data", 3 | "connect-to-snowflake": "Connect to Snowflake", 4 | "create-data-model": "Create data model", 5 | "query-from-bi": "Query from BI", 6 | "query-from-react-app": "Query from React" 7 | } -------------------------------------------------------------------------------- /docs/pages/product/getting-started/core/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "create-a-project": "Create a project", 3 | "query-data": "Query data", 4 | "add-a-pre-aggregation": "Add a pre-aggregation", 5 | "learn-more": "Learn more" 6 | } -------------------------------------------------------------------------------- /docs/pages/product/getting-started/databricks/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "load-data": "Load data", 3 | "connect-to-databricks": "Connect to Databricks", 4 | "create-data-model": "Create data model", 5 | "query-from-bi": "Query from BI", 6 | "query-from-react-app": "Query from React" 7 | } 8 | -------------------------------------------------------------------------------- /docs/pages/product/workspace/cli/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "reference": "Reference" 3 | } 4 | -------------------------------------------------------------------------------- /docs/pages/product/workspace/monitoring/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "cloudwatch": "Amazon CloudWatch", 3 | "s3": "Amazon S3", 4 | "datadog": "Datadog", 5 | "grafana-cloud": "Grafana Cloud" 6 | } -------------------------------------------------------------------------------- /docs/pages/product/workspace/recipes/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "query-history-export": "Exporting Query History", 3 | } -------------------------------------------------------------------------------- /docs/pages/product/workspace/sso/_meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "google-workspace": "Google Workspace", 3 | "microsoft-entra-id": "Microsoft Entra ID", 4 | "okta": "Okta" 5 | } 6 | -------------------------------------------------------------------------------- /docs/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /docs/public/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/.gitkeep -------------------------------------------------------------------------------- /docs/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /docs/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /docs/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/public/cube-scheme-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/cube-scheme-dark.png -------------------------------------------------------------------------------- /docs/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/favicon-16x16.png -------------------------------------------------------------------------------- /docs/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/favicon-32x32.png -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/docs/public/mstile-150x150.png -------------------------------------------------------------------------------- /docs/scripts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "ts-node/node16/tsconfig.json", 3 | "compilerOptions": { 4 | 5 | }, 6 | "include": ["./migrate-content.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /docs/styles/images.css: -------------------------------------------------------------------------------- 1 | main > img, 2 | main > div > img { 3 | margin: 1.5rem 0; 4 | border-radius: 6px; 5 | } 6 | -------------------------------------------------------------------------------- /docs/styles/math.css: -------------------------------------------------------------------------------- 1 | .math { 2 | background: rgba(122, 119, 255, 0.05); 3 | letter-spacing: 1px; 4 | margin: 24px 0; 5 | width: 100%; 6 | padding: 24px 0; 7 | border-radius: 3px; 8 | } 9 | 10 | @media (max-width: 1023px) { 11 | .katex-display > .katex { 12 | white-space: normal; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /docs/vercel-deploy-check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ "$VERCEL_GIT_REPO_OWNER" != "cube-js" ]; then 4 | echo "Skipping deploy for PR from a fork." 5 | exit 0 6 | fi 7 | 8 | # In other case return the usual git diff for a root folder 9 | git diff HEAD^ HEAD --quiet ./ 10 | -------------------------------------------------------------------------------- /docs/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "github": { 3 | "silent": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | .cubestore 2 | 3 | # Parcel-related 4 | .parcel-cache 5 | dist/ 6 | -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | Examples were moved to the separate repository: [cube-js/examples](https://github.com/cube-js/examples) 2 | -------------------------------------------------------------------------------- /examples/recipes/active-users/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | -------------------------------------------------------------------------------- /examples/recipes/active-users/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/changing-visibility-of-cubes-or-views/schema/TotalRevenuePerCustomer.js: -------------------------------------------------------------------------------- 1 | view('TotalRevenuePerCustomer', { 2 | description: `Total revenue per customer`, 3 | shown: COMPILE_CONTEXT.permissions['finance'], 4 | 5 | includes: [ 6 | Orders.totalRevenue, 7 | Users.company, 8 | ], 9 | }); 10 | -------------------------------------------------------------------------------- /examples/recipes/column-based-access/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | -------------------------------------------------------------------------------- /examples/recipes/column-based-access/queries/query.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [], 3 | "order": { 4 | "Suppliers.email": "asc" 5 | }, 6 | "dimensions": [ 7 | "Products.name" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /examples/recipes/column-based-access/schema/Suppliers.js: -------------------------------------------------------------------------------- 1 | cube(`Suppliers`, { 2 | sql: `SELECT * FROM public.suppliers`, 3 | 4 | dimensions: { 5 | id: { 6 | primaryKey: true, 7 | sql: `id`, 8 | type: `string` 9 | }, 10 | 11 | email: { 12 | sql: `email`, 13 | type: `string` 14 | } 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /examples/recipes/entity-attribute-value/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/entity-attribute-value/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM cubejs/cube:latest 2 | 3 | COPY . . 4 | RUN npm install -------------------------------------------------------------------------------- /examples/recipes/entity-attribute-value/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/entity-attribute-value/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "entity-attribute-value", 3 | "version": "1.0.0", 4 | "dependencies": { 5 | "pg": "^8.7.1" 6 | }, 7 | "devDependencies": {} 8 | } 9 | -------------------------------------------------------------------------------- /examples/recipes/entity-attribute-value/queries/statuses.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | "Orders.status" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /examples/recipes/getting-unique-values-for-a-field/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/getting-unique-values-for-a-field/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/getting-unique-values-for-a-field/queries/load.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": ["Users.city"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/recipes/getting-unique-values-for-a-field/schema/Users.js: -------------------------------------------------------------------------------- 1 | cube(`Users`, { 2 | sql: `SELECT * FROM public.users`, 3 | 4 | dimensions: { 5 | city: { 6 | sql: `city`, 7 | type: `string`, 8 | }, 9 | 10 | state: { 11 | sql: `state`, 12 | type: `string`, 13 | }, 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /examples/recipes/joining-multiple-databases-data/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_API_SECRET=SECRET 2 | CUBEJS_DEV_MODE=true 3 | -------------------------------------------------------------------------------- /examples/recipes/joining-multiple-databases-data/.gitignore: -------------------------------------------------------------------------------- 1 | .cubestore/ 2 | node_modules/ -------------------------------------------------------------------------------- /examples/recipes/joining-multiple-datasources-data/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_CUBESTORE_HOST=cubestore 2 | CUBEJS_DB_HOST=demo-db-recipes.cube.dev 3 | CUBEJS_DB_PORT=5432 4 | CUBEJS_DB_NAME=recipes 5 | CUBEJS_DB_USER=cube 6 | CUBEJS_DB_PASS=12345 7 | CUBEJS_DB_TYPE=postgres 8 | CUBEJS_API_SECRET=SECRET 9 | CUBEJS_DEV_MODE=true 10 | -------------------------------------------------------------------------------- /examples/recipes/joining-multiple-datasources-data/queries/pre-agg-query.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": { 3 | "Products.name": "asc" 4 | }, 5 | "dimensions": [ 6 | "Products.name", 7 | "Suppliers.company", 8 | "Suppliers.email" 9 | ], 10 | "limit": 3 11 | } 12 | -------------------------------------------------------------------------------- /examples/recipes/lambda-view/.gitignore: -------------------------------------------------------------------------------- 1 | .cubestore/ 2 | node_modules/ -------------------------------------------------------------------------------- /examples/recipes/lambda-view/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | orchestratorOptions: { 3 | preAggregationsOptions: { 4 | externalRefresh: false, 5 | }, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /examples/recipes/mandatory-filters/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/mandatory-filters/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | queryRewrite: (query) => { 3 | query.filters.push({ 4 | member: `Orders.createdAt`, 5 | operator: 'afterDate', 6 | values: ['2019-12-30'], 7 | }); 8 | 9 | return query; 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /examples/recipes/mandatory-filters/queries/completed-orders.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": [["Orders.createdAt", "asc"]], 3 | "dimensions": ["Orders.number", "Orders.createdAt"], 4 | "filters": [ 5 | { 6 | "member": "Orders.status", 7 | "operator": "equals", 8 | "values": ["completed"] 9 | } 10 | ], 11 | "limit": 5 12 | } 13 | -------------------------------------------------------------------------------- /examples/recipes/mandatory-filters/queries/shipped-orders.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": [["Orders.createdAt", "asc"]], 3 | "dimensions": ["Orders.number", "Orders.createdAt"], 4 | "filters": [ 5 | { 6 | "member": "Orders.status", 7 | "operator": "equals", 8 | "values": ["shipped"] 9 | } 10 | ], 11 | "limit": 5 12 | } 13 | -------------------------------------------------------------------------------- /examples/recipes/mandatory-filters/queries/users.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [], 3 | "order": [ 4 | [ 5 | "Users.createdAt", 6 | "asc" 7 | ] 8 | ], 9 | "dimensions": [ 10 | "Users.firstName", 11 | "Users.lastName", 12 | "Users.createdAt" 13 | ], 14 | "limit": 5 15 | } 16 | -------------------------------------------------------------------------------- /examples/recipes/multiple-data-sources/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | -------------------------------------------------------------------------------- /examples/recipes/multiple-data-sources/queries/users.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": { 3 | "Users.id": "desc" 4 | }, 5 | "dimensions": [ 6 | "Users.id", 7 | "Users.name" 8 | ], 9 | "limit": 3 10 | } 11 | -------------------------------------------------------------------------------- /examples/recipes/non-additivity/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/non-additivity/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/non-additivity/queries/matching-non-additive.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [ 3 | "Users.distinctAges", 4 | "Users.avgAge", 5 | "Users.p90Age" 6 | ], 7 | "dimensions": [ 8 | "Users.gender" 9 | ] 10 | } -------------------------------------------------------------------------------- /examples/recipes/non-additivity/queries/matching-refactored.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [ 3 | "UsersRefactored.avgAge" 4 | ] 5 | } -------------------------------------------------------------------------------- /examples/recipes/non-additivity/queries/non-matching-non-additive.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [ 3 | "Users.distinctAges", 4 | "Users.avgAge", 5 | "Users.p90Age" 6 | ] 7 | } -------------------------------------------------------------------------------- /examples/recipes/pagination/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | -------------------------------------------------------------------------------- /examples/recipes/pagination/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/pagination/queries/count.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": ["Orders.count"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/recipes/pagination/queries/first.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": { 3 | "Orders.number": "asc" 4 | }, 5 | "dimensions": ["Orders.number"], 6 | "limit": 5 7 | } 8 | -------------------------------------------------------------------------------- /examples/recipes/pagination/queries/second.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": [["Orders.number", "asc"]], 3 | "dimensions": ["Orders.number"], 4 | "limit": 5, 5 | "offset": 5 6 | } 7 | -------------------------------------------------------------------------------- /examples/recipes/passing-dynamic-parameters-in-query/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/percentiles/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/percentiles/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; -------------------------------------------------------------------------------- /examples/recipes/percentiles/queries/age.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | "Users.name", 4 | "Users.age" 5 | ], 6 | "limit": 5 7 | } -------------------------------------------------------------------------------- /examples/recipes/percentiles/queries/stats.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [ 3 | "Users.avgAge", 4 | "Users.medianAge", 5 | "Users.p95Age" 6 | ] 7 | } -------------------------------------------------------------------------------- /examples/recipes/referencing-dynamic-measures/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | -------------------------------------------------------------------------------- /examples/recipes/referencing-dynamic-measures/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; -------------------------------------------------------------------------------- /examples/recipes/referencing-dynamic-measures/queries/percentage.json: -------------------------------------------------------------------------------- 1 | { 2 | "measures": [ 3 | "Orders.Percentage_of_processing", 4 | "Orders.Percentage_of_shipped", 5 | "Orders.Percentage_of_completed" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /examples/recipes/refreshing-select-partitions/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=postgres 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=localDB 4 | CUBEJS_DB_USER=postgres 5 | CUBEJS_DB_PASS=example 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | CUBEJS_CUBESTORE_HOST=cubestore 10 | CUBEJS_EXTERNAL_DEFAULT=true 11 | -------------------------------------------------------------------------------- /examples/recipes/refreshing-select-partitions/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:14-alpine 2 | 3 | COPY . . 4 | RUN apk --no-cache add curl \ 5 | && npm install 6 | -------------------------------------------------------------------------------- /examples/recipes/refreshing-select-partitions/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /examples/recipes/refreshing-select-partitions/data-updater/data-updater.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | host=cube 4 | port=4000 5 | readyzUrl=readyz 6 | 7 | # Wait for the Cube API to become ready 8 | until curl -s "$host":"$port"/"$readyzUrl" > /dev/null; do 9 | sleep 1 10 | done 11 | 12 | sleep 5 13 | 14 | node node/data-updater/data-updater.js 15 | -------------------------------------------------------------------------------- /examples/recipes/refreshing-select-partitions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "refreshing-select-partitions", 3 | "version": "1.0.0", 4 | "dependencies": { 5 | "pg": "^8.7.1" 6 | }, 7 | "devDependencies": {} 8 | } 9 | -------------------------------------------------------------------------------- /examples/recipes/refreshing-select-partitions/queries/orders.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | "Orders.number", 4 | "Orders.status", 5 | "Orders.createdAt", 6 | "Orders.updatedAt" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /examples/recipes/role-based-access/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/role-based-access/queries/query.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | "Orders.status" 4 | ], 5 | "order": { 6 | "Orders.count": "desc" 7 | }, 8 | "measures": [ 9 | "Orders.count" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /examples/recipes/role-based-access/schema/Orders.js: -------------------------------------------------------------------------------- 1 | cube(`Orders`, { 2 | sql: `SELECT * FROM public.orders`, 3 | 4 | measures: { 5 | count: { 6 | type: `count`, 7 | } 8 | }, 9 | 10 | dimensions: { 11 | status: { 12 | sql: `status`, 13 | type: `string` 14 | } 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /examples/recipes/snapshots/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=ecom 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true -------------------------------------------------------------------------------- /examples/recipes/snapshots/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; -------------------------------------------------------------------------------- /examples/recipes/snapshots/queries/statuses.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | "Statuses.orderId", 4 | "Statuses.status", 5 | "Statuses.changedAt" 6 | ], 7 | "order": { 8 | "Statuses.orderId": "asc" 9 | }, 10 | "limit": 6 11 | } -------------------------------------------------------------------------------- /examples/recipes/using-different-schemas-for-tenants/.env: -------------------------------------------------------------------------------- 1 | CUBEJS_DB_HOST=demo-db-recipes.cube.dev 2 | CUBEJS_DB_PORT=5432 3 | CUBEJS_DB_NAME=recipes 4 | CUBEJS_DB_USER=cube 5 | CUBEJS_DB_PASS=12345 6 | CUBEJS_DB_TYPE=postgres 7 | CUBEJS_API_SECRET=SECRET 8 | CUBEJS_DEV_MODE=true 9 | -------------------------------------------------------------------------------- /examples/recipes/using-different-schemas-for-tenants/queries/query.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | "Products.id", 4 | "Products.name" 5 | ], 6 | "order": { 7 | "Orders.id": "asc" 8 | }, 9 | "limit": 3 10 | } 11 | -------------------------------------------------------------------------------- /jest.setup.js: -------------------------------------------------------------------------------- 1 | const { webcrypto } = require('node:crypto'); 2 | 3 | if (!globalThis.crypto) { 4 | globalThis.crypto = webcrypto; 5 | } 6 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.3.34", 3 | "npmClient": "yarn", 4 | "command": { 5 | "bootstrap": { 6 | "npmClient": "yarn", 7 | "npmClientArgs": ["--frozen-lockfile"] 8 | }, 9 | "version": { 10 | "allowBranch": ["master", "lts/*"] 11 | } 12 | }, 13 | "$schema": "node_modules/lerna/schemas/lerna-schema.json" 14 | } 15 | -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/.eslintignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | snapshotResolver: '<rootDir>/test/snapshotResolver.js', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/src/CubejsHandlerError.ts: -------------------------------------------------------------------------------- 1 | export class CubejsHandlerError extends Error { 2 | public constructor( 3 | public readonly status: number, 4 | public readonly type: string, 5 | message: string, 6 | public readonly originalError?: Error 7 | ) { 8 | super(message || type); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/src/UserError.ts: -------------------------------------------------------------------------------- 1 | import { CubejsHandlerError } from './CubejsHandlerError'; 2 | 3 | export class UserError extends CubejsHandlerError { 4 | public constructor(message: string) { 5 | super(400, 'User Error', message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './gateway'; 2 | export * from './sql-server'; 3 | export * from './interfaces'; 4 | export * from './CubejsHandlerError'; 5 | export * from './UserError'; 6 | export { getRequestIdFromRequest } from './requestParser'; 7 | export { TransformDataRequest } from './types/responses'; 8 | -------------------------------------------------------------------------------- /packages/cubejs-api-gateway/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src/**/*", 5 | "test/**/*" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | "allowJs": true, 12 | "noImplicitAny": false, 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /packages/cubejs-athena-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-athena-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './AthenaDriver'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-athena-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-backend-cloud/.gitignore: -------------------------------------------------------------------------------- 1 | storage 2 | dist 3 | test/.* 4 | -------------------------------------------------------------------------------- /packages/cubejs-backend-cloud/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-backend-cloud/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './cloud'; 2 | export * from './config'; 3 | export * from './deploy'; 4 | export * from './live-preview'; 5 | -------------------------------------------------------------------------------- /packages/cubejs-backend-cloud/test/cloud.test.ts: -------------------------------------------------------------------------------- 1 | import { CubeCloudClient } from '../src/cloud'; 2 | 3 | test('CubeCloudClient: constuctor', async () => { 4 | const cubeCloudClient = new CubeCloudClient({ 5 | auth: '', 6 | url: '', 7 | deploymentId: '' 8 | }); 9 | expect(cubeCloudClient).not.toBeUndefined(); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/cubejs-backend-maven/.gitignore: -------------------------------------------------------------------------------- 1 | storage 2 | dist 3 | download 4 | -------------------------------------------------------------------------------- /packages/cubejs-backend-maven/bin/maven-resolve: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('../dist/src/maven-resolve') 4 | -------------------------------------------------------------------------------- /packages/cubejs-backend-maven/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-backend-maven/src/index.ts: -------------------------------------------------------------------------------- 1 | export { getDependenciesFromPackage, resolveDependencies } from './maven'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-backend-maven/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | # Please keep in sync this file with rust/cubesql! 2 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | dist 3 | build 4 | target 5 | index.node 6 | **/node_modules 7 | **/.DS_Store 8 | npm-debug.log 9 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/python/README.md: -------------------------------------------------------------------------------- 1 | pip install -i https://test.pypi.org/simple/ cube==0.0.1 -------------------------------------------------------------------------------- /packages/cubejs-backend-native/python/cube/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /packages/cubejs-backend-native/python/cube/README.md: -------------------------------------------------------------------------------- 1 | cube 2 | ==== 3 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/python/cube/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-backend-native/python/cube/__init__.py -------------------------------------------------------------------------------- /packages/cubejs-backend-native/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.84.1" 3 | components = ["rustfmt", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/src/cross/mod.rs: -------------------------------------------------------------------------------- 1 | mod clrepr; 2 | #[cfg(feature = "python")] 3 | mod clrepr_python; 4 | #[cfg(feature = "python")] 5 | mod py_in_js; 6 | 7 | pub use clrepr::{CLRepr, CLReprKind, CLReprObject, CLReprObjectKind, StringType}; 8 | 9 | #[cfg(feature = "python")] 10 | pub use clrepr_python::PythonRef; 11 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/src/gateway/handlers/mod.rs: -------------------------------------------------------------------------------- 1 | mod stream; 2 | 3 | pub use stream::*; 4 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/src/template/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "python")] 2 | mod engine_python; 3 | mod entry; 4 | mod mj_value; 5 | mod neon_mj; 6 | mod workers; 7 | 8 | pub use entry::template_register_module; 9 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/fixtures/schema-tenant-1/test.yml: -------------------------------------------------------------------------------- 1 | cubes: 2 | - name: cube_01 3 | sql_table: 'kek' 4 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/setup/extend-expect.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace jest { 2 | interface Expect { 3 | toBeTypeOrNull: any 4 | } 5 | interface Matchers<R, _T = {}> { 6 | toBeTypeOrNull(expected: any): R; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/subdir_for_test/meta.py: -------------------------------------------------------------------------------- 1 | # Separate file module for testing python imports 2 | 3 | # Simple test function 4 | def test_meta_function(query: dict) -> dict: 5 | return query 6 | 7 | def main_question() -> str: 8 | return "Why?" 9 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/.utils.jinja: -------------------------------------------------------------------------------- 1 | {%- macro markup(column1, column2) -%} 2 | (({{column1}} - {{column2}}) / {{column2}}) 3 | {%- endmacro -%} 4 | 5 | {% macro escape_single_quotes(expression) -%} 6 | {{ expression | replace("'", "''") | safe }} 7 | {%- endmacro %} 8 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/08.yml.jinja: -------------------------------------------------------------------------------- 1 | { cubes: 2 | - name: cube_08 3 | sql_table: public.orders 4 | data_source: {{ 'bigquery' if env_var('NODE_ENV') == 'prod' else 'postgres' }} } -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/class-model.yml.jinja: -------------------------------------------------------------------------------- 1 | {%- set mdl = load_class_model() -%} 2 | 3 | cubes: 4 | - name: {{ mdl.get_name_method() }} 5 | title: {{ mdl.title }} -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/filters.yml.jinja: -------------------------------------------------------------------------------- 1 | variables: 2 | str_filter: {{ "my string" | str_filter }} 3 | str_filter_test_arg: {{ "my string" | filter_return_arg }} 4 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/template_error_python.jinja: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | {%- set variable = throw_exception() %} 7 | 7 8 | 8 9 | 9 10 | 10 11 | 11 12 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/template_error_syntax.jinja: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | {%- set countries = ["au", "us"] %} 7 | 7 8 | {%- for country in countries %} 9 | 9 10 | {%- unexpected_block_name %} 11 | 11 12 | 12 13 | 13 14 | 14 15 | 15 16 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/templates/variables.yml.jinja: -------------------------------------------------------------------------------- 1 | variables: 2 | var1: {{ var1 }} 3 | var2: {{ var2 }} 4 | var3: {{ var3 }} 5 | var4: {{ var4 }} 6 | var5: {{ var5 }} 7 | var6: {{ var6 }} 8 | var7: {{ var7 }} -------------------------------------------------------------------------------- /packages/cubejs-backend-native/test/utils.py: -------------------------------------------------------------------------------- 1 | # Separate file module for testing python imports 2 | 3 | # Simple test function 4 | def test_function(query: dict) -> dict: 5 | return query 6 | 7 | def answer_to_main_question() -> str: 8 | return "42" 9 | -------------------------------------------------------------------------------- /packages/cubejs-backend-native/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "js", 5 | "test" 6 | ], 7 | "exclude": [ 8 | "test/snapshotResolver.js" 9 | ], 10 | "compilerOptions": { 11 | "outDir": "dist", 12 | "rootDir": ".", 13 | "baseUrl": ".", 14 | "allowJs": true, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/cubejs-backend-shared/.gitignore: -------------------------------------------------------------------------------- 1 | storage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/cubejs-backend-shared/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-backend-shared/src/errors.ts: -------------------------------------------------------------------------------- 1 | import { getEnv } from './env'; 2 | 3 | export function internalExceptions(e: Error) { 4 | const env = getEnv('internalExceptions'); 5 | 6 | if (env !== 'false') { 7 | console.error(e); 8 | } 9 | 10 | if (env === 'exit') { 11 | process.exit(1); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-backend-shared/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-base-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-base-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-base-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './BaseDriver'; 2 | export * from './utils'; 3 | export * from './driver.interface'; 4 | export * from './queue-driver.interface'; 5 | export * from './cache-driver.interface'; 6 | -------------------------------------------------------------------------------- /packages/cubejs-base-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | "allowJs": true 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-bigquery-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-bigquery-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-bigquery-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './BigQueryDriver'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-bigquery-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-cli/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | -------------------------------------------------------------------------------- /packages/cubejs-cli/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-cli/src/index.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import 'source-map-support/register'; 4 | 5 | require('@cubejs-backend/shared/dist/src/node-check'); 6 | 7 | require('./cli'); 8 | -------------------------------------------------------------------------------- /packages/cubejs-cli/test/utils.test.ts: -------------------------------------------------------------------------------- 1 | import { findMaxVersion } from '../src/utils'; 2 | 3 | test('findMaxVersion', () => { 4 | expect(findMaxVersion(['0.21.2', '0.22.3']).version).toBe('0.22.3'); 5 | expect(findMaxVersion(['0.22.3', '0.21.2']).version).toBe('0.22.3'); 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-clickhouse-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-clickhouse-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-clickhouse-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { ClickHouseDriver } from './ClickHouseDriver'; 2 | 3 | export * from './ClickHouseDriver'; 4 | 5 | export default ClickHouseDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-clickhouse-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "allowJs": true, 9 | "outDir": "dist", 10 | "rootDir": ".", 11 | "baseUrl": ".", 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-client-core/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | e2e.js -------------------------------------------------------------------------------- /packages/cubejs-client-core/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-client-core/index.d.ts -------------------------------------------------------------------------------- /packages/cubejs-client-core/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base-ts.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | collectCoverageFrom: [ 8 | ...base.collectCoverageFrom, 9 | '!<rootDir>/src/index.umd.ts', 10 | ], 11 | }; 12 | -------------------------------------------------------------------------------- /packages/cubejs-client-core/src/RequestError.ts: -------------------------------------------------------------------------------- 1 | export default class RequestError extends Error { 2 | public response: any; 3 | 4 | public status: number; 5 | 6 | public constructor(message: string, response: any, status: number) { 7 | super(message); 8 | this.response = response; 9 | this.status = status; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/cubejs-client-core/src/index.umd.ts: -------------------------------------------------------------------------------- 1 | import cube, * as clientCoreExports from './index'; 2 | 3 | const cubeAll: any = cube; 4 | 5 | Object.keys(clientCoreExports).forEach((key) => { 6 | cubeAll[key] = (clientCoreExports as Record<string, any>)[key]; 7 | }); 8 | 9 | export default cubeAll; 10 | -------------------------------------------------------------------------------- /packages/cubejs-client-dx/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | generated.d.ts 3 | -------------------------------------------------------------------------------- /packages/cubejs-client-dx/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | [ 4 | '@babel/preset-env', 5 | { }, 6 | ] 7 | ] 8 | }; 9 | -------------------------------------------------------------------------------- /packages/cubejs-client-dx/generated.d.ts: -------------------------------------------------------------------------------- 1 | // DO NOT MANUALLY EDIT - THIS FILE IS AUTOMATICALLY GENERATED 2 | 3 | export type IntrospectedMeasureName = string; 4 | export type IntrospectedDimensionName = string; 5 | export type IntrospectedTimeDimensionName = string; 6 | export type IntrospectedSegmentName = string; 7 | -------------------------------------------------------------------------------- /packages/cubejs-client-dx/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | transform: { 8 | '^.+\\.js#39;: 'babel-jest', 9 | }, 10 | }; 11 | -------------------------------------------------------------------------------- /packages/cubejs-client-dx/src/index.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /packages/cubejs-client-dx/src/index.mjs: -------------------------------------------------------------------------------- 1 | export default {}; 2 | -------------------------------------------------------------------------------- /packages/cubejs-client-ngx/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | .yalc/ 3 | yalc.lock 4 | .angular/ 5 | -------------------------------------------------------------------------------- /packages/cubejs-client-ngx/index.ts: -------------------------------------------------------------------------------- 1 | // This file is not used to build this module. It is only used during editing 2 | // by the TypeScript language service and during build for verification. `ngc` 3 | // replaces this file with production index.ts when it rewrites private symbol 4 | // names. 5 | 6 | export * from './src/public_api'; -------------------------------------------------------------------------------- /packages/cubejs-client-ngx/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "./dist", 4 | "lib": { 5 | "entryFile": "index.ts" 6 | }, 7 | "allowedNonPeerDependencies": [ 8 | "@cubejs-client/core", 9 | "fast-deep-equal" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/cubejs-client-ngx/src/query-builder/chart-type.ts: -------------------------------------------------------------------------------- 1 | import { StateSubject } from './common'; 2 | 3 | export type TChartType = 'line' | 'area' | 'bar' | 'number' | 'table' | 'pie'; 4 | 5 | export class ChartType extends StateSubject<TChartType> { 6 | constructor(value) { 7 | super(value); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/cubejs-client-ngx/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "declarationMap": false 5 | }, 6 | "angularCompilerOptions": { 7 | "compilationMode": "partial" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/cubejs-client-react/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ -------------------------------------------------------------------------------- /packages/cubejs-client-react/src/CubeContext.js: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | export default createContext(null); 4 | -------------------------------------------------------------------------------- /packages/cubejs-client-react/src/hooks/cube-meta.js: -------------------------------------------------------------------------------- 1 | import { useCubeFetch } from './cube-fetch'; 2 | 3 | export function useCubeMeta(options = {}) { 4 | return useCubeFetch('meta', options); 5 | } 6 | -------------------------------------------------------------------------------- /packages/cubejs-client-react/src/hooks/cube-sql.js: -------------------------------------------------------------------------------- 1 | import { useCubeFetch } from './cube-fetch'; 2 | 3 | export function useCubeSql(query, options = {}) { 4 | return useCubeFetch('sql', { 5 | ...options, 6 | query 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-client-react/src/hooks/deep-compare-memoize.js: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | import { equals } from 'ramda'; 3 | 4 | export default function useDeepCompareMemoize(value) { 5 | const ref = useRef([]); 6 | 7 | if (!equals(value, ref.current)) { 8 | ref.current = value; 9 | } 10 | 11 | return ref.current; 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-client-react/src/hooks/dry-run.js: -------------------------------------------------------------------------------- 1 | import { useCubeFetch } from './cube-fetch'; 2 | 3 | export function useDryRun(query, options = {}) { 4 | return useCubeFetch('dryRun', { 5 | ...options, 6 | query, 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-client-react/src/hooks/lazy-dry-run.js: -------------------------------------------------------------------------------- 1 | import { useCubeFetch } from './cube-fetch'; 2 | 3 | export function useLazyDryRun(query, options = {}) { 4 | const { refetch, ...result } = useCubeFetch('dryRun', { 5 | ...options, 6 | query, 7 | skip: true 8 | }); 9 | 10 | return [refetch, result]; 11 | } 12 | -------------------------------------------------------------------------------- /packages/cubejs-client-vue/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | # local env files 5 | .env.local 6 | .env.*.local 7 | 8 | # Log files 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw* 21 | dist/ -------------------------------------------------------------------------------- /packages/cubejs-client-vue/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/app'], 3 | plugins: ['@babel/plugin-proposal-optional-chaining'], 4 | }; 5 | -------------------------------------------------------------------------------- /packages/cubejs-client-vue/src/index.js: -------------------------------------------------------------------------------- 1 | import { GRANULARITIES } from '@cubejs-client/core'; 2 | 3 | import QueryRenderer from './QueryRenderer'; 4 | import QueryBuilder from './QueryBuilder'; 5 | 6 | export { QueryRenderer, QueryBuilder, GRANULARITIES }; 7 | 8 | export default {}; 9 | -------------------------------------------------------------------------------- /packages/cubejs-client-vue/tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | } -------------------------------------------------------------------------------- /packages/cubejs-client-vue/tests/unit/utils.js: -------------------------------------------------------------------------------- 1 | import cubejsApi from '@cubejs-client/core'; 2 | 3 | export function createCubeApi() { 4 | return cubejsApi('token', { 5 | apiUrl: 'http://localhost:4000' 6 | }); 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-client-vue3/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | # local env files 5 | .env.local 6 | .env.*.local 7 | 8 | # Log files 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw* 21 | dist/ -------------------------------------------------------------------------------- /packages/cubejs-client-vue3/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/app'], 3 | plugins: ['@babel/plugin-proposal-optional-chaining'], 4 | }; 5 | -------------------------------------------------------------------------------- /packages/cubejs-client-vue3/src/index.js: -------------------------------------------------------------------------------- 1 | import { GRANULARITIES } from '@cubejs-client/core'; 2 | 3 | import QueryRenderer from './QueryRenderer'; 4 | import QueryBuilder from './QueryBuilder'; 5 | 6 | export { QueryRenderer, QueryBuilder, GRANULARITIES }; 7 | 8 | export default {}; 9 | -------------------------------------------------------------------------------- /packages/cubejs-client-vue3/tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | } -------------------------------------------------------------------------------- /packages/cubejs-client-vue3/tests/unit/utils.js: -------------------------------------------------------------------------------- 1 | import cubeApi from '@cubejs-client/core'; 2 | 3 | export function createCubeApi() { 4 | return cubeApi('token', { 5 | apiUrl: 'http://localhost:4000' 6 | }); 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-client-ws-transport/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | temp/ 3 | -------------------------------------------------------------------------------- /packages/cubejs-crate-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-crate-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { CrateDriver } from './CrateDriver'; 2 | 3 | export * from './CrateDriver'; 4 | 5 | export default CrateDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-crate-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-cubestore-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-cubestore-driver/codegen/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | flatc --ts ../../../rust/cubestore/cubestore/src/codegen/http_message.fbs --ts-flat-files 4 | mv http_message.ts index.ts 5 | -------------------------------------------------------------------------------- /packages/cubejs-cubestore-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | testMatch: [ 8 | '<rootDir>/dist/test/*.(test|spec).(ts|js)' 9 | ], 10 | }; 11 | -------------------------------------------------------------------------------- /packages/cubejs-cubestore-driver/src/rexport.ts: -------------------------------------------------------------------------------- 1 | export { isCubeStoreSupported, CubeStoreHandler } from '@cubejs-backend/cubestore'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-cubestore-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "codegen", 6 | "test" 7 | ], 8 | "compilerOptions": { 9 | "noImplicitAny": false, 10 | "outDir": "dist", 11 | "rootDir": ".", 12 | "baseUrl": ".", 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/cubejs-databricks-jdbc-driver/.gitignore: -------------------------------------------------------------------------------- 1 | download 2 | dist 3 | -------------------------------------------------------------------------------- /packages/cubejs-databricks-jdbc-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-databricks-jdbc-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { DatabricksDriver } from './DatabricksDriver'; 2 | 3 | export default DatabricksDriver; 4 | export { DatabricksDriver }; 5 | -------------------------------------------------------------------------------- /packages/cubejs-databricks-jdbc-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": "." 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-dbt-schema-extension/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-dbt-schema-extension/index.js: -------------------------------------------------------------------------------- 1 | const { Dbt } = require('./dist/src/Dbt'); 2 | 3 | module.exports = Dbt; 4 | -------------------------------------------------------------------------------- /packages/cubejs-dbt-schema-extension/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-dbt-schema-extension/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-docker/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/cubejs-docker/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-docker/bin/cubejs-dev: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('/cubejs/packages/cubejs-cli/dist/src/index.js'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-docker/bin/cubestore-dev: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('/cubejs/rust/dist/cubestore-bin.js'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-dremio-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /packages/cubejs-dremio-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | "resolveJsonModule": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-druid-driver/.gitignore: -------------------------------------------------------------------------------- 1 | storage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/cubejs-druid-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { DruidDriver } from './DruidDriver'; 2 | 3 | export default DruidDriver; 4 | -------------------------------------------------------------------------------- /packages/cubejs-druid-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "noImplicitAny": false, 9 | "outDir": "dist", 10 | "rootDir": ".", 11 | "baseUrl": ".", 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-duckdb-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-duckdb-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-duckdb-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { DuckDBDriver } from './DuckDBDriver'; 2 | 3 | export * from './DuckDBDriver'; 4 | 5 | export default DuckDBDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-duckdb-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-elasticsearch-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | testMatch: [ 8 | '**/__tests__/**/*.js?(x)', 9 | '**/?(*.)+(spec|test|integration).js?(x)' 10 | ] 11 | }; 12 | -------------------------------------------------------------------------------- /packages/cubejs-firebolt-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /packages/cubejs-firebolt-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { FireboltDriver } from './FireboltDriver'; 2 | 3 | export * from './FireboltDriver'; 4 | 5 | export default FireboltDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-firebolt-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | "resolveJsonModule": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-jdbc-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-jdbc-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './JDBCDriver'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /packages/cubejs-jdbc-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | "allowJs": true, 12 | "checkJs": false 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/cubejs-ksql-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-ksql-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | moduleNameMapper: { 8 | ...base.moduleNameMapper, 9 | '^axios#39;: require.resolve('axios'), 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /packages/cubejs-ksql-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './KsqlQuery'; 2 | export * from './KsqlDriver'; 3 | -------------------------------------------------------------------------------- /packages/cubejs-ksql-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-materialize-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /packages/cubejs-materialize-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { MaterializeDriver } from './MaterializeDriver'; 2 | 3 | export * from './MaterializeDriver'; 4 | 5 | export default MaterializeDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-materialize-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": ["src", "test"], 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": ".", 7 | "baseUrl": "." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/cubejs-mongobi-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-mongobi-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { MongoBIDriver } from './MongoBIDriver'; 2 | 3 | export * from './MongoBIDriver'; 4 | 5 | export default MongoBIDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-mongobi-driver/test/mongo-init.js: -------------------------------------------------------------------------------- 1 | db = db.getSiblingDB('test'); 2 | 3 | db.createCollection('mycol'); 4 | 5 | db.mycol.insertMany([{ number: 1 }]); 6 | -------------------------------------------------------------------------------- /packages/cubejs-mongobi-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-mssql-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-mssql-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { MSSqlDriver } from './MSSqlDriver'; 2 | 3 | export * from './MSSqlDriver'; 4 | 5 | export default MSSqlDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-mssql-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | "typeRoots": ["./node_modules/@types", "./src/types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-mysql-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-mysql-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-mysql-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { MySqlDriver } from './MySqlDriver'; 2 | 3 | export * from './MySqlDriver'; 4 | 5 | export default MySqlDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-mysql-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/pinot-resources/broker.conf: -------------------------------------------------------------------------------- 1 | pinot.broker.access.control.class=org.apache.pinot.broker.broker.BasicAuthAccessControlFactory 2 | pinot.broker.access.control.principals=admin 3 | pinot.broker.access.control.principals.admin.password=mysecret -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/pinot-resources/rawdata/scores/scores.csv: -------------------------------------------------------------------------------- 1 | studentID,subject,score,score_date 2 | 200,Maths,3.8,1725462007792 3 | 200,English,3.5,1725348240000 4 | 201,English,3.2,1725348240000 5 | 202,Maths,3.1,1725348240000 6 | 201,Maths,3.2,1725276600000 7 | 202,Physics,3.6,1724329800000 -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/pinot-resources/rawdata/students/students.csv: -------------------------------------------------------------------------------- 1 | studentID,firstName,lastName,gender 2 | 200,Lucy,Smith,Female 3 | 201,Bob,King,Male 4 | 202,Nick,Young,Male -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { PinotDriver } from './PinotDriver'; 2 | 3 | export default PinotDriver; 4 | export { PinotDriver }; 5 | -------------------------------------------------------------------------------- /packages/cubejs-pinot-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": "." 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-playground/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-react", 5 | { 6 | "runtime": "automatic" 7 | } 8 | ] 9 | ], 10 | "plugins": [ 11 | "@babel/plugin-proposal-optional-chaining", 12 | "@babel/plugin-proposal-class-properties" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/cubejs-playground/.env: -------------------------------------------------------------------------------- 1 | SKIP_PREFLIGHT_CHECK=true 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/.eslintignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/charts-gen/README.md: -------------------------------------------------------------------------------- 1 | Creating a symlink for chart renderers generation 2 | 3 | mkdir [PATH_TO_PROJECT]/cube.js/packages/cubejs-playground/charts-gen/node_modules/.tmp 4 | ln -s [PATH_TO_PROJECT]/cubejs-playground-templates [PATH_TO_PROJECT]/cube.js/packages/cubejs-playground/charts-gen/node_modules/.tmp/cubejs-playground-templates 5 | -------------------------------------------------------------------------------- /packages/cubejs-playground/charts-gen/build-all.sh: -------------------------------------------------------------------------------- 1 | sh react/build.sh & sh angular/build.sh & sh vue/build.sh 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/charts-gen/env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | REPOSITORY: { 3 | owner: 'cube-js', 4 | name: 'cubejs-playground-templates', 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /packages/cubejs-playground/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /packages/cubejs-playground/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/cubejs-playground/public/browserconfig.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <browserconfig> 3 | <msapplication> 4 | <tile> 5 | <square150x150logo src="/mstile-150x150.png"/> 6 | <TileColor>#afadff</TileColor> 7 | </tile> 8 | </msapplication> 9 | </browserconfig> 10 | -------------------------------------------------------------------------------- /packages/cubejs-playground/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/favicon-16x16.png -------------------------------------------------------------------------------- /packages/cubejs-playground/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/favicon-32x32.png -------------------------------------------------------------------------------- /packages/cubejs-playground/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/favicon.ico -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-Bold.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-Bold.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-Medium.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-Medium.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-Regular.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-Regular.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-SemiBold.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/Inter-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/Inter-SemiBold.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/JetBrainsMono-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/JetBrainsMono-Bold.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/JetBrainsMono-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/JetBrainsMono-Bold.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/JetBrainsMono-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/JetBrainsMono-Medium.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/JetBrainsMono-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/JetBrainsMono-Medium.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/JetBrainsMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/JetBrainsMono-Regular.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/JetBrainsMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/JetBrainsMono-Regular.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/SourceCodePro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/SourceCodePro-Regular.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/SourceCodePro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/SourceCodePro-Regular.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/text-security-disc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/text-security-disc.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/public/fonts/text-security-disc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/fonts/text-security-disc.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/public/mstile-150x150.png -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/Pivot/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Axes'; 2 | export * from './DroppableArea'; 3 | export * from './Item'; 4 | export * from './Options'; 5 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/components/Accordion/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Accordion'; 2 | export type { 3 | AccordionProps, 4 | AccordionItemProps, 5 | ShowExtra, 6 | AccordionNestedContextData, 7 | } from './types'; 8 | export * from './AccordionNestedContext'; 9 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/components/AccordionCard/index.ts: -------------------------------------------------------------------------------- 1 | export * from './AccordionCard'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/components/ScrollableArea.tsx: -------------------------------------------------------------------------------- 1 | import { Flow, tasty } from '@cube-dev/ui-kit'; 2 | 3 | export const ScrollableArea = tasty(Flow, { 4 | styles: { 5 | overflow: 'auto', 6 | styledScrollbar: true, 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/components/Tabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Tabs'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/hooks/is-first-render.ts: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | 3 | export function useIsFirstRender(): boolean { 4 | const isFirst = useRef(true); 5 | 6 | if (isFirst.current) { 7 | isFirst.current = false; 8 | 9 | return true; 10 | } 11 | 12 | return isFirst.current; 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/hooks/sync-ref.ts: -------------------------------------------------------------------------------- 1 | import { MutableRefObject, useRef } from 'react'; 2 | 3 | export function useSyncRef<T>(value: T): MutableRefObject<T> { 4 | const ref = useRef(value); 5 | ref.current = value; 6 | 7 | return ref; 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/index.ts: -------------------------------------------------------------------------------- 1 | export * from './QueryBuilder'; 2 | export * from './types'; 3 | export * from './hooks/query-builder'; 4 | export * from './QueryBuilderChartResults'; 5 | export * from './color-tokens'; 6 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/utils/are-queries-equal.tsx: -------------------------------------------------------------------------------- 1 | import { Query } from '@cubejs-client/core'; 2 | 3 | import { getQueryHash } from './get-query-hash'; 4 | 5 | export function areQueriesEqual(query1: Query, query2: Query) { 6 | return getQueryHash(query1) === getQueryHash(query2); 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/utils/get-query-hash.tsx: -------------------------------------------------------------------------------- 1 | import { Query } from '@cubejs-client/core'; 2 | 3 | import { validateQuery } from './validate-query'; 4 | 5 | export function getQueryHash(query: Query) { 6 | return JSON.stringify(validateQuery(query)); 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/utils/labels.ts: -------------------------------------------------------------------------------- 1 | export const ORDER_LABEL_BY_TYPE = { 2 | string: ['A to Z', 'Z to A'], 3 | number: ['0 to 9', '9 to 0'], 4 | time: ['Old to new', 'New to old'], 5 | boolean: ['T to F', 'F to T'], 6 | }; 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/utils/uncapitalize.ts: -------------------------------------------------------------------------------- 1 | export function unCapitalize(name: string) { 2 | return `${name[0].toLowerCase()}${name.slice(1)}`; 3 | } 4 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/utils/uniq-array.ts: -------------------------------------------------------------------------------- 1 | export function uniqArray<T = any>(array: T[]) { 2 | return Array.from(new Set(array)); 3 | } 4 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/QueryBuilderV2/utils/use-is-first-render.tsx: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | 3 | export function useIsFirstRender(): boolean { 4 | const isFirst = useRef(true); 5 | 6 | if (isFirst.current) { 7 | isFirst.current = false; 8 | 9 | return true; 10 | } 11 | 12 | return isFirst.current; 13 | } 14 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/atoms/Popover.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | import { Popover as AntdPopover } from 'antd'; 3 | 4 | export const Popover = styled(AntdPopover)` 5 | && { 6 | .ant-popover-inner-content { 7 | padding: 0; 8 | } 9 | } 10 | `; 11 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/atoms/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './Alert'; 2 | export * from './CubeLoader'; 3 | export * from './Button'; 4 | export * from './Card'; 5 | export * from './Popover'; 6 | export * from './CodeSnippet'; 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/cloud/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CloudProvider' -------------------------------------------------------------------------------- /packages/cubejs-playground/src/components/PlaygroundQueryBuilder/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PreAggregationStatus'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/grid/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Flex' 2 | export * from './Box' 3 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/hooks/deep-compare-memoize.ts: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | import equals from 'fast-deep-equal/es6'; 3 | 4 | export function useDeepCompareMemoize(value) { 5 | const ref = useRef([]); 6 | 7 | if (!equals(value, ref.current)) { 8 | ref.current = value; 9 | } 10 | 11 | return ref.current; 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/hooks/identifier.ts: -------------------------------------------------------------------------------- 1 | import { useAppContext } from './app-context'; 2 | 3 | export function useIdentifier(): string { 4 | const { identifier } = useAppContext(); 5 | 6 | return identifier || ''; 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/hooks/live-preview-context.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react'; 2 | import { LivePreviewContextContext } from '../components/LivePreviewContext/LivePreviewContextProvider'; 3 | 4 | export function useLivePreviewContext() { 5 | return useContext(LivePreviewContextContext); 6 | } 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/hooks/security-context.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react'; 2 | import { SecurityContextContext } from '../components/SecurityContext/SecurityContextProvider'; 3 | 4 | export function useSecurityContext() { 5 | return useContext(SecurityContextContext); 6 | } 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/hooks/toggle.ts: -------------------------------------------------------------------------------- 1 | import { useState } from 'react'; 2 | 3 | export function useToggle(defaultValue: boolean = false): [boolean, (...args: any) => void] { 4 | const [isOn, toggle] = useState(defaultValue); 5 | 6 | return [isOn, () => toggle((value) => !value)]; 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/pages/components/Ui.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | 3 | export const Header = styled.div` 4 | padding: 24px 50px; 5 | 6 | h1 { 7 | font-size: 32px; 8 | } 9 | `; 10 | 11 | export const Content = styled.div` 12 | padding: 0 50px; 13 | `; 14 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './Schema/SchemaPage'; 2 | export * from './ConnectionWizard/ConnectionWizardPage'; 3 | export * from './Explore/ExplorePage'; 4 | export * from './Index/IndexPage'; 5 | export * from './ConnectToBI/ConnectToBiPage'; 6 | export * from './FrontendIntegrations/FrontendIntegrationsPage'; 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/playground/index.ts: -------------------------------------------------------------------------------- 1 | export * from '../cloud'; 2 | export * from './components/QueryBuilder'; 3 | export * from '../hooks'; 4 | export { fetchPoll } from '../utils'; 5 | export { setTracker, setTelemetry } from '../events'; 6 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// <reference types="react-scripts" /> 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/rollup-designer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './RollupDesigner'; 2 | export * from './Context'; 3 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/shared/svg.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' { 2 | const content: any; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /packages/cubejs-playground/src/theme.ts: -------------------------------------------------------------------------------- 1 | const theme = { 2 | colors: { 3 | grey: '#A1A1B5', 4 | lightBlue: '#F3F3FB', 5 | purple: '#43436B', 6 | darkPurple: '#141446', 7 | red: '#FF6492', 8 | }, 9 | }; 10 | 11 | export default theme; 12 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vitest.config.ts: -------------------------------------------------------------------------------- 1 | /// <reference types="vitest" /> 2 | 3 | import { defineConfig } from 'vite' 4 | 5 | export default defineConfig({ 6 | test: { 7 | globals: true, 8 | environment: 'jsdom', 9 | }, 10 | }) -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/.env.example: -------------------------------------------------------------------------------- 1 | # Create the .env.local file in the root of the project and copy the content of this file filling it with your params 2 | VITE_CUBE_API_URL=https://{domain or IP}/cubejs-api/v1 3 | VITE_CUBE_API_TOKEN={YOUR API TOKEN} 4 | VITE_CUBE_QUERY={QUERY IN JSON} 5 | VITE_CUBE_PIVOT_CONFIG={PIVOT CONFIG IN JSON} 6 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "plugin:react/recommended", 4 | "plugin:prettier/recommended" 5 | ], 6 | "plugins": ["react", "prettier"], 7 | "rules": { 8 | "prettier/prettier": "error" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/.nvmrc: -------------------------------------------------------------------------------- 1 | 18.19.1 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/.prettierignore: -------------------------------------------------------------------------------- 1 | build 2 | node_modules 3 | public 4 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "useTabs": false, 6 | "trailingComma": "es5", 7 | "printWidth": 80 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/apps/react-typescript-antd-table/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.tsx' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')!).render( 7 | <React.StrictMode> 8 | <App /> 9 | </React.StrictMode>, 10 | ) 11 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/apps/react-typescript-antd-table/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// <reference types="vite/client" /> 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/apps/react-typescript-antd-table/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | base: '/vizard/preview/react-typescript-antd-table/', 7 | plugins: [react()], 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/apps/react-typescript-chartjs-area+bar+doughnut+line+pie/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// <reference types="vite/client" /> 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/favicon.ico -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-Bold.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-Bold.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-Medium.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-Medium.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-Regular.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-Regular.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-SemiBold.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/Inter-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/Inter-SemiBold.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Bold.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Bold.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Medium.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Medium.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Regular.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/JetBrainsMono-Regular.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/SourceCodePro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/SourceCodePro-Regular.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/SourceCodePro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/SourceCodePro-Regular.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/text-security-disc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/text-security-disc.woff -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/public/fonts/text-security-disc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-playground/vizard/public/fonts/text-security-disc.woff2 -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/app-options.js: -------------------------------------------------------------------------------- 1 | export const APP_OPTIONS = { 2 | visualization: ['line', 'bar', 'area', 'pie', 'doughnut', 'table'], 3 | framework: ['react', 'angular', 'vue'], 4 | language: ['typescript', 'javascript'], 5 | library: ['chartjs', 'antd'], 6 | }; 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './window-size'; 2 | export * from './sync-ref'; 3 | export * from './event'; 4 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/hooks/sync-ref.ts: -------------------------------------------------------------------------------- 1 | import { MutableRefObject, useRef } from 'react'; 2 | 3 | export function useSyncRef<T>(value: T): MutableRefObject<T> { 4 | const ref = useRef(value); 5 | ref.current = value; 6 | 7 | return ref; 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/main.tsx: -------------------------------------------------------------------------------- 1 | import './index.css'; 2 | import 'react'; 3 | import ReactDOM from 'react-dom/client'; 4 | import { Vizard } from './Vizard'; 5 | 6 | ReactDOM.createRoot(document.getElementById('root')!).render(<Vizard />); 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/index.ts: -------------------------------------------------------------------------------- 1 | export * from './setup-monaco'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/setup-monaco.ts: -------------------------------------------------------------------------------- 1 | import { setupWorkers } from './setup-workers'; 2 | import './config'; 3 | 4 | export function setupMonaco() { 5 | setupWorkers(); 6 | } 7 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/workers/css.worker.ts: -------------------------------------------------------------------------------- 1 | import 'monaco-editor/esm/vs/language/css/css.worker'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/workers/editor.worker.ts: -------------------------------------------------------------------------------- 1 | import 'monaco-editor/esm/vs/editor/editor.worker'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/workers/json.worker.ts: -------------------------------------------------------------------------------- 1 | import 'monaco-editor/esm/vs/language/json/json.worker'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/workers/ts.worker.ts: -------------------------------------------------------------------------------- 1 | import 'monaco-editor/esm/vs/language/typescript/ts.worker'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/monaco/workers/yaml.worker.ts: -------------------------------------------------------------------------------- 1 | import 'monaco-yaml/yaml.worker'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// <reference types="vite/client" /> 2 | -------------------------------------------------------------------------------- /packages/cubejs-playground/vizard/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /packages/cubejs-postgres-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-postgres-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { PostgresDriver } from './PostgresDriver'; 2 | 3 | export * from './PostgresDriver'; 4 | 5 | export default PostgresDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-postgres-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-prestodb-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-prestodb-driver/config/catalog/postgresql.properties: -------------------------------------------------------------------------------- 1 | connector.name=postgresql 2 | connection-url=jdbc:postgresql://postgres:5432/presto 3 | connection-user=presto 4 | connection-password=9bee2c3975024292eff5829526722ac2 5 | -------------------------------------------------------------------------------- /packages/cubejs-prestodb-driver/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2.2' 2 | 3 | services: 4 | coordinator: 5 | image: trinodb/trino 6 | ports: 7 | - "8080:8080" 8 | container_name: "coordinator" 9 | healthcheck: 10 | test: "trino --execute 'SELECT 1' || exit 1" 11 | interval: 10s 12 | timeout: 5s 13 | retries: 5 14 | -------------------------------------------------------------------------------- /packages/cubejs-prestodb-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-prestodb-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { PrestoDriver } from './PrestoDriver'; 2 | 3 | export default PrestoDriver; 4 | export { PrestoDriver }; 5 | -------------------------------------------------------------------------------- /packages/cubejs-prestodb-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": "." 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | .cubestore 3 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.2" 2 | services: 3 | 4 | redis: 5 | image: "redis:alpine" 6 | ports: 7 | - "6379:6379" -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './orchestrator'; 2 | 3 | // reexport for backward compatibility 4 | export * from '@cubejs-backend/base-driver'; 5 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/src/orchestrator/ContinueWaitError.ts: -------------------------------------------------------------------------------- 1 | export class ContinueWaitError extends Error { 2 | public constructor() { 3 | super('Continue wait'); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/src/orchestrator/DriverFactory.ts: -------------------------------------------------------------------------------- 1 | import type { BaseDriver } from '@cubejs-backend/base-driver'; 2 | 3 | export type DriverFactory = () => (Promise<BaseDriver> | BaseDriver); 4 | export type DriverFactoryByDataSource = 5 | (dataSource: string) => (Promise<BaseDriver> | BaseDriver); 6 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/src/orchestrator/TimeoutError.ts: -------------------------------------------------------------------------------- 1 | export class TimeoutError extends Error {} 2 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/test/unit/QueryCache.test.ts: -------------------------------------------------------------------------------- 1 | import { QueryCacheTest } from './QueryCache.abstract'; 2 | 3 | QueryCacheTest('Local'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-query-orchestrator/test/unit/QueryQueue.test.ts: -------------------------------------------------------------------------------- 1 | import { QueryQueueTest } from './QueryQueue.abstract'; 2 | 3 | QueryQueueTest('Local'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-questdb-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-questdb-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { QuestDriver } from './QuestDriver'; 2 | 3 | export * from './QuestDriver'; 4 | 5 | export default QuestDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-questdb-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-redshift-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-redshift-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { RedshiftDriver } from './RedshiftDriver'; 2 | 3 | export * from './RedshiftDriver'; 4 | 5 | export default RedshiftDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-redshift-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/.eslintignore: -------------------------------------------------------------------------------- 1 | src/parser/GenericSqlLexer.ts 2 | src/parser/GenericSqlListener.ts 3 | src/parser/GenericSqlParser.ts 4 | src/parser/GenericSqlVisitor.ts 5 | src/parser/Python3Lexer.ts 6 | src/parser/Python3ParserListener.ts 7 | src/parser/Python3Parser.ts 8 | src/parser/Python3ParserVisitor.ts 9 | test/unit/fixtures/* 10 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/compiler/CompileError.ts: -------------------------------------------------------------------------------- 1 | export class CompileError extends Error { 2 | public constructor( 3 | protected readonly messages: string, 4 | protected readonly plainMessages?: string, 5 | ) { 6 | super(`Compile errors:\n${messages}`); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/compiler/DynamicReference.ts: -------------------------------------------------------------------------------- 1 | export class DynamicReference<T> { 2 | public constructor(public memberNames: Array<string>, public fn: (...args: Array<unknown>) => T) { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/compiler/UserError.ts: -------------------------------------------------------------------------------- 1 | export class UserError extends Error { 2 | protected readonly type: string = 'UserError'; 3 | 4 | public constructor(message: string) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/compiler/converters/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CubeSchemaConverter'; 2 | export * from './CubePreAggregationConverter'; 3 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/compiler/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PrepareCompiler'; 2 | export * from './UserError'; 3 | export * from './converters'; 4 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/compiler/transpilers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ImportExportTranspiler'; 2 | export * from './CubePropContextTranspiler'; 3 | export * from './CubeCheckDuplicatePropTranspiler'; 4 | export * from './ValidationTranspiler'; 5 | export * from './transpiler.interface'; 6 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/extensions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Funnels'; 2 | export * from './Reflection'; 3 | export * from './RefreshKeys'; 4 | export * from './extension.abstract'; 5 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './adapter'; 2 | export * from './compiler'; 3 | export * from './scaffolding'; 4 | export * from './extensions'; 5 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/scaffolding/descriptors/MemberReference.ts: -------------------------------------------------------------------------------- 1 | export class MemberReference { 2 | public constructor(public member) { 3 | this.member = member; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/scaffolding/descriptors/ValueWithComments.ts: -------------------------------------------------------------------------------- 1 | export class ValueWithComments { 2 | public constructor( 3 | public readonly value: any, 4 | public readonly comments: string[] 5 | ) { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/scaffolding/formatters/index.ts: -------------------------------------------------------------------------------- 1 | export * from './JavaScriptSchemaFormatter'; 2 | export * from './BaseSchemaFormatter'; 3 | export * from './YamlSchemaFormatter'; 4 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/src/scaffolding/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ScaffoldingSchema'; 2 | export * from './ScaffoldingTemplate'; 3 | export * from './formatters'; 4 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/test/global-setup.ts: -------------------------------------------------------------------------------- 1 | export default () => { 2 | process.env.TZ = 'UTC'; 3 | }; 4 | -------------------------------------------------------------------------------- /packages/cubejs-schema-compiler/test/unit/TestHelperForImport.js: -------------------------------------------------------------------------------- 1 | exports.foo = () => 'bar'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-server-core/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | setupFilesAfterEnv: [ 8 | '<rootDir>/dist/test/setup.js' 9 | ], 10 | }; 11 | -------------------------------------------------------------------------------- /packages/cubejs-server-core/src/core/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-server-core/src/core/utils.ts -------------------------------------------------------------------------------- /packages/cubejs-server/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-server/bin/dev-server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('@cubejs-backend/shared/dist/src/node-check'); 4 | 5 | require('../dist/src/bin/dev-server'); 6 | -------------------------------------------------------------------------------- /packages/cubejs-server/bin/server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('@cubejs-backend/shared/dist/src/node-check'); 4 | 5 | require('../dist/src/bin/server'); 6 | -------------------------------------------------------------------------------- /packages/cubejs-server/command/README.md: -------------------------------------------------------------------------------- 1 | Compatibility layer for old Cube.js CLI. Because We started to compile src/ & test/ folders inside 2 | cubejs-server package by TypeScript, which generates output of src/ folder to dist/src, but for compatibility reasons, 3 | we should continue to support this path. 4 | -------------------------------------------------------------------------------- /packages/cubejs-server/command/dev-server.ts: -------------------------------------------------------------------------------- 1 | import DevServerCommand from '../src/command/dev-server'; 2 | 3 | export default DevServerCommand; 4 | -------------------------------------------------------------------------------- /packages/cubejs-server/command/server.ts: -------------------------------------------------------------------------------- 1 | import ServerCommand from '../src/command/server'; 2 | 3 | export default ServerCommand; 4 | -------------------------------------------------------------------------------- /packages/cubejs-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "command", 5 | "src", 6 | "test" 7 | ], 8 | "compilerOptions": { 9 | "outDir": "dist", 10 | "rootDir": ".", 11 | "baseUrl": ".", 12 | "allowJs": true, 13 | "resolveJsonModule": true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/cubejs-snowflake-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-snowflake-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { SnowflakeDriver } from './SnowflakeDriver'; 2 | 3 | export * from './SnowflakeDriver'; 4 | 5 | export default SnowflakeDriver; 6 | -------------------------------------------------------------------------------- /packages/cubejs-snowflake-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": ".", 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-templates/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-templates/src/index.ts: -------------------------------------------------------------------------------- 1 | import 'source-map-support/register'; 2 | 3 | export * from './AppContainer'; 4 | export * from './DependencyTree'; 5 | export * from './PackageFetcher'; 6 | export * from './DevPackageFetcher'; 7 | export * from './SourceContainer'; 8 | export * from './utils'; 9 | -------------------------------------------------------------------------------- /packages/cubejs-templates/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | ], 6 | "compilerOptions": { 7 | "outDir": "dist", 8 | "rootDir": ".", 9 | "baseUrl": ".", 10 | "noImplicitAny": false, 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/.gitignore: -------------------------------------------------------------------------------- 1 | .cubestore 2 | .temp 3 | fixtures/*.env 4 | .env.athena.sh 5 | .env.bigquery.sh 6 | .env.postgres.sh 7 | .env.databricks.sh 8 | 9 | dist -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/fixtures/_cube.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | contextToApiScopes: async ( 3 | securityContext, 4 | defaultPermissions, 5 | ) => { 6 | defaultPermissions.push('jobs'); 7 | return defaultPermissions; 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/fixtures/_package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "testing-drivers", 3 | "version": "0.0.0", 4 | "private": true 5 | } -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/athena-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('athena'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/athena-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('athena'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/athena-export-bucket-s3-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('athena', { includeIncrementalSchemaSuite: true }); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/bigquery-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('bigquery'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/bigquery-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('bigquery'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/bigquery-export-bucket-gcs-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('bigquery', { 4 | includeIncrementalSchemaSuite: true, 5 | includeHLLSuite: true, 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/buildCubeImage.ts: -------------------------------------------------------------------------------- 1 | import { buildCube } from '../src/helpers/buildCube'; 2 | 3 | buildCube(); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/clickhouse-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('clickhouse'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/clickhouse-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('clickhouse'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/clickhouse-export-bucket-s3-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('clickhouse', { 4 | includeIncrementalSchemaSuite: true, 5 | extendedEnv: 'export-bucket-s3' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/clickhouse-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('clickhouse', { 4 | includeIncrementalSchemaSuite: true, 5 | }); 6 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('databricks-jdbc'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('databricks-jdbc'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-export-bucket-azure-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('databricks-jdbc', { 4 | includeHLLSuite: true, 5 | extendedEnv: 'export-bucket-azure' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-export-bucket-azure-prefix-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('databricks-jdbc', { 4 | includeHLLSuite: false, 5 | extendedEnv: 'export-bucket-azure-prefix' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-export-bucket-gcs-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('databricks-jdbc', { 4 | includeHLLSuite: true, 5 | extendedEnv: 'export-bucket-gcs' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-export-bucket-gcs-prefix-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('databricks-jdbc', { 4 | includeHLLSuite: false, 5 | extendedEnv: 'export-bucket-gcs-prefix' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/databricks-jdbc-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('databricks-jdbc', { 4 | includeIncrementalSchemaSuite: true, 5 | includeHLLSuite: true, 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/mssql-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('mssql'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/mssql-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('mssql'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/mssql-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('mssql', { includeIncrementalSchemaSuite: true }); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/mysql-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('mysql'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/mysql-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('mysql'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/mysql-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('mysql', { includeIncrementalSchemaSuite: true }); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/postgres-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('postgres'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/postgres-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('postgres'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/postgres-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('postgres', { 4 | includeIncrementalSchemaSuite: true, 5 | includeHLLSuite: true, 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/redshift-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('redshift'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/redshift-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('redshift'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/redshift-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('redshift', { 4 | includeIncrementalSchemaSuite: true, 5 | externalSchemaTests: true 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-core.test.ts: -------------------------------------------------------------------------------- 1 | import { testSequence } from '../src/tests/testSequence'; 2 | 3 | testSequence('snowflake'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-driver.test.ts: -------------------------------------------------------------------------------- 1 | import { testConnection } from '../src/tests/testConnection'; 2 | 3 | testConnection('snowflake'); 4 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-encrypted-pk-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeIncrementalSchemaSuite: false, 5 | includeHLLSuite: false, 6 | extendedEnv: 'encrypted-pk', 7 | }); 8 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-export-bucket-azure-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeHLLSuite: true, 5 | extendedEnv: 'export-bucket-azure' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-export-bucket-azure-prefix-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeHLLSuite: false, 5 | extendedEnv: 'export-bucket-azure-prefix' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-export-bucket-azure-via-storage-integration-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeHLLSuite: true, 5 | extendedEnv: 'export-bucket-azure-via-storage-integration' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-export-bucket-gcs-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeHLLSuite: true, 5 | extendedEnv: 'export-bucket-gcs' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-export-bucket-gcs-prefix-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeHLLSuite: false, 5 | extendedEnv: 'export-bucket-gcs-prefix' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/test/snowflake-full.test.ts: -------------------------------------------------------------------------------- 1 | import { testQueries } from '../src/tests/testQueries'; 2 | 3 | testQueries('snowflake', { 4 | includeIncrementalSchemaSuite: true, 5 | includeHLLSuite: true, 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing-drivers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": ["src", "test"], 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": ".", 7 | "baseUrl": "." 8 | } 9 | } -------------------------------------------------------------------------------- /packages/cubejs-testing-shared/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-testing-shared/src/index.ts: -------------------------------------------------------------------------------- 1 | import dedent from 'dedent'; 2 | 3 | export * from './query-test.abstract'; 4 | export * from './DriverTests'; 5 | export * from './utils'; 6 | 7 | export * from './db-container-runners'; 8 | 9 | export const smartStringTrim = dedent; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing-shared/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src" 5 | ], 6 | "compilerOptions": { 7 | "outDir": "dist", 8 | "rootDir": ".", 9 | "baseUrl": ".", 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/cubejs-testing/birdbox-fixtures/databricks-jdbc/cube.js: -------------------------------------------------------------------------------- 1 | // Cube.js configuration options: https://cube.dev/docs/config 2 | module.exports = { 3 | queryRewrite: (query) => { 4 | if (query.measures) { 5 | query.measures = query.measures.filter(m => m !== 'Orders.toRemove'); 6 | } 7 | return query; 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/birdbox-fixtures/postgresql/cube.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/packages/cubejs-testing/birdbox-fixtures/postgresql/cube.js -------------------------------------------------------------------------------- /packages/cubejs-testing/birdbox-fixtures/postgresql/scripts/load-pre-aggregations.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | exec 2>&1 3 | set -x 4 | set -e 5 | 6 | psql -U test -d test -f /scripts/*.sql 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing/birdbox-fixtures/postgresql/scripts/load.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | exec 2>&1 3 | set -x 4 | set -e 5 | 6 | psql -U test -d test -f /data/*.sql 7 | -------------------------------------------------------------------------------- /packages/cubejs-testing/birdbox-fixtures/postgresql/single/cube.js: -------------------------------------------------------------------------------- 1 | // Cube.js configuration options: https://cube.dev/docs/config 2 | module.exports = { 3 | queryRewrite: (query) => { 4 | if (query.measures) { 5 | query.measures = query.measures.filter(m => m !== 'Orders.toRemove'); 6 | } 7 | return query; 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/birdbox-fixtures/smoke/cube.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | orchestratorOptions: { 3 | preAggregationsOptions: { 4 | externalRefresh: false, 5 | }, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /packages/cubejs-testing/cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } -------------------------------------------------------------------------------- /packages/cubejs-testing/cypress/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "types": ["cypress", "@4tw/cypress-drag-drop"], 9 | "outDir": "dist", 10 | "rootDir": ".", 11 | "baseUrl": ".", 12 | "sourceMap": false 13 | } 14 | } -------------------------------------------------------------------------------- /packages/cubejs-testing/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | testMatch: [ 8 | '<rootDir>/dist/test/*.{test,spec}.{ts,js}' 9 | ], 10 | snapshotResolver: '<rootDir>/test/snapshotResolver.js', 11 | }; 12 | -------------------------------------------------------------------------------- /packages/cubejs-testing/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './birdbox'; 2 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/__snapshots__/smoke-athena.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`athena query measure: query 1`] = ` 4 | Array [ 5 | Object { 6 | "Orders.totalAmount": "1700", 7 | }, 8 | ] 9 | `; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/__snapshots__/smoke-bigquery.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`bigquery query measure: query 1`] = ` 4 | Array [ 5 | Object { 6 | "Orders.totalAmount": 1700, 7 | }, 8 | ] 9 | `; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/__snapshots__/smoke-crate.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`crate query measure: query 1`] = ` 4 | Array [ 5 | Object { 6 | "Orders.totalAmount": "1700", 7 | }, 8 | ] 9 | `; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/__snapshots__/smoke-duckdb.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`duckdb query measure: query 1`] = ` 4 | Array [ 5 | Object { 6 | "Orders.totalAmount": "1700", 7 | }, 8 | ] 9 | `; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/__snapshots__/smoke-oracle.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`oracle query measure: query 1`] = ` 4 | Array [ 5 | Object { 6 | "Orders.totalAmount": 1700, 7 | }, 8 | ] 9 | `; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/__snapshots__/smoke-questdb.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`questdb query measure: query 1`] = ` 4 | Array [ 5 | Object { 6 | "Orders.totalAmount": "1700", 7 | }, 8 | ] 9 | `; 10 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/birdbox-postgresql-cubestore.test.ts: -------------------------------------------------------------------------------- 1 | import { createBirdBoxTestCase } from './abstract-test-case'; 2 | import { startBirdBoxFromContainer } from '../src'; 3 | 4 | createBirdBoxTestCase('postgresql-cubestore', () => startBirdBoxFromContainer({ 5 | type: 'postgresql-cubestore', 6 | loadScript: 'postgres-load-events.sh', 7 | })); 8 | -------------------------------------------------------------------------------- /packages/cubejs-testing/test/birdbox-postgresql.test.ts: -------------------------------------------------------------------------------- 1 | import { createBirdBoxTestCase } from './abstract-test-case'; 2 | import { startBirdBoxFromContainer } from '../src'; 3 | 4 | createBirdBoxTestCase('postgresql', () => startBirdBoxFromContainer({ 5 | type: 'postgresql', 6 | loadScript: 'postgres-load-events.sh', 7 | })); 8 | -------------------------------------------------------------------------------- /packages/cubejs-testing/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "types": ["cypress", "@4tw/cypress-drag-drop"], 9 | "outDir": "dist", 10 | "rootDir": ".", 11 | "baseUrl": ".", 12 | } 13 | } -------------------------------------------------------------------------------- /packages/cubejs-trino-driver/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /packages/cubejs-trino-driver/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2.2' 2 | 3 | services: 4 | coordinator: 5 | image: trinodb/trino 6 | ports: 7 | - "8080:8080" 8 | container_name: "coordinator" 9 | healthcheck: 10 | test: "trino --execute 'SELECT 1' || exit 1" 11 | interval: 10s 12 | timeout: 5s 13 | retries: 5 14 | -------------------------------------------------------------------------------- /packages/cubejs-trino-driver/src/index.ts: -------------------------------------------------------------------------------- 1 | import { TrinoDriver } from './TrinoDriver'; 2 | 3 | export default TrinoDriver; 4 | export { TrinoDriver }; 5 | -------------------------------------------------------------------------------- /packages/cubejs-trino-driver/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src", 5 | "test" 6 | ], 7 | "compilerOptions": { 8 | "outDir": "dist", 9 | "rootDir": ".", 10 | "baseUrl": "." 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/cubejs-vertica-driver/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.base.config'); 2 | 3 | /** @type {import('jest').Config} */ 4 | module.exports = { 5 | ...base, 6 | rootDir: '.', 7 | }; 8 | -------------------------------------------------------------------------------- /rust/cubenativeutils/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /cubesql/target 3 | /.idea 4 | upstream 5 | .cargo/config.toml 6 | dist 7 | node_modules 8 | .vscode 9 | /cubesql/egraph-debug 10 | /cubesql/egraph-debug-final 11 | /cubesql/egraph-debug-intermediate 12 | egraph-debug 13 | /cubesql/debug-qtrace 14 | -------------------------------------------------------------------------------- /rust/cubenativeutils/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.84.1" 3 | components = ["rustfmt", "rustc-dev", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /rust/cubenativeutils/rustfmt.toml: -------------------------------------------------------------------------------- 1 | # TODO: Uncomment, when it will become stable in rustfmt - https://github.com/rust-lang/rustfmt/issues/4991 2 | # imports_granularity = "Crate" 3 | -------------------------------------------------------------------------------- /rust/cubenativeutils/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod wrappers; 2 | pub use cubesql::{CubeError, CubeErrorCauseType}; 3 | -------------------------------------------------------------------------------- /rust/cubenativeutils/src/wrappers/args_holder.rs: -------------------------------------------------------------------------------- 1 | use cubesql::CubeError; 2 | use serde::Serialize; 3 | 4 | pub trait NativeArgsHolder { 5 | fn add<T: Serialize>(&mut self, arg: T) -> Result<(), CubeError>; 6 | } 7 | -------------------------------------------------------------------------------- /rust/cubenativeutils/src/wrappers/neon/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod context; 2 | pub mod inner_types; 3 | pub mod object; 4 | -------------------------------------------------------------------------------- /rust/cubenativeutils/src/wrappers/serializer/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod deserialize; 2 | pub mod deserializer; 3 | pub mod error; 4 | pub mod serialize; 5 | pub mod serializer; 6 | 7 | pub use deserialize::{NativeDeserialize, NativeDeserializer}; 8 | pub use serialize::NativeSerialize; 9 | -------------------------------------------------------------------------------- /rust/cubeorchestrator/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.idea 3 | .vscode 4 | -------------------------------------------------------------------------------- /rust/cubeorchestrator/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # ChangeLog 2 | 3 | -------------------------------------------------------------------------------- /rust/cubeorchestrator/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.84.1" 3 | components = ["rustfmt", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /rust/cubeorchestrator/rustfmt.toml: -------------------------------------------------------------------------------- 1 | imports_granularity = "Crate" 2 | -------------------------------------------------------------------------------- /rust/cubeorchestrator/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod query_message_parser; 2 | pub mod query_result_transform; 3 | pub mod transport; 4 | -------------------------------------------------------------------------------- /rust/cubeshared/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.idea 3 | .vscode 4 | -------------------------------------------------------------------------------- /rust/cubeshared/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # ChangeLog 2 | 3 | -------------------------------------------------------------------------------- /rust/cubeshared/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cubeshared" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | flatbuffers = "23.1.21" 8 | -------------------------------------------------------------------------------- /rust/cubeshared/flatbuffers-codegen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd ./src/codegen || exit 1 4 | flatc --rust http_message.fbs 5 | -------------------------------------------------------------------------------- /rust/cubeshared/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.84.1" 3 | components = ["rustfmt", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /rust/cubeshared/rustfmt.toml: -------------------------------------------------------------------------------- 1 | imports_granularity = "Crate" -------------------------------------------------------------------------------- /rust/cubeshared/src/codegen/mod.rs: -------------------------------------------------------------------------------- 1 | #[allow(unused_imports)] 2 | mod http_message_generated; 3 | 4 | pub use http_message_generated::*; 5 | -------------------------------------------------------------------------------- /rust/cubeshared/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod codegen; 2 | -------------------------------------------------------------------------------- /rust/cubesql/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | # Please keep in sync this file with packages/cubejs-backend-native! 2 | 3 | # If you are going to use local fork, feel free to uncomment 4 | #paths = ["../../../sqlparser-rs", "../../../arrow-datafusion/datafusion"] 5 | #paths = ["../../../arrow-datafusion/datafusion"] 6 | -------------------------------------------------------------------------------- /rust/cubesql/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /cubesql/target 3 | /.idea 4 | upstream 5 | dist 6 | node_modules 7 | .vscode 8 | /cubesql/egraph-debug 9 | /cubesql/egraph-debug-final 10 | /cubesql/egraph-debug-intermediate 11 | egraph-debug 12 | /cubesql/debug-qtrace 13 | -------------------------------------------------------------------------------- /rust/cubesql/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = [ 4 | "cubesql", 5 | "cubeclient", 6 | "pg-srv" 7 | ] 8 | 9 | [profile.bench] 10 | debug = true 11 | -------------------------------------------------------------------------------- /rust/cubesql/cubeclient/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | **/*.rs.bk 3 | Cargo.lock 4 | -------------------------------------------------------------------------------- /rust/cubesql/cubeclient/.openapi-generator/VERSION: -------------------------------------------------------------------------------- 1 | 7.14.0 2 | -------------------------------------------------------------------------------- /rust/cubesql/cubeclient/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![allow(unused_imports)] 2 | #![allow(clippy::too_many_arguments)] 3 | 4 | extern crate reqwest; 5 | extern crate serde; 6 | extern crate serde_json; 7 | extern crate serde_repr; 8 | extern crate url; 9 | 10 | pub mod apis; 11 | pub mod models; 12 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/e2e/tests/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod basic; 2 | pub mod postgres; 3 | pub mod utils; 4 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/egraph-debug-template/public/index.html: -------------------------------------------------------------------------------- 1 | <div id="container"> 2 | <div id="ui"></div> 3 | </div> 4 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/engine/df/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod coerce; 2 | pub mod columar; 3 | pub mod optimizers; 4 | pub mod planner; 5 | pub mod scan; 6 | pub mod wrapper; 7 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/engine/information_schema/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod mysql; 2 | pub mod postgres; 3 | pub mod redshift; 4 | pub mod utils; 5 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/engine/information_schema/mysql/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod collations; 2 | pub mod columns; 3 | pub mod ext; 4 | pub mod key_column_usage; 5 | pub mod processlist; 6 | pub mod referential_constraints; 7 | pub mod schemata; 8 | pub mod statistics; 9 | pub mod tables; 10 | pub mod variables; 11 | 12 | use super::utils; 13 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/engine/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod df; 2 | pub mod information_schema; 3 | pub mod udf; 4 | 5 | mod context; 6 | mod context_mysql; 7 | mod context_postgresql; 8 | mod variable_provider; 9 | 10 | // Public API 11 | pub use context::*; 12 | pub use variable_provider::*; 13 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/engine/udf/extension/mod.rs: -------------------------------------------------------------------------------- 1 | mod xirr; 2 | 3 | pub use xirr::*; 4 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/engine/udf/mod.rs: -------------------------------------------------------------------------------- 1 | mod common; 2 | mod extension; 3 | mod pg_catalog; 4 | mod redshift; 5 | mod utils; 6 | 7 | pub use common::*; 8 | pub use extension::*; 9 | pub use pg_catalog::*; 10 | pub use redshift::*; 11 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__avg_null_type.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"SELECT AVG(x) FROM (SELECT NULL AS x) AS t\".to_string(),\nDatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +----------+ 6 | | AVG(t.x) | 7 | +----------+ 8 | | NULL | 9 | +----------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__cube_scan_exec.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +----------+ 6 | | dim_str0 | 7 | +----------+ 8 | | foo | 9 | +----------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__date_part_day_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 1 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__date_part_dow_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 2 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__date_part_doy_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 275 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__date_part_epoch_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------------+ 6 | | result | 7 | +--------------+ 8 | | 1735606923.5 | 9 | +--------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__date_part_qtr_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 4 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__date_part_quarter_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 4 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__discard_postgres_all.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"DISCARD ALL;\".to_string(), DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__discard_postgres_plans.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"DISCARD PLANS;\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__discard_postgres_sequences.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"DISCARD SEQUENCES;\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__discard_postgres_temp.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"DISCARD TEMP;\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__discard_postgres_temporary.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"DISCARD TEMPORARY;\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__exponentiate_op.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"SELECT 3^5 AS e\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +-----+ 6 | | e | 7 | +-----+ 8 | | 243 | 9 | +-----+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__extract_day_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 1 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__extract_dow_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 2 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__extract_doy_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 275 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__extract_epoch_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------------+ 6 | | result | 7 | +--------------+ 8 | | 1735606923.5 | 9 | +--------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__extract_quarter_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | 4 | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__formatted_identifier.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: result 4 | --- 5 | +----------------------+ 6 | | formatted_identifier | 7 | +----------------------+ 8 | | "column_name" | 9 | +----------------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__formatted_identifiers.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: result 4 | --- 5 | +-----------------------------+ 6 | | formatted_identifiers | 7 | +-----------------------------+ 8 | | "table_name", "column_name" | 9 | +-----------------------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__formatted_string.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: result 4 | --- 5 | +------------------+ 6 | | formatted_string | 7 | +------------------+ 8 | | foo | 9 | +------------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__formatted_strings.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: result 4 | --- 5 | +-------------------+ 6 | | formatted_strings | 7 | +-------------------+ 8 | | foo.bar | 9 | +-------------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__metabase_table_exists.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(r#\"SELECT TRUE AS \"_\" FROM \"public\".\"KibanaSampleDataEcommerce\" WHERE 1 <> 1 LIMIT 0;\"#.to_string(),\nDatabaseProtocol::PostgreSQL,).await?" 4 | --- 5 | +---+ 6 | | _ | 7 | +---+ 8 | +---+ 9 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__noninjective_coalesce_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | (none) | 9 | | ab__cd | 10 | | abcd | 11 | | foo | 12 | +--------+ 13 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__noninjective_left_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | (n | 9 | | ab | 10 | | fo | 11 | | NULL | 12 | +--------+ 13 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__noninjective_nullif_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | ab__cd | 9 | | abcd | 10 | | foo | 11 | | NULL | 12 | +--------+ 13 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__noninjective_right_from_dimension.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: context.execute_query(query).await.unwrap() 4 | --- 5 | +--------+ 6 | | result | 7 | +--------+ 8 | | cd | 9 | | e) | 10 | | oo | 11 | | NULL | 12 | +--------+ 13 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__quoted_identifier.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: result 4 | --- 5 | +-------------------+ 6 | | quoted_identifier | 7 | +-------------------+ 8 | | "column-name" | 9 | +-------------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__quoted_keyword.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: result 4 | --- 5 | +----------------+ 6 | | quoted_keyword | 7 | +----------------+ 8 | | "select" | 9 | +----------------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__show_max_identifier_length.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"show max_identifier_length;\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +---------+ 6 | | setting | 7 | +---------+ 8 | | 63 | 9 | +---------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__sum_null_type.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"SELECT SUM(x) FROM (SELECT NULL AS x) AS t\".to_string(),\nDatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +----------+ 6 | | SUM(t.x) | 7 | +----------+ 8 | | NULL | 9 | +----------+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__test_offset_limit_3.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/mod.rs 3 | expression: "execute_query(\"select n from generate_series(1, 1000) pos(n) limit 0 offset 10\".to_string(),\n DatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +---+ 6 | | n | 7 | +---+ 8 | +---+ 9 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__date_part_interval.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/test/test_df_execution.rs 3 | expression: "execute_query(query.to_string(), DatabaseProtocol::PostgreSQL).await.unwrap()" 4 | --- 5 | +---+ 6 | | d | 7 | +---+ 8 | | 3 | 9 | +---+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_udfs__array_lower_string.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/test/test_udfs.rs 3 | expression: "execute_query(\"SELECT array_lower(ARRAY['a', 'b']) v1\".to_string(),\nDatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +----+ 6 | | v1 | 7 | +----+ 8 | | 1 | 9 | +----+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_udfs__array_upper_string.snap: -------------------------------------------------------------------------------- 1 | --- 2 | source: cubesql/src/compile/test/test_udfs.rs 3 | expression: "execute_query(\"SELECT array_upper(ARRAY['a', 'b']) v1\".to_string(),\nDatabaseProtocol::PostgreSQL).await?" 4 | --- 5 | +----+ 6 | | v1 | 7 | +----+ 8 | | 2 | 9 | +----+ 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/sql/database_variables/mysql/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod global_vars; 2 | pub mod session_vars; 3 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/sql/database_variables/postgres/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod global_vars; 2 | pub mod session_vars; 3 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/src/sql/postgres/mod.rs: -------------------------------------------------------------------------------- 1 | pub(crate) mod extended; 2 | pub mod pg_auth_service; 3 | pub(crate) mod pg_type; 4 | pub(crate) mod service; 5 | pub(crate) mod shim; 6 | pub(crate) mod writer; 7 | 8 | pub use pg_type::*; 9 | pub use service::*; 10 | -------------------------------------------------------------------------------- /rust/cubesql/cubesql/test.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/rust/cubesql/cubesql/test.sql -------------------------------------------------------------------------------- /rust/cubesql/index.js: -------------------------------------------------------------------------------- 1 | // It's just a virtual package, which we use for versioning cube sql library 2 | -------------------------------------------------------------------------------- /rust/cubesql/pg-srv/src/extended.rs: -------------------------------------------------------------------------------- 1 | //! Implementation for Extended Query 2 | 3 | #[derive(Debug, PartialEq)] 4 | pub enum BindValue { 5 | String(String), 6 | Int64(i64), 7 | Float64(f64), 8 | Bool(bool), 9 | Null, 10 | } 11 | -------------------------------------------------------------------------------- /rust/cubesql/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.84.1" 3 | components = ["rustfmt", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /rust/cubesql/rustfmt.toml: -------------------------------------------------------------------------------- 1 | # TODO: Uncomment, when it will become stable in rustfmt - https://github.com/rust-lang/rustfmt/issues/4991 2 | # imports_granularity = "Crate" -------------------------------------------------------------------------------- /rust/cubesqlplanner/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /cubesql/target 3 | /.idea 4 | upstream 5 | .cargo/config.toml 6 | dist 7 | node_modules 8 | .vscode 9 | /cubesql/egraph-debug 10 | /cubesql/egraph-debug-final 11 | /cubesql/egraph-debug-intermediate 12 | egraph-debug 13 | /cubesql/debug-qtrace 14 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = [ 4 | "cubesqlplanner", 5 | "nativebridge", 6 | ] 7 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /cubesql/target 3 | /.idea 4 | upstream 5 | .cargo/config.toml 6 | dist 7 | node_modules 8 | .vscode 9 | /cubesql/egraph-debug 10 | /cubesql/egraph-debug-final 11 | /cubesql/egraph-debug-intermediate 12 | egraph-debug 13 | /cubesql/debug-qtrace 14 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod cube_bridge; 2 | pub mod logical_plan; 3 | pub mod physical_plan_builder; 4 | pub mod plan; 5 | pub mod planner; 6 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/logical_plan/optimizers/common/mod.rs: -------------------------------------------------------------------------------- 1 | mod cube_names_collector; 2 | mod helper; 3 | 4 | pub use cube_names_collector::*; 5 | pub use helper::*; 6 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/logical_plan/optimizers/mod.rs: -------------------------------------------------------------------------------- 1 | mod common; 2 | mod pre_aggregation; 3 | 4 | pub use common::*; 5 | pub use pre_aggregation::*; 6 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/mod.rs: -------------------------------------------------------------------------------- 1 | mod builder; 2 | pub use builder::*; 3 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/plan/builder/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod join; 2 | pub mod select; 3 | 4 | pub use join::JoinBuilder; 5 | pub use select::SelectBuilder; 6 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/plan/schema/mod.rs: -------------------------------------------------------------------------------- 1 | mod column; 2 | mod schema; 3 | 4 | pub use column::{QualifiedColumnName, SchemaColumn}; 5 | pub use schema::Schema; 6 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/planner/filter/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod base_filter; 2 | pub mod base_segment; 3 | pub mod compiler; 4 | pub mod filter_operator; 5 | 6 | pub use base_filter::BaseFilter; 7 | pub use base_segment::BaseSegment; 8 | pub use filter_operator::FilterOperator; 9 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/planner/sql_templates/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod filter; 2 | pub mod plan; 3 | pub mod structs; 4 | 5 | pub use filter::FilterTemplates; 6 | pub use plan::PlanSqlTemplates; 7 | pub use structs::{TemplateGroupByColumn, TemplateOrderByColumn, TemplateProjectionColumn}; 8 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/planner/time_dimension/mod.rs: -------------------------------------------------------------------------------- 1 | mod date_time; 2 | mod date_time_helper; 3 | mod granularity; 4 | mod granularity_helper; 5 | mod sql_interval; 6 | 7 | pub use date_time::*; 8 | pub use date_time_helper::*; 9 | pub use granularity::*; 10 | pub use granularity_helper::*; 11 | pub use sql_interval::*; 12 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/cubesqlplanner/src/planner/utils.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /rust/cubesqlplanner/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.84.1" 3 | components = ["rustfmt", "rustc-dev", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /rust/cubestore/.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | Dockerfile 3 | .cubestore 4 | upstream 5 | dist 6 | js-wrapper 7 | bin 8 | cross 9 | downloaded 10 | cubestore/.cubestore 11 | cubestore/upstream -------------------------------------------------------------------------------- /rust/cubestore/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.idea 3 | upstream 4 | .cubestore 5 | dist 6 | node_modules 7 | downloaded 8 | cubestore/target 9 | cubesql/target 10 | cubestore-sql-tests/data/** 11 | cubestore/db-tmp -------------------------------------------------------------------------------- /rust/cubestore/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = [ 4 | "cubestore", 5 | "cubestore-sql-tests", 6 | "cubehll", 7 | "cubedatasketches", 8 | "cubezetasketch", 9 | "cuberpc", 10 | "cuberockstore", 11 | ] 12 | -------------------------------------------------------------------------------- /rust/cubestore/bin/cubestore-dev: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('../dist/src/cubestore-dev.js') 4 | -------------------------------------------------------------------------------- /rust/cubestore/cubedatasketches/README.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | -------------------------------------------------------------------------------- /rust/cubestore/cuberockstore/src/lib.rs: -------------------------------------------------------------------------------- 1 | // re-export 2 | pub use rocksdb; 3 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore-sql-tests/src/files.rs: -------------------------------------------------------------------------------- 1 | use cubestore::CubeError; 2 | use std::io::Write; 3 | use tempfile::NamedTempFile; 4 | 5 | pub fn write_tmp_file(text: &str) -> Result<NamedTempFile, CubeError> { 6 | let mut file = NamedTempFile::new()?; 7 | file.write_all(text.as_bytes())?; 8 | return Ok(file); 9 | } 10 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/flatbuffers-codegen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd src/codegen 4 | flatc --rust http_message.fbs 5 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/cluster/ingestion/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod job_processor; 2 | pub mod job_runner; 3 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/config/processing_loop.rs: -------------------------------------------------------------------------------- 1 | use crate::CubeError; 2 | use async_trait::async_trait; 3 | 4 | #[async_trait] 5 | pub trait ProcessingLoop: Send + Sync { 6 | async fn processing_loop(&self) -> Result<(), CubeError>; 7 | 8 | async fn stop_processing(&self) -> Result<(), CubeError>; 9 | } 10 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/metastore/snapshot_info.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Debug, Serialize, Deserialize)] 4 | pub struct SnapshotInfo { 5 | pub id: u128, 6 | pub current: bool, 7 | } 8 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/queryplanner/providers/mod.rs: -------------------------------------------------------------------------------- 1 | mod query_cache; 2 | 3 | pub use query_cache::InfoSchemaQueryCacheTableProvider; 4 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/shared/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod deadline_queue; 2 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/sys/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod malloc; 2 | pub mod process; 3 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/src/util/error.rs: -------------------------------------------------------------------------------- 1 | /// Use a macro to keep the call site information (file, line number) in the log message. 2 | #[macro_export] 3 | macro_rules! ack_error { 4 | ($x:expr) => { 5 | if let std::result::Result::Err(e) = $x { 6 | log::error!("Error: {:?}", e); 7 | } 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/000010.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/rust/cubestore/cubestore/testing-fixtures/cachestore-migration/000010.log -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/000012.sst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/rust/cubestore/cubestore/testing-fixtures/cachestore-migration/000012.sst -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/CURRENT: -------------------------------------------------------------------------------- 1 | MANIFEST-000005 2 | -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/IDENTITY: -------------------------------------------------------------------------------- 1 | 9593b66b-7dd1-4702-96a5-243c2b886a30 -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/LOCK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/rust/cubestore/cubestore/testing-fixtures/cachestore-migration/LOCK -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/MANIFEST-000005: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/rust/cubestore/cubestore/testing-fixtures/cachestore-migration/MANIFEST-000005 -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/README.md: -------------------------------------------------------------------------------- 1 | This fixture was created on 0.30.0 -------------------------------------------------------------------------------- /rust/cubestore/cubestore/testing-fixtures/cachestore-migration/archive/000004.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cube-js/cube/2b400028f7b70a1e48fd82bd20a767fa8a3b2259/rust/cubestore/cubestore/testing-fixtures/cachestore-migration/archive/000004.log -------------------------------------------------------------------------------- /rust/cubestore/cubezetasketch/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cubezetasketch" 3 | version = "0.1.0" 4 | authors = ["Cube Dev, Inc."] 5 | edition = "2018" 6 | license = "Apache-2.0" 7 | description = "HyperLogLog++ implementation ported from ZetaSketch" 8 | 9 | [dependencies] 10 | itertools = "0.10.0" 11 | protobuf = "2.20.0" 12 | -------------------------------------------------------------------------------- /rust/cubestore/docker-bake.hcl: -------------------------------------------------------------------------------- 1 | target "rust-builder-bookworm" { 2 | context = "." 3 | dockerfile = "builder.Dockerfile" 4 | args = { 5 | OS_NAME = "1-slim-bookworm" 6 | LLVM_VERSION = "18" 7 | } 8 | tags = ["cubejs/rust-builder:bookworm-llvm-18"] 9 | platforms = ["linux/amd64", "linux/arm64"] 10 | } 11 | -------------------------------------------------------------------------------- /rust/cubestore/js-wrapper/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './process'; 2 | export { isCubeStoreSupported } from './utils'; 3 | -------------------------------------------------------------------------------- /rust/cubestore/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "nightly-2024-01-29" 3 | components = ["rustfmt", "clippy"] 4 | profile = "minimal" 5 | -------------------------------------------------------------------------------- /tsconfig.jest.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "module": "CommonJS", 5 | "sourceMap": true, 6 | "inlineSourceMap": true, 7 | "inlineSources": true, 8 | "resolveJsonModule": true 9 | } 10 | } 11 | --------------------------------------------------------------------------------