示例#1
0
 def agg_table_ispresent(self):
     """Check if the agg table is present
     """
     qry = self.backend.sql_table_exists()
     params = (self.table_name,)
     res = dbcommands.lookup(qry,
                             params=params,
                             database=self.database)
     return res
示例#2
0
    def trigger_on_table_is_present(self, trgname):
        """Check if a trigger is present on a table

        Return False is the trigger does not exists

        trganme : (string) trigger name
        """

        qry = self.backend.sql_trigger_on_table_exists()
        params = (trgname, self.table)
        res = dbcommands.lookup(qry, params=params, database=self.database)
        return res
示例#3
0
    def triggers_on_table_are_present(self):
        """Check if the triggers are present in database
        """
        res = []
        qry = self.backend.sql_trigger_on_table_exists()

        for trig in self.triggers_name:
            params = (trig, self.table)
            res.append((trig, dbcommands.lookup(qry,
                                                params=params,
                                                database=self.database)))
        return res
示例#4
0
 def get_nb_tuples(self):
     """
     Remplissage de la table technique avec les données existantes
     """
     sql = self.backend.sql_nb_tuples()
     params = (self.table,)
     if self.verbose > 2:
         msg = "[SQL] %s\n" % (dbcommands.mogrify(sql,
                                                  params=params,
                                                  database=self.database))
         sys.stdout.write(msg)
     res = dbcommands.lookup(sql, params=params, database=self.database)
     return res
示例#5
0
    def column_typname(self):
        """Lookup for a column type

        Depending on backend.sql_get_column_typname()[1] we need to
        parse the result or not
        """
        (qry, parsefunc) = self.backend.sql_get_column_typname()
        params = (self.table, self.column)
        res = dbcommands.lookup(qry,
                                params=params,
                                database=self.database)
        if parsefunc is None:
            return res
        else:
            return eval("self.backend.%s('%s', '%s')" % (parsefunc,
                                                         res,
                                                         self.column))
示例#6
0
    def functions_are_present(self):
        """Check if the functions are present in database
        """
        res = []
        qry = self.backend.sql_trigger_function_on_table_exists()
        functions = []
        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(self.table, self.column,
                                              action, key=agg_key)
                        functions.append(fname)
            else:
                for fname in self.functions_name:
                    functions.append(fname)

        for func in functions:
            params = (func[:-2], self.table)
            res.append((func, dbcommands.lookup(qry,
                                                params=params,
                                                database=self.database)))
        return res