@@ -92,6 +92,7 @@ def _read_column_data(self, cols_bitmap):
9292 column = self .columns [i ]
9393 name = self .table_map [self .table_id ].columns [i ].name
9494 unsigned = self .table_map [self .table_id ].columns [i ].unsigned
95+ zerofill = self .table_map [self .table_id ].columns [i ].zerofill
9596
9697 if BitGet (cols_bitmap , i ) == 0 :
9798 values [name ] = None
@@ -102,21 +103,29 @@ def _read_column_data(self, cols_bitmap):
102103 elif column .type == FIELD_TYPE .TINY :
103104 if unsigned :
104105 values [name ] = struct .unpack ("<B" , self .packet .read (1 ))[0 ]
106+ if zerofill :
107+ values [name ] = format (values [name ], '03d' )
105108 else :
106109 values [name ] = struct .unpack ("<b" , self .packet .read (1 ))[0 ]
107110 elif column .type == FIELD_TYPE .SHORT :
108111 if unsigned :
109112 values [name ] = struct .unpack ("<H" , self .packet .read (2 ))[0 ]
113+ if zerofill :
114+ values [name ] = format (values [name ], '05d' )
110115 else :
111116 values [name ] = struct .unpack ("<h" , self .packet .read (2 ))[0 ]
112117 elif column .type == FIELD_TYPE .LONG :
113118 if unsigned :
114119 values [name ] = struct .unpack ("<I" , self .packet .read (4 ))[0 ]
120+ if zerofill :
121+ values [name ] = format (values [name ], '010d' )
115122 else :
116123 values [name ] = struct .unpack ("<i" , self .packet .read (4 ))[0 ]
117124 elif column .type == FIELD_TYPE .INT24 :
118125 if unsigned :
119126 values [name ] = self .packet .read_uint24 ()
127+ if zerofill :
128+ values [name ] = format (values [name ], '08d' )
120129 else :
121130 values [name ] = self .packet .read_int24 ()
122131 elif column .type == FIELD_TYPE .FLOAT :
@@ -155,6 +164,8 @@ def _read_column_data(self, cols_bitmap):
155164 elif column .type == FIELD_TYPE .LONGLONG :
156165 if unsigned :
157166 values [name ] = self .packet .read_uint64 ()
167+ if zerofill :
168+ values [name ] = format (values [name ], '020d' )
158169 else :
159170 values [name ] = self .packet .read_int64 ()
160171 elif column .type == FIELD_TYPE .YEAR :
0 commit comments