:py:mod:`airflow.providers.common.sql.sensors.sql`
==================================================

.. py:module:: airflow.providers.common.sql.sensors.sql


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.common.sql.sensors.sql.SqlSensor




.. py:class:: SqlSensor(*, conn_id, sql, parameters=None, success=None, failure=None, fail_on_empty=False, hook_params=None, **kwargs)

   Bases: :py:obj:`airflow.sensors.base.BaseSensorOperator`

   Runs a sql statement repeatedly until a criteria is met. It will keep trying until
   success or failure criteria are met, or if the first cell is not in (0, '0', '', None).
   Optional success and failure callables are called with the first cell returned as the argument.
   If success callable is defined the sensor will keep retrying until the criteria is met.
   If failure callable is defined and the criteria is met the sensor will raise AirflowException.
   Failure criteria is evaluated before success criteria. A fail_on_empty boolean can also
   be passed to the sensor in which case it will fail if no rows have been returned

   :param conn_id: The connection to run the sensor against
   :param sql: The sql to run. To pass, it needs to return at least one cell
       that contains a non-zero / empty string value.
   :param parameters: The parameters to render the SQL query with (optional).
   :param success: Success criteria for the sensor is a Callable that takes first_cell
       as the only argument, and returns a boolean (optional).
   :param failure: Failure criteria for the sensor is a Callable that takes first_cell
       as the only argument and return a boolean (optional).
   :param fail_on_empty: Explicitly fail on no rows returned.
   :param hook_params: Extra config params to be passed to the underlying hook.
           Should match the desired hook constructor params.

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['sql']

      

   .. py:attribute:: template_ext
      :annotation: :Sequence[str] = ['.hql', '.sql']

      

   .. py:attribute:: ui_color
      :annotation: = #7c7287

      

   .. py:method:: poke(context)

      Function that the sensors defined while deriving this class should
      override.



