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]