diff options
| author | Lele Gaifax <lele@metapensiero.it> | 2009-08-07 12:34:10 +0000 |
|---|---|---|
| committer | Lele Gaifax <lele@metapensiero.it> | 2009-08-07 12:34:10 +0000 |
| commit | 54dd8b851b8378419594b6a629c30d9b7b47b7c7 (patch) | |
| tree | 867d96a7865c459f4b84a4a56fd31e08758f3001 /lib/sqlalchemy/dialects/firebird | |
| parent | 8aa2886c1a31c9a9950ad00345ac0cadcf78f7e2 (diff) | |
| download | sqlalchemy-54dd8b851b8378419594b6a629c30d9b7b47b7c7.tar.gz | |
Fix #1451: take into account the actual coding system when determining the field length
Diffstat (limited to 'lib/sqlalchemy/dialects/firebird')
| -rw-r--r-- | lib/sqlalchemy/dialects/firebird/base.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/firebird/base.py b/lib/sqlalchemy/dialects/firebird/base.py index 020977ff5..e89945e0b 100644 --- a/lib/sqlalchemy/dialects/firebird/base.py +++ b/lib/sqlalchemy/dialects/firebird/base.py @@ -475,7 +475,7 @@ class FBDialect(default.DefaultDialect): r.rdb$null_flag AS null_flag, t.rdb$type_name AS ftype, f.rdb$field_sub_type AS stype, - f.rdb$field_length AS flen, + f.rdb$field_length/COALESCE(cs.rdb$bytes_per_character,1) AS flen, f.rdb$field_precision AS fprec, f.rdb$field_scale AS fscale, COALESCE(r.rdb$default_source, f.rdb$default_source) AS fdefault @@ -483,6 +483,7 @@ class FBDialect(default.DefaultDialect): JOIN rdb$fields f ON r.rdb$field_source=f.rdb$field_name JOIN rdb$types t ON t.rdb$type=f.rdb$field_type AND t.rdb$field_name='RDB$FIELD_TYPE' + LEFT JOIN rdb$character_sets cs ON f.rdb$character_set_id=cs.rdb$character_set_id WHERE f.rdb$system_flag=0 AND r.rdb$relation_name=? ORDER BY r.rdb$field_position """ |
