tirkarthi commented on code in PR #31352:
URL: https://github.com/apache/airflow/pull/31352#discussion_r1197813620


##########
airflow/models/taskinstance.py:
##########
@@ -2821,15 +2821,16 @@ def tg2(inp):
 
     def clear_db_references(self, session):
         """
-        Clear DB references to XCom, TaskFail and RenderedTaskInstanceFields.
+        Clear DB references to XCom, TaskFail, TaskInstanceNote,
+        TaskReschedule and RenderedTaskInstanceFields.

Review Comment:
   A rough attempt in Python. This needs all models to be imported so that they 
are registered.
   
   ```python
   import pprint
   import time
   
   from airflow.models.taskinstance import *
   from airflow.models.dag import *
   from airflow.models.trigger import *
   from airflow.www.fab_security.sqla.models import *
   
   
   def get_references(model):
       references = {}
   
       for table in model.__table__.metadata.tables.values():
           foreign_key_constraints = table.foreign_key_constraints
           for constraint in foreign_key_constraints:
               refers = all(
                   element.references(model.__table__) for element in 
constraint.elements
               )
               if refers:
                   references[table.name] = {
                       "columns": [element.column.name for element in 
constraint.elements],
                       "constraint": constraint.name,
                   }
   
       return references
   
   
   start = time.time()
   pprint.pp(get_references(TaskInstance))
   duration = time.time() - start
   print(f"Took {duration} seconds")
   ```
   
   ```
   time python /tmp/foo.py
   {'task_fail': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
                  'constraint': 'task_fail_ti_fkey'},
    'task_map': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
                 'constraint': 'task_map_task_instance_fkey'},
    'task_reschedule': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
                        'constraint': 'task_reschedule_ti_fkey'},
    'xcom': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
             'constraint': 'xcom_task_instance_fkey'},
    'task_instance_note': {'columns': ['dag_id', 'task_id', 'run_id', 
'map_index'],
                           'constraint': 'task_instance_note_ti_fkey'}}
   Took 0.001352071762084961 seconds
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to