Hi,
As I understand, if you want to do a
select Userid from Users;
With peer, You just write:
criteria.addSelectColumn("Users.USERID");
BasePeer.doSelect(criteria);
Then you may wonder how turbine knows which table to use. BasePeer will get
the table name from the string before the dot.
it will send a:
select Users.Userid from Users;
to database.
Now consider you want to do a
select count(Userid) from Users;
If you do it this way:
criteria.addSelectColumn("Users.count(USERID)");
BasePeer will send select Users.count(USERID) from Users; to
database. This is illigue to any database.
If you do it this way:
criteria.addSelectColumn("count(USERID)");
Base Peer will never know which table you are using.
So I provide a solution is:
criteria.addSelectColumn("count(Users.USERID)");
With my change to BasePeer, the result will be : select
count(Users.Userid) from Users;
Now the problem solve. The same problem will also happened to min() Max()
functions.
Do you think it is a problem and do you have any better solution?
Regards
fanyun
----- Original Message -----
From: "John McNally" <[EMAIL PROTECTED]>
To: "Turbine" <[EMAIL PROTECTED]>
Sent: Tuesday, August 15, 2000 1:01 AM
Subject: Re: a change to BasePeer.
> Can you explain why this is not handled better by BasePeer.executeQuery?
>
> ----- Original Message -----
> From: fanyun <[EMAIL PROTECTED]>
> To: Turbine <[EMAIL PROTECTED]>
> Sent: Sunday, August 13, 2000 8:35 AM
> Subject: a change to BasePeer.
>
>
> > Hi all:
> >
> > Today, I want to do a
> >
> > select count(*) from Users;
> >
> > by using peer.
> >
> > But I was stopped. After study, I find Peer get table name from the
first
> > part of Column name. That means if I should pass Users.UserName into
> peer,
> > peer will get the table name and send:
> >
> > select Users.Username from Users;
> >
> > Now
> >
> > 1. if I pass count(*) to peer, peer do not know which table to use
> > 2. if I pass Users.count(*) to peer, peer will send
> > select Users.count(*) from Users;
> > This is illugae to any database.
> >
> > Of cause I can just select something from the table and count the
returns,
> > but I think it is a waste of system resource, and will slow down the
> > performance. And if using max() min .... functions, we will again
met
> > this problem.
> >
>
> --------------------------------------------------------------------------
> --
> > -----------------------------------------------
> > Solution: I changed BasePeer
> >
> > function name:
> > public static String createQueryString( Criteria criteria ) throws
> > Exception
> >
> >
> >
> > for (int i=0; i<select.size(); i++)
> > {
> > String columnName = select.get(i);
> > selectClause.add(columnName);
> >
> > int braceplace = columnName.indexOf('(');
> > if(braceplace == -1)
> >
> >
> >
> > fromClause.add(columnName.substring(0,columnName.indexOf('.') ));
> > }
> > else
> > {
> >
> >
>
fromClause.add(columnName.substring(braceplace+1,columnName.indexOf('.') ));
> > }
> > }
> >
> > Now you can just pass: count(Users.UserID) into peer. Peer will get
> the
> > table name and send
> >
> > select count(Users.Userid) from Users;
> >
> >
> > This works, and for min, max it also works
> >
>
> --------------------------------------------------------------------------
> --
> > --
> >
> > This is my first time contribute a small change, will you take this
> > change???
> >
> > Vote + 1
> >
> >
> > Regards
> >
> > fanyun
> >
> >
> >
> >
> > ------------------------------------------------------------
> > To subscribe: [EMAIL PROTECTED]
> > To unsubscribe: [EMAIL PROTECTED]
> > Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
> > Problems?: [EMAIL PROTECTED]
> >
>
>
>
> ------------------------------------------------------------
> To subscribe: [EMAIL PROTECTED]
> To unsubscribe: [EMAIL PROTECTED]
> Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
> Problems?: [EMAIL PROTECTED]
>
------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?: [EMAIL PROTECTED]