-
Notifications
You must be signed in to change notification settings - Fork 679
/
CHANGELOG
262 lines (211 loc) · 8.23 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
0.1 01/05/2013
* Initial Release with MySQL 5.5 and MySQL 5.6 support
0.2 13/10/2013
* Make it work under pymysql 0.6
* Ignore position of some events
* Fix FormatDescriptionEvent has zero log_pos
* Support checksum for mysql 5.6
* Add feature to start stream from position
* Change names of events to V2
* Added NotImplementedEvent for a few events that we currently don't need
* Support null events and a slight change of names
* Support MySQL Broken Dates :(
* Introduce data objects for Table / Column
* Add support for TINYINT(1) to bool() Mapping
0.3 07/07/2014
* use NotImplementedEvent instead of raising an Exception
* Python 3 fix
* Add 2006 to Mysql expected error codes
0.4 01/09/2014
* Add primary column informations (thanks to Lx Lu)
* Python 2.6 support (thanks to Darioush Jalalinasab)
* Parse gtid events (thanks to Arthur Gautier)
* Code cleanup (thanks to Bernardo Sulzbach)
* Travis support
0.4.1 01/09/2014
* Fix missing commit for GTID in 0.4 release
0.5 28/09/2014
* Remove default server id
* Performances improvements
* Allow filter events by schema and tables
0.6 10/05/2015
* Prevent invalid table-map-entries to crash the whole app
* Add support for Stop Event, update tests
* Fix the order of binlog events, though we don't support them yet
* Simplified RowsEvent.rows to be @property instead of __getattr__ hack
* add binlog row minimal and noblob image support
* remove six not being used.
* misc code style improvements, mainly pep8
* Update event.py to be compatible with python2.6.7
* explicitly break reference cycle when closing binlogstreamreader
* break reference loop using weakref to prevent memory-leaking
* Freeze schema.
* Freeze table schema
* Avoid named parameters passed to packet because it's slower
* Filter table and schema event
* PyPy support
0.7 21/06/2015
* Partial fix for dropped columns blowing up replication when replaying binlog with past events
* Skipping GTID tests on DBs not set up to support GTID
* Adding support for skipping the binlog until reaching specified timestamp.
* Add support for BeginLoadQueryEvent and ExecuteLoadQueryEvent
0.8 02/01/2016
* bugfix for decoding values of columns in charset "utf8mb4"
* Close connection on EOF packet
* Don't fail on incomplete dates (with 0 as day or month), such as 2015-00-21 or 2015-05-00
* Fix GtidSet __str__ representation
* Fix typo in TableMapEvent comment
* gtid failed parsing: raise with value
* Explicit close stream connection on exception, to prevent sockets from sitting in CLOSE_WAIT status with PyPy
* Further (micro)optimization: Moving popular column types to top of if/elif, so they can shortcircuit earlier.
* Making Column attribiutes into regular object attributes instead of a dictionary. This makes getting the attribute about 20 times faster.
0.9 20/05/2016
* Allow to specify a pymysql wrapper or subclass
* setup travis to run test on multiple mysql version (5.6 and 5.7)
* test run with mysql5.7
* report-slave: Allow reporting of port if username not supplied
* gtid: fixup parsing on mysql format
* added intvar event
* binlogstream: improve slave report
* Support for slave_uuid
* Report slave in SHOW SLAVE HOSTS
* fix: missing update _next_seq_no
* PyMYSQL 0.7
* Add more contributors
0.10 30/11/2016
* row-events: TIME is now encoded as python.timedelta
* Allow users to define ctl_connection_settings and the option to fail when table information is unavailable (#176)
* Decode gtid from network packet
* fixed count of fetched events
* unittest2 is only a test requirement
0.11 07/02/2017
* Implement Heartbeat (#191)
* Fix handling of JSON data (#182)
0.12 04/04/2017
* Clear table_map if RotateEvent has timestamp of 0 (#197)
* Add support for ignored_tables and ignored_schema (#201)
* failed to get table information (#199)
0.13 18/04/2017
* Fixup gtid parsing (#204)
This remove duplicate event from your stream if you use auto_position (the
first one in the stream used to be a duplicate on reconnection, this is no
longer the case).
* Fix struct.pack in ReportSlave (#194)
0.14 11/09/2017
* binlogstream: only_tables requires row binlog_format (#209)
* Add implementation of read_int32 (#213)
* fix formatting of GTIDs under py3 (#227)
0.15 11/09/2017
* event: fixup gtid serialization
0.16 02/02/2018
* json: Fixup string parsing (#246)
* binlogstream: Raise an explanatory exception when binary logging is not enabled. (#245)
* datetime: Fixup parsing (#236)
0.17 02/02/2018
* remove python2.6 support
0.18 01/03/2018
* bubble up protocol errors
0.19 29/04/2019
* Fix Insert NULL in a boolean column returns no rows #288
* Added empty string support for enum
* Fix column order
* Fix float problem about time fieldtype
0.20 22/11/2019
* Added support for limited columnar access in MySQL
* Python3 fixes
* Add gtidset comparison methods
0.21 22/11/2019
* fix ci configuration
* Added support for limited columnar access in MySQL
0.22 20/09/2020
* Support PyMysql with a version greater than 0.9.3
* Fix handling of JSON literal values
0.23 25/01/2021
* Add logic to handle inlined ints in large json documents
0.24 27/06/2021
* Support PyMySQL 1.0
0.25 21/07/2021
* Support 'ZEROFILL' attribute for numeric datatypes
0.26 30/08/2021
* Correct timedelta value for negative MySQL TIME datatype
* Fix parsing of row events for MySQL8 partitioned table
* Set PyMySql version minimum to 0.10
0.27 18/10/2021
* Parse NULL-bitmask in table map event
* Add support for specifying an end log_pos
* Parse status variables in query event
0.28 23/01/2022
* Add support for MariaDB GTID
0.29 08/04/2022
* Skip db name parsing if mts_accessed_dbs == 254
0.30 28/04/2022
* Fix decoding large json arrays
* Handle null json
0.31 12/03/2023
* Fix parse error for query_events with MariaDB
0.40 07/05/2023
* Drop support for Python 2.7
* Gtid: remove __cmp__ due to python2 support dropped.
* Mariadb 10.6.12: Mitigate corrupt binlog event bug
0.41 03/06/2023
* Zero-pad fixed-length binary fields
0.42 25/06/2023
* Add XAPrepareEvent, parse last_committed & sequence_number of GtidEvent
0.42.1 09/07/2023
* Fix merging error of XAPrepareEvent
0.42.2 16/07/2023
* Fix release error
0.43.0 23/07/2023
* Bump PyMySQL to 1.1.0 to solve : LookupError: unknown encoding: utf8mb3
0.44.0 12/09/2023
* Add MariadbAnnotateRowsEvent
* Add RandEvent
* Add MariadbStartEncryptionEvent
* Add RowsQueryLogEvent
* Add MariadbBinLogCheckPointEvent
* Add PreviousGtidsEvent
* Add UserVarEvent
* Fix Bug increase history list length and snapshot : Mysql 8.0 version connection was being created along with the opening of a transaction. This led to a problem with looking at the snapshot before creating the table
* Fix Avoid UnicodeDecodeError for non-utf8 QueryEvents
* Enhance Data Integrity with Binlog Event Checksum Verification
* Fix Bug table map event read null_bitmask packet
* Fix Timestamp conversion to return UTC instead of local timezone
* Optimize Handler_read_rnd by removing ORDER BY clause
0.45.0 02/10/2023
* Fix Json object, Array parse Error
1.0.0 02/10/2023
* remove column schema
* Mysql 8.0.14 version support Table map Event optional metaData extraction
* Sync Column from optional metaData
* Fix parsing of incorrect bytes in 'extradata' for 'rows event'
* Fix remove duplicate Affected columns output
* Enhance Code Quality with Ruff, Black, and Pre-commit
* Enhance Testing with MySQL8 & Update GitHub Actions
* Add Logging when fake rotate event occured
* update logo
1.0.1 05/10/2023
* add util module
1.0.2 05/10/2023
* Delete charset_list.csv and add directly in CHARSET.py
1.0.3 04/11/2023
* Fix only last order column came when DML 5.7 user (#516)
* Fix update unknown variable (#574)
* Fix Test Add omitted charset setting in base.py (#565)
* feature Partial Update row event (#521)
1.0.4 04/12/2023
* Fix an issue in parsing default column charset (#582)
* fake rotate event check (#579)
1.0.5 09/12/2023
* Fix missing dependency on packaging (#590)
* implement partial format description event fields (#585)
1.0.6 09/01/2024
* Optimizing version check to happen once per run (#597)
* bug-fix-nonesources f string (#596)
1.0.7 07/03/2024
* Fix parsing of query field of RowsQueryEvent(#602)
* fix log statement for BinLogStreamReader.fetchone(#608)
1.0.8 31/03/2024
* Fix parsing replications events (#614)
1.0.9 11/08/2024
* Fix typo in ident variable name (#619)
* Remove black and use only ruff as linter