Hello,

I have got a problem with inserting large float values into a mysql 
database table. 
When inserting a new EventDb using a session with large values and 6 
digits, the float value is truncated to 5 digits. See the output of the 
database engine:
2013-04-04 19:54:38,245 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2013-04-04 19:54:38,246 INFO sqlalchemy.engine.base.Engine INSERT INTO 
unit_test_event (ev_catalog_id, start_time, end_time, public_id, 
pref_origin_id, pref_magnitude_id, pref_focmec_id, ev_type, 
ev_type_certainty, description, comment, tags, agency_id, agency_uri, 
author, author_uri, creation_time, version) VALUES (%s, %s, %s, %s, %s, %s, 
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
2013-04-04 19:54:38,246 INFO sqlalchemy.engine.base.Engine (None, 
946684800.0, 946688400.0, None, None, None, None, None, None, None, None, 
None, None, None, None, None, 1365098078.232819, None)
2013-04-04 19:54:38,247 INFO sqlalchemy.engine.base.Engine COMMIT

I have tried to enter the large values manually into the database using the 
commandline mysql client and the values haven't been truncated.

Any help is appreciated.
   Stefan.

P.S.:
Here's my table definition using ORM:

    class EventDb(base):
        __tablename__  = 'event'
        __table_args__ = (
                          UniqueConstraint('public_id'),
                          {'mysql_engine': 'InnoDB'}
                         )

        id = Column(Integer(10), primary_key = True, autoincrement = True)
        ev_catalog_id = Column(Integer(10), 
                             ForeignKey('event_catalog.id',
                                        onupdate = 'cascade', 
                                        ondelete = 'set null'),
                             nullable = True)
        start_time = Column(Float(53), nullable = False)
        end_time = Column(Float(53), nullable = False)
        public_id = Column(String(255), nullable = True)
        pref_origin_id = Column(Integer(10), nullable = True)
        pref_magnitude_id = Column(Integer(10), nullable = True)
        pref_focmec_id = Column(Integer(10), nullable = True)
        ev_type = Column(Integer(10), nullable = True)
        ev_type_certainty = Column(String(50), nullable = True)
        description = Column(Text, nullable = True)
        comment = Column(Text, nullable = True)
        tags = Column(String(255), nullable = True)
        agency_id = Column(String(64), nullable = True)
        agency_uri = Column(String(255), nullable = True)
        author = Column(String(255), nullable = True)
        author_uri = Column(String(255), nullable = True)
        creation_time = Column(Float(53), nullable = True)
        version = Column(String(30), nullable = True)


        def __init__(self, start_time, end_time, public_id, pref_origin_id, 
                     pref_magnitude_id, pref_focmec_id, ev_type, 
ev_type_certainty,
                     agency_id, agency_uri, author, author_uri, 
creation_time, version):
            self.start_time = start_time
            self.end_time = end_time
            self.public_id = public_id
            self.pref_origin_id = pref_origin_id
            self.pref_magnitude_id = pref_magnitude_id
            self.pref_focmec_id = pref_focmec_id
            self.ev_type = ev_type
            self.ev_type_certainty = ev_type_certainty
            self.agency_id = agency_id
            self.agency_uri = agency_uri
            self.author = author
            self.author_uri = author_uri
            self.creation_time = creation_time
            self.version = version


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to