Edgewall Software

Changes between Initial Version and Version 4 of Ticket #8647


Ignore:
Timestamp:
Sep 11, 2012, 10:31:18 AM (12 years ago)
Author:
Christian Boos
Comment:

commit() and other such methods are documented in Python DB API 2.0 (pep:0249) for the Connection Objects.

In ConnectionWrapper, we should add the documentation for the following methods: cast, concat, like, like_escape, quote, get_last_id, and update_sequence.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #8647

    • Property Owner set to Christian Boos
    • Property Milestone1.0.1
    • Property Keywords documentation added
  • Ticket #8647 – Description

    initial v4  
    1 This patch simplifies Trac DB API to make it easier to extend and add new DB backends. It introduces abstract DatabaseConnection class that clearly defines what required methods are used by Trac and must be implemented by Connection classes.
     1This patch simplifies Trac DB API to make it easier to extend and add new DB backends. It introduces abstract `DatabaseConnection` class that clearly defines what required methods are used by Trac and must be implemented by Connection classes.
    22
    3 I've made it, because I found implicit ConnectionWrapper behavior misleading. I used SQLiteConnection method set as an example, but in the end my implementation failed to execute, because it didn't have commit() method - just like SQLiteConnection. It took a while to dig through PooledConnection to ConnectionWrapper then to SQLiteConnection and finally to ConnectionWrapper again to realize that commit() method is implicitly called from bundled SQLite library when it isn't found anywhere else.
     3I've made it, because I found implicit `ConnectionWrapper` behavior misleading. I used `SQLiteConnection` method set as an example, but in the end my implementation failed to execute, because it didn't have commit() method - just like `SQLiteConnection`. It took a while to dig through `PooledConnection` to `ConnectionWrapper` then to `SQLiteConnection` and finally to `ConnectionWrapper` again to realize that commit() method is implicitly called from bundled SQLite library when it isn't found anywhere else.
    44
    55I hope this negative developer experience will find more response in tracker than it had in mailing list. =)