-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Please find enclosed a patch that implement/use the PosgreSQL "LIMIT" keyword in PostgreSQLAdaptor.
Best regards. Thierry (aka BeFree). -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkm9csEACgkQe80ldkiJNIawJwCgqKDCRNIDBFTfeWIwWGBDxkUX W58AoKXmQ0jKuMSLTZIH5gaHr2oydC1E =NCFg -----END PGP SIGNATURE-----
Index: EOAdaptors/PostgreSQLAdaptor/PostgreSQLExpression.m =================================================================== --- EOAdaptors/PostgreSQLAdaptor/PostgreSQLExpression.m (révision 28078) +++ EOAdaptors/PostgreSQLAdaptor/PostgreSQLExpression.m (copie de travail) @@ -375,7 +375,50 @@ { return @"FOR UPDATE"; } +// ******************************************************************************************* +// Begin thierry.delha...@gmail.com (aka BeFree) additions +// ** +// +// mimic the lockClause method but for the LIMIT keyword +// +// ** +- (NSString *)limitClause +{ + return @"LIMIT"; +} +// ** +// +// overload the based implementation (EOSQLExpression) to handle fetchLimit with the postgreSQL "LIMIT" clause. +// +// ** +- (void)prepareSelectExpressionWithAttributes: (NSArray *)attributes + lock: (BOOL)flag + fetchSpecification: (EOFetchSpecification *)fetchSpecification +{ + unsigned limit = 0; + + // first call super since the LIMIT keyword by convention is allways add at the end of the statement. So we can let + // the default implementation do the job and add to the end of the statement the "limit" keyword if required + + [super prepareSelectExpressionWithAttributes:attributes lock:flag fetchSpecification:fetchSpecification]; + + if( fetchSpecification ) + { + limit = [fetchSpecification fetchLimit]; + if (limit != 0 ) + { + // this means LIMIT + // so get the statement + NSString* newStatement = [NSString stringWithFormat:@"%@ %@ %u",[self statement],[self limitClause],limit]; + [self setStatement:newStatement]; + } + } +} + + +// end thierry.delha...@gmail.com additions +// ******************************************************************************************* - (NSString *)assembleSelectStatementWithAttributes: (NSArray *)attributes lock: (BOOL)lock qualifier: (EOQualifier *)qualifier
_______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org http://lists.gnu.org/mailman/listinfo/gnustep-dev