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. 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 protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to