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,

Reply via email to