LockTables is faulty in some adapters
--------------------------------------
Key: TORQUE-16
URL: http://issues.apache.org/jira/browse/TORQUE-16
Project: Torque
Type: Bug
Components: Runtime
Versions: 3.2, 3.1.1, 3.1
Environment: mssql, oracle
Reporter: Thomas Fischer
Sent to me from Michael Beier
in some adapters (e.g mssql, sybase) lockTables is implemented as follows:
public void lockTable(Connection con, String table) throws SQLException
{
Statement statement = con.createStatement();
stmt.append("SELECT next_id FROM ")
.append(table)
.append(" FOR UPDATE");
}
Problem is that the column next_id does not exist in most tables.
Suggested is to replace this as follows:
Mssql:
{
Statement statement = con.createStatement();
StringBuffer stmt = new StringBuffer();
stmt.append("SELECT * FROM ")
.append(table)
.append(" WITH (TABLOCKX)");
statement.executeQuery(stmt.toString());
}
Oracle:
public void lockTable(Connection con, String table) throws SQLException
{
Statement statement = con.createStatement();
StringBuffer stmt = new StringBuffer();
stmt.append("SELECT * FROM ")
.append(table)
.append(" FOR UPDATE");
statement.executeQuery(stmt.toString());
}
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]