def _trans_execute(self, trans_conn, sql, sql_params=None):
        formatted_sql = format_sql(sql, sql_params)

        if not self.skip_log:
            self.logger.debug('[POSTGRESQL] Trans Query `{}`'.format(re.sub('\s+', ' ', formatted_sql, flags=re.M)))

        if not trans_conn:
            raise Exception('Transaction not started')

        conn = trans_conn['conn']
        cur  = trans_conn['cur']

        count  = cur.execute(formatted_sql)
        db_res = cur.fetchall()

        db_res = to_db_res_dict(cur, db_res)
        return list(db_res), count
예제 #2
0
    def _execute(self, sql, sql_params=None):
        formatted_sql = format_sql(sql, sql_params)

        if not self.skip_log:
            self.logger.debug('[POSTGRESQL] {}'.format(
                re.sub('\s+', ' ', formatted_sql, flags=re.M)))

        conn = None
        cur = None

        try:
            conn = self.client.connection()
            cur = conn.cursor()

            count = cur.execute(formatted_sql)
            db_res = cur.fetchall()

        except Exception as e:
            for line in traceback.format_exc().splitlines():
                self.logger.error(line)

            if conn:
                conn.rollback()

            raise

        else:
            conn.commit()

            db_res = to_db_res_dict(cur, db_res)
            return list(db_res), count

        finally:
            if cur:
                cur.close()

            if conn:
                conn.close()