class_docstr: Renders the SQL query plan assuming ANSI SQL.
class_docstr_tok: ["Renders","the","SQL","query","plan","assuming","ANSI","SQL","."]
code: def visit_logical_expr(
      self, node: SqlLogicalExpression
  ) -> SqlExpressionRenderResult:  # noqa: D
      RenderedExpr = namedtuple(
          "RenderedExpr", ["expr", "requires_parenthesis"]
      )
      args_rendered = [
          RenderedExpr(self.render_sql_expr(x), x.requires_parenthesis)
          for x in node.args
      ]
      combined_parameters = SqlBindParameters()
      args_sql: List[str] = []
  
      can_be_rendered_in_one_line = (
          sum(len(x.expr.sql) for x in args_rendered) < 60
      )
  
      for arg_rendered in args_rendered:
          combined_parameters.combine(arg_rendered.expr.bind_parameters)
          arg_sql = self._render_logical_arg(
              arg_rendered.expr,
              arg_rendered.requires_parenthesis,
              render_in_one_line=can_be_rendered_in_one_line,
          )
          args_sql.append(arg_sql)
  
      sql = f" {node.operator.value} ".join(args_sql)
  
      return SqlExpressionRenderResult(
          sql=sql,
          bind_parameters=combined_parameters,
      )
  
imports: from __future__ import annotations
  import logging
  import textwrap
  from abc import ABC, abstractmethod
  from collections import namedtuple
  from dataclasses import dataclass
  from typing import Collection, List
  import jinja2
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
  from typing_extensions import override
  from metricflow.sql.sql_bind_parameters import SqlBindParameters
  from metricflow.sql.sql_exprs import SqlAggregateFunctionExpression, SqlBetweenExpression, SqlCastToTimestampExpression, SqlColumnAliasReferenceExpression, SqlColumnReferenceExpression, SqlComparisonExpression, SqlDateTruncExpression, SqlExpressionNode, SqlExpressionNodeVisitor, SqlExtractExpression, SqlFunction, SqlGenerateUuidExpression, SqlIsNullExpression, SqlLogicalExpression, SqlNullExpression, SqlPercentileExpression, SqlPercentileFunctionType, SqlRatioComputationExpression, SqlStringExpression, SqlStringLiteralExpression, SqlSubtractTimeIntervalExpression, SqlWindowFunctionExpression
  from metricflow.sql.sql_plan import SqlSelectColumn
label_desc: Use image node_id 12 for calling the DefaultSqlExpressionRenderer obj's underlying member method code with example usage: obj.visit_logical_expr(node) and returns: SqlExpressionRenderResult