class_docstr: Allows a DAG to "branch" or follow a specified path based on the results of a SQL query.
  
  :param sql: The SQL code to be executed, should return true or false (templated)
     Template reference are recognized by str ending in '.sql'.
     Expected SQL query to return a boolean (True/False), integer (0 = False, Otherwise = 1)
     or string (true/y/yes/1/on/false/n/no/0/off).
  :param follow_task_ids_if_true: task id or task ids to follow if query returns true
  :param follow_task_ids_if_false: task id or task ids to follow if query returns false
  :param conn_id: the connection ID used to connect to the database.
  :param database: name of database which overwrite the defined one in connection
  :param parameters: (optional) the parameters to render the SQL query with.
class_docstr_tok: ["Allows","a","DAG","to","``","branch","''","or","follow","a","specified","path","based","on","the","results","of","a","SQL","query",".",":","param","sql",":","The","SQL","code","to","be","executed",",","should","return","true","or","false","(","templated",")","Template","reference","are","recognized","by","str","ending","in","'.sql","'",".","Expected","SQL","query","to","return","a","boolean","(","True\/False",")",",","integer","(","0","=","False",",","Otherwise","=","1",")","or","string","(","true\/y\/yes\/1\/on\/false\/n\/no\/0\/off",")",".",":","param","follow_task_ids_if_true",":","task","id","or","task","ids","to","follow","if","query","returns","true",":","param","follow_task_ids_if_false",":","task","id","or","task","ids","to","follow","if","query","returns","false",":","param","conn_id",":","the","connection","ID","used","to","connect","to","the","database",".",":","param","database",":","name","of","database","which","overwrite","the","defined","one","in","connection",":","param","parameters",":","(","optional",")","the","parameters","to","render","the","SQL","query","with","."]
code: def __init__(
      self,
      *,
      sql: str,
      follow_task_ids_if_true: list[str],
      follow_task_ids_if_false: list[str],
      conn_id: str = "default_conn_id",
      database: str | None = None,
      parameters: Iterable | Mapping[str, Any] | None = None,
      **kwargs,
  ) -> None:
      super().__init__(conn_id=conn_id, database=database, **kwargs)
      self.sql = sql
      self.parameters = parameters
      self.follow_task_ids_if_true = follow_task_ids_if_true
      self.follow_task_ids_if_false = follow_task_ids_if_false
  
imports: from __future__ import annotations
  import ast
  import re
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Callable, Iterable, Mapping, NoReturn, Sequence, SupportsAbs
  from airflow.exceptions import AirflowException, AirflowFailException
  from airflow.hooks.base import BaseHook
  from airflow.models import BaseOperator, SkipMixin
  from airflow.providers.common.sql.hooks.sql import DbApiHook, fetch_all_handler, return_single_query_results
  from airflow.utils.helpers import merge_dicts
label_desc: Use image node_id 1 to create a new BranchSQLOperator object from inherited base classes: BaseSQLOperator, SkipMixin with example: obj = BranchSQLOperator()