code: def test_prune_distinct_select(
      request: FixtureRequest,
      mf_test_session_state: MetricFlowTestSessionState,
      column_pruner: SqlColumnPrunerOptimizer,
  ) -> None:
      """Test that distinct select node shouldn't be pruned."""
      select_node = SqlSelectStatementNode(
          description="test0",
          select_columns=(
              SqlSelectColumn(
                  expr=SqlColumnReferenceExpression(
                      col_ref=SqlColumnReference(
                          table_alias="a", column_name="booking_value"
                      )
                  ),
                  column_alias="booking_value",
              ),
          ),
          from_source=SqlSelectStatementNode(
              description="test1",
              select_columns=(
                  SqlSelectColumn(
                      expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="a",
                              column_name="booking_value",
                          )
                      ),
                      column_alias="booking_value",
                  ),
                  SqlSelectColumn(
                      expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="a", column_name="bookings"
                          )
                      ),
                      column_alias="bookings",
                  ),
              ),
              from_source=SqlTableFromClauseNode(
                  sql_table=SqlTable(
                      schema_name="demo", table_name="fct_bookings"
                  )
              ),
              from_source_alias="a",
              joins_descs=(),
              where=None,
              group_bys=(),
              order_bys=(),
              distinct=True,
          ),
          from_source_alias="b",
          joins_descs=(),
          where=None,
          group_bys=(),
          order_bys=(),
      )
      assert_default_rendered_sql_equal(
          request=request,
          mf_test_session_state=mf_test_session_state,
          sql_plan_node=select_node,
          plan_id="before_pruning",
      )
  
      column_pruner.optimize(select_node)
      assert_default_rendered_sql_equal(
          request=request,
          mf_test_session_state=mf_test_session_state,
          sql_plan_node=select_node,
          plan_id="after_pruning",
      )
  
imports: from __future__ import annotations
  import pytest
  from _pytest.fixtures import FixtureRequest
  from metricflow.dataflow.sql_table import SqlTable
  from metricflow.sql.optimizer.column_pruner import SqlColumnPrunerOptimizer
  from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer, SqlQueryPlanRenderer
  from metricflow.sql.sql_exprs import SqlColumnReference, SqlColumnReferenceExpression, SqlComparison, SqlComparisonExpression, SqlIsNullExpression, SqlStringExpression
  from metricflow.sql.sql_plan import SqlJoinDescription, SqlJoinType, SqlQueryPlanNode, SqlSelectColumn, SqlSelectStatementNode, SqlTableFromClauseNode
  from metricflow.test.fixtures.setup_fixtures import MetricFlowTestSessionState
  from metricflow.test.sql.compare_sql_plan import assert_default_rendered_sql_equal
label_desc: Use image node_id 16 for calling a global function with example usage: test_prune_distinct_select(request, mf_test_session_state, column_pruner) without return types