code: def string_select_statement() -> SqlSelectStatementNode:
      """Test case for propagating a column used in a string expression.
  
      -- test0
      SELECT
        col0 AS from_source_col0
      FROM (
        -- from_source
        SELECT
          from_source_table.col0 AS col0
          , from_source_table.col1 AS col1
          , from_source_table.join_col AS join_col
        FROM demo.from_source_table from_source_table
      ) from_source
      JOIN (
        -- joined_source
        SELECT
          joined_source_table.col2 AS col2
          , joined_source_table.col3 AS col3
          , joined_source_table.join_col AS join_col
        FROM demo.joined_source_table joined_source_table
      ) joined_source
      ON
        from_source.join_col = joined_source.join_col
      """
      return SqlSelectStatementNode(
          description="test0",
          select_columns=(
              SqlSelectColumn(
                  expr=SqlStringExpression(
                      sql_expr="col0", used_columns=("col0",)
                  ),
                  column_alias="from_source_col0",
              ),
          ),
          from_source=SqlSelectStatementNode(
              description="from_source",
              select_columns=(
                  SqlSelectColumn(
                      expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="from_source_table",
                              column_name="col0",
                          )
                      ),
                      column_alias="col0",
                  ),
                  SqlSelectColumn(
                      expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="from_source_table",
                              column_name="col1",
                          )
                      ),
                      column_alias="col1",
                  ),
                  SqlSelectColumn(
                      expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="from_source_table",
                              column_name="join_col",
                          )
                      ),
                      column_alias="join_col",
                  ),
              ),
              from_source=SqlTableFromClauseNode(
                  sql_table=SqlTable(
                      schema_name="demo", table_name="from_source_table"
                  )
              ),
              from_source_alias="from_source_table",
              joins_descs=(),
              group_bys=(),
              order_bys=(),
          ),
          from_source_alias="from_source",
          joins_descs=(
              SqlJoinDescription(
                  right_source=SqlSelectStatementNode(
                      description="joined_source",
                      select_columns=(
                          SqlSelectColumn(
                              expr=SqlColumnReferenceExpression(
                                  col_ref=SqlColumnReference(
                                      table_alias="joined_source_table",
                                      column_name="col2",
                                  )
                              ),
                              column_alias="col0",
                          ),
                          SqlSelectColumn(
                              expr=SqlColumnReferenceExpression(
                                  col_ref=SqlColumnReference(
                                      table_alias="joined_source_table",
                                      column_name="col3",
                                  )
                              ),
                              column_alias="col1",
                          ),
                          SqlSelectColumn(
                              expr=SqlColumnReferenceExpression(
                                  col_ref=SqlColumnReference(
                                      table_alias="joined_source_table",
                                      column_name="join_col",
                                  )
                              ),
                              column_alias="join_col",
                          ),
                      ),
                      from_source=SqlTableFromClauseNode(
                          sql_table=SqlTable(
                              schema_name="demo",
                              table_name="joined_source_table",
                          )
                      ),
                      from_source_alias="joined_source_table",
                      joins_descs=(),
                      group_bys=(),
                      order_bys=(),
                  ),
                  right_source_alias="joined_source",
                  on_condition=SqlComparisonExpression(
                      left_expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="from_source",
                              column_name="join_col",
                          )
                      ),
                      comparison=SqlComparison.EQUALS,
                      right_expr=SqlColumnReferenceExpression(
                          col_ref=SqlColumnReference(
                              table_alias="joined_source",
                              column_name="join_col",
                          )
                      ),
                  ),
                  join_type=SqlJoinType.INNER,
              ),
          ),
          where=None,
          group_bys=(),
          order_bys=(),
      )
  
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 10 for calling a global function with example usage: string_select_statement() and returns: SqlSelectStatementNode