You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by "parthasarathy (JIRA)" <ji...@apache.org> on 2006/10/09 10:11:20 UTC

[jira] Created: (TORQUE-57) escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases

escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases
-----------------------------------------------------------------------------------------------------------

                 Key: TORQUE-57
                 URL: http://issues.apache.org/jira/browse/TORQUE-57
             Project: Torque
          Issue Type: Bug
          Components: Runtime
    Affects Versions: 3.2.1
         Environment: All OS, All hardware, Oracle Data base
            Reporter: parthasarathy
            Priority: Minor


Oracle uses escape characters for interpreting certain special characters like "_" literally. However the escapeText() method in 
org.apache.torque.adapter.DBOracle class returns false. The value returned by this method is used by the SqlExpression.quoteAndEscape method. As the escapeText method returns false a where clause condition: like 'abc\_%' will get translated to: like 'abc\%' (note the missing "_") in the SQLExpression.buildLike method. Sybase and SQL Server also has the same Escape behavior but the escapeText() method in DBSybase and DBMSSQL returns true.

Below is a copy of the source code in DBOracle.
    /**
     * This method is for the SqlExpression.quoteAndEscape rules.  The rule is,
     * any string in a SqlExpression with a BACKSLASH will either be changed to
     * "\\" or left as "\".  SapDB does not need the escape character.
     *
     * @return false.
     */
    public boolean escapeText()
    {
        return false;
    }

The usecase I am trying out is one where a column in the table queried has values 'abc' and    'a_c'. I need to query the record that has the column value as 'a_c'. If I issue a query without escapecharacters (where <column> like 'a_%' ) both the rows are returned. I need to  provide a where clause with the condition as <column> like 'a\_%' to get the correct record (also need to add ESCAPE keyword to the query). However, because escapeText returns false, the criteria value gets built wrongly in the buildLike method of SQLExpression class.. (the method returns 'a\%'). If escapeText returns true this problem will be solved (ESCAPE keyword addition needs to be tackled separately also).

information regarding escape characters in Oracle http://www.dba-oracle.com/tips_oracle_escape_characters.htm


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


[jira] Closed: (TORQUE-57) escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases

Posted by "Thomas Vandahl (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/TORQUE-57?page=all ]

Thomas Vandahl closed TORQUE-57.
--------------------------------


> escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: TORQUE-57
>                 URL: http://issues.apache.org/jira/browse/TORQUE-57
>             Project: Torque
>          Issue Type: Bug
>          Components: Runtime
>    Affects Versions: 3.2
>         Environment: All OS, All hardware, Oracle Data base
>            Reporter: parthasarathy
>         Assigned To: Thomas Fischer
>            Priority: Minor
>             Fix For: 3.3
>
>
> Oracle uses escape characters for interpreting certain special characters like "_" literally. However the escapeText() method in 
> org.apache.torque.adapter.DBOracle class returns false. The value returned by this method is used by the SqlExpression.quoteAndEscape method. As the escapeText method returns false a where clause condition: like 'abc\_%' will get translated to: like 'abc\%' (note the missing "_") in the SQLExpression.buildLike method. Sybase and SQL Server also has the same Escape behavior but the escapeText() method in DBSybase and DBMSSQL returns true.
> Below is a copy of the source code in DBOracle.
>     /**
>      * This method is for the SqlExpression.quoteAndEscape rules.  The rule is,
>      * any string in a SqlExpression with a BACKSLASH will either be changed to
>      * "\\" or left as "\".  SapDB does not need the escape character.
>      *
>      * @return false.
>      */
>     public boolean escapeText()
>     {
>         return false;
>     }
> The usecase I am trying out is one where a column in the table queried has values 'abc' and    'a_c'. I need to query the record that has the column value as 'a_c'. If I issue a query without escapecharacters (where <column> like 'a_%' ) both the rows are returned. I need to  provide a where clause with the condition as <column> like 'a\_%' to get the correct record (also need to add ESCAPE keyword to the query). However, because escapeText returns false, the criteria value gets built wrongly in the buildLike method of SQLExpression class.. (the method returns 'a\%'). If escapeText returns true this problem will be solved (ESCAPE keyword addition needs to be tackled separately also).
> information regarding escape characters in Oracle http://www.dba-oracle.com/tips_oracle_escape_characters.htm

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


[jira] Updated: (TORQUE-57) escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases

Posted by "Thomas Fischer (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/TORQUE-57?page=all ]

Thomas Fischer updated TORQUE-57:
---------------------------------

    Affects Version/s: 3.2
                           (was: 3.2.1)

> escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: TORQUE-57
>                 URL: http://issues.apache.org/jira/browse/TORQUE-57
>             Project: Torque
>          Issue Type: Bug
>          Components: Runtime
>    Affects Versions: 3.2
>         Environment: All OS, All hardware, Oracle Data base
>            Reporter: parthasarathy
>         Assigned To: Thomas Fischer
>            Priority: Minor
>             Fix For: 3.2.1
>
>
> Oracle uses escape characters for interpreting certain special characters like "_" literally. However the escapeText() method in 
> org.apache.torque.adapter.DBOracle class returns false. The value returned by this method is used by the SqlExpression.quoteAndEscape method. As the escapeText method returns false a where clause condition: like 'abc\_%' will get translated to: like 'abc\%' (note the missing "_") in the SQLExpression.buildLike method. Sybase and SQL Server also has the same Escape behavior but the escapeText() method in DBSybase and DBMSSQL returns true.
> Below is a copy of the source code in DBOracle.
>     /**
>      * This method is for the SqlExpression.quoteAndEscape rules.  The rule is,
>      * any string in a SqlExpression with a BACKSLASH will either be changed to
>      * "\\" or left as "\".  SapDB does not need the escape character.
>      *
>      * @return false.
>      */
>     public boolean escapeText()
>     {
>         return false;
>     }
> The usecase I am trying out is one where a column in the table queried has values 'abc' and    'a_c'. I need to query the record that has the column value as 'a_c'. If I issue a query without escapecharacters (where <column> like 'a_%' ) both the rows are returned. I need to  provide a where clause with the condition as <column> like 'a\_%' to get the correct record (also need to add ESCAPE keyword to the query). However, because escapeText returns false, the criteria value gets built wrongly in the buildLike method of SQLExpression class.. (the method returns 'a\%'). If escapeText returns true this problem will be solved (ESCAPE keyword addition needs to be tackled separately also).
> information regarding escape characters in Oracle http://www.dba-oracle.com/tips_oracle_escape_characters.htm

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


[jira] Resolved: (TORQUE-57) escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases

Posted by "Thomas Fischer (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/TORQUE-57?page=all ]

Thomas Fischer resolved TORQUE-57.
----------------------------------

    Fix Version/s: 3.2.1
       Resolution: Fixed
         Assignee: Thomas Fischer

Fixed in SVN. The ESCAPE clause problem is also fixed.

> escapeText() method in DBOracle returns false but escape characters are required in Oracle in certain cases
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: TORQUE-57
>                 URL: http://issues.apache.org/jira/browse/TORQUE-57
>             Project: Torque
>          Issue Type: Bug
>          Components: Runtime
>    Affects Versions: 3.2.1
>         Environment: All OS, All hardware, Oracle Data base
>            Reporter: parthasarathy
>         Assigned To: Thomas Fischer
>            Priority: Minor
>             Fix For: 3.2.1
>
>
> Oracle uses escape characters for interpreting certain special characters like "_" literally. However the escapeText() method in 
> org.apache.torque.adapter.DBOracle class returns false. The value returned by this method is used by the SqlExpression.quoteAndEscape method. As the escapeText method returns false a where clause condition: like 'abc\_%' will get translated to: like 'abc\%' (note the missing "_") in the SQLExpression.buildLike method. Sybase and SQL Server also has the same Escape behavior but the escapeText() method in DBSybase and DBMSSQL returns true.
> Below is a copy of the source code in DBOracle.
>     /**
>      * This method is for the SqlExpression.quoteAndEscape rules.  The rule is,
>      * any string in a SqlExpression with a BACKSLASH will either be changed to
>      * "\\" or left as "\".  SapDB does not need the escape character.
>      *
>      * @return false.
>      */
>     public boolean escapeText()
>     {
>         return false;
>     }
> The usecase I am trying out is one where a column in the table queried has values 'abc' and    'a_c'. I need to query the record that has the column value as 'a_c'. If I issue a query without escapecharacters (where <column> like 'a_%' ) both the rows are returned. I need to  provide a where clause with the condition as <column> like 'a\_%' to get the correct record (also need to add ESCAPE keyword to the query). However, because escapeText returns false, the criteria value gets built wrongly in the buildLike method of SQLExpression class.. (the method returns 'a\%'). If escapeText returns true this problem will be solved (ESCAPE keyword addition needs to be tackled separately also).
> information regarding escape characters in Oracle http://www.dba-oracle.com/tips_oracle_escape_characters.htm

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org