I think I need to look at the OJB code more closely.  I am not understanding if 
what I am trying below will work or not.  I am not sure if my code will break 
yet and don't want surprises because I have a large application already working 
in production using OJB.   I guess as I originally said, this is a common long 
term post on this board.  I should try to learn how to implement it so people 
can use.

Thank you very much Jakob for explaining.

JohnE



----- Original Message -----
From: Jakob Braeuchi <[EMAIL PROTECTED]>
Date: Friday, November 12, 2004 11:20 am
Subject: Re: LIMIT timeframe?

> hi john,
> 
> to implement the LIMIT is not too complicated but to make it 
> really work for 
> extents is a bit harder.
> imo you should use the platform for db-specific stuff.
> 
> jakob
> 
> [EMAIL PROTECTED] schrieb:
> > Thank you for your post Jakob.  It sounds like a bit of an 
> effort.  I was thinking based on other code perviously posted on 
> the board to get around the problem that it might be a bit easier. 
>  I was about to test code people placed on the board previously 
> to get around the problem.  I am not sure based on your words if 
> it should work?   I will try testing it tonight, but I am a bit 
> nervous it might run me into problems in the future now.   Here is 
> the database specific code:
> > 
> > 
> > import 
> org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl;> 
> import org.apache.ojb.broker.metadata.ClassDescriptor;
> > import org.apache.ojb.broker.platforms.Platform;
> > import org.apache.ojb.broker.query.Query;
> > 
> > public class MySqlStatementGenerator extends SqlGeneratorDefaultImpl
> > {
> > 
> >     public MySqlStatementGenerator(Platform pf)
> >     {
> >         super(pf);
> >     }
> > 
> >     public String getPreparedSelectStatement(Query query, 
> ClassDescriptor cld)
> >     {
> >         String result = super.getPreparedSelectStatement(query, 
> cld);>         return addOffsetLimit(query, result);
> >     }
> > 
> >     public String getSelectStatementDep(Query query, 
> ClassDescriptor cld)
> >     {
> >         String result = super.getSelectStatementDep(query, cld);
> >         return addOffsetLimit(query, result);
> >     }
> > 
> >     private String addOffsetLimit(Query q, String stmt)
> >     {
> >         int startIndex = q.getStartAtIndex();
> >         int endIndex = q.getEndAtIndex();
> > 
> >         if (endIndex > 0)
> >         {
> >             if (startIndex < 0 || startIndex >= endIndex)
> >             {
> >                 startIndex = 0;
> >             }
> > 
> >             stmt += " LIMIT " + (endIndex - startIndex);
> >         }
> > 
> >         if (startIndex > 0)
> >         {
> >             stmt += " OFFSET " + startIndex;
> >         }
> >         return stmt;
> >     }
> > 
> > }
> > 
> > 
> > 
> > Thank you for your ideas.
> > 
> > JohnE
> > 
> > 
> > 
> > 
> > 
> > 
> >>hi john,
> >>
> >>to be hones, my version of the sql-limit stuff was rather basic 
> >>and didn't work 
> >>correctly for extents.
> >>before we can really use the sql-LIMIT we'll have to change ojb 
> to 
> >>use a 
> >>_single_ query for all extents (using the UNION clause). with 
> the 
> >>current 
> >>solution using one select for each extent the LIMIT-clause is 
> not 
> >>useful.
> >>example:
> >>
> >>-ojb current version:
> >>select * from person where ... limit ...
> >>select * from musicians where ... limit ...
> >>
> >>-future version:
> >>select * from person where ...
> >>union
> >>select * from musicians where ...
> >>limit ...
> >>
> >>jakob
> >>
> >>[EMAIL PROTECTED] schrieb:
> >>
> >>>Hey all.  Thank you for great project.
> >>>
> >>>I am very excited about my site having gone live with OJB, but 
> >>
> >>there is one aspect of OJB I am really not liking to have to do 
> >>right now -- make it database specific.  It was part of my 
> >>marketing to have the platform I created be non-database 
> specific, 
> >>but that can't be for one reason.
> >>
> >>>I am looking at all the posts on the board about not having 
> >>
> >>LIMIT supported.   I need to do very large table queries but I 
> >>have to add LIMITs specific to MySQL on the query or there would 
> >>be a drastically bad performance issue.
> >>
> >>>Jakob is your LIMIT code you had working working and do you 
> >>
> >>think it might get into 1.0.2 or 1.1?  I know you have bigger 
> fish 
> >>to fry.
> >>
> >>>I don't know OJB internals well but I am trying to learn so I 
> >>
> >>can help in the future. 
> >>
> >>>JohnE
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>----------------------------------------------------------------
> -
> >>
> >>----
> >>
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>
> >>-----------------------------------------------------------------
> --
> >>--
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> > 
> > 
> > 
> > -----------------------------------------------------------------
> ----
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> 
> -------------------------------------------------------------------
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to