class_docstr: Create select columns that coalesce columns corresponding to linkable specs.
  
  e.g.
  
  dimension_specs = [DimensionSpec(element_name="is_instant")]
  table_aliases = ["a", "b"]
  
  ->
  
  COALESCE(a.is_instant, b.is_instant) AS is_instant
class_docstr_tok: ["Create","select","columns","that","coalesce","columns","corresponding","to","linkable","specs",".","e.g",".","dimension_specs","=","[","DimensionSpec","(","element_name=","''","is_instant","''",")","]","table_aliases","=","[","``","a","''",",","``","b","''","]","-",">","COALESCE","(","a.is_instant",",","b.is_instant",")","AS","is_instant"]
code: def transform(
      self, spec_set: InstanceSpecSet
  ) -> SelectColumnSet:  # noqa: D
      dimension_columns: List[SqlSelectColumn] = []
      time_dimension_columns: List[SqlSelectColumn] = []
      entity_columns: List[SqlSelectColumn] = []
  
      for dimension_spec in spec_set.dimension_specs:
          column_name = self._column_association_resolver.resolve_spec(
              dimension_spec
          ).column_name
          dimension_columns.append(
              SqlSelectColumn(
                  expr=make_coalesced_expr(
                      self._table_aliases, column_name
                  ),
                  column_alias=column_name,
              )
          )
  
      for time_dimension_spec in spec_set.time_dimension_specs:
          column_name = self._column_association_resolver.resolve_spec(
              time_dimension_spec
          ).column_name
          time_dimension_columns.append(
              SqlSelectColumn(
                  expr=make_coalesced_expr(
                      self._table_aliases, column_name
                  ),
                  column_alias=column_name,
              )
          )
  
      for entity_spec in spec_set.entity_specs:
          column_name = self._column_association_resolver.resolve_spec(
              entity_spec
          ).column_name
  
          entity_columns.append(
              SqlSelectColumn(
                  expr=make_coalesced_expr(
                      self._table_aliases, column_name
                  ),
                  column_alias=column_name,
              )
          )
  
      return SelectColumnSet(
          dimension_columns=dimension_columns,
          time_dimension_columns=time_dimension_columns,
          entity_columns=entity_columns,
      )
  
file_path: metricflow/metricflow/plan_conversion/spec_transforms.py
imports: from __future__ import annotations
  from typing import List, Sequence
  from metricflow.plan_conversion.select_column_gen import SelectColumnSet
  from metricflow.plan_conversion.sql_expression_builders import make_coalesced_expr
  from metricflow.specs.column_assoc import ColumnAssociation, ColumnAssociationResolver
  from metricflow.specs.specs import InstanceSpecSet, InstanceSpecSetTransform
  from metricflow.sql.sql_plan import SqlSelectColumn
label_desc: Use image node_id 2 for calling the CreateSelectCoalescedColumnsForLinkableSpecs obj's underlying member method code with example usage: obj.transform(spec_set) and returns: SelectColumnSet