summaryrefslogtreecommitdiff
path: root/dedup/utils.py
blob: e163a00322b93a8384b83b726406f7e2b3cfd883 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from debian.debian_support import version_compare
import sqlalchemy.event

def fetchiter(cursor):
    rows = cursor.fetchmany(1024)
    while rows:
        for row in rows:
            yield row
        rows = cursor.fetchmany(1024)

def enable_sqlite_foreign_keys(engine):
    if engine.dialect.name != "sqlite":
        return
    @sqlalchemy.event.listens_for(engine, "connect")
    def pragma_foreign_keys(connection, _):
        connection.execute("PRAGMA foreign_keys=ON;")

def sqlite_add_version_compare(engine):
    if engine.dialect.name != "sqlite":
        return
    @sqlalchemy.event.listens_for(engine, "connect")
    def add_version_compare(connection, _):
        connection.create_collation("debian_version", version_compare)
        connection.create_function("debian_version_compare", 2, version_compare)