def result(self, context: TelRootContext) -> TelQueryResult: result = self._value.result(context) data_source_formula_templates = [] value_phase = self._value.phase(context) if value_phase == self._phase: return result if value_phase in [TelPhase.dimension_data_source, TelPhase.any]: if self.used_taxons(context).has_some(): if not self._cached_label: self._cached_label = context.new_label assert 1 == len(self._value.return_data_sources(context)) data_source = cast( str, next(ds for ds in list(self._value.return_data_sources(context)) if ds is not None) ) sql = literal_column(safe_quote_identifier(self._cached_label, context.husky_dialect)) data_source_formula_templates.append( SqlFormulaTemplate( SqlTemplate(compile_query(result.sql, context.husky_dialect)), cast(str, self._cached_label), data_source, cast(Set[str], self._value.template_slugs(context)), ) ) template = sql else: sql = result.sql template = result.template label = self._cached_label or result.label if not self._value.invalid_value(context): return TelQueryResult( sql=sql, dialect=context.husky_dialect, aggregations=result.aggregations, dimension_formulas=result.dimension_formulas, data_source_formula_templates=data_source_formula_templates + result.data_source_formula_templates, label=label, exclude_slugs=result.exclude_slugs, template=template, ) else: return TelQueryResult( sql, dialect=context.husky_dialect, data_source_formula_templates=data_source_formula_templates, label=label, ) else: raise RuntimeError(f'Cannot move to {self._phase} phase from {value_phase}')
def result(self, context: TelRootContext) -> TelQueryResult: result = self._value.result(context) dimension_formulas = [] value_phase = self._value.phase(context) if value_phase == self._phase: return result if value_phase in [TelPhase.dimension, TelPhase.any]: if self.used_taxons(context).has_some(): if not self._label and not self._cached_label: self._cached_label = context.new_label dimension_formulas.append( PreFormula( result.sql, cast(str, self._label or self._cached_label), # no aggregations are performed in Dimension Builder AggregationDefinition(type=AggregationType.not_set), ) ) sql = literal_column(safe_quote_identifier(self._label or self._cached_label, context.husky_dialect)) template = sql else: sql = result.sql template = result.template label = self._label or self._cached_label or result.label if not self._value.invalid_value(context): return TelQueryResult( sql=sql, dialect=context.husky_dialect, aggregations=result.aggregations, dimension_formulas=dimension_formulas + result.dimension_formulas, data_source_formula_templates=result.data_source_formula_templates, override_mappings=result.override_mappings, label=label, exclude_slugs=result.exclude_slugs, template=template, ) else: return TelQueryResult( sql, dialect=context.husky_dialect, dimension_formulas=dimension_formulas, label=label ) else: raise RuntimeError(f'Cannot move to {self._phase} phase from {value_phase}')
def result(self, context: TelRootContext) -> TelQueryResult: left_result = self._left.result(context) right_result = self._right.result(context) sql, template = result_with_template(self._sql, left=left_result, right=right_result) return TelQueryResult.merge(sql, context.husky_dialect, left_result, right_result, template=template)
def result(self, context: TelRootContext) -> TelQueryResult: sql_expression = literal_column( context.tel_dialect.model.taxon_sql_accessor( context.husky_context, prefix_with_virtual_data_source(context.tel_dialect.virtual_data_source, self._slug), False, context.tel_dialect, ) ) return TelQueryResult(sql_expression, context.husky_dialect)
def result(self, context: TelRootContext) -> TelQueryResult: taxon = self._taxon if self._calculation_expr: return self._calculation_expr.result(context) else: if context.is_benchmark and self._taxon and not self._taxon.is_dimension: column_name = f'comparison@{self._slug}' else: column_name = self._slug # Set correct result phase based on the taxon we just got. if taxon and TaxonTypeEnum.metric.value == taxon.taxon_type: sql = literal_column(safe_quote_identifier(column_name, context.husky_dialect)) else: if self._namespace: sql = literal_column(f'${{{self._slug}}}') else: sql = literal_column(safe_quote_identifier(column_name, context.husky_dialect)) return TelQueryResult(sql, dialect=context.husky_dialect)
def result(self, context: TelRootContext) -> TelQueryResult: if self._value.invalid_value(context): return TelQueryResult(null(), dialect=context.husky_dialect) else: return self._value.result(context)
def result(self, context: TelRootContext) -> TelQueryResult: return TelQueryResult(true() if self._value else false(), dialect=context.husky_dialect)
def result(self, context: TelRootContext) -> TelQueryResult: return TelQueryResult(literal(self._value, String()), dialect=context.husky_dialect)
def result(self, context: TelRootContext) -> TelQueryResult: column_name = f'{safe_quote_identifier(context.tel_dialect.unique_object_name, context.husky_dialect)}.{quote_identifier(self._name, context.husky_dialect)}' return TelQueryResult(literal_column(column_name), context.husky_dialect)