• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: FetchSpec setFetchLimit??
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FetchSpec setFetchLimit??


  • Subject: Re: FetchSpec setFetchLimit??
  • From: Mark Gowdy <email@hidden>
  • Date: Mon, 12 Jul 2010 16:27:15 +0100


On 2 Mar 2009, at 23:43, Chuck Hill wrote:


On Mar 2, 2009, at 1:42 PM, Kieran Kelleher wrote:

I always thought that EOFetchSpecification.setFetchLimit( int n) would generate SQL with LIMIT n tacked onto the end of the SQL statement, but it appears not to.

This is the default behavior as not all databases implement this. Specific plugins add this, IIRC.


Chuck


Hi guys,

I have just stumbled into the same issue here:

I need to fetch the latest item from a table in a MySQL database, where there are almost half a million items
I thought that fetchSpec.setFetchLimit(1) would tell the DB to do the hard work, but this appears not to be the case.
Consequently, my app is exploding with 'out of memory' issues.


Is there a work around for this problem (some plug-in I am unaware of), or do I need to get creative with raw-rows?

A solution would be good, because I was using these all over the place (without knowledge of the consequences)

Thanks again,

Mark


Instead it fetches the all qualifying records and does the LIMIT in memory?! Has this always been the case .... or is it just the MySQL driver?

For example:

<snip>
// Fetch the most recent shipped message
ERXSortOrderings s = CTMessage.XKEY_OID.descs();

ERXFetchSpecification<CTMessage> fs = new ERXFetchSpecification<CTMessage>(CTMessage.ENTITY_NAME,null,s);

fs.setFetchLimit(1);

System.out.println("MailingAddressUtilitiesTests.suppressionTest (): fs.SQL = " + ERXEOAccessUtilities.sqlForFetchSpecification(ec, fs));

NSArray<CTMessage> objects = fs.fetchObjects(ec);
</snip>


..... generates the following SQL without "LIMIT 1" !!!

SELECT t0.oid, t0.oidcampaign, t0.oiddatarecord, t0.oidjob, t0.oidlocation, t0.oidmediatemplate, t0.recaddtime, t0.recadduser, t0.recmodtime, t0.recmoduser, RTRIM(t0.workflowstate) FROM message t0 ORDER BY t0.oid DESC;
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40global-village.net


This email sent to email@hidden


-- Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: FetchSpec setFetchLimit??
      • From: Kieran Kelleher <email@hidden>
  • Prev by Date: Single Table Inheritance and Multiple Queries
  • Next by Date: Re: FetchSpec setFetchLimit??
  • Previous by thread: Re: Single Table Inheritance and Multiple Queries SOLVED
  • Next by thread: Re: FetchSpec setFetchLimit??
  • Index(es):
    • Date
    • Thread