Your message dated Mon, 28 Oct 2013 22:49:45 +0100
with message-id <[email protected]>
and subject line fixed in 0.8.2
has caused the Debian Bug report #711932,
regarding python-sqlalchemy: Firebird type translation is wrong
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
711932: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=711932
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: python-sqlalchemy
Version: 0.7.8-1.1
Severity: normal
Tags: upstream patch

The description I submitted upstream:

  The firebird backend translates Firebird's types incorrectly.

  Firstly, a firebird LONG is 32 bits, a INT64 is 64 bigs. Secondly,
  all firebird integer types have a precision and scale. If they
  are 0 the raw type can be used, otherwise NUMERIC must be used.

  The attached patch fixes the problem. The patch is for 0.7.8, but
  master looks the same.

-- System Information:
Debian Release: 7.0
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'stable-updates'), (50, 'testing'), (40, 
'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-sqlalchemy depends on:
ii  python  2.7.3-4

Versions of packages python-sqlalchemy recommends:
ii  python-sqlalchemy-ext  0.7.8-1.1

Versions of packages python-sqlalchemy suggests:
ii  python-kinterbasdb     3.3.0-3
pn  python-mysqldb         <none>
pn  python-psycopg2        <none>
pn  python-pymssql         <none>
ii  python-sqlalchemy-doc  0.7.8-1.1

-- no debconf information
Description: Fix mapping of firebird types
 Firebird integer types can be either the raw type or NUMERIC,
 depending on whether they have a precision and scale.
Author: Russell Stuart <[email protected]>
Bug: http://www.sqlalchemy.org/trac/ticket/2757
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/lib/sqlalchemy/dialects/firebird/base.py
+++ b/lib/sqlalchemy/dialects/firebird/base.py
@@ -69,7 +69,7 @@
 
 """
 
-import datetime, re
+import datetime, inspect, re
 
 from sqlalchemy import schema as sa_schema
 from sqlalchemy import exc, types as sqltypes, sql, util
@@ -78,9 +78,8 @@
 from sqlalchemy.sql import compiler
 
 
-from sqlalchemy.types import (BIGINT, BLOB, BOOLEAN, DATE,
-                              FLOAT, INTEGER, NUMERIC, SMALLINT,
-                              TEXT, TIME, TIMESTAMP)
+from sqlalchemy.types import (BIGINT, BLOB, DATE, FLOAT, INTEGER, NUMERIC,
+                              SMALLINT, TEXT, TIME, TIMESTAMP, Integer)
 
 
 RESERVED_WORDS = set([
@@ -149,13 +148,13 @@
 
 ischema_names = {
       'SHORT': SMALLINT,
-       'LONG': BIGINT,
+       'LONG': INTEGER,
        'QUAD': FLOAT,
       'FLOAT': FLOAT,
        'DATE': DATE,
        'TIME': TIME,
        'TEXT': TEXT,
-      'INT64': NUMERIC,
+      'INT64': BIGINT,
      'DOUBLE': FLOAT,
   'TIMESTAMP': TIMESTAMP,
     'VARYING': VARCHAR,
@@ -561,8 +560,8 @@
                 util.warn("Did not recognize type '%s' of column '%s'" %
                           (colspec, name))
                 coltype = sqltypes.NULLTYPE
-            elif colspec == 'INT64':
-                coltype = coltype(
+            elif Integer in inspect.getmro(coltype) and row['fprec'] != 0:
+                coltype = NUMERIC(
                                 precision=row['fprec'], 
                                 scale=row['fscale'] * -1)
             elif colspec in ('VARYING', 'CSTRING'):

--- End Message ---
--- Begin Message ---
Source: sqlalchemy
Source-Version: 0.8.2-1

I'll try to update stable to 0.7.10 (or .11) and add this fix.

--- End Message ---

Reply via email to