Esempio n. 1
0
    def __init__(self, engine, table, column,
                 aggregats=['count'],
                 database='default',
                 model=None):
        self.verbose = 0
        self.table = table
        self.column = column
        self.aggregats = aggregats
        self.database = database
        self.model = model
        self.functions = {}
        # use the right backend
        if engine == PG_BACKEND:
            from databases.pg import TriggerPostgreSQL
            self.backend = TriggerPostgreSQL()
        else:
            raise DatabaseNotSupported()

        for agg in self.aggregats:
            if isinstance(agg, dict):
                for agg_key, where_clause in self.extract_agg_where_clause(
                        agg).iteritems():
                    for action in ["insert", "update", "delete"]:
                        fname = function_name(table, column,
                                              action, key=agg_key)
                        self.functions[fname] = action
            else:
                for action in ["insert", "update", "delete"]:
                    fname = function_name(table, column, action)
                    self.functions[fname] = action