예제 #1
0
        class TestTable(self.base):
            date = Column(types.Date, primary_key=True)
            x = Column(types.Int32)
            y = Column(types.Int32)

            __table_args__ = (engines.SummingMergeTree((y, ), date,
                                                       (date, x)), )
        class TestTable(self.base):
            date = Column(types.Date, primary_key=True)
            x = Column(types.Int32)
            y = Column(types.Int32)

            __table_args__ = (engines.SummingMergeTree(columns=(y, ),
                                                       partition_by=date,
                                                       order_by=(date, x)), )
    def test_summing_merge_tree_no_columns(self):
        engine = engines.SummingMergeTree(partition_by='x',
                                          order_by='x',
                                          primary_key='x')

        with self._test_table(engine) as (table, engine):
            self.assertIsInstance(engine, engines.SummingMergeTree)
            self.assertIsNone(engine.summing_cols)
            self.assertEqual(engine.partition_by.columns, [table.c.x])
            self.assertEqual(engine.order_by.columns, [table.c.x])
            self.assertEqual(engine.primary_key.columns, [table.c.x])
    def test_summing_merge_tree(self):
        y = Column('y', types.Int8)

        engine = engines.SummingMergeTree(
            columns=y, partition_by='x', order_by='x', primary_key='x'
        )

        with self._test_table(engine, y) as (table, engine):
            self.assertIsInstance(engine, engines.SummingMergeTree)
            self.assertEqual(engine.summing_cols.columns, [table.c.y])
            self.assertEqual(engine.partition_by.columns, [table.c.x])
            self.assertEqual(engine.order_by.columns, [table.c.x])
            self.assertEqual(engine.primary_key.columns, [table.c.x])
    def test_summing_merge_tree_multiple_columns(self):
        y = Column('y', types.Int8)
        z = Column('z', types.Int8)

        engine = engines.SummingMergeTree(columns=(y, z),
                                          partition_by='x',
                                          order_by='x',
                                          primary_key='x')

        with self._test_table(engine, y, z) as (table, engine):
            self.assertIsInstance(engine, engines.SummingMergeTree)
            self.assertEqual(list(engine.summing_cols.columns),
                             [table.c.y, table.c.z])
            self.assertEqual(engine.partition_by.columns, [table.c.x])
            self.assertEqual(engine.order_by.columns, [table.c.x])
            self.assertEqual(engine.primary_key.columns, [table.c.x])
예제 #6
0
        class GroupedStatistics(Base):
            date = Column(types.Date, primary_key=True)
            metric1 = Column(types.Int32, nullable=False)

            __table_args__ = (engines.SummingMergeTree(
                partition_by=func.toYYYYMM(date), order_by=(date, )), )