Your SlideShare is downloading. ×
0
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
 Firebird Python Drivers: Current state and future
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Firebird Python Drivers: Current state and future

1,631

Published 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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,631
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
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 <ul><li>Driver 1: KinterbasDB
  • 3. Driver 2: firebirdsql
  • 4. Driver 3: fdb
  • 5. The Future </li></ul>
  • 6. KInterbasDB <ul><li>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 </li></ul>
  • 11. KinterbasDB - Features <ul><li>Python DB API 2.0 (with extensions)
  • 12. Prepared statements
  • 13. Transactions: </li><ul><li>Transaction parameters
  • 14. Multiple transactions per connection
  • 15. Distributed transactions
  • 16. Savepoints
  • 17. Retaining </li></ul></ul>
  • 18. KinterbasDB – Features (cont.) <ul><li>Named cursors
  • 19. Parameter conversions: </li><ul><li>Implicit Conversion of Input Parameters from Strings
  • 20. Dynamic Type Translation with custom translators support </li></ul><li>Materialized and streamed BLOBs
  • 21. Support for Firebird Arrays
  • 22. Services (but no Trace) </li></ul>
  • 23. KinterbasDB – Features (cont.) <ul><li>Connection timeouts (with user callbacks)
  • 24. Firebird Events
  • 25. Database INFO API </li></ul>
  • 26. KinterbasDB - Shortcomings <ul><li>No Python 3 support
  • 27. Only for CPython
  • 28. Very complex code
  • 29. Backward compatibility baggage
  • 30. No active development </li></ul>
  • 31. firebirdsql <ul><li>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 </li></ul>
  • 36. Firebirdsql - Features <ul><li>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 </li></ul>
  • 42. Firebirdsql - Shortcomings <ul><li>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 </li></ul>
  • 50. fdb <ul><li>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 </li></ul>
  • 56. Fdb - Features <ul><li>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) </li></ul>
  • 60. Fdb - Shortcomings <ul><li>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 </li></ul>
  • 66. The Future <ul><li>Finish fdb as drop-in replacement for KinterbasDB
  • 67. Abstract the “inner API”: </li><ul><li>ctypes implementation
  • 68. wire protocol </li></ul><li>...
  • 69. Profit! </li></ul>
  • 70. Questions? Pavel Císař [email_address] IBPhoenix www.ibphoenix.com

×