Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
ID | ||||||||
0033616 | ||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||
backport | [Retail Modules] Web POS | major | have not tried | 2016-06-05 15:12 | 2016-08-18 11:48 | |||
Reporter | shuehner | View Status | public | |||||
Assigned To | Retail | |||||||
Priority | normal | Resolution | fixed | Fixed in Version | RR16Q2.2 | |||
Status | closed | Fix in branch | Fixed in SCM revision | 504b62d53b98 | ||||
Projection | none | ETA | none | Target Version | RR16Q2.2 | |||
OS | Any | Database | Any | Java version | ||||
OS Version | Database version | Ant version | ||||||
Product Version | SCM revision | |||||||
Merge Request Status | ||||||||
Review Assigned To | guilleaer | |||||||
OBNetwork customer | No | |||||||
Support ticket | ||||||||
Regression level | ||||||||
Regression date | ||||||||
Regression introduced in release | ||||||||
Regression introduced by commit | ||||||||
Triggers an Emergency Pack | No | |||||||
Summary | 0033616: OrderLoader: Inefficient check for m_locator doing 2-3 queries for the same | |||||||
Description | OrderLoader 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 Reproduce | Trace SQL done by OrderLoader. | |||||||
Proposed Solution | Replace 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. | |||||||
Tags | No tags attached. | |||||||
Attached Files | ||||||||
![]() |
||||||||
|
![]() |
|
(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 --- |
![]() |
|||
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 |