From: <leg...@at...> - 2003-08-27 10:38:29
|
The following comment has been added to this issue: Author: Reha CENANI Created: Wed, 27 Aug 2003 5:37 AM Body: Regarding the For Update [Of] issues: *** Common *** supportsForUpdate() --> true supportsForUpdateOf() --> true supportsForUpdateNowait() --> false *** For Firebird: *** SELECT ... [FOR UPDATE [OF col [, col ...]]] [WITH LOCK]] About optional [WITH LOCK]: Firebird is an optimistic-locking system. The need for a pessimistic lock in Firebird is very rare indeed. The addition of the optional WITH LOCK clause provides a limited explicit pessimistic locking capability for cautious use in conditions where the affected row set is a) extremely small (ideally, a singleton) and b) precisely controlled by the application code. If the WITH LOCK clause succeeds, it will secure a lock on the selected rows and prevent any other transaction from obtaining write access to any of those rows, or their dependents, until your transaction ends. If the FOR UPDATE clause is included, the lock will be applied to each row, one by one, as it is fetched into the server-side row cache. It becomes possible, then, that a lock which appeared to succeed when requested will nevertheless fail subsequently, when an attempt is made to fetch a row which becomes locked by another transaction. The SELECT... WITH LOCK construct can succeed only in a top-level, single-table SELECT statement. It is not available in a subquery specification, nor for joined sets. It cannot be specified with the DISTINCT operator, a GROUP BY clause or any other aggregating operation. It cannot be used in or with a view, nor with an external table, nor with the output of a selectable stored procedure. *** For InterBase: *** SELECT ... [FOR UPDATE [OF col [, col ...]]] --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-293 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-293 Summary: Seperating InterBase and Firebird dialects Type: Improvement Status: Unassigned Priority: Major Project: Hibernate2 Components: core Assignee: Reporter: Reha CENANI Created: Tue, 26 Aug 2003 6:46 AM Updated: Tue, 26 Aug 2003 6:46 AM Description: At the begining, opensource Firebird (or FirebirdSQL) was based on the same source code of commercial InterBase. But during past three years, lots of improvements are done to the Firebird. Recent versions of these DBMSs have different features and statement syntaxes. For example, their select offset/limit statement syntaxes are not compatible. Hibernate's recent InterbaseDialect select limit/offset feature is based on the Firebird's select statement syntax. So, in order to prevent incompabilities and confussion, in addition to the InterbaseDialect, adding a new FirebirdDialect and seperating Firebird and InterBase features will be very helpfull. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |