Browse Source

Merge pull request #112 from mdietrichc2c/8.0-optimize-last-rec-date

Remove un-optimized "LIMIT 1" from SQL request
pull/113/head
Pedro M. Baeza 9 years ago
parent
commit
e6315d09f9
  1. 7
      account_financial_report_webkit/account_move_line.py

7
account_financial_report_webkit/account_move_line.py

@ -47,11 +47,14 @@ class AccountMoveLine(orm.Model):
res[line.id] = {'last_rec_date': False} res[line.id] = {'last_rec_date': False}
rec = line.reconcile_id or line.reconcile_partial_id or False rec = line.reconcile_id or line.reconcile_partial_id or False
if rec: if rec:
# we use cursor in order to gain some perfs
# we use cursor in order to gain some perfs.
# also, important point: LIMIT 1 is not used due to
# performance issues when in conjonction with "OR"
# (one backwards index scan instead of 2 scans and a sort)
cursor.execute('SELECT date from account_move_line' cursor.execute('SELECT date from account_move_line'
' WHERE reconcile_id = %s' ' WHERE reconcile_id = %s'
' OR reconcile_partial_id = %s' ' OR reconcile_partial_id = %s'
' ORDER BY date DESC LIMIT 1 ',
' ORDER BY date DESC',
(rec.id, rec.id)) (rec.id, rec.id))
res_set = cursor.fetchone() res_set = cursor.fetchone()
if res_set: if res_set:

Loading…
Cancel
Save