db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Fischer (JIRA)" <j...@apache.org>
Subject [jira] Commented: (TORQUE-113) doDelete with invalid column should throw exception, not delete all rows
Date Fri, 18 Apr 2008 09:02:21 GMT

    [ 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: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


Mime
View raw message