Firebird Python Drivers: Current state and future

  • 1,502 views
Uploaded on

This talk will update you on current state of Firebird connectivity for Python (with a surprise!), and plans for future development

This talk will update you on current state of Firebird connectivity for Python (with a surprise!), and plans for future development

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,502
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Firebird drivers for Python Pavel Císař IBPhoenix Firebird Conference 2011
  • 2. Agenda
    • Driver 1: KinterbasDB
    • 3. Driver 2: firebirdsql
    • 4. Driver 3: fdb
    • 5. The Future
  • 6. KInterbasDB
    • Current version - 3.3.0
    • 7. Supports: Python 2.6/2.7, Firebird 2.0+
    • 8. Written in Python and C (extension)
    • 9. Extensive list of features
    • 10. Adopted by Firebird Project
  • 11. KinterbasDB - Features
    • Python DB API 2.0 (with extensions)
    • 12. Prepared statements
    • 13. Transactions:
      • Transaction parameters
      • 14. Multiple transactions per connection
      • 15. Distributed transactions
      • 16. Savepoints
      • 17. Retaining
  • 18. KinterbasDB – Features (cont.)
    • Named cursors
    • 19. Parameter conversions:
      • Implicit Conversion of Input Parameters from Strings
      • 20. Dynamic Type Translation with custom translators support
    • Materialized and streamed BLOBs
    • 21. Support for Firebird Arrays
    • 22. Services (but no Trace)
  • 23. KinterbasDB – Features (cont.)
    • Connection timeouts (with user callbacks)
    • 24. Firebird Events
    • 25. Database INFO API
  • 26. KinterbasDB - Shortcomings
    • No Python 3 support
    • 27. Only for CPython
    • 28. Very complex code
    • 29. Backward compatibility baggage
    • 30. No active development
  • 31. firebirdsql
    • Created by Hajime Nakagami
    • 32. Current version: 0.6.3
    • 33. Pure-Python driver on top of Firebird wire protocol
    • 34. Supports: Python 3.0+/2.6+, Firebird 2.0+?
    • 35. Primary development for Python 3/FB 2.5
  • 36. Firebirdsql - Features
    • Supports Python DB API 2.0 (+row_mapping)
    • 37. Multiple transactions per connection, savepoints, retaining
    • 38. Prepared statements
    • 39. Firebird Services, partial: info,backup/restore,sweep,TRACE
    • 40. Potentially works on other Python implementations
    • 41. Unicode/Character set conversions
  • 42. Firebirdsql - Shortcomings
    • No transaction parameters
    • 43. No stored procedures (yet)
    • 44. No RETURNING
    • 45. No streamed BLOBs, No BLOB parameters
    • 46. No Firebird Arrays
    • 47. Only remote server support
    • 48. Limited support for SQL dialect 1
    • 49. Still NOT usable for production
  • 50. fdb
    • Based on old experiment with ctypes module
    • 51. Created for this conference
    • 52. Pure-Python driver on top of Firebird client library (using ctypes)
    • 53. Supports Python 2.6+, Firebird 2.0+
    • 54. Primary development for Python 2.6/FB 2.5
    • 55. Potentially runs on Python 3 and IronPython
  • 56. Fdb - Features
    • Supports Python DB API 2.0 (+row_mapping)
    • 57. Multiple transactions per connection, transaction parameters, savepoints, retaining
    • 58. Unicode/Character set conversions
    • 59. Firebird Services, partial: everything KinterbasDB does (i.e. NO TRACE)
  • 60. Fdb - Shortcomings
    • No stored procedures (yet)
    • 61. No RETURNING
    • 62. No streamed BLOBs
    • 63. No Firebird Arrays
    • 64. No prepared statements
    • 65. NOT production ready, but in many aspects more mature than firebirdsql
  • 66. The Future
    • Finish fdb as drop-in replacement for KinterbasDB
    • 67. Abstract the “inner API”:
      • ctypes implementation
      • 68. wire protocol
    • ...
    • 69. Profit!
  • 70. Questions? Pavel Císař [email_address] IBPhoenix www.ibphoenix.com