class_docstr: Renders an SQL plan following ANSI SQL.
class_docstr_tok: ["Renders","an","SQL","plan","following","ANSI","SQL","."]
docstr: Convert the node into a "FROM" section.
  
  e.g.
  FROM (
    SELECT
      1 AS bookings
      ...
  )
  
  Returns a tuple of the "FROM" section as a string and the associated execution parameters.
docstr_tok: ["Convert","the","node","into","a","``","FROM","''","section",".","e.g",".","FROM","(","SELECT","1","AS","bookings","...",")","Returns","a","tuple","of","the","``","FROM","''","section","as","a","string","and","the","associated","execution","parameters","."]
code: def _render_from_section(
      self, from_source: SqlQueryPlanNode, from_source_alias: str
  ) -> Tuple[str, SqlBindParameters]:
      """Convert the node into a "FROM" section.
  
      e.g.
      FROM (
        SELECT
          1 AS bookings
          ...
      )
  
      Returns a tuple of the "FROM" section as a string and the associated execution parameters.
      """
      from_render_result = self._render_node(from_source)
  
      from_section_lines = []
      if from_source.is_table:
          from_section_lines.append(
              f"FROM {from_render_result.sql} {from_source_alias}"
          )
      else:
          from_section_lines.append("FROM (")
          from_section_lines.append(
              textwrap.indent(
                  from_render_result.sql, prefix=self.INDENT
              )
          )
          from_section_lines.append(f") {from_source_alias}")
      from_section = "\n".join(from_section_lines)
  
      return from_section, from_render_result.bind_parameters
  
imports: from __future__ import annotations
  import logging
  import textwrap
  from abc import ABC, abstractmethod
  from dataclasses import dataclass
  from typing import List, Optional, Sequence, Tuple
  from metricflow.sql.render.expr_renderer import DefaultSqlExpressionRenderer, SqlExpressionRenderer, SqlExpressionRenderResult
  from metricflow.sql.sql_bind_parameters import SqlBindParameters
  from metricflow.sql.sql_plan import SqlJoinDescription, SqlQueryPlan, SqlQueryPlanNode, SqlQueryPlanNodeVisitor, SqlSelectColumn, SqlSelectQueryFromClauseNode, SqlSelectStatementNode, SqlTableFromClauseNode
label_desc: Use image node_id 2 for calling the DefaultSqlQueryPlanRenderer obj's underlying member method code with example usage: obj._render_from_section(from_source, from_source_alias) and returns: from_section,  from_render_result