Repository: incubator-airflow Updated Branches: refs/heads/master 209e7e9fa -> 05f7adb46
[AIRFLOW-656] Add dag/task/date index to xcom table Closes #1907 from criccomini/AIRFLOW-656 Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/05f7adb4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/05f7adb4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/05f7adb4 Branch: refs/heads/master Commit: 05f7adb462f978e99a3c11ab276b96dc4a8d10b7 Parents: 209e7e9 Author: Chris Riccomini <chr...@wepay.com> Authored: Wed Nov 30 10:43:06 2016 -0800 Committer: Chris Riccomini <chr...@wepay.com> Committed: Wed Nov 30 10:43:15 2016 -0800 ---------------------------------------------------------------------- .../8504051e801b_xcom_dag_task_indices.py | 38 ++++++++++++++++++++ airflow/models.py | 4 +++ 2 files changed, 42 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/05f7adb4/airflow/migrations/versions/8504051e801b_xcom_dag_task_indices.py ---------------------------------------------------------------------- diff --git a/airflow/migrations/versions/8504051e801b_xcom_dag_task_indices.py b/airflow/migrations/versions/8504051e801b_xcom_dag_task_indices.py new file mode 100644 index 0000000..99b5653 --- /dev/null +++ b/airflow/migrations/versions/8504051e801b_xcom_dag_task_indices.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""xcom dag task indices + +Revision ID: 8504051e801b +Revises: 4addfa1236f1 +Create Date: 2016-11-29 08:13:03.253312 + +""" + +# revision identifiers, used by Alembic. +revision = '8504051e801b' +down_revision = '4addfa1236f1' +branch_labels = None +depends_on = None + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.create_index('idx_xcom_dag_task_date', 'xcom', ['dag_id', 'task_id', 'execution_date'], unique=False) + + +def downgrade(): + op.drop_index('idx_xcom_dag_task_date', table_name='xcom') http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/05f7adb4/airflow/models.py ---------------------------------------------------------------------- diff --git a/airflow/models.py b/airflow/models.py index d9bacbd..d2d1e0b 100755 --- a/airflow/models.py +++ b/airflow/models.py @@ -3448,6 +3448,10 @@ class XCom(Base): task_id = Column(String(ID_LEN), nullable=False) dag_id = Column(String(ID_LEN), nullable=False) + __table_args__ = ( + Index('idx_xcom_dag_task_date', dag_id, task_id, execution_date, unique=False), + ) + def __repr__(self): return '<XCom "{key}" ({task_id} @ {execution_date})>'.format( key=self.key,