[ 
https://issues.apache.org/jira/browse/TORQUE-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590344#action_12590344
 ] 

Thomas Fischer commented on TORQUE-113:
---------------------------------------

Regarding case insensitivity: It is a lot of work to make Torque aware whether 
the underlying db is case sensitive or not. One example is mysql: On Windows it 
is case insensitive, on linux Database names and table names are case sensitve, 
but column names are not. 

The thing which has changed is that in earlier Torque versions, the column name 
constant used in the Peer class was case-converted, now it uses the exact case 
from the schema. So if the constants from the Peer class are used (which is the 
recommended way) , everything will work, but if  own column name constants are 
created, things may not work, depending on the case of the column names in the 
schema..

> doDelete with invalid column should throw exception, not delete all rows
> ------------------------------------------------------------------------
>
>                 Key: TORQUE-113
>                 URL: https://issues.apache.org/jira/browse/TORQUE-113
>             Project: Torque
>          Issue Type: Bug
>          Components: Runtime
>    Affects Versions: 3.3
>            Reporter: Julian Zinn
>             Fix For: 3.3, 4.0
>
>
> The following (incorrect) client code should cause an exception to be thrown. 
>  Instead of an exception, all rows in table T1 are deleted.
> {code}
> T1Peer.doDelete(new Criteria().add(T2Peer.COL, 2));
> {code}
> This code appeared in a project I am working on.  The intent was to delete 
> rows from table T2.
> Before the fix for TORQUE-93, this code had the intended effect becaue 
> {{T1Peer.doDelete(criteria)}} just passed the criteria object to 
> {{BasePeer.doDelete(criteria)}}.  Since the only reference BasePeer had to a 
> table was table T2 in the criteria, only rows in table T2 were deleted.
> Now that {{T1Peer.doDelete(criteria)}} calls {{BasePeer.doDelete(criteria, 
> TABLE_NAME)}} instead, the test {{if (crit.containsKey(key))}} in 
> {{BasePeer.processTables()}} always fails.  This leads to an empty where 
> clause, causing all rows in table T1 to be deleted.
> *Expect*: All Criterion objects in a Criteria should be used in the final 
> where clause.  If not, an exception should be thrown.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to