Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0033616
TypeCategorySeverityReproducibilityDate SubmittedLast Update
backport[Retail Modules] Web POSmajorhave not tried2016-06-05 15:122016-08-18 11:48
ReportershuehnerView Statuspublic 
Assigned ToRetail 
PrioritynormalResolutionfixedFixed in VersionRR16Q2.2
StatusclosedFix in branchFixed in SCM revision504b62d53b98
ProjectionnoneETAnoneTarget VersionRR16Q2.2
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Toguilleaer
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0033616: OrderLoader: Inefficient check for m_locator doing 2-3 queries for the same

DescriptionOrderLoader is querying m_locator (for order.getWarehouse()) essentially up to 3 times

1.) just after 'if (createShipment)' to see if none are present and error out
2.) a few lines later in call to createShipment doing .count() to check if exactly one is present
3.) then just after that said count another .uniqueResult() to retrieve that 'exactly one'

All those can be done with a single sql.
Steps To ReproduceTrace SQL done by OrderLoader.
Proposed SolutionReplace all 3 calls by single query.

Adding simple .setMaxResults(2) and .list() gives us all the info we need and the limit 2 avoids ever reading >2 rows into memory.

Note: Even while only wanting .count()==1 and reading single row we need to use a limit of 2 to distinguish the count=1 or count>1 case.

As we only care about count being exactly 1 (or not) we do not need to do proper count for any values >1 to the limit 2 does the trick nicely.

TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
blocks defect 0033139 closedmario_castello OrderLoader: Inefficient check for m_locator doing 2-3 queries for the same 

-  Notes
(0089188)
hgbot (developer)
2016-08-17 21:49

Repository: retail/backports/3.0RR16Q2.2/org.openbravo.retail.posterminal
Changeset: 504b62d53b98648654163bb4b1fb7560c8c2b57e
Author: Mario Castello <mario.castello <at> peoplewalking.com>
Date: Wed Aug 03 14:28:43 2016 -0600
URL: http://code.openbravo.com/retail/backports/3.0RR16Q2.2/org.openbravo.retail.posterminal/rev/504b62d53b98648654163bb4b1fb7560c8c2b57e [^]

Fixed issue 0033616: Replace the sames query for m_locator in orderloader class for only one query

---
M src/org/openbravo/retail/posterminal/OrderLoader.java
---

- Issue History
Date Modified Username Field Change
2016-08-03 14:26 marvintm Type defect => backport
2016-08-03 14:26 marvintm Target Version => RR16Q2.2
2016-08-17 21:49 hgbot Checkin
2016-08-17 21:49 hgbot Note Added: 0089188
2016-08-17 21:49 hgbot Status scheduled => resolved
2016-08-17 21:49 hgbot Resolution open => fixed
2016-08-17 21:49 hgbot Fixed in SCM revision => http://code.openbravo.com/retail/backports/3.0RR16Q2.2/org.openbravo.retail.posterminal/rev/504b62d53b98648654163bb4b1fb7560c8c2b57e [^]
2016-08-18 11:48 guilleaer Review Assigned To => guilleaer
2016-08-18 11:48 guilleaer Status resolved => closed
2016-08-18 11:48 guilleaer Fixed in Version => RR16Q2.2


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker