code: def test_dont_prune_with_str_expr(
      request: FixtureRequest,
      mf_test_session_state: MetricFlowTestSessionState,
      column_pruner: SqlColumnPrunerOptimizer,
      base_select_statement: SqlSelectStatementNode,
  ) -> None:
      """Tests that columns aren't pruned from parent sources if there's a string expression in the select."""
      select_statement_with_other_exprs = SqlSelectStatementNode(
          description="test0",
          select_columns=(
              SqlSelectColumn(
                  expr=SqlStringExpression(
                      "from_source.col0", requires_parenthesis=False
                  ),
                  column_alias="some_string_expr",
              ),
          ),
          from_source=base_select_statement.from_source,
          from_source_alias=base_select_statement.from_source_alias,
          joins_descs=base_select_statement.join_descs,
          where=base_select_statement.where,
          group_bys=base_select_statement.group_bys,
          order_bys=base_select_statement.order_bys,
      )
  
      assert_default_rendered_sql_equal(
          request=request,
          mf_test_session_state=mf_test_session_state,
          sql_plan_node=select_statement_with_other_exprs,
          plan_id="before_pruning",
      )
  
      column_pruned_select_node = column_pruner.optimize(
          select_statement_with_other_exprs
      )
      assert_default_rendered_sql_equal(
          request=request,
          mf_test_session_state=mf_test_session_state,
          sql_plan_node=column_pruned_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 8 for calling a global function with example usage: test_dont_prune_with_str_expr(request, mf_test_session_state, column_pruner, base_select_statement) without return types