Firebird Python Drivers: Current state and future
Upcoming SlideShare
Loading in...5
×
 

Firebird Python Drivers: Current state and future

on

  • 1,925 views

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

Statistics

Views

Total Views
1,925
Views on SlideShare
1,925
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

 Firebird Python Drivers: Current state and future Firebird Python Drivers: Current state and future Presentation Transcript

  • Firebird drivers for Python Pavel Císař IBPhoenix Firebird Conference 2011
  • Agenda
    • Driver 1: KinterbasDB
    • Driver 2: firebirdsql
    • Driver 3: fdb
    • The Future
  • KInterbasDB
    • 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
  • KinterbasDB - Features
    • Python DB API 2.0 (with extensions)
    • Prepared statements
    • Transactions:
      • Transaction parameters
      • Multiple transactions per connection
      • Distributed transactions
      • Savepoints
      • Retaining
  • KinterbasDB – Features (cont.)
    • Named cursors
    • Parameter conversions:
      • Implicit Conversion of Input Parameters from Strings
      • Dynamic Type Translation with custom translators support
    • Materialized and streamed BLOBs
    • Support for Firebird Arrays
    • Services (but no Trace)
  • KinterbasDB – Features (cont.)
    • Connection timeouts (with user callbacks)
    • Firebird Events
    • Database INFO API
  • KinterbasDB - Shortcomings
    • No Python 3 support
    • Only for CPython
    • Very complex code
    • Backward compatibility baggage
    • No active development
  • firebirdsql
    • Created by Hajime Nakagami
    • Current version: 0.6.3
    • Pure-Python driver on top of Firebird wire protocol
    • Supports: Python 3.0+/2.6+, Firebird 2.0+?
    • Primary development for Python 3/FB 2.5
  • Firebirdsql - Features
    • Supports Python DB API 2.0 (+row_mapping)
    • Multiple transactions per connection, savepoints, retaining
    • Prepared statements
    • Firebird Services, partial: info,backup/restore,sweep,TRACE
    • Potentially works on other Python implementations
    • Unicode/Character set conversions
  • Firebirdsql - Shortcomings
    • No transaction parameters
    • No stored procedures (yet)
    • No RETURNING
    • No streamed BLOBs, No BLOB parameters
    • No Firebird Arrays
    • Only remote server support
    • Limited support for SQL dialect 1
    • Still NOT usable for production
  • fdb
    • Based on old experiment with ctypes module
    • Created for this conference
    • Pure-Python driver on top of Firebird client library (using ctypes)
    • Supports Python 2.6+, Firebird 2.0+
    • Primary development for Python 2.6/FB 2.5
    • Potentially runs on Python 3 and IronPython
  • Fdb - Features
    • Supports Python DB API 2.0 (+row_mapping)
    • Multiple transactions per connection, transaction parameters, savepoints, retaining
    • Unicode/Character set conversions
    • Firebird Services, partial: everything KinterbasDB does (i.e. NO TRACE)
  • Fdb - Shortcomings
    • No stored procedures (yet)
    • No RETURNING
    • No streamed BLOBs
    • No Firebird Arrays
    • No prepared statements
    • NOT production ready, but in many aspects more mature than firebirdsql
  • The Future
    • Finish fdb as drop-in replacement for KinterbasDB
    • Abstract the “inner API”:
      • ctypes implementation
      • wire protocol
    • ...
    • Profit!
  • Questions? Pavel Císař [email_address] IBPhoenix www.ibphoenix.com