|
@@ -0,0 +1,71 @@
|
|
|
+
|
|
|
+import json
|
|
|
+import sqlite3
|
|
|
+import pandas as pd
|
|
|
+import time
|
|
|
+
|
|
|
+from decoding.decoding import getVettSpec, db_results_decode_pandas, db_results_decode, db_results_decode_nodict
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+dbFile = 'corpus.db'
|
|
|
+
|
|
|
+
|
|
|
+firstQuery = "SELECT spec AS lemma, cat AS cat_gr, omo AS disambiguatore, nocc AS occ, cod FROM lem WHERE spec LIKE 'Г%' ORDER BY idlem"
|
|
|
+
|
|
|
+def secondQuery(strlist):
|
|
|
+ return f"SELECT DISTINCT lemma as codLemma, forma as codForma FROM pfl WHERE lemma IN ({strlist})"
|
|
|
+
|
|
|
+
|
|
|
+def theQuery(LIST1, LIST2):
|
|
|
+ return f'SELECT \
|
|
|
+ tab.cod, tab.ntx, tab.pitxt, tab.elemlen, tab.mappa, tab.numperiod, tab.links, tab.numorg, intbib.sigla, tab.vol, tab.pag, tab.riga, tab.col, tab.tipostanza, tab.stanza, tab.verso, tab.numbrano, lem.spec AS lemma, lem.cat AS cat_gr, lem.omo AS disambiguatore, prev_tab.pitxt AS piniz, next_tab.pitxt AS pfin, periodi.piniz AS backup_piniz, periodi.pfin AS backup_pfin \
|
|
|
+ FROM Occ00001 AS tab INNER JOIN intbib ON tab.ntx = intbib.ntx INNER JOIN lem ON tab.indlem = lem.cod LEFT JOIN Occ00001 AS prev_tab ON (tab.ntx = prev_tab.ntx AND tab.mappa = prev_tab.mappa+15) LEFT JOIN Occ00001 AS next_tab ON (tab.ntx = next_tab.ntx AND tab.mappa = next_tab.mappa-15) LEFT JOIN periodi ON (tab.ntx = periodi.ntx AND tab.numperiod = periodi.numperiod) WHERE tab.indlem IN ({LIST1}) OR (tab.indlem = 0 AND tab.cod IN ({LIST2}))'
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+def dict_factory(cursor, row):
|
|
|
+ fields = [column[0] for column in cursor.description]
|
|
|
+ return {key: value for key, value in zip(fields, row)}
|
|
|
+
|
|
|
+
|
|
|
+vettSpec = getVettSpec('decoding/')
|
|
|
+
|
|
|
+timestamp0 = time.time()
|
|
|
+with sqlite3.connect(f"file:{dbFile}?mode=ro", uri=True) as connection:
|
|
|
+ results = pd.read_sql(firstQuery, connection)
|
|
|
+ timestamp1 = time.time()
|
|
|
+ resultsb = db_results_decode_pandas(results, vettSpec)
|
|
|
+
|
|
|
+print(time.time() - timestamp0)
|
|
|
+print(timestamp1 - timestamp0)
|
|
|
+
|
|
|
+timestamp0 = time.time()
|
|
|
+with sqlite3.connect(f"file:{dbFile}?mode=ro", uri=True) as connection:
|
|
|
+ connection.row_factory = dict_factory
|
|
|
+ queryReponse = connection.cursor().execute(firstQuery)
|
|
|
+ results2 = queryReponse.fetchall()
|
|
|
+ timestamp1 = time.time()
|
|
|
+ results2b = db_results_decode(results2, vettSpec)
|
|
|
+
|
|
|
+print(time.time() - timestamp0)
|
|
|
+print(timestamp1 - timestamp0)
|
|
|
+
|
|
|
+timestamp0 = time.time()
|
|
|
+with sqlite3.connect(f"file:{dbFile}?mode=ro", uri=True) as connection:
|
|
|
+ queryReponse = connection.cursor().execute(firstQuery)
|
|
|
+ results3 = queryReponse.fetchall()
|
|
|
+ timestamp1 = time.time()
|
|
|
+ results3b = db_results_decode_nodict(results3, vettSpec)
|
|
|
+
|
|
|
+print(time.time() - timestamp0)
|
|
|
+print(timestamp1 - timestamp0)
|
|
|
+
|
|
|
+results2
|
|
|
+
|
|
|
+results3b
|
|
|
+
|