├── .changes ├── 0.0.0.md ├── 0.200.0.md ├── 0.201.0.md ├── 0.202.0.md ├── 0.203.0.md ├── 0.203.1.md ├── 0.204.0.md ├── 0.205.0.md ├── 0.206.0.md ├── 0.207.0.md ├── 0.207.1.md ├── 0.207.2.md ├── 0.207.3.md ├── 0.208.0.md ├── README.md ├── header.tpl.md ├── unreleased │ ├── .gitkeep │ ├── Breaking Changes-20251008-115810.yaml │ ├── Breaking Changes-20251014-103322.yaml │ ├── Dependencies-20251006-144510.yaml │ ├── Dependencies-20251008-130706.yaml │ ├── Dependencies-20251024-132913.yaml │ ├── Docs-20250811-160039.yaml │ ├── Features-20251002-171248.yaml │ ├── Fixes-20250916-121517.yaml │ ├── Fixes-20250918-070122.yaml │ ├── Fixes-20251001-153436.yaml │ ├── Fixes-20251015-143827.yaml │ ├── Fixes-20251015-143859.yaml │ ├── Fixes-20251023-154834.yaml │ ├── Fixes-20251117-085411.yaml │ ├── Fixes-20251119-233621.yaml │ ├── Fixes-20251201-101918.yaml │ ├── Under the Hood-20250924-123536.yaml │ ├── Under the Hood-20250924-123604.yaml │ ├── Under the Hood-20251002-122925.yaml │ ├── Under the Hood-20251002-123044.yaml │ ├── Under the Hood-20251002-123232.yaml │ ├── Under the Hood-20251002-123407.yaml │ ├── Under the Hood-20251002-123447.yaml │ ├── Under the Hood-20251002-123542.yaml │ ├── Under the Hood-20251002-131522.yaml │ ├── Under the Hood-20251002-131616.yaml │ ├── Under the Hood-20251003-080025.yaml │ ├── Under the Hood-20251008-115649.yaml │ ├── Under the Hood-20251008-120045.yaml │ ├── Under the Hood-20251008-120225.yaml │ ├── Under the Hood-20251008-150031.yaml │ ├── Under the Hood-20251008-150124.yaml │ ├── Under the Hood-20251009-101045.yaml │ ├── Under the Hood-20251009-101142.yaml │ ├── Under the Hood-20251009-101212.yaml │ ├── Under the Hood-20251009-125205.yaml │ ├── Under the Hood-20251010-132547.yaml │ ├── Under the Hood-20251010-132641.yaml │ ├── Under the Hood-20251010-132817.yaml │ ├── Under the Hood-20251013-140823.yaml │ ├── Under the Hood-20251013-140859.yaml │ ├── Under the Hood-20251013-140929.yaml │ ├── Under the Hood-20251028-110712.yaml │ ├── Under the Hood-20251028-113955.yaml │ ├── Under the Hood-20251029-140033.yaml │ ├── Under the Hood-20251029-145529.yaml │ ├── Under the Hood-20251030-110733.yaml │ ├── Under the Hood-20251117-085231.yaml │ └── Under the Hood-20251117-085319.yaml └── v0.208.1.md ├── .changie.yaml ├── .gitattributes ├── .github ├── ACTIONS_README.md ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ ├── config.yml │ ├── feature-request.yml │ └── regression-report.yml ├── actions │ ├── run-mf-tests │ │ └── action.yaml │ └── setup-python-env │ │ └── action.yaml ├── atlas.yaml └── workflows │ ├── bot-changelog.yml │ ├── cd-create-release-pr.yaml │ ├── cd-push-dbt-metricflow-to-pypi.yaml │ ├── cd-push-metricflow-to-pypi.yaml │ ├── cd-sql-engine-populate-persistent-source-schema.yaml │ ├── cd-sql-engine-tests.yaml │ ├── changelog-existence.yml │ ├── changelog-validation.yaml │ ├── ci-cache-environments.yaml │ ├── ci-linting.yaml │ └── ci-metricflow-unit-tests.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── AGENTS.md ├── ATTRIBUTION.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── GLOSSARY.md ├── GOVERNANCE.md ├── LICENSE ├── Makefile ├── README.md ├── TENETS.md ├── assets ├── MetricFlow_logo.png └── example_plan.svg ├── dbt-metricflow ├── LICENSE ├── README.md ├── dbt_metricflow │ ├── __about__.py │ ├── __init__.py │ ├── cli │ │ ├── __init__.py │ │ ├── cli_configuration.py │ │ ├── cli_errors.py │ │ ├── cli_link.py │ │ ├── cli_string.py │ │ ├── constants.py │ │ ├── custom_click_types.py │ │ ├── dbt_connectors │ │ │ ├── __init__.py │ │ │ ├── adapter_backed_client.py │ │ │ └── dbt_config_accessor.py │ │ ├── main.py │ │ ├── mf_tutorial_project │ │ │ ├── dbt_project.yml │ │ │ ├── models │ │ │ │ ├── _models.yml │ │ │ │ └── all_days.sql │ │ │ └── profiles.yml │ │ ├── sample_dbt_models │ │ │ ├── sample_models │ │ │ │ ├── countries.sql │ │ │ │ ├── countries.yml │ │ │ │ ├── customers.sql │ │ │ │ ├── customers.yml │ │ │ │ ├── metrics.yml │ │ │ │ ├── saved_queries.yml │ │ │ │ ├── transactions.sql │ │ │ │ └── transactions.yml │ │ │ ├── seeds │ │ │ │ ├── .gitkeep │ │ │ │ ├── countries_seed.csv │ │ │ │ ├── customers_seed.csv │ │ │ │ └── transactions_seed.csv │ │ │ └── sources.yml │ │ ├── sample_models │ │ │ └── project_configuration.yaml │ │ ├── tutorial.py │ │ └── utils.py │ └── py.typed ├── pyproject.toml └── requirements-files │ ├── requirements-cli.txt │ ├── requirements-dbt-bigquery.txt │ ├── requirements-dbt-databricks.txt │ ├── requirements-dbt-duckdb.txt │ ├── requirements-dbt-postgres.txt │ ├── requirements-dbt-redshift.txt │ ├── requirements-dbt-snowflake.txt │ ├── requirements-dbt-trino.txt │ └── requirements-metricflow.txt ├── local-data-warehouses ├── Makefile ├── README.md ├── postgresql │ └── docker-compose.yaml └── trino │ └── docker-compose.yaml ├── metricflow-semantic-interfaces ├── metricflow_semantic_interfaces │ ├── __init__.py │ ├── call_parameter_sets.py │ ├── dataclass_serialization.py │ ├── enum_extension.py │ ├── errors.py │ ├── implementations │ │ ├── __init__.py │ │ ├── base.py │ │ ├── element_config.py │ │ ├── elements │ │ │ ├── __init__.py │ │ │ ├── dimension.py │ │ │ ├── entity.py │ │ │ └── measure.py │ │ ├── export.py │ │ ├── filters │ │ │ ├── __init__.py │ │ │ └── where_filter.py │ │ ├── metadata.py │ │ ├── metric.py │ │ ├── node_relation.py │ │ ├── project_configuration.py │ │ ├── saved_query.py │ │ ├── semantic_manifest.py │ │ ├── semantic_model.py │ │ ├── semantic_version.py │ │ ├── time_spine.py │ │ └── time_spine_table_configuration.py │ ├── naming │ │ ├── __init__.py │ │ ├── dundered.py │ │ └── keywords.py │ ├── parsing │ │ ├── __init__.py │ │ ├── dir_to_model.py │ │ ├── generate_json_schema_file.py │ │ ├── generated_json_schemas │ │ │ └── default_explicit_schema.json │ │ ├── objects.py │ │ ├── schema_validator.py │ │ ├── schemas.py │ │ ├── text_input │ │ │ ├── __init__.py │ │ │ ├── description_renderer.py │ │ │ ├── rendering_helper.py │ │ │ ├── ti_description.py │ │ │ ├── ti_exceptions.py │ │ │ ├── ti_processor.py │ │ │ └── valid_method.py │ │ ├── where_filter │ │ │ ├── jinja_object_parser.py │ │ │ ├── parameter_set_factory.py │ │ │ ├── where_filter_dimension.py │ │ │ └── where_filter_entity.py │ │ └── yaml_loader.py │ ├── pretty_print.py │ ├── protocols │ │ ├── __init__.py │ │ ├── dimension.py │ │ ├── entity.py │ │ ├── export.py │ │ ├── measure.py │ │ ├── meta.py │ │ ├── metadata.py │ │ ├── metric.py │ │ ├── node_relation.py │ │ ├── project_configuration.py │ │ ├── protocol_hint.py │ │ ├── query_interface.py │ │ ├── saved_query.py │ │ ├── semantic_manifest.py │ │ ├── semantic_model.py │ │ ├── semantic_version.py │ │ ├── time_spine.py │ │ ├── time_spine_configuration.py │ │ └── where_filter.py │ ├── py.typed │ ├── references.py │ ├── test_helpers │ │ ├── __init__.py │ │ └── dataclass_serialization.py │ ├── test_utils.py │ ├── transformations │ │ ├── __init__.py │ │ ├── add_input_metric_measures.py │ │ ├── boolean_aggregations.py │ │ ├── boolean_measure.py │ │ ├── convert_count.py │ │ ├── convert_median.py │ │ ├── cumulative_type_params.py │ │ ├── flatten_simple_metrics_with_measure_inputs.py │ │ ├── measure_to_metric_transformation_pieces │ │ │ └── measure_features_to_metric_name.py │ │ ├── names.py │ │ ├── proxy_measure.py │ │ ├── pydantic_rule_set.py │ │ ├── remove_plural_from_window_granularity.py │ │ ├── replace_input_measures_with_simple_metrics_transformation.py │ │ ├── rule_set.py │ │ ├── semantic_manifest_transformer.py │ │ └── transform_rule.py │ ├── type_enums │ │ ├── __init__.py │ │ ├── aggregation_type.py │ │ ├── conversion_calculation_type.py │ │ ├── date_part.py │ │ ├── dimension_type.py │ │ ├── entity_type.py │ │ ├── export_destination_type.py │ │ ├── metric_type.py │ │ ├── period_agg.py │ │ ├── semantic_manifest_node_type.py │ │ └── time_granularity.py │ └── validations │ │ ├── __init__.py │ │ ├── agg_time_dimension.py │ │ ├── common_entities.py │ │ ├── dimension_const.py │ │ ├── element_const.py │ │ ├── entities.py │ │ ├── labels.py │ │ ├── measures.py │ │ ├── metrics.py │ │ ├── non_empty.py │ │ ├── primary_entity.py │ │ ├── reserved_keywords.py │ │ ├── saved_query.py │ │ ├── semantic_manifest_validator.py │ │ ├── semantic_models.py │ │ ├── shared_measure_and_metric_helpers.py │ │ ├── time_spines.py │ │ ├── unique_valid_name.py │ │ ├── validator_helpers.py │ │ └── where_filters.py ├── msi_pydantic_shim.py └── tests │ ├── __init__.py │ ├── conftest.py │ ├── example_project_configuration.py │ ├── fixtures │ ├── __init__.py │ ├── semantic_manifest_fixtures.py │ └── semantic_manifest_yamls │ │ └── simple_semantic_manifest │ │ ├── metrics.yaml │ │ ├── project_configuration.yaml │ │ ├── saved_queries.yaml │ │ └── semantic_models │ │ ├── accounts_source.yaml │ │ ├── bookings_monthly.yaml │ │ ├── bookings_source.yaml │ │ ├── bookings_yearly.yaml │ │ ├── companies.yaml │ │ ├── id_verifications.yaml │ │ ├── listings_latest.yaml │ │ ├── lux_listing_mapping.yaml │ │ ├── no_measures_source.yaml │ │ ├── revenue.yaml │ │ ├── user_sm_source.yaml │ │ ├── users_latest.yaml │ │ └── views_source.yaml │ ├── implementations │ ├── __init__.py │ ├── test_semantic_manifest.py │ └── where_filter │ │ ├── __init__.py │ │ └── test_parse_calls.py │ ├── parsing │ ├── __init__.py │ ├── test_metadata_parsing.py │ ├── test_metric_parsing.py │ ├── test_metric_parsing_with_custom_grain.py │ ├── test_model_deserialization.py │ ├── test_object_builder_item_description.py │ ├── test_saved_query_parsing.py │ ├── test_semantic_model_parsing.py │ └── test_where_filter_parsing.py │ ├── serialization │ ├── __init__.py │ └── test_serializable_dataclass_subclasses.py │ ├── test_dataclass_serialization.py │ ├── test_implements_satisfy_protocols.py │ ├── test_pretty_print.py │ ├── transformations │ ├── __init__.py │ ├── test_boolean_measure_aggregation_rule.py │ ├── test_configurable_transform_rules.py │ ├── test_convert_count_rule.py │ ├── test_convert_median_rule.py │ ├── test_e2e_measure_to_model_transformations.py │ ├── test_flatten_simple_metrics_with_measure_inputs_rule.py │ ├── test_proxy_measure_transformation_rule.py │ └── test_replace_input_measures_with_simple_metrics_transformation_rule.py │ └── validations │ ├── __init__.py │ ├── metrics │ └── test_conversion_metrics.py │ ├── test_agg_time_dimension.py │ ├── test_common_entities.py │ ├── test_configurable_rules.py │ ├── test_dimension_const.py │ ├── test_element_const.py │ ├── test_entities.py │ ├── test_labels.py │ ├── test_measures.py │ ├── test_metrics.py │ ├── test_primary_entity.py │ ├── test_reserved_keywords.py │ ├── test_saved_query.py │ ├── test_saved_query_limit.py │ ├── test_saved_query_order_by.py │ ├── test_semantic_manifest_validator.py │ ├── test_semantic_models.py │ ├── test_time_spines.py │ ├── test_unique_valid_name.py │ ├── test_validator_helpers.py │ ├── test_validity_param_definitions.py │ ├── test_where_filters_are_parseable.py │ └── validation_test_utils.py ├── metricflow-semantics ├── ATTRIBUTION.md ├── LICENSE ├── README.md ├── metricflow_semantics │ ├── __about__.py │ ├── __init__.py │ ├── aggregation_properties.py │ ├── api │ │ ├── __init__.py │ │ └── v0_1 │ │ │ ├── __init__.py │ │ │ └── saved_query_dependency_resolver.py │ ├── dag │ │ ├── __init__.py │ │ ├── dag_to_text.py │ │ ├── dag_visualization.py │ │ ├── id_prefix.py │ │ ├── mf_dag.py │ │ └── sequential_id.py │ ├── errors │ │ ├── __init__.py │ │ ├── custom_grain_not_supported.py │ │ └── error_classes.py │ ├── experimental │ │ └── __init__.py │ ├── filters │ │ ├── __init__.py │ │ └── time_constraint.py │ ├── instances.py │ ├── model │ │ ├── __init__.py │ │ ├── dbt_manifest_parser.py │ │ ├── linkable_element_property.py │ │ ├── semantic_manifest_lookup.py │ │ ├── semantic_model_derivation.py │ │ └── semantics │ │ │ ├── __init__.py │ │ │ ├── dimension_lookup.py │ │ │ ├── element_filter.py │ │ │ ├── element_group.py │ │ │ ├── linkable_element.py │ │ │ ├── linkable_element_set_base.py │ │ │ ├── linkable_spec_resolver.py │ │ │ ├── metric_lookup.py │ │ │ ├── semantic_model_helper.py │ │ │ ├── semantic_model_join_evaluator.py │ │ │ ├── semantic_model_lookup.py │ │ │ └── simple_metric_input.py │ ├── naming │ │ ├── __init__.py │ │ ├── dunder_scheme.py │ │ ├── linkable_spec_name.py │ │ ├── metric_scheme.py │ │ ├── naming_scheme.py │ │ ├── object_builder_scheme.py │ │ └── object_builder_str.py │ ├── protocols │ │ ├── __init__.py │ │ └── query_parameter.py │ ├── py.typed │ ├── query │ │ ├── __init__.py │ │ ├── group_by_item │ │ │ ├── __init__.py │ │ │ ├── candidate_push_down │ │ │ │ ├── __init__.py │ │ │ │ ├── group_by_item_candidate.py │ │ │ │ └── push_down_visitor.py │ │ │ ├── filter_spec_resolution │ │ │ │ ├── __init__.py │ │ │ │ ├── filter_location.py │ │ │ │ ├── filter_pattern_factory.py │ │ │ │ ├── filter_spec_lookup.py │ │ │ │ └── filter_spec_resolver.py │ │ │ ├── group_by_item_resolver.py │ │ │ ├── path_prefixable.py │ │ │ ├── resolution_dag │ │ │ │ ├── __init__.py │ │ │ │ ├── dag.py │ │ │ │ ├── dag_builder.py │ │ │ │ ├── input_metric_location.py │ │ │ │ └── resolution_nodes │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base_node.py │ │ │ │ │ ├── metric_resolution_node.py │ │ │ │ │ ├── no_metrics_query_source_node.py │ │ │ │ │ ├── query_resolution_node.py │ │ │ │ │ └── simple_metric_source_node.py │ │ │ └── resolution_path.py │ │ ├── issues │ │ │ ├── __init__.py │ │ │ ├── filter_spec_resolver │ │ │ │ ├── __init__.py │ │ │ │ └── invalid_where.py │ │ │ ├── group_by_item_resolver │ │ │ │ ├── __init__.py │ │ │ │ ├── ambiguous_group_by_item.py │ │ │ │ ├── invalid_use_of_date_part.py │ │ │ │ ├── multiple_join_paths.py │ │ │ │ ├── no_common_items.py │ │ │ │ ├── no_matching_items_for_no_metrics_query.py │ │ │ │ ├── no_matching_items_for_simple_metric.py │ │ │ │ └── no_parent_candidates.py │ │ │ ├── issues_base.py │ │ │ └── parsing │ │ │ │ ├── __init__.py │ │ │ │ ├── cumulative_metric_requires_metric_time.py │ │ │ │ ├── duplicate_column_names.py │ │ │ │ ├── duplicate_metric.py │ │ │ │ ├── invalid_apply_group_by.py │ │ │ │ ├── invalid_limit.py │ │ │ │ ├── invalid_metric.py │ │ │ │ ├── invalid_min_max_only.py │ │ │ │ ├── invalid_order.py │ │ │ │ ├── no_metric_or_group_by.py │ │ │ │ ├── offset_metric_requires_metric_time.py │ │ │ │ └── string_input_parsing_issue.py │ │ ├── query_parser.py │ │ ├── query_resolution.py │ │ ├── query_resolver.py │ │ ├── resolver_inputs │ │ │ ├── __init__.py │ │ │ ├── base_resolver_inputs.py │ │ │ └── query_resolver_inputs.py │ │ ├── similarity.py │ │ ├── suggestion_generator.py │ │ └── validation_rules │ │ │ ├── __init__.py │ │ │ ├── base_validation_rule.py │ │ │ ├── duplicate_metric.py │ │ │ ├── metric_time_requirements.py │ │ │ ├── query_validator.py │ │ │ └── unique_column_names.py │ ├── semantic_graph │ │ ├── __init__.py │ │ ├── attribute_resolution │ │ │ ├── __init__.py │ │ │ ├── attribute_recipe.py │ │ │ ├── attribute_recipe_step.py │ │ │ ├── group_by_item_set.py │ │ │ ├── recipe_writer_path.py │ │ │ ├── recipe_writer_weight.py │ │ │ └── sg_linkable_spec_resolver.py │ │ ├── builder │ │ │ ├── __init__.py │ │ │ ├── categorical_dimension_subgraph.py │ │ │ ├── entity_join_subgraph.py │ │ │ ├── entity_key_subgraph.py │ │ │ ├── graph_builder.py │ │ │ ├── metric_subgraph.py │ │ │ ├── partial_graph_builder.py │ │ │ ├── simple_metric_subgraph.py │ │ │ ├── subgraph_generator.py │ │ │ ├── time_dimension_subgraph.py │ │ │ └── time_entity_subgraph.py │ │ ├── edges │ │ │ ├── __init__.py │ │ │ ├── edge_labels.py │ │ │ └── sg_edges.py │ │ ├── lookups │ │ │ ├── __init__.py │ │ │ ├── entity_lookup.py │ │ │ ├── join_lookup.py │ │ │ ├── manifest_object_lookup.py │ │ │ ├── model_object_lookup.py │ │ │ └── simple_metric_model_object_lookup.py │ │ ├── model_id.py │ │ ├── nodes │ │ │ ├── __init__.py │ │ │ ├── attribute_nodes.py │ │ │ ├── entity_nodes.py │ │ │ └── node_labels.py │ │ ├── sg_constant.py │ │ ├── sg_exceptions.py │ │ ├── sg_interfaces.py │ │ ├── sg_node_grouping.py │ │ └── trie_resolver │ │ │ ├── __init__.py │ │ │ ├── dunder_name_descriptor.py │ │ │ ├── dunder_name_trie.py │ │ │ ├── dunder_name_trie_resolver.py │ │ │ ├── entity_key_resolver.py │ │ │ ├── group_by_metric_resolver.py │ │ │ └── simple_resolver.py │ ├── specs │ │ ├── __init__.py │ │ ├── column_assoc.py │ │ ├── constant_property_spec.py │ │ ├── dimension_spec.py │ │ ├── dunder_column_association_resolver.py │ │ ├── entity_spec.py │ │ ├── group_by_metric_spec.py │ │ ├── instance_spec.py │ │ ├── linkable_spec_set.py │ │ ├── metadata_spec.py │ │ ├── metric_spec.py │ │ ├── non_additive_dimension_spec.py │ │ ├── order_by_spec.py │ │ ├── partition_spec_set.py │ │ ├── patterns │ │ │ ├── __init__.py │ │ │ ├── entity_link_pattern.py │ │ │ ├── match_list_pattern.py │ │ │ ├── metric_pattern.py │ │ │ ├── metric_time_default_granularity.py │ │ │ ├── metric_time_pattern.py │ │ │ ├── minimum_time_grain.py │ │ │ ├── no_group_by_metric.py │ │ │ ├── none_date_part.py │ │ │ ├── spec_pattern.py │ │ │ └── typed_patterns.py │ │ ├── query_param_implementations.py │ │ ├── query_spec.py │ │ ├── rendered_spec_tracker.py │ │ ├── simple_metric_input_spec.py │ │ ├── spec_set.py │ │ ├── spec_set_transforms.py │ │ ├── time_dimension_spec.py │ │ └── where_filter │ │ │ ├── __init__.py │ │ │ ├── where_filter_dimension.py │ │ │ ├── where_filter_entity.py │ │ │ ├── where_filter_metric.py │ │ │ ├── where_filter_spec.py │ │ │ ├── where_filter_spec_set.py │ │ │ ├── where_filter_time_dimension.py │ │ │ └── where_filter_transform.py │ ├── sql │ │ ├── __init__.py │ │ ├── sql_bind_parameters.py │ │ ├── sql_column_type.py │ │ ├── sql_exprs.py │ │ ├── sql_join_type.py │ │ └── sql_table.py │ ├── test_helpers │ │ ├── __init__.py │ │ ├── config_helpers.py │ │ ├── example_project_configuration.py │ │ ├── id_helpers.py │ │ ├── manifest_helpers.py │ │ ├── metric_time_dimension.py │ │ ├── mock_helpers.py │ │ ├── performance │ │ │ ├── __init__.py │ │ │ ├── benchmark_helpers.py │ │ │ ├── performance_helpers.py │ │ │ ├── profiling.py │ │ │ └── report_formatter.py │ │ ├── recorded_logging_context.py │ │ ├── semantic_manifest_yamls │ │ │ ├── __init__.py │ │ │ ├── ambiguous_resolution_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── metrics.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ └── semantic_models │ │ │ │ │ ├── monthly_measures_source.yaml │ │ │ │ │ └── yearly_measures_source.yaml │ │ │ ├── config_linter_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── multiple_semantic_models_without_divider.yml │ │ │ │ └── project_configuration.yaml │ │ │ ├── cyclic_join_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── listings_latest.yaml │ │ │ │ ├── listings_latest_cyclic.yaml │ │ │ │ └── project_configuration.yaml │ │ │ ├── data_warehouse_validation_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── project_configuration.yaml │ │ │ │ └── semantic_models │ │ │ │ │ └── semantic_model1.yml │ │ │ ├── extended_date_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── metrics │ │ │ │ │ ├── bookings_cumulative.yaml │ │ │ │ │ ├── bookings_last_month.yaml │ │ │ │ │ ├── bookings_monthly_cumulative.yaml │ │ │ │ │ └── monthly_bookings_to_daily_bookings_ratio.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ └── semantic_models │ │ │ │ │ ├── bookings_monthly_source.yaml │ │ │ │ │ ├── extended_bookings_source.yaml │ │ │ │ │ └── listings_extended_source.yaml │ │ │ ├── join_types_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── bookings_source.yaml │ │ │ │ ├── listings_source.yaml │ │ │ │ └── project_configuration.yaml │ │ │ ├── multi_hop_join_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── account_month_txns.yaml │ │ │ │ ├── bridge_table.yaml │ │ │ │ ├── customer_other_data.yaml │ │ │ │ ├── customer_table.yaml │ │ │ │ ├── metrics.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ └── third_hop_table.yaml │ │ │ ├── name_edge_case_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── metrics.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ └── semantic_models │ │ │ │ │ └── bookings_source.yaml │ │ │ ├── non_sm_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── bookings_source.yaml │ │ │ │ ├── listings_latest.yaml │ │ │ │ └── project_configuration.yaml │ │ │ ├── partitioned_multi_hop_join_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── account_month_txns.yaml │ │ │ │ ├── bridge_table.yaml │ │ │ │ ├── customer_other_data.yaml │ │ │ │ ├── customer_table.yaml │ │ │ │ ├── metrics.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ └── third_hop_table.yaml │ │ │ ├── scd_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── non_scd_companies.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ ├── scd_accounts.yaml │ │ │ │ ├── scd_bookings.yaml │ │ │ │ ├── scd_listings.yaml │ │ │ │ ├── scd_lux_listings.yaml │ │ │ │ ├── scd_metrics.yaml │ │ │ │ └── scd_users.yaml │ │ │ ├── sg_00_minimal_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── manifest.yaml │ │ │ │ └── project_configuration.yaml │ │ │ ├── sg_02_single_join │ │ │ │ ├── __init__.py │ │ │ │ ├── manifest.yaml │ │ │ │ └── project_configuration.yaml │ │ │ ├── sg_05_derived_metric │ │ │ │ ├── __init__.py │ │ │ │ ├── manifest.yaml │ │ │ │ └── project_configuration.yaml │ │ │ ├── shared │ │ │ │ └── project_configuration.yaml │ │ │ ├── simple_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── metrics.yaml │ │ │ │ ├── project_configuration.yaml │ │ │ │ ├── saved_queries.yaml │ │ │ │ └── semantic_models │ │ │ │ │ ├── accounts_source.yaml │ │ │ │ │ ├── bookings_source.yaml │ │ │ │ │ ├── buys_source.yaml │ │ │ │ │ ├── companies.yaml │ │ │ │ │ ├── id_verifications.yaml │ │ │ │ │ ├── listings_latest.yaml │ │ │ │ │ ├── lux_listing_mapping.yaml │ │ │ │ │ ├── revenue.yaml │ │ │ │ │ ├── user_sm_source.yaml │ │ │ │ │ ├── users_latest.yaml │ │ │ │ │ ├── views_source.yaml │ │ │ │ │ └── visits_source.yaml │ │ │ └── simple_multi_hop_join_manifest │ │ │ │ ├── __init__.py │ │ │ │ ├── all_entity_measure_source.yaml │ │ │ │ ├── entity_0_dimension_source.yaml │ │ │ │ ├── entity_0_measure_source.yaml │ │ │ │ ├── entity_1_and_entity_2_measure_source.yaml │ │ │ │ ├── entity_1_dimension_source.yaml │ │ │ │ ├── entity_1_measure_source.yaml │ │ │ │ ├── entity_1_to_entity_0_mapping_source.yaml │ │ │ │ ├── entity_2_to_entity_0_mapping_source.yaml │ │ │ │ ├── metrics.yaml │ │ │ │ └── project_configuration.yaml │ │ ├── snapshot_helpers.py │ │ ├── svg_snapshot.py │ │ ├── synthetic_manifest │ │ │ ├── __init__.py │ │ │ ├── categorical_dimension_generator.py │ │ │ ├── dimension_semantic_model_generator.py │ │ │ ├── metric_generator.py │ │ │ ├── saved_query_generator.py │ │ │ ├── semantic_manifest_generator.py │ │ │ ├── simple_metric_semantic_model_generator.py │ │ │ ├── synthetic_manifest_parameter_set.py │ │ │ └── test_manifest_generator.py │ │ ├── table_helpers.py │ │ ├── terminal_helpers.py │ │ └── time_helpers.py │ ├── time │ │ ├── __init__.py │ │ ├── dateutil_adjuster.py │ │ ├── granularity.py │ │ ├── time_constants.py │ │ ├── time_period.py │ │ ├── time_source.py │ │ └── time_spine_source.py │ └── toolkit │ │ ├── __init__.py │ │ ├── assert_one_arg.py │ │ ├── cache │ │ ├── __init__.py │ │ ├── lru_cache.py │ │ └── result_cache.py │ │ ├── collections │ │ ├── __init__.py │ │ ├── mapping_helpers.py │ │ └── ordered_set.py │ │ ├── comparison_helpers.py │ │ ├── dataclass_helpers.py │ │ ├── merger.py │ │ ├── mf_graph │ │ ├── __init__.py │ │ ├── comparable.py │ │ ├── formatting │ │ │ ├── __init__.py │ │ │ ├── dot_attributes.py │ │ │ ├── dot_formatter.py │ │ │ ├── graph_formatter.py │ │ │ ├── graphviz_html.py │ │ │ ├── graphviz_html_table_builder.py │ │ │ ├── mf_to_dot.py │ │ │ ├── mf_to_graphical_dot.py │ │ │ ├── pretty_graph_formatter.py │ │ │ └── svg_formatter.py │ │ ├── graph_converter.py │ │ ├── graph_element.py │ │ ├── graph_id.py │ │ ├── graph_labeling.py │ │ ├── mf_graph.py │ │ ├── mutable_graph.py │ │ ├── node_descriptor.py │ │ └── path_finding │ │ │ ├── __init__.py │ │ │ ├── graph_path.py │ │ │ ├── pathfinder.py │ │ │ ├── pathfinder_result.py │ │ │ ├── traversal_profile.py │ │ │ ├── traversal_profile_differ.py │ │ │ └── weight_function.py │ │ ├── mf_logging │ │ ├── __init__.py │ │ ├── attribute_pretty_format.py │ │ ├── format_option.py │ │ ├── lazy_formattable.py │ │ ├── pretty_formattable.py │ │ ├── pretty_formatter.py │ │ ├── pretty_print.py │ │ └── runtime.py │ │ ├── mf_type_aliases.py │ │ ├── orderd_enum.py │ │ ├── performance_helpers.py │ │ ├── random_id.py │ │ ├── singleton.py │ │ ├── string_helpers.py │ │ ├── syntactic_sugar.py │ │ ├── table_helpers.py │ │ ├── time_helpers.py │ │ └── visitor.py ├── pyproject.toml ├── requirements-files │ ├── dev-env-requirements.txt │ └── requirements.txt └── tests_metricflow_semantics │ ├── __init__.py │ ├── api │ ├── __init__.py │ └── v0_1 │ │ ├── __init__.py │ │ └── test_saved_query_dependency_resolver.py │ ├── conftest.py │ ├── dag │ ├── __init__.py │ └── test_sequential_id_generator.py │ ├── experimental │ └── __init__.py │ ├── fixtures │ ├── __init__.py │ ├── manifest_fixtures.py │ └── setup_fixtures.py │ ├── helpers │ ├── __init__.py │ ├── graph_helpers.py │ └── performance │ │ ├── __init__.py │ │ └── test_report_formatter.py │ ├── mf_logging │ ├── __init__.py │ ├── test_lazy_format.py │ ├── test_pformat_dict.py │ └── test_pretty_print.py │ ├── model │ ├── __init__.py │ ├── modify │ │ ├── __init__.py │ │ ├── modify_input_metric_filter.py │ │ ├── modify_manifest.py │ │ └── modify_metric_filter.py │ ├── semantics │ │ ├── __init__.py │ │ ├── test_dimension_lookup.py │ │ ├── test_linkable_element_set.py │ │ ├── test_metric_lookup.py │ │ └── test_semantic_model_join_evaluator.py │ ├── test_semantic_model_container.py │ └── test_where_filter_spec.py │ ├── naming │ ├── __init__.py │ ├── conftest.py │ ├── test_dunder_naming_scheme.py │ ├── test_metric_name_scheme.py │ └── test_object_builder_naming_scheme.py │ ├── query │ ├── __init__.py │ ├── conftest.py │ ├── errors │ │ ├── __init__.py │ │ └── test_messages.py │ ├── group_by_item │ │ ├── __init__.py │ │ ├── ambiguous_resolution_query_id.py │ │ ├── conftest.py │ │ ├── filter_spec_resolution │ │ │ ├── __init__.py │ │ │ └── test_spec_lookup.py │ │ ├── resolution_dag │ │ │ ├── __init__.py │ │ │ └── test_resolution_dags.py │ │ ├── test_available_group_by_items.py │ │ ├── test_matching_item_for_filters.py │ │ └── test_matching_item_for_querying.py │ ├── parser_helpers.py │ ├── test_ambiguous_entity_path.py │ ├── test_conversion_metrics.py │ ├── test_metric_time_granularity.py │ ├── test_parse_scd_cases.py │ ├── test_query_parser.py │ └── test_suggestions.py │ ├── semantic_graph │ ├── __init__.py │ ├── attribute_resolution │ │ ├── __init__.py │ │ └── test_recipe_writer.py │ ├── builder │ │ ├── __init__.py │ │ ├── subgraph_test_helpers.py │ │ ├── test_subgraph_0_simple_metric.py │ │ ├── test_subgraph_1_entity_join.py │ │ ├── test_subgraph_2_categorical_dimension.py │ │ ├── test_subgraph_3_entity_key.py │ │ ├── test_subgraph_4_time_dimension.py │ │ ├── test_subgraph_5_time.py │ │ └── test_subgraph_6_metric.py │ ├── conftest.py │ ├── lookups │ │ ├── __init__.py │ │ └── test_manifest_object_lookup.py │ ├── resolver │ │ ├── __init__.py │ │ ├── test_other_manifest.py │ │ ├── test_sg_resolver_output.py │ │ └── test_sg_resolver_performance.py │ ├── sg_fixtures.py │ ├── sg_tester.py │ └── trie_resolver │ │ ├── __init__.py │ │ ├── test_dunder_name_trie.py │ │ ├── test_group_by_metric_trie_resolver.py │ │ └── test_simple_trie_resolver.py │ ├── snapshots │ ├── test_ambiguous_entity_path.py │ │ ├── MetricFlowQuerySpec │ │ │ ├── test_ambiguous_entity_path_resolves_to_shortest_entity_path_item__result_0.txt │ │ │ └── test_resolvable_ambiguous_entity_path__result_0.txt │ │ └── str │ │ │ ├── test_non_resolvable_ambiguous_entity_path_due_to_mismatch__result_0.txt │ │ │ └── test_non_resolvable_ambiguous_entity_path_due_to_multiple_matches__result_0.txt │ ├── test_available_group_by_items.py │ │ └── LinkableSpecSet │ │ │ ├── test_available_group_by_items__accumulate_last_2_months_metric__set0.txt │ │ │ ├── test_available_group_by_items__derived_metric_with_different_parent_time_grains__set0.txt │ │ │ ├── test_available_group_by_items__derived_metric_with_same_parent_time_grains__set0.txt │ │ │ ├── test_available_group_by_items__metrics_with_different_time_grains__set0.txt │ │ │ ├── test_available_group_by_items__metrics_with_same_time_grains__set0.txt │ │ │ ├── test_available_group_by_items__no_metrics__set0.txt │ │ │ └── test_available_group_by_items__simple_metric__set0.txt │ ├── test_conversion_metrics.py │ │ └── ParseQueryResult │ │ │ └── test_conversion_rate_with_constant_properties__result.txt │ ├── test_dimension_lookup.py │ │ └── dict │ │ │ └── test_get_invariant__obj_0.txt │ ├── test_dot.py │ │ └── str │ │ │ └── test_dot_text__result.txt │ ├── test_dunder_name_trie.py │ │ └── dict │ │ │ └── test_add_items__result.txt │ ├── test_graph_snapshot.py │ │ └── str │ │ │ └── test_graph_snapshot__result.txt │ ├── test_group_by_metric_trie_resolver.py │ │ └── GroupByItemSet │ │ │ └── test_simple_metric__result.txt │ ├── test_manifest_object_lookup.py │ │ └── ManifestObjectLookup │ │ │ └── test_lookup_attributes__result.txt │ ├── test_matching_item_for_filters.py │ │ └── GroupByItemResolution │ │ │ ├── test_ambiguous_metric_time_in_query_filter__accumulate_last_2_months_metric__result.txt │ │ │ ├── test_ambiguous_metric_time_in_query_filter__derived_metric_with_different_parent_time_grains__result.txt │ │ │ ├── test_ambiguous_metric_time_in_query_filter__derived_metric_with_same_parent_time_grains__result.txt │ │ │ ├── test_ambiguous_metric_time_in_query_filter__metrics_with_different_time_grains__result.txt │ │ │ ├── test_ambiguous_metric_time_in_query_filter__metrics_with_same_time_grains__result.txt │ │ │ ├── test_ambiguous_metric_time_in_query_filter__no_metrics__result.txt │ │ │ └── test_ambiguous_metric_time_in_query_filter__simple_metric__result.txt │ ├── test_matching_item_for_querying.py │ │ ├── AvailableGroupByItemsResolution │ │ │ └── test_missing_parent_for_metric__result.txt │ │ └── GroupByItemResolution │ │ │ ├── test_invalid_group_by_item__result.txt │ │ │ └── test_unavailable_group_by_item_in_derived_metric_parent__result.txt │ ├── test_messages.py │ │ └── str │ │ │ ├── test_empty_query__result.txt │ │ │ ├── test_invalid_where_filter__result.txt │ │ │ ├── test_join_scd_model_to_scd_model__result.txt │ │ │ └── test_long_invalid_metric__result.txt │ ├── test_metric_time_granularity.py │ │ └── MetricFlowQuerySpec │ │ │ ├── test_derived_metric_with_defined_metric_time_filter__result_0.txt │ │ │ ├── test_derived_metric_with_defined_metric_time_filter_on_input_metric__result_0.txt │ │ │ ├── test_derived_metric_with_explicit_time_granularity__result_0.txt │ │ │ ├── test_derived_metric_without_explicit_time_granularity__result_0.txt │ │ │ ├── test_non_metric_time_ignores_default_granularity__result_0.txt │ │ │ ├── test_simple_metric_with_defined_metric_time_filter__result_0.txt │ │ │ ├── test_simple_metric_with_explicit_time_granularity__result_0.txt │ │ │ └── test_simple_metric_without_explicit_time_granularity__result_0.txt │ ├── test_mf_graph.py │ │ └── str │ │ │ └── test_pretty_format__result.txt │ ├── test_other_manifest.py │ │ └── str │ │ │ └── test_simple_metric_with_cyclic_join_path__result.txt │ ├── test_parse_scd_cases.py │ │ └── ParseQueryResult │ │ │ └── test_join_scd_model_to_non_scd_model__result.txt │ ├── test_path_finder.py │ │ ├── FindAncestorsResult │ │ │ └── test_find_ancestors__result.txt │ │ ├── FindDescendantsResult │ │ │ └── test_find_descendants__result.txt │ │ └── dict │ │ │ └── test_find_paths_dfs__result.txt │ ├── test_query_parser.py │ │ └── ParseQueryResult │ │ │ ├── test_cumulative_metric_agg_time_dimension_name_validation__result.txt │ │ │ ├── test_derived_metric_with_offset_parsing__result.txt │ │ │ ├── test_order_by_granularity_conversion__result.txt │ │ │ ├── test_order_by_granularity_no_conversion__result.txt │ │ │ ├── test_parse_and_validate_where_constraint_dims__result.txt │ │ │ ├── test_query_parser__result.txt │ │ │ ├── test_query_parser_case_insensitivity_with_names__result.txt │ │ │ ├── test_query_parser_case_insensitivity_with_parameter_objects__result.txt │ │ │ ├── test_query_parser_with_object_params__result.txt │ │ │ └── test_time_range_constraint_conversion__result.txt │ ├── test_recipe_writer.py │ │ └── str │ │ │ └── test_recipe_writer_path__result.txt │ ├── test_report_formatter.py │ │ └── str │ │ │ └── test_format_report_to_text_table__result.txt │ ├── test_resolution_dags.py │ │ └── GroupByItemResolutionDag │ │ │ ├── test_snapshot__accumulate_last_2_months_metric__gbir_6.xml │ │ │ ├── test_snapshot__derived_metric_with_different_parent_time_grains__gbir_5.xml │ │ │ ├── test_snapshot__derived_metric_with_same_parent_time_grains__gbir_4.xml │ │ │ ├── test_snapshot__metrics_with_different_time_grains__gbir_3.xml │ │ │ ├── test_snapshot__metrics_with_same_time_grains__gbir_2.xml │ │ │ ├── test_snapshot__no_metrics__gbir_0.xml │ │ │ └── test_snapshot__simple_metric__gbir_1.xml │ ├── test_semantic_model_container.py │ │ └── dict │ │ │ ├── test_get_aggregation_time_dimension_specs__result.txt │ │ │ └── test_get_names__result0.txt │ ├── test_sg_resolver_output.py │ │ └── str │ │ │ ├── test_complete_set_for_simple_metrics__result.txt │ │ │ ├── test_set_for_distinct_values_query__result.txt │ │ │ └── test_set_for_metrics__result.txt │ ├── test_simple_trie_resolver.py │ │ ├── dict │ │ │ └── test_metrics__result.txt │ │ └── list │ │ │ └── test_simple_metric__result.txt │ ├── test_snapshot.py │ │ └── str │ │ │ └── test_expectation_description__result.txt │ ├── test_spec_lookup.py │ │ └── str │ │ │ ├── test_filter_resolution_for_derived_metrics_with_common_filtered_metric__result.txt │ │ │ ├── test_filter_resolution_for_invalid_metric_filter__result.txt │ │ │ ├── test_filter_resolution_for_invalid_metric_input_filter__result.txt │ │ │ ├── test_filter_resolution_for_valid_metric_filter__result.txt │ │ │ ├── test_filter_resolution_for_valid_metric_input_filter__result.txt │ │ │ ├── test_filter_spec_resolution__accumulate_last_2_months_metric__result.txt │ │ │ ├── test_filter_spec_resolution__derived_metric_with_different_parent_time_grains__result.txt │ │ │ ├── test_filter_spec_resolution__derived_metric_with_same_parent_time_grains__result.txt │ │ │ ├── test_filter_spec_resolution__metrics_with_different_time_grains__result.txt │ │ │ ├── test_filter_spec_resolution__metrics_with_same_time_grains__result.txt │ │ │ ├── test_filter_spec_resolution__no_metrics__result.txt │ │ │ └── test_filter_spec_resolution__simple_metric__result.txt │ ├── test_subgraph_0_simple_metric.py │ │ └── str │ │ │ └── test_minimal_manifest__result.txt │ ├── test_subgraph_1_entity_join.py │ │ └── str │ │ │ ├── test_minimal_manifest__result.txt │ │ │ └── test_single_join_manifest__result.txt │ ├── test_subgraph_2_categorical_dimension.py │ │ └── str │ │ │ └── test_single_join_manifest__result.txt │ ├── test_subgraph_3_entity_key.py │ │ └── str │ │ │ └── test_minimal_manifest__result.txt │ ├── test_subgraph_4_time_dimension.py │ │ └── str │ │ │ └── test_minimal_manifest__result.txt │ ├── test_subgraph_5_time.py │ │ └── str │ │ │ └── test_minimal_manifest__result.txt │ ├── test_subgraph_6_metric.py │ │ └── str │ │ │ └── test_derived_metric_manifest__result.txt │ ├── test_suggestions.py │ │ └── str │ │ │ ├── test_suggestions_for_defined_filters_in_multi_metric_query__result_0.txt │ │ │ ├── test_suggestions_for_defined_where_filter__result_0.txt │ │ │ ├── test_suggestions_for_group_by_item__result_0.txt │ │ │ ├── test_suggestions_for_metric__result_0.txt │ │ │ └── test_suggestions_for_multiple_metrics__result_0.txt │ └── test_time_adjuster.py │ │ └── str │ │ └── test_start_and_end_periods__results.txt │ ├── specs │ ├── __init__.py │ ├── conftest.py │ ├── patterns │ │ ├── __init__.py │ │ ├── test_entity_link_pattern.py │ │ └── test_typed_patterns.py │ ├── test_spec_serialization.py │ ├── test_time_dimension_spec.py │ └── test_where_filter_entity.py │ ├── sql │ ├── __init__.py │ ├── test_bind_parameter_serialization.py │ └── test_sql_table.py │ ├── test_benchmark.py │ ├── test_snapshot.py │ ├── test_specs.py │ ├── time │ ├── __init__.py │ └── test_time_adjuster.py │ └── toolkit │ ├── __init__.py │ ├── cache │ ├── __init__.py │ └── test_lru_cache.py │ ├── collections │ ├── __init__.py │ └── test_ordered_set.py │ ├── dataclass_statement.py │ ├── fast_frozen_dataclass_test_classes.py │ ├── mf_graph │ ├── __init__.py │ ├── conftest.py │ ├── flow_graph.py │ ├── formatting │ │ ├── __init__.py │ │ ├── test_dot.py │ │ └── test_svg.py │ ├── path_finding │ │ ├── __init__.py │ │ └── test_path_finder.py │ ├── test_graph_snapshot.py │ └── test_mf_graph.py │ ├── singleton_test_classes.py │ ├── statement_helpers.py │ ├── test_fast_frozen_dataclass.py │ ├── test_merger.py │ ├── test_ordered_enum.py │ └── test_singleton.py ├── metricflow ├── __about__.py ├── __init__.py ├── data_table │ ├── __init__.py │ ├── column_types.py │ ├── mf_column.py │ └── mf_table.py ├── dataflow │ ├── __init__.py │ ├── builder │ │ ├── __init__.py │ │ ├── aggregation_helper.py │ │ ├── builder_cache.py │ │ ├── dataflow_plan_builder.py │ │ ├── node_evaluator.py │ │ ├── partitions.py │ │ ├── simple_metric_input_spec_properties.py │ │ ├── source_node.py │ │ └── source_node_recipe.py │ ├── dataflow_plan.py │ ├── dataflow_plan_analyzer.py │ ├── dataflow_plan_visitor.py │ ├── nodes │ │ ├── __init__.py │ │ ├── add_generated_uuid.py │ │ ├── aggregate_simple_metric_inputs.py │ │ ├── alias_specs.py │ │ ├── combine_aggregated_outputs.py │ │ ├── compute_metrics.py │ │ ├── constrain_time.py │ │ ├── filter_elements.py │ │ ├── join_conversion_events.py │ │ ├── join_over_time.py │ │ ├── join_to_base.py │ │ ├── join_to_custom_granularity.py │ │ ├── join_to_time_spine.py │ │ ├── metric_time_transform.py │ │ ├── min_max.py │ │ ├── offset_base_grain_by_custom_grain.py │ │ ├── offset_custom_granularity.py │ │ ├── order_by_limit.py │ │ ├── read_sql_source.py │ │ ├── semi_additive_join.py │ │ ├── where_filter.py │ │ ├── window_reaggregation_node.py │ │ ├── write_to_data_table.py │ │ └── write_to_table.py │ └── optimizer │ │ ├── __init__.py │ │ ├── dataflow_optimizer_factory.py │ │ ├── dataflow_plan_optimizer.py │ │ └── source_scan │ │ ├── __init__.py │ │ ├── cm_branch_combiner.py │ │ ├── matching_linkable_specs.py │ │ └── source_scan_optimizer.py ├── dataset │ ├── __init__.py │ ├── convert_semantic_model.py │ ├── dataset_classes.py │ ├── semantic_model_adapter.py │ └── sql_dataset.py ├── engine │ ├── __init__.py │ ├── metricflow_engine.py │ ├── models.py │ └── time_source.py ├── execution │ ├── __init__.py │ ├── convert_to_execution_plan.py │ ├── dataflow_to_execution.py │ ├── execution_plan.py │ └── executor.py ├── plan_conversion │ ├── __init__.py │ ├── convert_to_sql_plan.py │ ├── instance_set_transforms │ │ ├── __init__.py │ │ ├── aggregated_simple_metric_input.py │ │ ├── instance_converters.py │ │ └── select_columns.py │ ├── node_processor.py │ ├── select_column_gen.py │ ├── spec_transforms.py │ ├── sql_expression_builders.py │ └── to_sql_plan │ │ ├── __init__.py │ │ ├── dataflow_to_cte.py │ │ ├── dataflow_to_sql.py │ │ ├── dataflow_to_subquery.py │ │ └── sql_join_builder.py ├── protocols │ ├── __init__.py │ └── sql_client.py ├── py.typed ├── sql │ ├── __init__.py │ ├── column_alias_renamer.py │ ├── optimizer │ │ ├── __init__.py │ │ ├── column_pruning │ │ │ ├── __init__.py │ │ │ ├── column_pruner.py │ │ │ ├── cte_alias_to_cte_node_mapping.py │ │ │ ├── cte_mapping_lookup_builder.py │ │ │ ├── node_to_column_alias_maping.py │ │ │ └── required_column_aliases.py │ │ ├── optimization_levels.py │ │ ├── rewriting_sub_query_reducer.py │ │ ├── sql_query_plan_optimizer.py │ │ └── table_alias_simplifier.py │ ├── render │ │ ├── __init__.py │ │ ├── big_query.py │ │ ├── databricks.py │ │ ├── duckdb_renderer.py │ │ ├── expr_renderer.py │ │ ├── postgres.py │ │ ├── redshift.py │ │ ├── rendering_constants.py │ │ ├── snowflake.py │ │ ├── sql_plan_renderer.py │ │ └── trino.py │ ├── sql_column.py │ ├── sql_ctas_node.py │ ├── sql_cte_node.py │ ├── sql_plan.py │ ├── sql_select_node.py │ ├── sql_select_text_node.py │ └── sql_table_node.py ├── sql_request │ ├── __init__.py │ └── sql_request_attributes.py ├── telemetry │ ├── __init__.py │ ├── handlers │ │ ├── __init__.py │ │ ├── handlers.py │ │ └── python_log.py │ ├── models.py │ └── reporter.py └── validation │ ├── __init__.py │ ├── data_warehouse_model_validator.py │ └── dataflow_join_validator.py ├── mypy.ini ├── pyproject.toml ├── pytest.ini ├── requirements-files ├── dev-env-requirements.txt └── requirements.txt ├── ruff.toml ├── scripts ├── __init__.py ├── ci_tests │ ├── __init__.py │ ├── install_hatch_environments.py │ ├── metricflow_package_test.py │ ├── metricflow_semantics_package_test.py │ └── run_package_build_tests.py ├── mf-release-helper ├── mf_script_helper.py └── sync_dsi.py └── tests_metricflow ├── __init__.py ├── cli ├── __init__.py ├── cli_test_helpers.py ├── conftest.py ├── demo_data_types_project_add_on │ ├── __init__.py │ ├── models │ │ ├── demo_data_types.sql │ │ ├── demo_data_types.yml │ │ └── metrics.yml │ └── seeds │ │ ├── demo_data_types_seed.csv │ │ └── properties.yml ├── executor_process_main_function.py ├── isolated_cli_command_interface.py ├── isolated_cli_command_runner.py ├── test_cli.py ├── test_cli_error.py ├── test_cli_quiet.py ├── test_custom_click_types.py ├── test_isolated_command_runner.py └── test_output_format.py ├── conftest.py ├── dataflow ├── __init__.py ├── builder │ ├── __init__.py │ ├── test_cyclic_join.py │ ├── test_dataflow_plan_builder.py │ ├── test_node_data_set.py │ └── test_node_evaluator.py ├── optimizer │ ├── __init__.py │ └── source_scan │ │ ├── __init__.py │ │ ├── test_cm_branch_combiner.py │ │ └── test_source_scan_optimizer.py ├── test_dataflow_plan.py ├── test_sql_column.py └── test_sql_table.py ├── dataflow_plan_to_svg.py ├── dataset ├── __init__.py └── test_convert_semantic_model.py ├── engine ├── __init__.py ├── test_errors.py └── test_explain.py ├── examples ├── __init__.py └── test_node_sql.py ├── execution ├── __init__.py ├── noop_task.py ├── test_sequential_executor.py └── test_tasks.py ├── experimental └── semantic_graph │ └── dsi │ └── __init__.py ├── fixtures ├── __init__.py ├── cli_fixtures.py ├── connection_url.py ├── dataflow_fixtures.py ├── dbt_projects │ └── metricflow_testing │ │ ├── .gitignore │ │ ├── .user.yml │ │ ├── README.md │ │ ├── analyses │ │ └── .gitkeep │ │ ├── dbt_project.yml │ │ ├── macros │ │ └── .gitkeep │ │ ├── models │ │ └── example │ │ │ ├── my_first_dbt_model.sql │ │ │ ├── my_second_dbt_model.sql │ │ │ └── schema.yml │ │ ├── profiles.yml │ │ ├── seeds │ │ └── .gitkeep │ │ ├── snapshots │ │ └── .gitkeep │ │ └── tests │ │ └── .gitkeep ├── manifest_fixtures.py ├── setup_fixtures.py ├── source_table_snapshots │ ├── data_warehouse_validation_model │ │ └── fct_animals.yaml │ ├── extended_date_model │ │ ├── dim_listings_extended.yaml │ │ ├── fct_bookings_extended.yaml │ │ └── fct_bookings_extended_monthly.yaml │ ├── multi_hop_join_model │ │ ├── account_month_txns.yaml │ │ ├── bridge_table.yaml │ │ ├── customer_other_data.yaml │ │ ├── customer_table.yaml │ │ └── third_hop_table.yaml │ ├── simple_model │ │ ├── dim_companies.yaml │ │ ├── dim_listings.yaml │ │ ├── dim_listings_latest.yaml │ │ ├── dim_lux_listing_id_mapping.yaml │ │ ├── dim_lux_listings.yaml │ │ ├── dim_primary_accounts.yaml │ │ ├── dim_users.yaml │ │ ├── dim_users_latest.yaml │ │ ├── fct_accounts.yaml │ │ ├── fct_bookings.yaml │ │ ├── fct_bookings_dt.yaml │ │ ├── fct_buys.yaml │ │ ├── fct_id_verifications.yaml │ │ ├── fct_revenue.yaml │ │ ├── fct_views.yaml │ │ └── fct_visits.yaml │ ├── simple_multi_hop_join_manifest │ │ ├── all_entity_measure_table.yaml │ │ ├── entity_0_dimension_table.yaml │ │ ├── entity_0_measure_table.yaml │ │ ├── entity_1_and_entity_2_measure_table.yaml │ │ ├── entity_1_dimension_table.yaml │ │ ├── entity_1_measure_table.yaml │ │ ├── entity_1_to_entity_0_mapping_table.yaml │ │ ├── entity_2_measure_table.yaml │ │ └── entity_2_to_entity_0_mapping_table.yaml │ └── time_spine_table │ │ ├── mf_time_spine.yaml │ │ ├── mf_time_spine_hour.yaml │ │ ├── mf_time_spine_microsecond.yaml │ │ ├── mf_time_spine_millisecond.yaml │ │ ├── mf_time_spine_minute.yaml │ │ ├── mf_time_spine_nanosecond.yaml │ │ └── mf_time_spine_second.yaml ├── sql_client_fixtures.py ├── sql_clients │ ├── __init__.py │ ├── adapter_backed_ddl_client.py │ ├── common_client.py │ └── ddl_sql_client.py ├── sql_fixtures.py └── table_fixtures.py ├── generate_snapshots.py ├── integration ├── __init__.py ├── configured_test_case.py ├── conftest.py ├── query_output │ ├── __init__.py │ ├── test_conversion_metrics.py │ ├── test_cumulative_metrics.py │ ├── test_fill_nulls_with_0.py │ ├── test_metric_filter_output.py │ ├── test_offset_metrics.py │ ├── test_output_column_order.py │ └── test_query_output.py ├── test_cases │ ├── itest_constraints.yaml │ ├── itest_conversion_metric.yaml │ ├── itest_cumulative_metric.yaml │ ├── itest_dimensions.yaml │ ├── itest_dundered_identifiers.yaml │ ├── itest_granularity.yaml │ ├── itest_join_to_timespine.yaml │ ├── itest_joins.yaml │ ├── itest_measure_aggregations.yaml │ ├── itest_measure_constraints.yaml │ ├── itest_metric_queries_no_dimensions.yaml │ ├── itest_metrics.yaml │ ├── itest_multi_hop_join.yaml │ ├── itest_order_limit.yaml │ ├── itest_partitions.yaml │ ├── itest_scd.yaml │ ├── itest_semi_additive_measure.yaml │ ├── itest_simple.yaml │ └── itest_simple_non_sm.yaml ├── test_configured_cases.py ├── test_mf_engine.py └── test_rendered_query.py ├── mf_logging ├── __init__.py └── test_dag_to_text.py ├── performance ├── __init__.py ├── compare_reports.py ├── conftest.py ├── test_mf_engine.py ├── test_profiling_examples.py └── test_simple_manifest.py ├── plan_conversion ├── __init__.py ├── dataflow_to_sql │ ├── __init__.py │ ├── test_conversion_metrics_to_sql.py │ ├── test_cte_sql.py │ ├── test_distinct_values_to_sql.py │ ├── test_exception_retry.py │ └── test_metric_time_dimension_to_sql.py ├── instance_converters │ ├── __init__.py │ ├── test_create_select_columns_with_simple_metrics_aggregated.py │ └── test_create_validity_window_join_description.py ├── test_dataflow_to_execution.py ├── test_dataflow_to_sql_plan.py └── test_time_spine.py ├── populate_persistent_source_schemas.py ├── prototype_utils.py ├── query_rendering ├── __init__.py ├── compare_rendered_query.py ├── test_conversion_metric_rendering.py ├── test_cumulative_metric_rendering.py ├── test_custom_granularity.py ├── test_derived_metric_rendering.py ├── test_fill_nulls_with_rendering.py ├── test_granularity_date_part_rendering.py ├── test_metric_filter_rendering.py ├── test_metric_time_without_metrics.py ├── test_name_edge_caes.py ├── test_predicate_pushdown_rendering.py ├── test_query_rendering.py └── test_time_spine_join_rendering.py ├── snapshot_utils.py ├── snapshots ├── test_cli.py │ └── str │ │ ├── test_csv__result.txt │ │ ├── test_get_dimension_values__result.txt │ │ ├── test_health_checks__result.txt │ │ ├── test_list_dimensions__result.txt │ │ ├── test_list_entities__result.txt │ │ ├── test_list_metrics__result.txt │ │ ├── test_list_saved_queries__result.txt │ │ ├── test_query__result.txt │ │ ├── test_saved_query__result.txt │ │ ├── test_saved_query_explain__result.txt │ │ ├── test_saved_query_with_cumulative_metric__result.txt │ │ ├── test_saved_query_with_limit__result.txt │ │ ├── test_saved_query_with_where__result.txt │ │ ├── test_tutorial_message__result.txt │ │ └── test_validate_configs__result.txt ├── test_cli_error.py │ └── str │ │ ├── test_invalid_metric__result.txt │ │ └── test_missing_semantic_manifest__result.txt ├── test_cli_quiet.py │ └── str │ │ ├── test_explain__result.txt │ │ └── test_query__result.txt ├── test_cm_branch_combiner.py │ └── DataflowPlan │ │ ├── test_filter_combination__dfpo_0.xml │ │ └── test_read_sql_source_combination__dfpo_0.xml ├── test_column_pruner.py │ └── SqlPlan │ │ ├── test_dont_prune_if_in_where__after_pruning.sql │ │ ├── test_dont_prune_if_in_where__before_pruning.sql │ │ ├── test_dont_prune_with_str_expr__after_pruning.sql │ │ ├── test_dont_prune_with_str_expr__before_pruning.sql │ │ ├── test_no_pruning__after_pruning.sql │ │ ├── test_no_pruning__before_pruning.sql │ │ ├── test_prune_distinct_select__after_pruning.sql │ │ ├── test_prune_distinct_select__before_pruning.sql │ │ ├── test_prune_from_source__after_pruning.sql │ │ ├── test_prune_from_source__before_pruning.sql │ │ ├── test_prune_grandparents__after_pruning.sql │ │ ├── test_prune_grandparents__before_pruning.sql │ │ ├── test_prune_grandparents_in_join_query__after_pruning.sql │ │ ├── test_prune_grandparents_in_join_query__before_pruning.sql │ │ ├── test_prune_joined_source__after_pruning.sql │ │ ├── test_prune_joined_source__before_pruning.sql │ │ ├── test_prune_str_expr__after_pruning.sql │ │ ├── test_prune_str_expr__before_pruning.sql │ │ ├── test_prune_with_str_expr__after_pruning.sql │ │ └── test_prune_with_str_expr__before_pruning.sql ├── test_common_dataflow_branches.py │ └── str │ │ └── test_shared_metric_query__result.txt ├── test_conversion_metric_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql │ │ └── Trino │ │ ├── test_conversion_metric__plan0.sql │ │ ├── test_conversion_metric__plan0_optimized.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0.sql │ │ ├── test_conversion_metric_with_categorical_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0.sql │ │ ├── test_conversion_metric_with_different_time_dimension_grains__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter__plan0.sql │ │ ├── test_conversion_metric_with_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0.sql │ │ ├── test_conversion_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window__plan0.sql │ │ ├── test_conversion_metric_with_window__plan0_optimized.sql │ │ ├── test_conversion_metric_with_window_and_time_constraint__plan0.sql │ │ └── test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql ├── test_conversion_metrics.py │ └── str │ │ ├── BigQuery │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt │ │ ├── Databricks │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt │ │ ├── DuckDB │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt │ │ ├── Postgres │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt │ │ ├── Redshift │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt │ │ ├── Snowflake │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt │ │ └── Trino │ │ ├── test_conversion_metric__query_output.txt │ │ ├── test_conversion_metric_with_categorical_filter__query_output.txt │ │ ├── test_conversion_metric_with_different_time_dimension_grains__query_output.txt │ │ ├── test_conversion_metric_with_filter_not_in_group_by__query_output.txt │ │ ├── test_conversion_metric_with_time_constraint__query_output.txt │ │ ├── test_conversion_metric_with_window__query_output.txt │ │ └── test_conversion_metric_with_window_and_time_constraint__query_output.txt ├── test_conversion_metrics_to_sql.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── Trino │ │ ├── test_conversion_count_with_no_group_by__plan0.sql │ │ ├── test_conversion_count_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql │ │ ├── test_conversion_rate__plan0.sql │ │ ├── test_conversion_rate__plan0_optimized.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0.sql │ │ ├── test_conversion_rate_with_constant_properties__plan0_optimized.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0.sql │ │ ├── test_conversion_rate_with_no_group_by__plan0_optimized.sql │ │ ├── test_conversion_rate_with_window__plan0.sql │ │ └── test_conversion_rate_with_window__plan0_optimized.sql │ │ ├── test_conversion_count_with_no_group_by__plan0.xml │ │ ├── test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.xml │ │ ├── test_conversion_rate__plan0.xml │ │ ├── test_conversion_rate_with_constant_properties__plan0.xml │ │ ├── test_conversion_rate_with_no_group_by__plan0.xml │ │ └── test_conversion_rate_with_window__plan0.xml ├── test_convert_semantic_model.py │ ├── SqlPlan │ │ └── DuckDB │ │ │ ├── test_convert_query_semantic_model__plan0.sql │ │ │ ├── test_convert_table_semantic_model_with_simple_metrics__plan0.sql │ │ │ └── test_convert_table_semantic_model_without_simple_metrics__plan0.sql │ └── list │ │ ├── test_convert_table_semantic_model_with_simple_metrics__result0.txt │ │ └── test_convert_table_semantic_model_without_simple_metrics__result0.txt ├── test_cte_column_pruner.py │ └── str │ │ ├── test_column_reference_expression__result.txt │ │ ├── test_common_cte_aliases_in_nested_query__result.txt │ │ ├── test_multi_child_pruning__result.txt │ │ ├── test_nested_pruning__result.txt │ │ ├── test_no_pruning__result.txt │ │ ├── test_simple_pruning__result.txt │ │ └── test_string_expression__result.txt ├── test_cte_rewriting_sub_query_reducer.py │ └── str │ │ ├── test_cte_in_subquery_not_reduced__result.txt │ │ ├── test_reduce_cte__result.txt │ │ └── test_reduce_cte_with_use_column_alias_in_group_bys__result.txt ├── test_cte_sql.py │ └── str │ │ ├── test_cte_for_shared_metrics__result.txt │ │ └── test_cte_for_simple_dataflow_plan__result.txt ├── test_cte_table_alias_simplifier.py │ └── str │ │ ├── test_table_alias_no_simplification__result.txt │ │ └── test_table_alias_simplification__result.txt ├── test_cumulative_metric_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql │ │ └── Trino │ │ ├── test_all_time_metric_with_non_default_grains__plan0.sql │ │ ├── test_all_time_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_cumulative_metric__plan0.sql │ │ ├── test_cumulative_metric__plan0_optimized.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0.sql │ │ ├── test_cumulative_metric_grain_to_date__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_ds__plan0.sql │ │ ├── test_cumulative_metric_no_ds__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window__plan0.sql │ │ ├── test_cumulative_metric_no_window__plan0_optimized.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0.sql │ │ ├── test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_agg_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0.sql │ │ ├── test_cumulative_metric_with_multiple_metric_time_dimensions__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql │ │ ├── test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0.sql │ │ ├── test_cumulative_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0.sql │ │ ├── test_derived_cumulative_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0.sql │ │ ├── test_grain_to_date_metric_with_non_default_grains__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grain__plan0.sql │ │ ├── test_window_metric_with_non_default_grain__plan0_optimized.sql │ │ ├── test_window_metric_with_non_default_grains__plan0.sql │ │ └── test_window_metric_with_non_default_grains__plan0_optimized.sql ├── test_cumulative_metrics.py │ └── str │ │ ├── BigQuery │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt │ │ ├── Databricks │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt │ │ ├── DuckDB │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt │ │ ├── Postgres │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt │ │ ├── Redshift │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt │ │ ├── Snowflake │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt │ │ └── Trino │ │ ├── test_cumulative_metric_with_non_adjustable_filter__query_output.txt │ │ ├── test_grain_to_date_cumulative_metric__query_output.txt │ │ ├── test_multiple_cumulative_metrics__query_output.txt │ │ ├── test_non_additive_cumulative_metric__query_output.txt │ │ └── test_simple_cumulative_metric__query_output.txt ├── test_custom_granularity.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql │ │ └── Trino │ │ ├── test_conversion_metric_with_custom_granularity__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_conversion_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0.sql │ │ ├── test_cumulative_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_custom_offset_window__plan0.sql │ │ ├── test_custom_offset_window__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0.sql │ │ ├── test_custom_offset_window_with_granularity_and_date_part__plan0_optimized.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0.sql │ │ ├── test_custom_offset_window_with_only_window_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0.sql │ │ ├── test_derived_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0.sql │ │ ├── test_join_to_time_spine_metric_grouped_by_custom_grain__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0.sql │ │ ├── test_multiple_metrics_with_custom_granularity__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_cumulative_metric__plan0_optimized.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0.sql │ │ ├── test_multiple_time_spines_in_query_for_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0.sql │ │ ├── test_no_metric_custom_granularity_joined_to_non_default_grain__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_metric_time__plan0_optimized.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0.sql │ │ ├── test_no_metric_custom_granularity_non_metric_time__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_no_metrics_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0.sql │ │ ├── test_offset_metric_with_custom_granularity_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_and_join__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_filter__plan0_optimized.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0.sql │ │ ├── test_simple_metric_with_custom_granularity_in_filter_and_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_with_multi_hop_custom_granularity__plan0.sql │ │ └── test_simple_metric_with_multi_hop_custom_granularity__plan0_optimized.sql ├── test_cyclic_join.py │ └── DataflowPlan │ │ └── test_cyclic_join__dfp_0.xml ├── test_data_warehouse_tasks.py │ └── str │ │ ├── BigQuery │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql │ │ ├── Databricks │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql │ │ ├── DuckDB │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql │ │ ├── Postgres │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql │ │ ├── Redshift │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql │ │ ├── Snowflake │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql │ │ └── Trino │ │ ├── test_build_metric_tasks__query0.sql │ │ └── test_build_saved_query_tasks__query0.sql ├── test_dataflow_plan_builder.py │ └── DataflowPlan │ │ ├── test_common_semantic_model__dfp_0.xml │ │ ├── test_cumulative_metric_no_window_or_grain_with_metric_time__dfp_0.xml │ │ ├── test_cumulative_metric_no_window_or_grain_without_metric_time__dfp_0.xml │ │ ├── test_cumulative_metric_with_non_default_grain__dfp_0.xml │ │ ├── test_cumulative_metric_with_window__dfp_0.xml │ │ ├── test_derived_cumulative_metric_with_non_default_grain__dfp_0.xml │ │ ├── test_derived_metric_offset_to_grain__dfp_0.xml │ │ ├── test_derived_metric_offset_window__dfp_0.xml │ │ ├── test_derived_metric_offset_with_granularity__dfp_0.xml │ │ ├── test_derived_offset_cumulative_metric__dfp_0.xml │ │ ├── test_dimensions_with_time_constraint__dfp_0.xml │ │ ├── test_distinct_values_plan__dfp_0.xml │ │ ├── test_distinct_values_plan_with_join__dfp_0.xml │ │ ├── test_dont_join_to_time_spine_if_no_time_dimension_requested__dfp_0.xml │ │ ├── test_join_to_time_spine_derived_metric__dfp_0.xml │ │ ├── test_join_to_time_spine_with_filters__dfp_0.xml │ │ ├── test_join_to_time_spine_with_metric_time__dfp_0.xml │ │ ├── test_join_to_time_spine_with_non_metric_time__dfp_0.xml │ │ ├── test_joined_plan__dfp_0.xml │ │ ├── test_limit_rows_plan__dfp_0.xml │ │ ├── test_metric_in_metric_where_filter__dfp_0.xml │ │ ├── test_metric_in_query_where_filter__dfp_0.xml │ │ ├── test_metric_time_only__dfp_0.xml │ │ ├── test_metric_time_quarter__dfp_0.xml │ │ ├── test_metric_time_with_other_dimensions__dfp_0.xml │ │ ├── test_min_max_metric_time__dfp_0.xml │ │ ├── test_min_max_metric_time_week__dfp_0.xml │ │ ├── test_min_max_only_categorical__dfp_0.xml │ │ ├── test_min_max_only_time__dfp_0.xml │ │ ├── test_min_max_only_time_year__dfp_0.xml │ │ ├── test_multi_semantic_model_ratio_metrics_plan__dfp_0.xml │ │ ├── test_multihop_join_plan__dfp_0.xml │ │ ├── test_multiple_metrics_plan__dfp_0.xml │ │ ├── test_nested_derived_metric_with_outer_offset__dfp_0.xml │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__dfp_0.xml │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__dfp_0.xml │ │ ├── test_order_by_plan__dfp_0.xml │ │ ├── test_primary_entity_dimension__dfp_0.xml │ │ ├── test_simple_metric_constraint_plan__dfp_0.xml │ │ ├── test_simple_metric_constraint_with_reused_simple_metric_plan__dfp_0.xml │ │ ├── test_simple_plan__dfp_0.xml │ │ ├── test_single_semantic_model_ratio_metrics_plan__dfp_0.xml │ │ ├── test_where_constrained_plan__dfp_0.xml │ │ ├── test_where_constrained_plan_time_dimension__dfp_0.xml │ │ └── test_where_constrained_with_common_linkable_plan__dfp_0.xml ├── test_dataflow_to_execution.py │ └── ExecutionPlan │ │ └── DuckDB │ │ ├── test_combined_metrics_plan__ep_0.xml │ │ ├── test_joined_plan__ep_0.xml │ │ ├── test_multihop_joined_plan__ep_0.xml │ │ └── test_small_combined_metrics_plan__ep_0.xml ├── test_dataflow_to_sql_plan.py │ ├── DataflowPlan │ │ └── test_compute_metrics_node_simple_expr__plan0.xml │ └── SqlPlan │ │ ├── DuckDB │ │ ├── test_combine_output_node__plan0.sql │ │ ├── test_combine_output_node__plan0_optimized.sql │ │ ├── test_compute_metrics_node__plan0.sql │ │ ├── test_compute_metrics_node__plan0_optimized.sql │ │ ├── test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql │ │ ├── test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql │ │ ├── test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql │ │ ├── test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql │ │ ├── test_compute_metrics_node_simple_expr__plan0.sql │ │ ├── test_compute_metrics_node_simple_expr__plan0_optimized.sql │ │ ├── test_constrain_time_range_node__plan0.sql │ │ ├── test_constrain_time_range_node__plan0_optimized.sql │ │ ├── test_dimension_with_joined_where_constraint__plan0.sql │ │ ├── test_dimension_with_joined_where_constraint__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ ├── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── test_filter_node__plan0.sql │ │ ├── test_filter_node__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_node__plan0.sql │ │ ├── test_filter_with_where_constraint_node__plan0_optimized.sql │ │ ├── test_multi_join_node__plan0.sql │ │ ├── test_multi_join_node__plan0_optimized.sql │ │ ├── test_offset_by_custom_granularity_node__plan0.sql │ │ ├── test_offset_by_custom_granularity_node__plan0_optimized.sql │ │ ├── test_offset_custom_granularity_node__plan0.sql │ │ ├── test_offset_custom_granularity_node__plan0_optimized.sql │ │ ├── test_order_by_node__plan0.sql │ │ ├── test_order_by_node__plan0_optimized.sql │ │ ├── test_semi_additive_join_node__plan0.sql │ │ ├── test_semi_additive_join_node__plan0_optimized.sql │ │ ├── test_semi_additive_join_node_with_grouping__plan0.sql │ │ ├── test_semi_additive_join_node_with_grouping__plan0_optimized.sql │ │ ├── test_semi_additive_join_node_with_queried_group_by__plan0.sql │ │ ├── test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql │ │ ├── test_simple_metric_aggregation_node__plan0.sql │ │ ├── test_simple_metric_aggregation_node__plan0_optimized.sql │ │ ├── test_single_join_node__plan0.sql │ │ ├── test_single_join_node__plan0_optimized.sql │ │ ├── test_source_node__plan0.sql │ │ └── test_source_node__plan0_optimized.sql │ │ ├── test_combine_output_node__plan0.xml │ │ ├── test_compute_metrics_node__plan0.xml │ │ ├── test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.xml │ │ ├── test_compute_metrics_node_ratio_from_single_semantic_model__plan0.xml │ │ ├── test_compute_metrics_node_simple_expr__plan0.xml │ │ ├── test_constrain_time_range_node__plan0.xml │ │ ├── test_dimension_with_joined_where_constraint__plan0.xml │ │ ├── test_dimensions_requiring_join__plan0.xml │ │ ├── test_filter_node__plan0.xml │ │ ├── test_filter_with_where_constraint_node__plan0.xml │ │ ├── test_multi_join_node__plan0.xml │ │ ├── test_offset_by_custom_granularity_node__plan0.xml │ │ ├── test_offset_custom_granularity_node__plan0.xml │ │ ├── test_order_by_node__plan0.xml │ │ ├── test_semi_additive_join_node__plan0.xml │ │ ├── test_semi_additive_join_node_with_grouping__plan0.xml │ │ ├── test_semi_additive_join_node_with_queried_group_by__plan0.xml │ │ ├── test_simple_metric_aggregation_node__plan0.xml │ │ ├── test_single_join_node__plan0.xml │ │ └── test_source_node__plan0.xml ├── test_derived_metric_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_simple_derived_metric__plan0.sql │ │ ├── test_simple_derived_metric__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ └── Trino │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0.sql │ │ ├── test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql │ │ ├── test_derived_metric__plan0.sql │ │ ├── test_derived_metric__plan0_optimized.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0.sql │ │ ├── test_derived_metric_that_defines_the_same_alias_in_different_components__plan0_optimized.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0.sql │ │ ├── test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window__plan0.sql │ │ ├── test_derived_metric_with_offset_window__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0.sql │ │ ├── test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql │ │ ├── test_derived_offset_cumulative_metric__plan0.sql │ │ ├── test_derived_offset_cumulative_metric__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0.sql │ │ ├── test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0.sql │ │ ├── test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql │ │ ├── test_multi_metric_fill_null__plan0.sql │ │ ├── test_multi_metric_fill_null__plan0_optimized.sql │ │ ├── test_nested_derived_metric__plan0.sql │ │ ├── test_nested_derived_metric__plan0_optimized.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql │ │ ├── test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql │ │ ├── test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql │ │ ├── test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql │ │ ├── test_nested_filters__plan0.sql │ │ ├── test_nested_filters__plan0_optimized.sql │ │ ├── test_nested_offsets__plan0.sql │ │ ├── test_nested_offsets__plan0_optimized.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0.sql │ │ ├── test_nested_offsets_with_time_constraint__plan0_optimized.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0.sql │ │ ├── test_nested_offsets_with_where_constraint__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0.sql │ │ ├── test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql │ │ ├── test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0.sql │ │ ├── test_offset_window_metric_multiple_granularities__plan0_optimized.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0.sql │ │ ├── test_offset_window_with_agg_time_dim__plan0_optimized.sql │ │ ├── test_time_offset_metric_with_time_constraint__plan0.sql │ │ └── test_time_offset_metric_with_time_constraint__plan0_optimized.sql ├── test_distinct_values_to_sql.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── Trino │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql │ │ ├── test_dimensions_requiring_join__plan0.sql │ │ └── test_dimensions_requiring_join__plan0_optimized.sql │ │ ├── test_dimension_values_with_a_join_and_a_filter__plan0.xml │ │ └── test_dimensions_requiring_join__plan0.xml ├── test_engine_specific_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_approximate_continuous_percentile_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ └── test_generate_uuid__plan0.sql │ │ ├── Databricks │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_approximate_discrete_percentile_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ ├── test_continuous_percentile_expr__plan0.sql │ │ └── test_generate_uuid__plan0.sql │ │ ├── DuckDB │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_approximate_continuous_percentile_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ ├── test_continuous_percentile_expr__plan0.sql │ │ ├── test_discrete_percentile_expr__plan0.sql │ │ └── test_generate_uuid__plan0.sql │ │ ├── Postgres │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ ├── test_continuous_percentile_expr__plan0.sql │ │ ├── test_discrete_percentile_expr__plan0.sql │ │ └── test_generate_uuid__plan0.sql │ │ ├── Redshift │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_approximate_discrete_percentile_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ ├── test_continuous_percentile_expr__plan0.sql │ │ └── test_generate_uuid__plan0.sql │ │ ├── Snowflake │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_approximate_continuous_percentile_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ ├── test_continuous_percentile_expr__plan0.sql │ │ ├── test_discrete_percentile_expr__plan0.sql │ │ └── test_generate_uuid__plan0.sql │ │ └── Trino │ │ ├── test_add_time_expr__plan0.sql │ │ ├── test_approximate_continuous_percentile_expr__plan0.sql │ │ ├── test_cast_to_timestamp__plan0.sql │ │ └── test_generate_uuid__plan0.sql ├── test_errors.py │ └── dict │ │ └── test_simple_dimensions_for_metrics_with_invalid_metric__result.txt ├── test_explain.py │ └── str │ │ └── test_optimization_level__result.txt ├── test_fill_nulls_with_0.py │ └── str │ │ ├── BigQuery │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt │ │ ├── Databricks │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt │ │ ├── DuckDB │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_date_part__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt │ │ ├── Postgres │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt │ │ ├── Redshift │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt │ │ ├── Snowflake │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__query_output.txt │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter__query_output.txt │ │ ├── test_join_to_timespine_metric_with_custom_granularity_filter_not_in_group_by__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt │ │ └── Trino │ │ ├── test_fill_nulls_with_0_multi_metric_query__query_output.txt │ │ ├── test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt │ │ ├── test_join_to_time_spine_with_custom_grain_in_group_by__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_metric_time__query_output.txt │ │ ├── test_simple_fill_nulls_with_0_month__query_output.txt │ │ └── test_simple_join_to_time_spine__query_output.txt ├── test_fill_nulls_with_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql │ │ └── Trino │ │ ├── test_cumulative_fill_nulls__plan0.sql │ │ ├── test_cumulative_fill_nulls__plan0_optimized.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0.sql │ │ ├── test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_not_in_group_by_using_agg_time_and_metric_time__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0.sql │ │ ├── test_join_to_time_spine_with_filter_smaller_than_group_by__plan0_optimized.sql │ │ ├── test_join_to_time_spine_with_filters__plan0.sql │ │ ├── test_join_to_time_spine_with_filters__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_month__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql │ │ ├── test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql │ │ ├── test_simple_fill_nulls_without_time_spine__plan0.sql │ │ └── test_simple_fill_nulls_without_time_spine__plan0_optimized.sql ├── test_granularity_date_part_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql │ │ └── Trino │ │ ├── test_date_part_with_non_default_grain__plan0.sql │ │ ├── test_date_part_with_non_default_grain__plan0_optimized.sql │ │ ├── test_metric_time_date_part__plan0.sql │ │ ├── test_metric_time_date_part__plan0_optimized.sql │ │ ├── test_offset_window_with_date_part__plan0.sql │ │ ├── test_offset_window_with_date_part__plan0_optimized.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_joined_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0.sql │ │ ├── test_simple_metric_with_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_simple_query_with_date_part__plan0.sql │ │ ├── test_simple_query_with_date_part__plan0_optimized.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0.sql │ │ ├── test_simple_query_with_multiple_date_parts__plan0_optimized.sql │ │ ├── test_sub_daily_dimension__plan0.sql │ │ ├── test_sub_daily_dimension__plan0_optimized.sql │ │ ├── test_sub_daily_metric_time__plan0.sql │ │ ├── test_sub_daily_metric_time__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0.sql │ │ ├── test_subdaily_cumulative_grain_to_date_metric__plan0_optimized.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0.sql │ │ ├── test_subdaily_cumulative_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0.sql │ │ ├── test_subdaily_granularity_overrides_metric_default_granularity__plan0_optimized.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0.sql │ │ ├── test_subdaily_join_to_time_spine_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0.sql │ │ ├── test_subdaily_offset_to_grain_metric__plan0_optimized.sql │ │ ├── test_subdaily_offset_window_metric__plan0.sql │ │ ├── test_subdaily_offset_window_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0.sql │ │ ├── test_subdaily_time_constraint_with_metric__plan0_optimized.sql │ │ ├── test_subdaily_time_constraint_without_metrics__plan0.sql │ │ └── test_subdaily_time_constraint_without_metrics__plan0_optimized.sql ├── test_isolated_command_runner.py │ └── str │ │ ├── test_environment_variables__result.txt │ │ ├── test_isolated_query__result.txt │ │ └── test_multiple_queries__result.txt ├── test_metric_filter_output.py │ └── str │ │ ├── BigQuery │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt │ │ ├── Databricks │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt │ │ ├── DuckDB │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt │ │ ├── Postgres │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt │ │ ├── Redshift │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt │ │ ├── Snowflake │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt │ │ └── Trino │ │ ├── test_metric_with_metric_in_where_filter__query_output.txt │ │ └── test_query_with_simple_metric_in_where_filter__query_output.txt ├── test_metric_filter_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql │ │ └── Trino │ │ ├── test_distinct_values_query_with_metric_filter__plan0.sql │ │ ├── test_distinct_values_query_with_metric_filter__plan0_optimized.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql │ │ ├── test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql │ │ ├── test_filter_with_conversion_metric__plan0.sql │ │ ├── test_filter_with_conversion_metric__plan0_optimized.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0.sql │ │ ├── test_group_by_has_local_entity_prefix__plan0_optimized.sql │ │ ├── test_inner_query_multi_hop__plan0.sql │ │ ├── test_inner_query_multi_hop__plan0_optimized.sql │ │ ├── test_inner_query_single_hop__plan0.sql │ │ ├── test_inner_query_single_hop__plan0_optimized.sql │ │ ├── test_metric_filtered_by_itself__plan0.sql │ │ ├── test_metric_filtered_by_itself__plan0_optimized.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0.sql │ │ ├── test_metric_with_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_derived_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0.sql │ │ ├── test_query_with_multiple_metrics_in_filter__plan0_optimized.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0.sql │ │ ├── test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql │ │ ├── test_query_with_simple_metric_in_where_filter__plan0.sql │ │ └── test_query_with_simple_metric_in_where_filter__plan0_optimized.sql ├── test_metric_time_dimension_to_sql.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── Trino │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.sql │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql │ │ ├── test_simple_query_with_metric_time_dimension__plan0.sql │ │ └── test_simple_query_with_metric_time_dimension__plan0_optimized.sql │ │ ├── test_metric_time_dimension_transform_node_using_non_primary_time__plan0.xml │ │ ├── test_metric_time_dimension_transform_node_using_primary_time__plan0.xml │ │ └── test_simple_query_with_metric_time_dimension__plan0.xml ├── test_metric_time_without_metrics.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── Trino │ │ ├── test_dimensions_with_time_constraint__plan0.sql │ │ ├── test_dimensions_with_time_constraint__plan0_optimized.sql │ │ ├── test_metric_time_only__plan0.sql │ │ ├── test_metric_time_only__plan0_optimized.sql │ │ ├── test_metric_time_quarter_alone__plan0.sql │ │ ├── test_metric_time_quarter_alone__plan0_optimized.sql │ │ ├── test_metric_time_with_other_dimensions__plan0.sql │ │ └── test_metric_time_with_other_dimensions__plan0_optimized.sql │ │ ├── test_dimensions_with_time_constraint__plan0.xml │ │ ├── test_metric_time_only__plan0.xml │ │ ├── test_metric_time_quarter_alone__plan0.xml │ │ └── test_metric_time_with_other_dimensions__plan0.xml ├── test_mf_engine.py │ └── list │ │ ├── test_entities_for_metrics__result0.txt │ │ ├── test_list_dimensions__result0.txt │ │ ├── test_list_dimensions_for_metrics_for_multiple_metrics__result0.txt │ │ ├── test_list_dimensions_for_metrics_for_single_metric__result0.txt │ │ ├── test_list_dimensions_order_by_semantic_model_name__result0.txt │ │ ├── test_list_group_bys__result0.txt │ │ ├── test_list_group_bys_order_by_semantic_model_name__result0.txt │ │ ├── test_list_group_bys_with_metric_names__result0.txt │ │ ├── test_list_metrics__result0.txt │ │ └── test_list_saved_queries__result0.txt ├── test_name_edge_caes.py │ └── SqlPlan │ │ └── DuckDB │ │ ├── test_homonymous_metric_and_entity__plan0.sql │ │ ├── test_homonymous_metric_and_entity__plan0_optimized.sql │ │ ├── test_metric_name_same_as_dimension_name__plan0.sql │ │ └── test_metric_name_same_as_dimension_name__plan0_optimized.sql ├── test_node_data_set.py │ └── list │ │ └── test_joined_node_data_set__result0.txt ├── test_offset_metrics.py │ └── str │ │ ├── BigQuery │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ └── test_offset_to_grain_with_single_granularity__query_output.txt │ │ ├── Databricks │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ └── test_offset_to_grain_with_single_granularity__query_output.txt │ │ ├── DuckDB │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_non_default_grain_where_constraint_with_cumulative_offset_to_grain__query_output.txt │ │ ├── test_offset_to_grain_with_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_grain_larger_than_offset__query_output.txt │ │ ├── test_offset_to_grain_with_grain_matching_offset__query_output.txt │ │ ├── test_offset_to_grain_with_grain_smaller_than_offset__query_output.txt │ │ ├── test_offset_to_grain_with_grain_smaller_than_offset_non_default__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_grains__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ ├── test_offset_to_grain_with_single_granularity__query_output.txt │ │ ├── test_offset_window_with_cumulative_input_metric__query_output.txt │ │ ├── test_offset_window_with_custom_grain__query_output.txt │ │ ├── test_offset_window_with_date_part_only__query_output.txt │ │ ├── test_offset_window_with_grain_larger_than_offset__query_output.txt │ │ ├── test_offset_window_with_grain_matching_offset__query_output.txt │ │ ├── test_offset_window_with_grain_smaller_than_offset__query_output.txt │ │ ├── test_offset_window_with_grain_smaller_than_offset_non_default__query_output.txt │ │ └── test_offset_window_with_multiple_grains__query_output.txt │ │ ├── Postgres │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ └── test_offset_to_grain_with_single_granularity__query_output.txt │ │ ├── Redshift │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ └── test_offset_to_grain_with_single_granularity__query_output.txt │ │ ├── Snowflake │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ └── test_offset_to_grain_with_single_granularity__query_output.txt │ │ └── Trino │ │ ├── test_custom_offset_window_with_base_grain__query_output.txt │ │ ├── test_custom_offset_window_with_grains_and_date_part__query_output.txt │ │ ├── test_custom_offset_window_with_matching_custom_grain__query_output.txt │ │ ├── test_offset_to_grain_with_multiple_granularities__query_output.txt │ │ └── test_offset_to_grain_with_single_granularity__query_output.txt ├── test_output_format.py │ └── str │ │ ├── test_decimals_option__result.txt │ │ ├── test_decimals_option_invalid__result.txt │ │ ├── test_decimals_option_negative__result.txt │ │ ├── test_decimals_option_zero__result.txt │ │ ├── test_print_null__result.txt │ │ ├── test_print_numeric_types__result.txt │ │ ├── test_print_string__result.txt │ │ └── test_single_large_number_with_decimals_option__result.txt ├── test_predicate_pushdown_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql │ │ └── Trino │ │ ├── test_conversion_metric_query_filters__plan0.sql │ │ ├── test_conversion_metric_query_filters__plan0_optimized.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0.sql │ │ ├── test_cumulative_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0.sql │ │ ├── test_different_filters_on_same_simple_metric_source_categorical_dimension__plan0_optimized.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0.sql │ │ ├── test_fill_nulls_time_spine_metric_predicate_pushdown__plan0_optimized.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0.sql │ │ ├── test_metric_time_filter_with_two_targets__plan0_optimized.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0.sql │ │ ├── test_multiple_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0.sql │ │ ├── test_offset_metric_with_query_time_filters__plan0_optimized.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0.sql │ │ ├── test_saved_query_with_metric_joins_and_filter__plan0_optimized.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0.sql │ │ ├── test_simple_join_to_time_spine_pushdown_filter_application__plan0_optimized.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0.sql │ │ ├── test_single_categorical_dimension_pushdown__plan0_optimized.sql │ │ ├── test_skipped_pushdown__plan0.sql │ │ └── test_skipped_pushdown__plan0_optimized.sql ├── test_query_output.py │ └── str │ │ └── DuckDB │ │ ├── test_aliases_with_metrics__query_output.txt │ │ ├── test_aliases_without_metrics__query_output.txt │ │ ├── test_derived_metric_alias__query_output.txt │ │ ├── test_multiple_metrics_with_alias__query_output.txt │ │ ├── test_multiple_time_spines__query_output.txt │ │ ├── test_saved_query_override_order_by_and_limit__query_output.txt │ │ ├── test_saved_query_with_order_by_and_limit__query_output.txt │ │ ├── test_scd_filter_without_metric_time__query_output.txt │ │ ├── test_scd_group_by_without_metric_time__query_output.txt │ │ └── test_scd_with_coarser_grain__query_output.txt ├── test_query_rendering.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql │ │ ├── Databricks │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql │ │ ├── DuckDB │ │ ├── test_aliases_with_metrics__plan0.sql │ │ ├── test_aliases_with_metrics__plan0_optimized.sql │ │ ├── test_aliases_without_metrics__plan0.sql │ │ ├── test_aliases_without_metrics__plan0_optimized.sql │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_derived_metric_alias__plan0.sql │ │ ├── test_derived_metric_alias__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_saved_query_override_order_by_and_limit__plan0.sql │ │ ├── test_saved_query_override_order_by_and_limit__plan0_optimized.sql │ │ ├── test_saved_query_with_order_by_and_limit__plan0.sql │ │ ├── test_saved_query_with_order_by_and_limit__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql │ │ ├── Postgres │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql │ │ ├── Redshift │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql │ │ ├── Snowflake │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql │ │ └── Trino │ │ ├── test_common_semantic_model__plan0.sql │ │ ├── test_common_semantic_model__plan0_optimized.sql │ │ ├── test_distinct_values__plan0.sql │ │ ├── test_distinct_values__plan0_optimized.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0.sql │ │ ├── test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql │ │ ├── test_join_to_scd_dimension__plan0.sql │ │ ├── test_join_to_scd_dimension__plan0_optimized.sql │ │ ├── test_limit_rows__plan0.sql │ │ ├── test_limit_rows__plan0_optimized.sql │ │ ├── test_local_dimension_using_local_entity__plan0.sql │ │ ├── test_local_dimension_using_local_entity__plan0_optimized.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0.sql │ │ ├── test_metric_with_simple_metrics_from_multiple_sources_no_dimensions__plan0_optimized.sql │ │ ├── test_min_max_metric_time__plan0.sql │ │ ├── test_min_max_metric_time__plan0_optimized.sql │ │ ├── test_min_max_metric_time_week__plan0.sql │ │ ├── test_min_max_metric_time_week__plan0_optimized.sql │ │ ├── test_min_max_only_categorical__plan0.sql │ │ ├── test_min_max_only_categorical__plan0_optimized.sql │ │ ├── test_min_max_only_time__plan0.sql │ │ ├── test_min_max_only_time__plan0_optimized.sql │ │ ├── test_min_max_only_time_quarter__plan0.sql │ │ ├── test_min_max_only_time_quarter__plan0_optimized.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0.sql │ │ ├── test_multi_hop_through_scd_dimension__plan0_optimized.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0.sql │ │ ├── test_multi_hop_to_scd_dimension__plan0_optimized.sql │ │ ├── test_multihop_node__plan0.sql │ │ ├── test_multihop_node__plan0_optimized.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0.sql │ │ ├── test_multiple_metrics_no_dimensions__plan0_optimized.sql │ │ ├── test_no_dedupe__plan0.sql │ │ ├── test_no_dedupe__plan0_optimized.sql │ │ ├── test_no_dedupe_saved_query__plan0.sql │ │ ├── test_no_dedupe_saved_query__plan0_optimized.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0.sql │ │ ├── test_non_additive_dimension_with_non_default_grain__plan0_optimized.sql │ │ ├── test_partitioned_join__plan0.sql │ │ ├── test_partitioned_join__plan0_optimized.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_filter_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0.sql │ │ ├── test_scd_dimension_group_by_without_metric_time__plan0_optimized.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0.sql │ │ ├── test_scd_group_by_and_coarser_grain__plan0_optimized.sql │ │ ├── test_simple_metric_constraint__plan0.sql │ │ ├── test_simple_metric_constraint__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0.sql │ │ ├── test_simple_metric_constraint_with_reused_simple_metric__plan0_optimized.sql │ │ ├── test_simple_metric_constraint_with_single_expr_and_alias__plan0.sql │ │ └── test_simple_metric_constraint_with_single_expr_and_alias__plan0_optimized.sql ├── test_render_cte.py │ └── SqlPlan │ │ └── test_render_cte__plan_0.sql ├── test_rendered_query.py │ └── str │ │ ├── BigQuery │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql │ │ ├── Databricks │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql │ │ ├── DuckDB │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql │ │ ├── Postgres │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql │ │ ├── Redshift │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql │ │ ├── Snowflake │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql │ │ └── Trino │ │ ├── test_id_enumeration__query.sql │ │ └── test_render_query__query0.sql ├── test_rewriting_sub_query_reducer.py │ └── SqlPlan │ │ ├── test_colliding_alias__after_reducing.sql │ │ ├── test_colliding_alias__before_reducing.sql │ │ ├── test_reduce_all_join_sources__after_reducing.sql │ │ ├── test_reduce_all_join_sources__before_reducing.sql │ │ ├── test_reduce_join__after_reducing.sql │ │ ├── test_reduce_join__before_reducing.sql │ │ ├── test_reduce_sub_query__after_reducing.sql │ │ ├── test_reduce_sub_query__before_reducing.sql │ │ ├── test_reducing_join_left_node_statement__after_reducing.sql │ │ ├── test_reducing_join_left_node_statement__before_reducing.sql │ │ ├── test_reducing_join_statement__after_reducing.sql │ │ ├── test_reducing_join_statement__before_reducing.sql │ │ ├── test_rewriting_distinct_select_node_is_not_reduced__after_reducing.sql │ │ └── test_rewriting_distinct_select_node_is_not_reduced__before_reducing.sql ├── test_source_scan_optimizer.py │ └── DataflowPlan │ │ ├── test_2_metrics_from_1_semantic_model__dfp_0.xml │ │ ├── test_2_metrics_from_1_semantic_model__dfpo_0.xml │ │ ├── test_2_metrics_from_2_semantic_models__dfp_0.xml │ │ ├── test_2_metrics_from_2_semantic_models__dfpo_0.xml │ │ ├── test_2_ratio_metrics_from_1_semantic_model__dfp_0.xml │ │ ├── test_2_ratio_metrics_from_1_semantic_model__dfpo_0.xml │ │ ├── test_3_metrics_from_2_semantic_models__dfp_0.xml │ │ ├── test_3_metrics_from_2_semantic_models__dfpo_0.xml │ │ ├── test_constrained_metric_not_combined__dfp_0.xml │ │ ├── test_constrained_metric_not_combined__dfpo_0.xml │ │ ├── test_derived_metric__dfp_0.xml │ │ ├── test_derived_metric__dfpo_0.xml │ │ ├── test_derived_metric_same_alias_components_combined__dfp_0.xml │ │ ├── test_derived_metric_same_alias_components_combined__dfpo_0.xml │ │ ├── test_derived_metric_same_alias_components_not_combined__dfp_0.xml │ │ ├── test_derived_metric_same_alias_components_not_combined__dfpo_0.xml │ │ ├── test_derived_metric_with_non_derived_metric__dfp_0.xml │ │ ├── test_derived_metric_with_non_derived_metric__dfpo_0.xml │ │ ├── test_duplicate_simple_metrics__dfp_0.xml │ │ ├── test_duplicate_simple_metrics__dfpo_0.xml │ │ ├── test_nested_derived_metric__dfp_0.xml │ │ └── test_nested_derived_metric__dfpo_0.xml ├── test_sql_expr_render.py │ └── str │ │ └── test_window_function_expr__rendered_sql.txt ├── test_sql_plan_render.py │ └── SqlPlan │ │ ├── BigQuery │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql │ │ ├── Databricks │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql │ │ ├── DuckDB │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql │ │ ├── Postgres │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql │ │ ├── Redshift │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql │ │ ├── Snowflake │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql │ │ └── Trino │ │ ├── test_component_rendering__plan0.sql │ │ ├── test_component_rendering__plan1.sql │ │ ├── test_component_rendering__plan2.sql │ │ ├── test_component_rendering__plan3.sql │ │ ├── test_component_rendering__plan4.sql │ │ ├── test_component_rendering__plan5.sql │ │ ├── test_render_create_table_as__create_table_as.sql │ │ ├── test_render_create_table_as__create_view_as.sql │ │ ├── test_render_limit__plan0.sql │ │ ├── test_render_order_by__plan0.sql │ │ └── test_render_where__plan0.sql ├── test_table_alias_simplifier.py │ └── SqlPlan │ │ ├── test_table_alias_simplification__after_alias_simplification.sql │ │ └── test_table_alias_simplification__before_alias_simplification.sql └── test_time_spine_join_rendering.py │ └── SqlPlan │ ├── BigQuery │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql │ ├── Databricks │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql │ ├── DuckDB │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql │ ├── Postgres │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql │ ├── Redshift │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql │ ├── Snowflake │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql │ └── Trino │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0.sql │ ├── test_join_to_time_spine_with_input_simple_metric_constraint__plan0_optimized.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0.sql │ ├── test_join_to_time_spine_with_queried_time_constraint__plan0_optimized.sql │ ├── test_simple_join_to_time_spine__plan0.sql │ ├── test_simple_join_to_time_spine__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0.sql │ ├── test_simple_join_to_time_spine_with_filter__plan0_optimized.sql │ ├── test_simple_join_to_time_spine_with_queried_filter__plan0.sql │ └── test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql ├── source_schema_tools.py ├── sql ├── __init__.py ├── compare_data_table.py ├── compare_sql_plan.py ├── optimizer │ ├── __init__.py │ ├── check_optimizer.py │ ├── test_column_pruner.py │ ├── test_cte_column_pruner.py │ ├── test_cte_rewriting_sub_query_reducer.py │ ├── test_cte_table_alias_simplifier.py │ ├── test_rewriting_sub_query_reducer.py │ └── test_table_alias_simplifier.py ├── test_common_dataflow_branches.py ├── test_data_table.py ├── test_engine_specific_rendering.py ├── test_render_cte.py ├── test_sql_expr_render.py └── test_sql_plan_render.py ├── sql_clients ├── __init__.py ├── test_date_time_operations.py └── test_sql_client.py ├── table_snapshot ├── __init__.py ├── example_table_snapshot.yaml ├── table_snapshots.py ├── test_source_schema.py └── test_table_snapshots.py ├── telemetry ├── __init__.py └── test_telemetry.py ├── test_instance_serialization.py ├── test_pytest_markers.py ├── time └── __init__.py └── validation ├── __init__.py ├── test_data_warehouse_tasks.py └── test_join_validator.py /.changes/0.0.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.0.0.md -------------------------------------------------------------------------------- /.changes/0.200.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.200.0.md -------------------------------------------------------------------------------- /.changes/0.201.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.201.0.md -------------------------------------------------------------------------------- /.changes/0.202.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.202.0.md -------------------------------------------------------------------------------- /.changes/0.203.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.203.0.md -------------------------------------------------------------------------------- /.changes/0.203.1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.203.1.md -------------------------------------------------------------------------------- /.changes/0.204.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.204.0.md -------------------------------------------------------------------------------- /.changes/0.205.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.205.0.md -------------------------------------------------------------------------------- /.changes/0.206.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.206.0.md -------------------------------------------------------------------------------- /.changes/0.207.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.207.0.md -------------------------------------------------------------------------------- /.changes/0.207.1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.207.1.md -------------------------------------------------------------------------------- /.changes/0.207.2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.207.2.md -------------------------------------------------------------------------------- /.changes/0.207.3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.207.3.md -------------------------------------------------------------------------------- /.changes/0.208.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/0.208.0.md -------------------------------------------------------------------------------- /.changes/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/README.md -------------------------------------------------------------------------------- /.changes/header.tpl.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/header.tpl.md -------------------------------------------------------------------------------- /.changes/unreleased/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.changes/unreleased/Breaking Changes-20251008-115810.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Breaking Changes-20251008-115810.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Breaking Changes-20251014-103322.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Breaking Changes-20251014-103322.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Dependencies-20251006-144510.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Dependencies-20251006-144510.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Dependencies-20251008-130706.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Dependencies-20251008-130706.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Dependencies-20251024-132913.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Dependencies-20251024-132913.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Docs-20250811-160039.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Docs-20250811-160039.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Features-20251002-171248.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Features-20251002-171248.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20250916-121517.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20250916-121517.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20250918-070122.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20250918-070122.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251001-153436.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251001-153436.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251015-143827.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251015-143827.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251015-143859.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251015-143859.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251023-154834.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251023-154834.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251117-085411.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251117-085411.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251119-233621.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251119-233621.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Fixes-20251201-101918.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Fixes-20251201-101918.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20250924-123536.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20250924-123536.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20250924-123604.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20250924-123604.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-122925.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-122925.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-123044.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-123044.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-123232.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-123232.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-123407.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-123407.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-123447.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-123447.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-123542.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-123542.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-131522.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-131522.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251002-131616.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251002-131616.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251003-080025.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251003-080025.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251008-115649.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251008-115649.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251008-120045.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251008-120045.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251008-120225.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251008-120225.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251008-150031.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251008-150031.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251008-150124.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251008-150124.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251009-101045.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251009-101045.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251009-101142.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251009-101142.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251009-101212.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251009-101212.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251009-125205.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251009-125205.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251010-132547.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251010-132547.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251010-132641.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251010-132641.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251010-132817.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251010-132817.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251013-140823.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251013-140823.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251013-140859.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251013-140859.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251013-140929.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251013-140929.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251028-110712.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251028-110712.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251028-113955.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251028-113955.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251029-140033.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251029-140033.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251029-145529.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251029-145529.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251030-110733.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251030-110733.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251117-085231.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251117-085231.yaml -------------------------------------------------------------------------------- /.changes/unreleased/Under the Hood-20251117-085319.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/unreleased/Under the Hood-20251117-085319.yaml -------------------------------------------------------------------------------- /.changes/v0.208.1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changes/v0.208.1.md -------------------------------------------------------------------------------- /.changie.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.changie.yaml -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | tests/snapshots/* linguist-generated=true 2 | -------------------------------------------------------------------------------- /.github/ACTIONS_README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/ACTIONS_README.md -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @dbt-labs/semantic-layer 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/ISSUE_TEMPLATE/bug-report.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/ISSUE_TEMPLATE/config.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/ISSUE_TEMPLATE/feature-request.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/regression-report.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/ISSUE_TEMPLATE/regression-report.yml -------------------------------------------------------------------------------- /.github/actions/run-mf-tests/action.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/actions/run-mf-tests/action.yaml -------------------------------------------------------------------------------- /.github/actions/setup-python-env/action.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/actions/setup-python-env/action.yaml -------------------------------------------------------------------------------- /.github/atlas.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/atlas.yaml -------------------------------------------------------------------------------- /.github/workflows/bot-changelog.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/bot-changelog.yml -------------------------------------------------------------------------------- /.github/workflows/cd-create-release-pr.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/cd-create-release-pr.yaml -------------------------------------------------------------------------------- /.github/workflows/cd-push-dbt-metricflow-to-pypi.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/cd-push-dbt-metricflow-to-pypi.yaml -------------------------------------------------------------------------------- /.github/workflows/cd-push-metricflow-to-pypi.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/cd-push-metricflow-to-pypi.yaml -------------------------------------------------------------------------------- /.github/workflows/cd-sql-engine-populate-persistent-source-schema.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/cd-sql-engine-populate-persistent-source-schema.yaml -------------------------------------------------------------------------------- /.github/workflows/cd-sql-engine-tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/cd-sql-engine-tests.yaml -------------------------------------------------------------------------------- /.github/workflows/changelog-existence.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/changelog-existence.yml -------------------------------------------------------------------------------- /.github/workflows/changelog-validation.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/changelog-validation.yaml -------------------------------------------------------------------------------- /.github/workflows/ci-cache-environments.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/ci-cache-environments.yaml -------------------------------------------------------------------------------- /.github/workflows/ci-linting.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/ci-linting.yaml -------------------------------------------------------------------------------- /.github/workflows/ci-metricflow-unit-tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.github/workflows/ci-metricflow-unit-tests.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/AGENTS.md -------------------------------------------------------------------------------- /ATTRIBUTION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/ATTRIBUTION.md -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /GLOSSARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/GLOSSARY.md -------------------------------------------------------------------------------- /GOVERNANCE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/GOVERNANCE.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/README.md -------------------------------------------------------------------------------- /TENETS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/TENETS.md -------------------------------------------------------------------------------- /assets/MetricFlow_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/assets/MetricFlow_logo.png -------------------------------------------------------------------------------- /assets/example_plan.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/assets/example_plan.svg -------------------------------------------------------------------------------- /dbt-metricflow/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/LICENSE -------------------------------------------------------------------------------- /dbt-metricflow/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/README.md -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/__about__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/__about__.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | PACKAGE_NAME = "dbt-metricflow" 4 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/cli_configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/cli_configuration.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/cli_errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/cli_errors.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/cli_link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/cli_link.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/cli_string.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/cli_string.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/constants.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/custom_click_types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/custom_click_types.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/dbt_connectors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/dbt_connectors/adapter_backed_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/adapter_backed_client.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/dbt_connectors/dbt_config_accessor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/dbt_config_accessor.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/main.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/dbt_project.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/dbt_project.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/models/_models.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/models/_models.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/models/all_days.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/models/all_days.sql -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/profiles.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/mf_tutorial_project/profiles.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/countries.sql: -------------------------------------------------------------------------------- 1 | select 2 | * 3 | from {{ref('countries_seed')}} 4 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/countries.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/countries.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/customers.sql: -------------------------------------------------------------------------------- 1 | select 2 | * 3 | from {{ref('customers_seed')}} 4 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/customers.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/customers.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/metrics.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/metrics.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sample_models/transactions.sql: -------------------------------------------------------------------------------- 1 | select 2 | * 3 | from {{ref('transactions_seed')}} 4 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/countries_seed.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/countries_seed.csv -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/customers_seed.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/customers_seed.csv -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/transactions_seed.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/seeds/transactions_seed.csv -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sources.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_dbt_models/sources.yml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/sample_models/project_configuration.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/sample_models/project_configuration.yaml -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/tutorial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/tutorial.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/cli/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/dbt_metricflow/cli/utils.py -------------------------------------------------------------------------------- /dbt-metricflow/dbt_metricflow/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dbt-metricflow/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/pyproject.toml -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-cli.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/dbt-metricflow/requirements-files/requirements-cli.txt -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-bigquery.txt: -------------------------------------------------------------------------------- 1 | dbt-bigquery 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-databricks.txt: -------------------------------------------------------------------------------- 1 | dbt-databricks 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-duckdb.txt: -------------------------------------------------------------------------------- 1 | dbt-duckdb 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-postgres.txt: -------------------------------------------------------------------------------- 1 | dbt-postgres 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-redshift.txt: -------------------------------------------------------------------------------- 1 | dbt-redshift 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-snowflake.txt: -------------------------------------------------------------------------------- 1 | dbt-snowflake 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-dbt-trino.txt: -------------------------------------------------------------------------------- 1 | dbt-trino 2 | -------------------------------------------------------------------------------- /dbt-metricflow/requirements-files/requirements-metricflow.txt: -------------------------------------------------------------------------------- 1 | metricflow==0.209.0 2 | -------------------------------------------------------------------------------- /local-data-warehouses/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/local-data-warehouses/Makefile -------------------------------------------------------------------------------- /local-data-warehouses/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/local-data-warehouses/README.md -------------------------------------------------------------------------------- /local-data-warehouses/postgresql/docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/local-data-warehouses/postgresql/docker-compose.yaml -------------------------------------------------------------------------------- /local-data-warehouses/trino/docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/local-data-warehouses/trino/docker-compose.yaml -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/enum_extension.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/metricflow_semantic_interfaces/enum_extension.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/metricflow_semantic_interfaces/errors.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/implementations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/implementations/elements/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/implementations/filters/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/naming/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/parsing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/parsing/text_input/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/pretty_print.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/metricflow_semantic_interfaces/pretty_print.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/protocols/meta.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/metricflow_semantic_interfaces/protocols/meta.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/references.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/metricflow_semantic_interfaces/references.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/test_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/metricflow_semantic_interfaces/test_utils.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/transformations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/metricflow_semantic_interfaces/validations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/msi_pydantic_shim.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/msi_pydantic_shim.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/conftest.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/example_project_configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/example_project_configuration.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/fixtures/semantic_manifest_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/fixtures/semantic_manifest_fixtures.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/implementations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/implementations/test_semantic_manifest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/implementations/test_semantic_manifest.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/implementations/where_filter/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/test_metadata_parsing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/parsing/test_metadata_parsing.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/test_metric_parsing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/parsing/test_metric_parsing.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/test_model_deserialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/parsing/test_model_deserialization.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/test_saved_query_parsing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/parsing/test_saved_query_parsing.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/test_semantic_model_parsing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/parsing/test_semantic_model_parsing.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/parsing/test_where_filter_parsing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/parsing/test_where_filter_parsing.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/serialization/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/test_dataclass_serialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/test_dataclass_serialization.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/test_implements_satisfy_protocols.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/test_implements_satisfy_protocols.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/test_pretty_print.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/test_pretty_print.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/transformations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/transformations/test_convert_count_rule.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/transformations/test_convert_count_rule.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_agg_time_dimension.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_agg_time_dimension.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_common_entities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_common_entities.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_configurable_rules.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_configurable_rules.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_dimension_const.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_dimension_const.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_element_const.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_element_const.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_entities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_entities.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_labels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_labels.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_measures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_measures.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_metrics.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_primary_entity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_primary_entity.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_reserved_keywords.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_reserved_keywords.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_saved_query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_saved_query.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_saved_query_limit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_saved_query_limit.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_saved_query_order_by.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_saved_query_order_by.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_semantic_models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_semantic_models.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_time_spines.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_time_spines.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_unique_valid_name.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_unique_valid_name.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/test_validator_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/test_validator_helpers.py -------------------------------------------------------------------------------- /metricflow-semantic-interfaces/tests/validations/validation_test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantic-interfaces/tests/validations/validation_test_utils.py -------------------------------------------------------------------------------- /metricflow-semantics/ATTRIBUTION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/ATTRIBUTION.md -------------------------------------------------------------------------------- /metricflow-semantics/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/LICENSE -------------------------------------------------------------------------------- /metricflow-semantics/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/README.md -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/__about__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/__about__.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/aggregation_properties.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/aggregation_properties.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/api/v0_1/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/dag/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/dag/dag_to_text.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/dag/dag_to_text.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/dag/dag_visualization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/dag/dag_visualization.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/dag/id_prefix.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/dag/id_prefix.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/dag/mf_dag.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/dag/mf_dag.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/dag/sequential_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/dag/sequential_id.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/errors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/errors/custom_grain_not_supported.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/errors/custom_grain_not_supported.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/errors/error_classes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/errors/error_classes.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/experimental/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/filters/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/filters/time_constraint.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/filters/time_constraint.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/instances.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/instances.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/dbt_manifest_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/dbt_manifest_parser.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/linkable_element_property.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/linkable_element_property.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantic_manifest_lookup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantic_manifest_lookup.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantic_model_derivation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantic_model_derivation.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantics/dimension_lookup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantics/dimension_lookup.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantics/element_filter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantics/element_filter.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantics/element_group.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantics/element_group.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantics/linkable_element.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantics/linkable_element.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/model/semantics/metric_lookup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/model/semantics/metric_lookup.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/dunder_scheme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/naming/dunder_scheme.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/linkable_spec_name.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/naming/linkable_spec_name.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/metric_scheme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/naming/metric_scheme.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/naming_scheme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/naming/naming_scheme.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/object_builder_scheme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/naming/object_builder_scheme.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/naming/object_builder_str.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/naming/object_builder_str.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/protocols/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/protocols/query_parameter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/protocols/query_parameter.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/group_by_item/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/filter_spec_resolver/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/issues_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/issues/issues_base.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/parsing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_limit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_limit.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_order.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/query_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/query_parser.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/query_resolution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/query_resolution.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/query_resolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/query_resolver.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/resolver_inputs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/similarity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/similarity.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/suggestion_generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/query/suggestion_generator.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/query/validation_rules/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/attribute_resolution/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/builder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/edges/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/edges/edge_labels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/edges/edge_labels.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/edges/sg_edges.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/edges/sg_edges.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/lookups/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/lookups/join_lookup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/lookups/join_lookup.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/model_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/model_id.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/nodes/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/nodes/entity_nodes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/nodes/entity_nodes.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/nodes/node_labels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/nodes/node_labels.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/sg_constant.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/sg_constant.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/sg_exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/sg_exceptions.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/sg_interfaces.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/sg_interfaces.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/sg_node_grouping.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/semantic_graph/sg_node_grouping.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/semantic_graph/trie_resolver/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/column_assoc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/column_assoc.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/constant_property_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/constant_property_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/dimension_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/dimension_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/entity_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/entity_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/group_by_metric_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/group_by_metric_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/instance_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/instance_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/linkable_spec_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/linkable_spec_set.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/metadata_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/metadata_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/metric_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/metric_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/non_additive_dimension_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/non_additive_dimension_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/order_by_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/order_by_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/partition_spec_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/partition_spec_set.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/entity_link_pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/entity_link_pattern.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/match_list_pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/match_list_pattern.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/metric_pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/metric_pattern.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/metric_time_pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/metric_time_pattern.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/minimum_time_grain.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/minimum_time_grain.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/no_group_by_metric.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/no_group_by_metric.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/none_date_part.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/none_date_part.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/spec_pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/spec_pattern.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/patterns/typed_patterns.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/patterns/typed_patterns.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/query_param_implementations.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/query_param_implementations.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/query_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/query_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/rendered_spec_tracker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/rendered_spec_tracker.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/simple_metric_input_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/simple_metric_input_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/spec_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/spec_set.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/spec_set_transforms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/spec_set_transforms.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/time_dimension_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/specs/time_dimension_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/specs/where_filter/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/sql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/sql/sql_bind_parameters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/sql/sql_bind_parameters.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/sql/sql_column_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/sql/sql_column_type.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/sql/sql_exprs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/sql/sql_exprs.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/sql/sql_join_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/sql/sql_join_type.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/sql/sql_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/sql/sql_table.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/config_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/config_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/id_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/id_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/manifest_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/manifest_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/metric_time_dimension.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/metric_time_dimension.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/mock_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/mock_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/performance/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/performance/profiling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/performance/profiling.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/config_linter_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/data_warehouse_validation_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/name_edge_case_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/project_configuration.yaml: -------------------------------------------------------------------------------- 1 | ../shared/project_configuration.yaml -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/snapshot_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/snapshot_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/svg_snapshot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/svg_snapshot.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/synthetic_manifest/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/table_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/table_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/terminal_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/terminal_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/test_helpers/time_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/test_helpers/time_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/dateutil_adjuster.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/time/dateutil_adjuster.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/granularity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/time/granularity.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/time_constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/time/time_constants.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/time_period.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/time/time_period.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/time_source.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/time/time_source.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/time/time_spine_source.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/time/time_spine_source.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/__init__.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/assert_one_arg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/assert_one_arg.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/cache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/cache/lru_cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/cache/lru_cache.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/cache/result_cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/cache/result_cache.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/collections/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/collections/ordered_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/collections/ordered_set.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/comparison_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/comparison_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/dataclass_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/dataclass_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/merger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/merger.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/comparable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/comparable.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/formatting/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_converter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_converter.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_element.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_element.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_id.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_labeling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/graph_labeling.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/mf_graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/mf_graph.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/mutable_graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/mutable_graph.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/node_descriptor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_graph/node_descriptor.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_graph/path_finding/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_logging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_logging/format_option.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_logging/format_option.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_logging/pretty_print.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_logging/pretty_print.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_logging/runtime.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_logging/runtime.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/mf_type_aliases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/mf_type_aliases.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/orderd_enum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/orderd_enum.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/performance_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/performance_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/random_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/random_id.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/singleton.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/singleton.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/string_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/string_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/syntactic_sugar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/syntactic_sugar.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/table_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/table_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/time_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/time_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/metricflow_semantics/toolkit/visitor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/metricflow_semantics/toolkit/visitor.py -------------------------------------------------------------------------------- /metricflow-semantics/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/pyproject.toml -------------------------------------------------------------------------------- /metricflow-semantics/requirements-files/dev-env-requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/requirements-files/dev-env-requirements.txt -------------------------------------------------------------------------------- /metricflow-semantics/requirements-files/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/requirements-files/requirements.txt -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/__init__.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/api/v0_1/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/dag/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/experimental/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/fixtures/manifest_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/fixtures/manifest_fixtures.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/fixtures/setup_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/fixtures/setup_fixtures.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/helpers/graph_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/helpers/graph_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/helpers/performance/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/mf_logging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/mf_logging/test_lazy_format.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/mf_logging/test_lazy_format.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/mf_logging/test_pformat_dict.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/mf_logging/test_pformat_dict.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/mf_logging/test_pretty_print.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/mf_logging/test_pretty_print.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/model/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/model/modify/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/model/modify/modify_manifest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/model/modify/modify_manifest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/model/semantics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/model/test_where_filter_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/model/test_where_filter_spec.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/naming/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/naming/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/naming/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/errors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/errors/test_messages.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/errors/test_messages.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/group_by_item/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/group_by_item/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/group_by_item/filter_spec_resolution/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/group_by_item/resolution_dag/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/parser_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/parser_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/test_parse_scd_cases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/test_parse_scd_cases.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/test_query_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/test_query_parser.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/query/test_suggestions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/query/test_suggestions.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/attribute_resolution/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/builder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/semantic_graph/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/lookups/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/resolver/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/sg_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/semantic_graph/sg_fixtures.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/sg_tester.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/semantic_graph/sg_tester.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/semantic_graph/trie_resolver/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/specs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/specs/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/specs/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/specs/patterns/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/sql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/sql/test_sql_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/sql/test_sql_table.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/test_benchmark.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/test_benchmark.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/test_snapshot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/test_snapshot.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/test_specs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/test_specs.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/time/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/time/test_time_adjuster.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/time/test_time_adjuster.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/cache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/cache/test_lru_cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/cache/test_lru_cache.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/collections/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/dataclass_statement.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/dataclass_statement.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/conftest.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/flow_graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/flow_graph.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/formatting/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/mf_graph/path_finding/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/statement_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/statement_helpers.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/test_merger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/test_merger.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/test_ordered_enum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/test_ordered_enum.py -------------------------------------------------------------------------------- /metricflow-semantics/tests_metricflow_semantics/toolkit/test_singleton.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow-semantics/tests_metricflow_semantics/toolkit/test_singleton.py -------------------------------------------------------------------------------- /metricflow/__about__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/__about__.py -------------------------------------------------------------------------------- /metricflow/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/data_table/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/data_table/column_types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/data_table/column_types.py -------------------------------------------------------------------------------- /metricflow/data_table/mf_column.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/data_table/mf_column.py -------------------------------------------------------------------------------- /metricflow/data_table/mf_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/data_table/mf_table.py -------------------------------------------------------------------------------- /metricflow/dataflow/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/dataflow/builder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/dataflow/builder/aggregation_helper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/aggregation_helper.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/builder_cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/builder_cache.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/dataflow_plan_builder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/dataflow_plan_builder.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/node_evaluator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/node_evaluator.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/partitions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/partitions.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/simple_metric_input_spec_properties.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/simple_metric_input_spec_properties.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/source_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/source_node.py -------------------------------------------------------------------------------- /metricflow/dataflow/builder/source_node_recipe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/builder/source_node_recipe.py -------------------------------------------------------------------------------- /metricflow/dataflow/dataflow_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/dataflow_plan.py -------------------------------------------------------------------------------- /metricflow/dataflow/dataflow_plan_analyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/dataflow_plan_analyzer.py -------------------------------------------------------------------------------- /metricflow/dataflow/dataflow_plan_visitor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/dataflow_plan_visitor.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/add_generated_uuid.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/add_generated_uuid.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/aggregate_simple_metric_inputs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/aggregate_simple_metric_inputs.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/alias_specs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/alias_specs.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/combine_aggregated_outputs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/combine_aggregated_outputs.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/compute_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/compute_metrics.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/constrain_time.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/constrain_time.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/filter_elements.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/filter_elements.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/join_conversion_events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/join_conversion_events.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/join_over_time.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/join_over_time.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/join_to_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/join_to_base.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/join_to_custom_granularity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/join_to_custom_granularity.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/join_to_time_spine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/join_to_time_spine.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/metric_time_transform.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/metric_time_transform.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/min_max.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/min_max.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/offset_base_grain_by_custom_grain.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/offset_base_grain_by_custom_grain.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/offset_custom_granularity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/offset_custom_granularity.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/order_by_limit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/order_by_limit.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/read_sql_source.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/read_sql_source.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/semi_additive_join.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/semi_additive_join.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/where_filter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/where_filter.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/window_reaggregation_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/window_reaggregation_node.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/write_to_data_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/write_to_data_table.py -------------------------------------------------------------------------------- /metricflow/dataflow/nodes/write_to_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/nodes/write_to_table.py -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/dataflow_optimizer_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/optimizer/dataflow_optimizer_factory.py -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/dataflow_plan_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/optimizer/dataflow_plan_optimizer.py -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/source_scan/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/source_scan/matching_linkable_specs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/optimizer/source_scan/matching_linkable_specs.py -------------------------------------------------------------------------------- /metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py -------------------------------------------------------------------------------- /metricflow/dataset/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/dataset/convert_semantic_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataset/convert_semantic_model.py -------------------------------------------------------------------------------- /metricflow/dataset/dataset_classes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataset/dataset_classes.py -------------------------------------------------------------------------------- /metricflow/dataset/semantic_model_adapter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataset/semantic_model_adapter.py -------------------------------------------------------------------------------- /metricflow/dataset/sql_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/dataset/sql_dataset.py -------------------------------------------------------------------------------- /metricflow/engine/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/engine/metricflow_engine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/engine/metricflow_engine.py -------------------------------------------------------------------------------- /metricflow/engine/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/engine/models.py -------------------------------------------------------------------------------- /metricflow/engine/time_source.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/engine/time_source.py -------------------------------------------------------------------------------- /metricflow/execution/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/execution/convert_to_execution_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/execution/convert_to_execution_plan.py -------------------------------------------------------------------------------- /metricflow/execution/dataflow_to_execution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/execution/dataflow_to_execution.py -------------------------------------------------------------------------------- /metricflow/execution/execution_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/execution/execution_plan.py -------------------------------------------------------------------------------- /metricflow/execution/executor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/execution/executor.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/plan_conversion/convert_to_sql_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/convert_to_sql_plan.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/instance_set_transforms/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/plan_conversion/instance_set_transforms/instance_converters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/instance_set_transforms/instance_converters.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/instance_set_transforms/select_columns.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/instance_set_transforms/select_columns.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/node_processor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/node_processor.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/select_column_gen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/select_column_gen.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/spec_transforms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/spec_transforms.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/sql_expression_builders.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/sql_expression_builders.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/to_sql_plan/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/plan_conversion/to_sql_plan/dataflow_to_cte.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/to_sql_plan/dataflow_to_cte.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/to_sql_plan/dataflow_to_sql.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/to_sql_plan/dataflow_to_sql.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/to_sql_plan/dataflow_to_subquery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/to_sql_plan/dataflow_to_subquery.py -------------------------------------------------------------------------------- /metricflow/plan_conversion/to_sql_plan/sql_join_builder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/plan_conversion/to_sql_plan/sql_join_builder.py -------------------------------------------------------------------------------- /metricflow/protocols/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/protocols/sql_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/protocols/sql_client.py -------------------------------------------------------------------------------- /metricflow/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/sql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/sql/column_alias_renamer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/column_alias_renamer.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/sql/optimizer/column_pruning/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/sql/optimizer/column_pruning/column_pruner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/column_pruning/column_pruner.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/column_pruning/cte_alias_to_cte_node_mapping.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/column_pruning/cte_alias_to_cte_node_mapping.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/column_pruning/cte_mapping_lookup_builder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/column_pruning/cte_mapping_lookup_builder.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/column_pruning/node_to_column_alias_maping.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/column_pruning/node_to_column_alias_maping.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/column_pruning/required_column_aliases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/column_pruning/required_column_aliases.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/optimization_levels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/optimization_levels.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/rewriting_sub_query_reducer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/rewriting_sub_query_reducer.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/sql_query_plan_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/sql_query_plan_optimizer.py -------------------------------------------------------------------------------- /metricflow/sql/optimizer/table_alias_simplifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/optimizer/table_alias_simplifier.py -------------------------------------------------------------------------------- /metricflow/sql/render/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/sql/render/big_query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/big_query.py -------------------------------------------------------------------------------- /metricflow/sql/render/databricks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/databricks.py -------------------------------------------------------------------------------- /metricflow/sql/render/duckdb_renderer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/duckdb_renderer.py -------------------------------------------------------------------------------- /metricflow/sql/render/expr_renderer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/expr_renderer.py -------------------------------------------------------------------------------- /metricflow/sql/render/postgres.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/postgres.py -------------------------------------------------------------------------------- /metricflow/sql/render/redshift.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/redshift.py -------------------------------------------------------------------------------- /metricflow/sql/render/rendering_constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/rendering_constants.py -------------------------------------------------------------------------------- /metricflow/sql/render/snowflake.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/snowflake.py -------------------------------------------------------------------------------- /metricflow/sql/render/sql_plan_renderer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/sql_plan_renderer.py -------------------------------------------------------------------------------- /metricflow/sql/render/trino.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/render/trino.py -------------------------------------------------------------------------------- /metricflow/sql/sql_column.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_column.py -------------------------------------------------------------------------------- /metricflow/sql/sql_ctas_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_ctas_node.py -------------------------------------------------------------------------------- /metricflow/sql/sql_cte_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_cte_node.py -------------------------------------------------------------------------------- /metricflow/sql/sql_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_plan.py -------------------------------------------------------------------------------- /metricflow/sql/sql_select_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_select_node.py -------------------------------------------------------------------------------- /metricflow/sql/sql_select_text_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_select_text_node.py -------------------------------------------------------------------------------- /metricflow/sql/sql_table_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql/sql_table_node.py -------------------------------------------------------------------------------- /metricflow/sql_request/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/sql_request/sql_request_attributes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/sql_request/sql_request_attributes.py -------------------------------------------------------------------------------- /metricflow/telemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/telemetry/handlers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/telemetry/handlers/handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/telemetry/handlers/handlers.py -------------------------------------------------------------------------------- /metricflow/telemetry/handlers/python_log.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/telemetry/handlers/python_log.py -------------------------------------------------------------------------------- /metricflow/telemetry/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/telemetry/models.py -------------------------------------------------------------------------------- /metricflow/telemetry/reporter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/telemetry/reporter.py -------------------------------------------------------------------------------- /metricflow/validation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metricflow/validation/data_warehouse_model_validator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/validation/data_warehouse_model_validator.py -------------------------------------------------------------------------------- /metricflow/validation/dataflow_join_validator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/metricflow/validation/dataflow_join_validator.py -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/mypy.ini -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/pyproject.toml -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/pytest.ini -------------------------------------------------------------------------------- /requirements-files/dev-env-requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/requirements-files/dev-env-requirements.txt -------------------------------------------------------------------------------- /requirements-files/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/requirements-files/requirements.txt -------------------------------------------------------------------------------- /ruff.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/ruff.toml -------------------------------------------------------------------------------- /scripts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/ci_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/ci_tests/install_hatch_environments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/ci_tests/install_hatch_environments.py -------------------------------------------------------------------------------- /scripts/ci_tests/metricflow_package_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/ci_tests/metricflow_package_test.py -------------------------------------------------------------------------------- /scripts/ci_tests/metricflow_semantics_package_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/ci_tests/metricflow_semantics_package_test.py -------------------------------------------------------------------------------- /scripts/ci_tests/run_package_build_tests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/ci_tests/run_package_build_tests.py -------------------------------------------------------------------------------- /scripts/mf-release-helper: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/mf-release-helper -------------------------------------------------------------------------------- /scripts/mf_script_helper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/mf_script_helper.py -------------------------------------------------------------------------------- /scripts/sync_dsi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/scripts/sync_dsi.py -------------------------------------------------------------------------------- /tests_metricflow/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/__init__.py -------------------------------------------------------------------------------- /tests_metricflow/cli/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/cli/cli_test_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/cli_test_helpers.py -------------------------------------------------------------------------------- /tests_metricflow/cli/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/conftest.py -------------------------------------------------------------------------------- /tests_metricflow/cli/demo_data_types_project_add_on/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/demo_data_types_project_add_on/__init__.py -------------------------------------------------------------------------------- /tests_metricflow/cli/demo_data_types_project_add_on/models/demo_data_types.sql: -------------------------------------------------------------------------------- 1 | select 2 | * 3 | from {{ref('demo_data_types_seed')}} 4 | -------------------------------------------------------------------------------- /tests_metricflow/cli/demo_data_types_project_add_on/models/demo_data_types.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/demo_data_types_project_add_on/models/demo_data_types.yml -------------------------------------------------------------------------------- /tests_metricflow/cli/demo_data_types_project_add_on/models/metrics.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/demo_data_types_project_add_on/models/metrics.yml -------------------------------------------------------------------------------- /tests_metricflow/cli/demo_data_types_project_add_on/seeds/properties.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/demo_data_types_project_add_on/seeds/properties.yml -------------------------------------------------------------------------------- /tests_metricflow/cli/executor_process_main_function.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/executor_process_main_function.py -------------------------------------------------------------------------------- /tests_metricflow/cli/isolated_cli_command_interface.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/isolated_cli_command_interface.py -------------------------------------------------------------------------------- /tests_metricflow/cli/isolated_cli_command_runner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/isolated_cli_command_runner.py -------------------------------------------------------------------------------- /tests_metricflow/cli/test_cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/test_cli.py -------------------------------------------------------------------------------- /tests_metricflow/cli/test_cli_error.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/test_cli_error.py -------------------------------------------------------------------------------- /tests_metricflow/cli/test_cli_quiet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/test_cli_quiet.py -------------------------------------------------------------------------------- /tests_metricflow/cli/test_custom_click_types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/test_custom_click_types.py -------------------------------------------------------------------------------- /tests_metricflow/cli/test_isolated_command_runner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/test_isolated_command_runner.py -------------------------------------------------------------------------------- /tests_metricflow/cli/test_output_format.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/cli/test_output_format.py -------------------------------------------------------------------------------- /tests_metricflow/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/conftest.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/dataflow/builder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/dataflow/builder/test_cyclic_join.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/builder/test_cyclic_join.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/builder/test_dataflow_plan_builder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/builder/test_dataflow_plan_builder.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/builder/test_node_data_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/builder/test_node_data_set.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/builder/test_node_evaluator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/builder/test_node_evaluator.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/optimizer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/dataflow/optimizer/source_scan/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/dataflow/optimizer/source_scan/test_cm_branch_combiner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/optimizer/source_scan/test_cm_branch_combiner.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/optimizer/source_scan/test_source_scan_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/optimizer/source_scan/test_source_scan_optimizer.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/test_dataflow_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/test_dataflow_plan.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/test_sql_column.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/test_sql_column.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow/test_sql_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow/test_sql_table.py -------------------------------------------------------------------------------- /tests_metricflow/dataflow_plan_to_svg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataflow_plan_to_svg.py -------------------------------------------------------------------------------- /tests_metricflow/dataset/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/dataset/test_convert_semantic_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/dataset/test_convert_semantic_model.py -------------------------------------------------------------------------------- /tests_metricflow/engine/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/engine/test_errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/engine/test_errors.py -------------------------------------------------------------------------------- /tests_metricflow/engine/test_explain.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/engine/test_explain.py -------------------------------------------------------------------------------- /tests_metricflow/examples/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/examples/__init__.py -------------------------------------------------------------------------------- /tests_metricflow/examples/test_node_sql.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/examples/test_node_sql.py -------------------------------------------------------------------------------- /tests_metricflow/execution/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/execution/noop_task.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/execution/noop_task.py -------------------------------------------------------------------------------- /tests_metricflow/execution/test_sequential_executor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/execution/test_sequential_executor.py -------------------------------------------------------------------------------- /tests_metricflow/execution/test_tasks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/execution/test_tasks.py -------------------------------------------------------------------------------- /tests_metricflow/experimental/semantic_graph/dsi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/cli_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/cli_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/connection_url.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/connection_url.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dataflow_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/dataflow_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | target/ 3 | dbt_packages/ 4 | logs/ 5 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/.user.yml: -------------------------------------------------------------------------------- 1 | id: 76fe6b46-c8bf-4a1c-941b-b3f76dbbe58e 2 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/dbt_projects/metricflow_testing/README.md -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/analyses/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/dbt_project.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/dbt_projects/metricflow_testing/dbt_project.yml -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/macros/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/profiles.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/dbt_projects/metricflow_testing/profiles.yml -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/seeds/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/snapshots/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/dbt_projects/metricflow_testing/tests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/manifest_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/manifest_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/setup_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/setup_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_listings.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_listings.yaml -------------------------------------------------------------------------------- /tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_users.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_users.yaml -------------------------------------------------------------------------------- /tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_buys.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_buys.yaml -------------------------------------------------------------------------------- /tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_views.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_views.yaml -------------------------------------------------------------------------------- /tests_metricflow/fixtures/sql_client_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/sql_client_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/sql_clients/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/fixtures/sql_clients/adapter_backed_ddl_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/sql_clients/adapter_backed_ddl_client.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/sql_clients/common_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/sql_clients/common_client.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/sql_clients/ddl_sql_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/sql_clients/ddl_sql_client.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/sql_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/sql_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/fixtures/table_fixtures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/fixtures/table_fixtures.py -------------------------------------------------------------------------------- /tests_metricflow/generate_snapshots.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/generate_snapshots.py -------------------------------------------------------------------------------- /tests_metricflow/integration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/integration/configured_test_case.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/configured_test_case.py -------------------------------------------------------------------------------- /tests_metricflow/integration/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/conftest.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_conversion_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_conversion_metrics.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_cumulative_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_cumulative_metrics.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_fill_nulls_with_0.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_fill_nulls_with_0.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_metric_filter_output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_metric_filter_output.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_offset_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_offset_metrics.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_output_column_order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_output_column_order.py -------------------------------------------------------------------------------- /tests_metricflow/integration/query_output/test_query_output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/query_output/test_query_output.py -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_constraints.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_constraints.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_conversion_metric.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_conversion_metric.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_cumulative_metric.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_cumulative_metric.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_dimensions.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_dimensions.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_dundered_identifiers.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_dundered_identifiers.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_granularity.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_granularity.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_join_to_timespine.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_join_to_timespine.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_joins.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_joins.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_measure_aggregations.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_measure_aggregations.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_measure_constraints.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_measure_constraints.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_metrics.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_metrics.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_multi_hop_join.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_multi_hop_join.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_order_limit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_order_limit.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_partitions.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_partitions.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_scd.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_scd.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_semi_additive_measure.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_semi_additive_measure.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_simple.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_simple.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_cases/itest_simple_non_sm.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_cases/itest_simple_non_sm.yaml -------------------------------------------------------------------------------- /tests_metricflow/integration/test_configured_cases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_configured_cases.py -------------------------------------------------------------------------------- /tests_metricflow/integration/test_mf_engine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_mf_engine.py -------------------------------------------------------------------------------- /tests_metricflow/integration/test_rendered_query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/integration/test_rendered_query.py -------------------------------------------------------------------------------- /tests_metricflow/mf_logging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/mf_logging/test_dag_to_text.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/mf_logging/test_dag_to_text.py -------------------------------------------------------------------------------- /tests_metricflow/performance/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/performance/compare_reports.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/performance/compare_reports.py -------------------------------------------------------------------------------- /tests_metricflow/performance/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/performance/conftest.py -------------------------------------------------------------------------------- /tests_metricflow/performance/test_mf_engine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/performance/test_mf_engine.py -------------------------------------------------------------------------------- /tests_metricflow/performance/test_profiling_examples.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/performance/test_profiling_examples.py -------------------------------------------------------------------------------- /tests_metricflow/performance/test_simple_manifest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/performance/test_simple_manifest.py -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/dataflow_to_sql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/dataflow_to_sql/test_cte_sql.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/plan_conversion/dataflow_to_sql/test_cte_sql.py -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/dataflow_to_sql/test_exception_retry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/plan_conversion/dataflow_to_sql/test_exception_retry.py -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/instance_converters/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/test_dataflow_to_execution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/plan_conversion/test_dataflow_to_execution.py -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/test_dataflow_to_sql_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/plan_conversion/test_dataflow_to_sql_plan.py -------------------------------------------------------------------------------- /tests_metricflow/plan_conversion/test_time_spine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/plan_conversion/test_time_spine.py -------------------------------------------------------------------------------- /tests_metricflow/populate_persistent_source_schemas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/populate_persistent_source_schemas.py -------------------------------------------------------------------------------- /tests_metricflow/prototype_utils.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/compare_rendered_query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/compare_rendered_query.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_conversion_metric_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_conversion_metric_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_cumulative_metric_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_cumulative_metric_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_custom_granularity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_custom_granularity.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_derived_metric_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_derived_metric_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_fill_nulls_with_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_fill_nulls_with_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_granularity_date_part_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_granularity_date_part_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_metric_filter_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_metric_filter_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_metric_time_without_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_metric_time_without_metrics.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_name_edge_caes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_name_edge_caes.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_predicate_pushdown_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_predicate_pushdown_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_query_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_query_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/query_rendering/test_time_spine_join_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/query_rendering/test_time_spine_join_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/snapshot_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshot_utils.py -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_csv__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_csv__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_health_checks__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_health_checks__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_list_dimensions__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_list_dimensions__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_list_entities__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_list_entities__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_list_metrics__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_list_metrics__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_query__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_query__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_saved_query__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_saved_query__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_tutorial_message__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_tutorial_message__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli.py/str/test_validate_configs__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli.py/str/test_validate_configs__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli_quiet.py/str/test_explain__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli_quiet.py/str/test_explain__result.txt -------------------------------------------------------------------------------- /tests_metricflow/snapshots/test_cli_quiet.py/str/test_query__result.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/snapshots/test_cli_quiet.py/str/test_query__result.txt -------------------------------------------------------------------------------- /tests_metricflow/source_schema_tools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/source_schema_tools.py -------------------------------------------------------------------------------- /tests_metricflow/sql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/sql/compare_data_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/compare_data_table.py -------------------------------------------------------------------------------- /tests_metricflow/sql/compare_sql_plan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/compare_sql_plan.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/check_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/check_optimizer.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/test_column_pruner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/test_column_pruner.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/test_cte_column_pruner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/test_cte_column_pruner.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/test_cte_rewriting_sub_query_reducer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/test_cte_rewriting_sub_query_reducer.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/test_cte_table_alias_simplifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/test_cte_table_alias_simplifier.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/test_rewriting_sub_query_reducer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/test_rewriting_sub_query_reducer.py -------------------------------------------------------------------------------- /tests_metricflow/sql/optimizer/test_table_alias_simplifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/optimizer/test_table_alias_simplifier.py -------------------------------------------------------------------------------- /tests_metricflow/sql/test_common_dataflow_branches.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/test_common_dataflow_branches.py -------------------------------------------------------------------------------- /tests_metricflow/sql/test_data_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/test_data_table.py -------------------------------------------------------------------------------- /tests_metricflow/sql/test_engine_specific_rendering.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/test_engine_specific_rendering.py -------------------------------------------------------------------------------- /tests_metricflow/sql/test_render_cte.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/test_render_cte.py -------------------------------------------------------------------------------- /tests_metricflow/sql/test_sql_expr_render.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/test_sql_expr_render.py -------------------------------------------------------------------------------- /tests_metricflow/sql/test_sql_plan_render.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql/test_sql_plan_render.py -------------------------------------------------------------------------------- /tests_metricflow/sql_clients/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/sql_clients/test_date_time_operations.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql_clients/test_date_time_operations.py -------------------------------------------------------------------------------- /tests_metricflow/sql_clients/test_sql_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/sql_clients/test_sql_client.py -------------------------------------------------------------------------------- /tests_metricflow/table_snapshot/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/table_snapshot/example_table_snapshot.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/table_snapshot/example_table_snapshot.yaml -------------------------------------------------------------------------------- /tests_metricflow/table_snapshot/table_snapshots.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/table_snapshot/table_snapshots.py -------------------------------------------------------------------------------- /tests_metricflow/table_snapshot/test_source_schema.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/table_snapshot/test_source_schema.py -------------------------------------------------------------------------------- /tests_metricflow/table_snapshot/test_table_snapshots.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/table_snapshot/test_table_snapshots.py -------------------------------------------------------------------------------- /tests_metricflow/telemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/telemetry/test_telemetry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/telemetry/test_telemetry.py -------------------------------------------------------------------------------- /tests_metricflow/test_instance_serialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/test_instance_serialization.py -------------------------------------------------------------------------------- /tests_metricflow/test_pytest_markers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/test_pytest_markers.py -------------------------------------------------------------------------------- /tests_metricflow/time/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/validation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests_metricflow/validation/test_data_warehouse_tasks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/validation/test_data_warehouse_tasks.py -------------------------------------------------------------------------------- /tests_metricflow/validation/test_join_validator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbt-labs/metricflow/HEAD/tests_metricflow/validation/test_join_validator.py --------------------------------------------------------------------------------