Firebird drivers for Python Pavel Císař IBPhoenix Firebird Conference 2011
Agenda <ul><li>Driver 1: KinterbasDB
Driver 2: firebirdsql
Driver 3: fdb
The Future </li></ul>
KInterbasDB <ul><li>Current version - 3.3.0
Supports: Python 2.6/2.7, Firebird 2.0+
Written in Python and C (extension)
Extensive list of features
Adopted by Firebird Project </li></ul>
KinterbasDB - Features <ul><li>Python DB API 2.0 (with extensions)
Prepared statements
Transactions: </li><ul><li>Transaction parameters
Multiple transactions per connection
Distributed transactions
Upcoming SlideShare
Loading in...5
×

Firebird Python Drivers: Current state and future

1,675

Published on

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,675
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Firebird Python Drivers: Current state and future

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

    Clipping is a handy way to collect important slides you want to go back to later.

×