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

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0033615
TypeCategorySeverityReproducibilityDate SubmittedLast Update
backport[Retail Modules] Web POSmajorhave not tried2016-06-05 15:122016-08-25 12:46
ReportershuehnerView Statuspublic 
Assigned Tomario_castello 
PrioritynormalResolutionfixedFixed in VersionRR16Q3.1
StatusclosedFix in branchFixed in SCM revisionfdaba9517428
ProjectionnoneETAnoneTarget VersionRR16Q3.1
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

0033615: 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
(0089189)
hgbot (developer)
2016-08-17 21:52

Repository: retail/backports/3.0RR16Q3.1/org.openbravo.retail.posterminal
Changeset: fdaba951742836c005c827cdb27d6e5575f592b4
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.0RR16Q3.1/org.openbravo.retail.posterminal/rev/fdaba951742836c005c827cdb27d6e5575f592b4 [^]

Fixed issue 0033615: 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 => RR16Q3
2016-08-04 11:25 marvintm Target Version RR16Q3 => RR16Q3.1
2016-08-17 10:38 guilleaer Assigned To Retail => mario_castello
2016-08-17 21:52 hgbot Checkin
2016-08-17 21:52 hgbot Note Added: 0089189
2016-08-17 21:52 hgbot Status scheduled => resolved
2016-08-17 21:52 hgbot Resolution open => fixed
2016-08-17 21:52 hgbot Fixed in SCM revision => http://code.openbravo.com/retail/backports/3.0RR16Q3.1/org.openbravo.retail.posterminal/rev/fdaba951742836c005c827cdb27d6e5575f592b4 [^]
2016-08-25 12:46 guilleaer Review Assigned To => guilleaer
2016-08-25 12:46 guilleaer Status resolved => closed
2016-08-25 12:46 guilleaer Fixed in Version => RR16Q3.1


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker