Files
gexp/debug_query.py
T

41 lines
1.4 KiB
Python

import sqlite3
conn = sqlite3.connect('data/realestate.db')
conn.row_factory = sqlite3.Row
# All documents
rows = conn.execute('''
SELECT d.id, d.person_id, d.request_number, d.search_scope, d.page_info,
d.page_number, d.pdf_group_id, d.status,
p.first_name, p.family_name
FROM documents d
LEFT JOIN persons p ON p.id = d.person_id
ORDER BY d.id
''').fetchall()
print("=== ALL documents ===")
for r in rows:
d = dict(r)
print("id=%s status=%s person_id=%s req=%r scope=%r page_info=%r pdf=%r name=%s %s" % (
d['id'], d['status'], d['person_id'], d['request_number'],
d['search_scope'], d['page_info'], d['pdf_group_id'],
d['first_name'], d['family_name']))
# Persons
print("\n=== Persons ===")
persons = conn.execute('SELECT id, first_name, father_name, family_name FROM persons ORDER BY id').fetchall()
for p in persons:
d = dict(p)
print("id=%s %s %s %s" % (d['id'], d['first_name'], d['father_name'], d['family_name']))
# Potential duplicate persons
print("\n=== Potential duplicate persons ===")
dups = conn.execute('''
SELECT p1.id AS pid1, p2.id AS pid2, p1.first_name, p1.family_name
FROM persons p1
JOIN persons p2 ON p1.id < p2.id
AND p1.first_name = p2.first_name
AND COALESCE(p1.family_name,'') = COALESCE(p2.family_name,'')
''').fetchall()
for d in dups:
print(dict(d))