Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/Bold/Persistence    [ Add a report in this area ]  
Report #:  3325   Status: Closed
EvaluateInPS = False should partially evaluate in PS
Project:  Delphi Build #:  4.453
Version:    7.0 Submitted By:   Peter Morris
Report Type:  Suggestion / Enhancement Request Date Reported:  1/13/2003 9:28:29 AM
Severity:    Commonly encountered problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All platforms Internal Tracking #:   153308
Resolution: Won't Do (Resolution Comments) Resolved in Build: : 7.0.4.453
Duplicate of:  None
Voting and Rating
Overall Rating: (5 Total Ratings)
4.60 out of 5
Total Votes: 13
Description
Customer.AllInstances->Select(name.sqlLikeCaseInsensitive('JONES%'))

This will do something like

"Select Bold_ID from Customer"

And then every object in the list which isn't loaded will be loaded, finally a list of objects will be returned from the objects in memory where the name LIKE "JONES%"

If you have a million objects in the table (for the sake of exaggeration) then loading all of these objects would take too long.  

I propose that when fetching new IDs from the database the persistence performs as many qualifications in the PS as possible so that less object IDs are returned, therefore saving bandwidth + time.

NOTE: This is different to EvaluateInPS = True as EvaluateInPS = True will return non-matching objects from memory if an object has been modified and not saved to the PS.
Steps to Reproduce:
None
Workarounds
None
Attachment
None
Comments

Peter Morris at 1/17/2003 9:23:32 AM -
If you vote, don't forget to rate too!

Jeff Overcash (TeamB) at 1/22/2003 1:39:17 PM -
There is no need to rate once is is submitted internally.  Rating helps triage bugs and once it is internal no more need to rate.

Paul Ericksen at 1/23/2003 1:48:44 PM -
In description:
<<I propose that when fetching new IDs from the database the persistence performs as many qualifications in the PS as possible so that less object IDs are returned, therefore saving bandwidth + time.>>

Not to mention all of the unnecessary object creations (processing and memory usage), data reads to populate the objects, iterations through the list just to find out that only 3 of the 30,000 were actually needed.

Peter Morris at 2/7/2003 4:09:43 AM -
I agree :-)

Hopefully this will be a good candidate for inclusion.  I think it is a very good idea indeed!

Kjell Rilbe at 4/24/2006 10:06:55 PM -
What is it that makes this so darn difficult and/or (personnel) resource consuming to fix? It would make a huge diff in a lot of cases. You don't have to create a perfect implementation, but EACH AND EVERY step towards perfect would be beneficial.

In other words: identify some simple cases and implement those. Leave the rest for later/never.

Server Response from: ETNACODE01