~vkolesnikov/pbxt/pbxt-index-dir

1 by paul-mccullagh
Initial import
1
PBXT Release Notes
2
==================
3
772 by Paul McCullagh
Merged RN299
4
------- 1.0.10e RC4 - Not yet released
5
771.1.1 by Vladimir Kolesnikov
fixed bug #509218: Server asserts with Assertion mutex->__data.__owner == 0 failed on high concurrency OLTP test
6
RN299: Fixed bug #509218: Server asserts with Assertion `mutex->__data.__owner == 0' failed on high concurrency OLTP test.
7
766 by Paul McCullagh
Fixed a bug that caused huge amounts of transaction log to be written when pbxt_flush_log_at_trx_commit = 2
8
------- 1.0.10d RC4 - 2010-01-11
9
10
RN298: Fixed a bug that caused huge amounts of transaction log to be written when pbxt_flush_log_at_trx_commit = 2.
11
765 by Paul McCullagh
Set version to 1.0.10c
12
------- 1.0.10c RC4 - 2009-12-29
764 by Paul McCullagh
Merged RN297
13
14
RN297: Updated "LOCK TABLES ... READ LOCAL" behavior to be more restrictive and compatible with InnoDB 
15
16
RN296: Fixed bug #499026: START TRANSACTION WITH CONSISTENT SNAPSHOT does not work for PBXT
17
760 by Paul McCullagh
Set the internal release date
18
------- 1.0.10 RC4 - 2009-12-18
753 by Paul McCullagh
Moved the bug fix into RC3
19
759 by Paul McCullagh
PBXT tests now all run with MySQL 5.1.41
20
RN295: PBXT tests now all run with MySQL 5.1.41.
21
754 by Paul McCullagh
Merged RN294
22
RN294: Fixed bug #483714: a broken table can prevent other tables from opening
23
753 by Paul McCullagh
Moved the bug fix into RC3
24
RN293: Added system variable pbxt_flush_log_at_trx_commit. The value of this variable determines whether the transaction log is written and/or flushed when a transaction is ended. A value of 0 means don't write or flush the transaction log, 1 means write and flush and 2 means write, but do not flush. No matter what the setting is choosen, the transaction log is written and flushed at least once per second.
25
755 by Paul McCullagh
Merged RN292: Fixed a bug that resulted in 2-phase commit not being used between PBXT and the binlog
26
------- 1.0.09g RC3 - 2009-12-16
745 by Paul McCullagh
Fixed a bug that resulted in 2-phase commit not being used between PBXT and the binlog
27
752 by Paul McCullagh
Adjusted release note numbers
28
RN292: Fixed a bug that resulted in 2-phase commit not being used between PBXT and the binlog. This bug was a result of a hack which as added to solve a problem in an pre-release version of MySQL 5.1. The hack was removed. 
745 by Paul McCullagh
Fixed a bug that resulted in 2-phase commit not being used between PBXT and the binlog
29
744 by Paul McCullagh
Merged RN291
30
------- 1.0.09f RC3 - 2009-11-30
31
32
RN291: Fixed bug #489088: On shutdown MySQL reports: [Warning] Plugin 'PBXT' will be forced to shutdown.
732 by Paul McCullagh
Patch: 1.0.09e release with fix for compiling with MySQL 5.1.41
33
734 by Paul McCullagh
Fixed bug #345524: pbxt does not compile on 64 bit windows
34
RN290: Fixed bug #345524: pbxt does not compile on 64 bit windows. Currently atomic operations are not supported on this platform.
35
736 by Paul McCullagh
Set release date
36
RN286: Fixed a bug introduced in RN281, which could cause an index scan to hang. The original change was to prevent a warning in Valgrind.
732 by Paul McCullagh
Patch: 1.0.09e release with fix for compiling with MySQL 5.1.41
37
38
RN285: Merged changes required to compile with Drizzle.
39
739 by Paul McCullagh
Fixed a further 'Invalid (old?) table or database name' problem, which occured when translating partition table names
40
RN284: Fixed bug that cause the error "[ERROR] Invalid (old?) table or database name 'mysqld.1'", when running temp_table.test under MariaDB (thanks to Monty for his initial bug fix). Added a fix for partition table names as well.
732 by Paul McCullagh
Patch: 1.0.09e release with fix for compiling with MySQL 5.1.41
41
42
RN283: Added win_inttypes.h to the distribution. This file is only required for the Windows build.
43
44
RN282: Fixed bug #451101: jump or move depends on uninitialised value in myxt_get_key_length
45
46
RN281: Fixed bug #451080: Uninitialised memory write in XTDatabaseLog::xlog_append
47
48
RN280: Fixed bug #451085: jump or move depends on uninitialised value in my_type_to_string
49
50
RN279: Fixed bug #441000: xtstat crashes with segmentation fault on startup if max_pbxt_threads exceeded.
51
52
------- 1.0.09e RC3 - 2009-11-20
53
54
RN278: Fixed compile error with MySQL 5.1.41.
716 by Paul McCullagh
Fixed bug #441000: xtstat crashes with segmentation fault on startup if max_pbxt_threads exceeded
55
715 by Paul McCullagh
Set release date
56
------- 1.0.09d RC3 - 2009-09-30
705 by Paul McCullagh
Fixed Bug #430596: Backup/restore does not work well even on a basic PBXT table with auto-increment
57
714 by Paul McCullagh
Merged RN277
58
RN277: Added r/o flag to pbxt_max_threads server variable (this fix is related to bug #430637)
713.1.1 by Vladimir Kolesnikov
Added r/o flag to pbxt_max_threads server variable (this fix is related to bug bug #430637)
59
710.1.2 by Vladimir Kolesnikov
updated ChangeLog
60
RN276: Added test case for replication on tables w/o PKs (see bug #430716)
61
710 by Paul McCullagh
Merged RN275
62
RN275: Fixed bug #430600: 'Failed to read auto-increment value from storage engine' error.
63
709 by Paul McCullagh
Fixed bug #431240: This report is public edit xtstat fails if no PBXT table has been created
64
RN274: Fixed bug #431240: This report is public edit xtstat fails if no PBXT table has been created. xtstat now accepts --database=information_schema or --database=pbxt. Depending on this setting PBXT will either use the information_schema.pbxt_statistics or the pbxt.statistics table. If information_schema is used, then the statistics are displayed even when no PBXT table exists. Recovery activity is also displayed, unless pbxt_support_xa=1, in which case MySQL will wait for PBXT recovery to complete before allowing connections. 
65
707 by Paul McCullagh
Fixed bug #430633: XA_RBDEADLOCK is not returned on XA END after the transacting ended with a deadlock
66
RN273: Fixed bug #430633: XA_RBDEADLOCK is not returned on XA END after the transacting ended with a deadlock.
67
68
RN272: Fixed bug #430596: Backup/restore does not work well even on a basic PBXT table with auto-increment.
705 by Paul McCullagh
Fixed Bug #430596: Backup/restore does not work well even on a basic PBXT table with auto-increment
69
703 by Paul McCullagh
Correctly disabled PBMS so that this version now compiles under Windows
70
------- 1.0.09c RC3 - 2009-09-16
71
704 by Paul McCullagh
Merged RN271: Fixed windows build
72
RN271: Windows build update: now you can simply put the pbxt directory under <mysql-root>/storage and build the PBXT engine as a part of the source tree. The engine will be linked statically. Be sure to specify the WITH_PBXT_STORAGE_ENGINE option when running win\configure.js
73
703 by Paul McCullagh
Correctly disabled PBMS so that this version now compiles under Windows
74
RN270: Correctly disabled PBMS so that this version now compiles under Windows. If PBMS_ENABLED is defined, PBXT will not compile under Windows becaause of a getpid() call in pbms.h.
75
696 by Paul McCullagh
Set version number to 1.0.09, removed debugs
76
------- 1.0.09 RC3 - 2009-09-09
692.1.2 by Paul McCullagh
Implemented XA support
77
692.1.3 by Paul McCullagh
Implemented native online backup driver
78
RN269: Implemented online backup. A native online backup driver now performs BACKUP and RESTORE DATABASE operations for PBXT. NOTE: This feature is only supported by MySQL 6.0.9 or later.
79
692.1.2 by Paul McCullagh
Implemented XA support
80
RN268: Implemented XA support. PBXT now supports all XA related MySQL statements. The variable pbxt_support_xa determines if XA support is enabled. Note: due to MySQL bug #47134, enabling XA support could lead to a crash. 
81
692 by Paul McCullagh
Fixed a bug that caused MySQL to crash on shutdown, if startup fails due to an incorrect command line parameter
82
------- 1.0.08d RC2 - 2009-09-02
83
84
RN267: Fixed a bug that caused MySQL to crash on shutdown, after an incorrect command line parameter was given. The crash occurred because the background recovery task was not cleaned up before the PBXT engine was de-initialized.
85
690 by Paul McCullagh
Set version number to 1.0.08c, so that we can release (indicates bug fix update)
86
------- 1.0.08c RC2 - 2009-08-18
670 by Paul McCullagh
Set version number to 1.0.09
87
686 by Paul McCullagh
Updated BLOB streaming glue
88
RN266: Updated BLOB streaming glue, used with the PBMS engine. The glue code is now identical to the version of "1.0.08-rc-pbms" version of PBXT available from http://blobstreaming.org/download.
89
684 by Paul McCullagh
Merged trunk
90
RN265: Changes the sequential reading of data log files to skip gaps, instead of returning EOF. This ensures that extended data records are preserved even when something goes wrong with the way the file is written.
91
92
RN264: Fixed a bug that cased an "Data log not found" error after an out of disk space error on a log file. This bug is similar to RN262 in that it allows "gaps" to appear in the data logs.
93
680.1.1 by Paul McCullagh
Merged RN263
94
RN263: Updated xtstat to compile on Windows/MS Visual C++.
95
96
RN262: Merged changes for PBMS version 0.5.09.
97
98
RN261: Concerning bug #377788: Cannot find index for FK. Fixed buffer overflow which occurred when the error was reported.
99
677 by Paul McCullagh
Merged RN260
100
RN260: Fixed bug #377788: Cannot find index for FK. PBXT now correctly uses prefix of an index to support FK references (e.g. if key = (c1, c2) then an index on (c1, c2, c3) will work). Also fixed buffer overflow, which occurred when reporting the error.
101
102
RN259: Fixed bug #309424: xtstat doesn't use my.cnf. You can now add an [xtstat] section to my.cnf, for use with xtstat.
675.1.1 by Vladimir Kolesnikov
Fixed bug #309424: xtstat doesn't use my.cnf
103
668.1.4 by Vladimir Kolesnikov
merged changes from lp:~vkolesnikov/pbxt/pbxt-07-diskfull
104
RN258: updated xt_p_join implementation for Windows to check if a thread has already exited or has not yet started
105
106
RN257: Removed false assertion that could fail during restore if a transaction log page was zero-filled
107
108
RN256: Update datalog eof pointer only if write opearions were sucessful
109
110
RN255: Added re-allocation of of filemap if allocating the of the new map failed. This often happens if there's not enough space on disk.
111
672 by Paul McCullagh
Create a file called repair-pending that contains a list of tables that have corrupted indices
112
RN254: When a table with a corrupted index is detected, PBXT creates a file called 'repair-pending' in the pbxt directory, with the name of the table in it. Each table in the file is listed on a line by itself (the last line has no trailing \n). When the table is repaired (using the REPAIR TABLE command), this entry is removed from the file.
113
671 by Paul McCullagh
Merged RN253
114
RN253: Use fcntl(F_FULLFSYNC) instead of fsync on platforms that support it. Improper fsync operation was presumably the reason of index corruption on Mac OS X.
115
116
RN252: Fixed bug #368692: PBXT not reporting data size correctly in information_schema.
670 by Paul McCullagh
Set version number to 1.0.09
117
668 by Paul McCullagh
Merged RN251
118
------- 1.0.08 RC2 - 2009-06-30
119
120
RN251: A Windows-specific test update, also removed false assertion that failed on Windows.
530 by Paul McCullagh
Fixed a bug that caused a crash during restart if an index file was flushed during recovery
121
665 by Paul McCullagh
Fixed a bug that caused recovery to fail when the transaction log ID exceeded 255
122
RN250: Fixed a bug that caused recovery to fail when the transaction log ID exceeded 255. The problem was a checksum failed in the log record.
123
690 by Paul McCullagh
Set version number to 1.0.08c, so that we can release (indicates bug fix update)
124
RN249: Fixed bug #313176: Test case timeout. This happened because record cache pages where not properly freed and as soon as cache filled up the performacne degraded.
659.1.1 by Vladimir Kolesnikov
fix of bug #313176: Test case timeout (a problem with record cache pages refs)
125
652.2.37 by Vladimir Kolesnikov
updated ChangeLog
126
RN248: PBXT now compiles and runs with MySQL 5.1.35. All tests pass.
127
652.3.1 by Vladimir Kolesnikov
fix of bug #369086: Incosistent/Incorrect Truncate behavior
128
RN247: Fixed bug #369086: Incosistent/Incorrect Truncate behavior
129
652.1.13 by Vladimir Kolesnikov
fixed bug #378222
130
RN246: Fixed bug #378222: Drop sakila causes error: Cannot delete or update a parent row: a foreign key constraint fails
131
657 by Paul McCullagh
Merged RN245
132
RN245: Fixed bug #379315: Inconsistent behavior of DELETE IGNORE and FK constraint.
652.1.10 by Vladimir Kolesnikov
fix of bug #379315
133
656 by Paul McCullagh
Merged RN244
134
RN244: Fixed a recovery problem: during the recovery of "record modified" action the table was updated before the old index entries were removed; then the xres_remove_index_entries was supplied the new record which lead to incorrect index update.
652.1.9 by Vladimir Kolesnikov
fixed a recovery problem
135
652.1.7 by Vladimir Kolesnikov
updated ChangeLog
136
RN243: Fixed a bug that caused a recovery failure if partitioned pbxt tables where present. This happended because the recovery used a MySQL function to open tables and the PBXT handler was not yet registered
137
138
RN242: Fixed a bug that caused a deadlock if pbxt initialization failed. This happened because pbxt ceanup was done from pbxt_init() with PLUGIN_lock being held by MySQL which lead to a deadlock in the freeer thread
139
652 by Paul McCullagh
Merged RN241
140
RN241: Fixed a heap corruption bug (writing to a freed memory location). It happened only when memory mapped files were used leading to heap inconsistency and program crash or termination by heap checker. Likely to happen right after or during DROP TABLE but possible in other cases too.
630.1.7 by Vladimir Kolesnikov
merged with upstream
141
646 by Paul McCullagh
Load the record cache on read when no using memory mapped files
142
RN240: Load the record cache on read when no using memory mapped files.
143
641 by Paul McCullagh
Added pbxt_max_threads variable
144
RN239: Added PBXT variable pbxt_max_threads. This is the maximum number of threads that can be created PBXT. By default this value is set to 0 which means the number of threads is derived from the MySQL variable max_connections. The value used is max_connections+7. Under Drizzle the default value is 500.
145
625 by Paul McCullagh
Make the number behind variable
146
RN238: Added an option to wait for the sweeper to clean up old transactions on a particular connection. This prevents the sweeper from getting too far behind.
624 by Paul McCullagh
Added an option to wait for the sweeper to clean up old transactions on a particular connection
147
622 by Paul McCullagh
Implemented lazy deleted for fixed length indexes
148
RN237: Added an option to lazy delete fixed length index entries. This means the index entries are just marked for deletion, instead of removing the items from the index page. This has the advantage that an exclusive lock is not always required for deletion.
149
613 by Paul McCullagh
Merged RN236
150
RN236: Fixed bug #349177: a bug in configure.in script.
151
152
RN235: Fixed bug 349176: a compiler warning.
611 by Paul McCullagh
Merged RN235
153
610 by Paul McCullagh
Merged RN234: Drizzle integration
154
RN234: Completed Drizzle integration. All Drizzle tests now run with PBXT.
155
605 by Paul McCullagh
Added release note
156
RN233: Fixed bugs which occur when PBXT is used together with PBMS (BLOB Streaming engine).
157
599 by Paul McCullagh
Merged changes for RN232
158
RN232: Merged Drizzle-specific changes into the main tree.
598.1.1 by Vladimir Kolesnikov
merged Drizzle-specific changes
159
593 by Paul McCullagh
Fixed a bug that caused a long pause when MySQL starts to close table handlers
160
RN231: Fixed a bug that caused bad performance as the number of threads increased. This occurred when the number of open table handles exceeded 'table_open_cache', and MySQL started closing open table handlers. PBXT was flushing a table when all table handlers were closed. PBXT will now only do this when the FLUSH TABLES statement is used.
161
586 by Paul McCullagh
Implemented a queue for threads waiting for a lock, if a temp lock is granted because of an update, the thread will also wait for the transaction to quit
162
RN230: Improved efficiency of conflict resolution: Implemented a queue for threads waiting for a lock. Threads no longer poll to take a lock. If a temp lock is granted because of an update, then the thread granted the temp lock will also wait for the transaction that did the update to quit.
163
599 by Paul McCullagh
Merged changes for RN232
164
RN229: Fixed bug #313391: LOAD DATA ... REPLACE broken.
584.1.1 by Vladimir Kolesnikov
fix of bug #313391
165
599 by Paul McCullagh
Merged changes for RN232
166
RN228: Fixed bug #341115: 'Out of memory' error (a bug in key comparison algorithm).
581.1.1 by Vladimir Kolesnikov
fixed bug #341115: 'Out of memory' error (a bug in key comparison algorithm)
167
579 by Paul McCullagh
Changed conflict handling to use spin locks and improve efficiency
168
RN227: Changed conflict handling to use spin locks and improve efficiency.
169
170
RN226: Fixed bug #340316: Issue with bigint unsigned auto-increment field.
171
172
RN225: Fixed bug #308557: UPDATE fails to match all rows in a transactional scenario.
576.1.1 by Vladimir Kolesnikov
fixed bug #308557: UPDATE fails to match all rows in a transactional scenario
173
572 by Paul McCullagh
Merged bug fix RN224
174
RN224: Fixed a deadlock which could occur during table scans.
175
176
RN223: Index scans now use handles to cache buffers instead of making a copy of the index page. The handles are "copy-on-write".
561 by Paul McCullagh
Index scans now use handles to cache buffersm instead of making a copy of the index page
177
559 by Paul McCullagh
Merged RN220
178
RN222: Fixed a bug that caused the server to hang on startup if PBXT ran out of record cache while waiting for the sweeper to complete.
179
180
RN221: Fixed an index recovery bug. This occurred if the server crashed after operating in low index cache sitations. 
181
182
RN220: Improved index selectivity estimation: added scanning from the end of index backwards.
183
184
RN219: Fixed a problem: during intersected range scan not all fields were returned by engine to MySQL.
549.1.3 by Vladimir Kolesnikov
fixed a problem with intersected range scan - not all fields were returned to MySQL
185
539 by Paul McCullagh
Added a release not for the locking change
186
RN218: Changed the way row locking (used by SELECT FOR UPDATE) works. Previously we locked a group of rows at once (although there were many groups). However, this caused conflicts even when the same rows were not locked. We now locks individual rows.
187
533.1.2 by Paul McCullagh
Merged RN217 which fixed bug #315564
188
RN217: Fixed bug #315564: Rollbacked inserts remain permanently in table.
528.1.6 by Vladimir Kolesnikov
updated ChangeLog
189
533 by Paul McCullagh
Added lock tracing
190
RN216: Added lock tracing. In DEBUG mode, each thread has a list of locks (semaphores, mutexes, r/w locks that it holds).
191
531 by Paul McCullagh
Merged from trunk
192
RN215: Fixed a bug that caused a crash during restart if an index file was flushed during recovery.
518.1.5 by Paul McCullagh
Minor change to the release notes
193
528.1.2 by Vladimir Kolesnikov
merged the fix from another branch + updated changelog
194
RN214: Fixed bug #310184: Deadlock when trying to wake up transactions
195
518.1.5 by Paul McCullagh
Minor change to the release notes
196
RN213: Fixed an index corruption bug on SPARC Solaris. Note this error will occur on any machine that does not use the x86 (little endian) byte order.
530 by Paul McCullagh
Fixed a bug that caused a crash during restart if an index file was flushed during recovery
197
516.1.3 by Paul McCullagh
Set release date
198
------- 1.0.07 RC - 2008-12-15
430.1.3 by Paul McCullagh
Set release number to 1.0.07, tracking transaction visibility bug
199
518.1.5 by Paul McCullagh
Minor change to the release notes
200
RN212: Fixed build problems on NetBSD.
201
202
RN211: Fixed build problems on FreeBSD.
203
204
RN210: Fixed build problems on OpenSolaris.
205
206
RN209: Added handling of the foreign_key_checks system flag.
492.1.14 by Vladimir Kolesnikov
updated ChangeLog
207
510 by Paul McCullagh
xtstat now does an auto-reconnect
208
RN208: xtstat will now automatically reconnect if the connection to server is lost. 
209
508 by Paul McCullagh
Added release note
210
RN207: Foreign key references are now checked on CREATE TABLE.
211
212
RN206: Fixed a crash if inserting into a table that has an FK that references a column that has no index on it.
213
214
RN205: Added processing of foreign key action SET DEFAULT.
492.1.5 by Vladimir Kolesnikov
merge from upstream
215
216
RN204: Fixed an index recovery problem: unswept index entries were not recovered correctly 
217
503 by Paul McCullagh
Foreign key references are now checked on CREATE TABLE
218
RN203: Fixed foreign key bug: REPLACE fails with 'on delete cascade'
219
220
RN202: Fixes and updates to tests, now all tests pass on windows and linux.
221
222
RN201: Fixed ref-counting for mmapped files.
223
224
RN200: Fixed an index recovery problem: unswept index entries were not recovered correctly .
424.1.24 by Vladimir Kolesnikov
updated ChangeLog
225
486 by Paul McCullagh
Recovery now takes place on plug-in startup
226
RN199: Recovery now takes place on plug-in startup. Previously recovery occurred when the first PBXT table was accessed.
227
484 by Paul McCullagh
Fixed a recovery bug that caused index entries to get out of sync with the data file
228
RN198: Fixed a recovery bug that caused index entries to get out of sync with the data file.
229
479 by Paul McCullagh
Changed checkpointing so that it works during idle time, and that any flush will contribute to the progress of a checkpoint
230
RN197: Improved the efficiency of group commit.
231
232
RN196: Changed checkpointing so that it now works during idle time. Every record, row or index file fllush now also contributes to the checkpoint (fuzzy checkpointing). Checkpointing is forced to complete after about 50% of the checkpoint threshold in order to ensure the correct maximum for log reading on recovery.
233
234
RN195: Fixed scheduling bug that caused sweeper to get behind with the cleanup, which caused performance problems in high conflict situations. Foreground threads will now wait if the sweeper gets too far behind.
447 by Paul McCullagh
Fixed scheduling bug that caused sweeper to get behind with the cleanup, which caused performance problems in high conflict situations
235
446 by Paul McCullagh
Created the xtstat program which monitors the internal performance of PBXT
236
RN194: Created the xtstat program which monitors the internal performance of PBXT. Run xtstat --help for more details information of the output. 
237
445 by Paul McCullagh
Implemented the pbxt.statistics virtual table
238
RN193: Implemented the pbxt.statistics virtual table. The statistics table returns information about the internal activity of the engine. This includes I/O byte counts, cache hit counts and usage, commit count, etc. 
239
439.1.1 by Paul McCullagh
Merged changes for RN191 & RN192
240
RN192: Due to timing issues in the engine API it could happen that the client received an OK for a committed transaction before the transaction was actually committed. This problem has been fixed.
241
242
RN191: Fixed a bug that caused a hang when conflicts occured while reading a covering index.
243
441 by Paul McCullagh
Merge with trunk
244
RN190: Previously the sweeper delayed deletion of transaction structures until all transactions that were running during sweeping have quit. This is now handled by the same code that fixed the bug in RN189.
438 by Paul McCullagh
Added release notes
245
246
RN189: Fixed a bug that could cause a row to go missing due to a visibility issue.
247
439.1.1 by Paul McCullagh
Merged changes for RN191 & RN192
248
RN188: Fixed a bug which ocurred when using CREATE TABLE ... AVG_ROW_LENGTH=x, and the table contained BLOBs. In this case, alter table corrupted the table.
438 by Paul McCullagh
Added release notes
249
250
RN187: Windows now stores paths in the location file in UNIX format by converting all '\' characters to '/'. Note that the location file is only cross-platform if the paths are relative (which is the default).
251
430.1.3 by Paul McCullagh
Set release number to 1.0.07, tracking transaction visibility bug
252
RN186: Set version number to 1.0.07.
253
430 by Paul McCullagh
Set release date
254
------- 1.0.06 Beta 2 - 2008-11-06
362 by paul-mccullagh
Set version to 1.0.06
255
411.5.5 by Paul McCullagh
Merged test result updates
256
RN185: Disabled support for INSERT DELAYED because of MySQL bug #40505
257
422 by Paul McCullagh
Added info(flag == HA_STATUS_AUTO), and changed test results for 5.1.29
258
RN184: Implemented info(flag == HA_STATUS_AUTO) engine API call. This call returns the next value that will be assigned as auto-increment value on the table.
259
417.1.2 by Vladimir Kolesnikov
turned off streaming on windows (see XT_STREAMING macro in sources)
260
RN183: Turned off streaming on Windows (see XT_STREAMING macro in sources)
411.5.3 by Vladimir Kolesnikov
updated ChangeLog
261
262
RN182: Switch code base to the latest version of BLOB streaming engine (PBMS): www.blobstreaming.org.
417 by Paul McCullagh
Switched to the current version of the BLOB streaming engine (PBMS)
263
411.3.3 by Paul McCullagh
Set release note to RN181
264
RN181: Updated pbxt-test-run default parameters (--force is on, --default-storage-engine is pbxt, --base-dir is set according to config)
265
413 by Paul McCullagh
Merged progress file stuff
266
RN180: PBXT can now cope with a missing .xti file (the file that contains the table indexes). This file can be regenerated using REPAIR TABLE.
267
411.2.2 by Paul McCullagh
Merged trunk
268
RN179: On recovery PBXT now creates a filed called 'recovery-progress' in the pbxt database. The recovery percentage complete is written to this file as recovery progresses. Note that this file will not be created if no recoery is necessary or if PBXT estimates that it will read less then 10MB to do recovery.
269
411.2.1 by Vladimir Kolesnikov
a memory corruption fix for CHECK TABLE
270
RN178: Fixed a problem in CHECK TABLE that caused memory corruption for fixed-size records
411.1.2 by Paul McCullagh
Create pbxt/recover-progress file on startup to indicate recovery percentage complete
271
410 by Paul McCullagh
Added crash debugging - creates a windows core dump, makes a backup copy of the datadir after a crash, keeps a number of previous transaction logs. To disable create var/pbxt/no-debug
272
RN177: Added "crash debugging". When enabled, crash debugging does the following:
273
  - Create a core dump on Windows if the server crashes.
274
  - Make a backup copy of the datadir directory before recovery if the server crashes.
275
  - Keep at least 5 of the previous transaction logs.
276
Currently crash debugging is disabled by default. To disable, create a file called 'no-debug' in the pbxt database folder, and restart the server. When crash debugging is disabled by default, it can be enabled by creating a file called 'crash-debug; in the pbxt database folder.
277
406.1.1 by Vladimir Kolesnikov
fixed some assertion, fixed a bug with lock being not properly unlocked
278
RN176: Fixed a bug: a lock was not released appropriately
279
280
RN175: Fixed some debug assertions
281
393.1.8 by Vladimir Kolesnikov
merge from up-stream, reverted configure (to be regenerated), ChageLog update
282
RN174: Fixed some of test/mysql-test tests
283
284
RN173: Fixed a RENAME TABLE bug, that prevented index files from being properly recreated
285
405 by Paul McCullagh
Added a lock file to prevent the server from being started twice
286
RN172: Added the file ./pbxt/lock-pid. This file is locked while the server is running, and  contains the process of the server. PBXT will return an error on startup if the file is locked or the process is still running in order to prevent a second server from being started.
287
400 by Paul McCullagh
Implemented the AVG_ROW_LENGTH table attribute. When set, this value determines the size of the fixed length data component of a record
288
RN171: Implemented the AVG_ROW_LENGTH table attribute. When set, this value determines the size of the fixed length data component of a record. Normally this size is estimated depending on the column definitions. The command CHECK TABLE dumps the current average row length to the log. This can be used to find a suitable value for AVG_ROW_LENGTH.
289
290
RN170: Changed configure so that debug/optimize flags set for building the engine override the flags set for MySQL. If --with-debug is not specified, then the engine will use the flags set when building MySQL. If MySQL was built with --with-debug=full, the DEBUG will be defined for the engine. When building the engine, the following flags can be set:
291
  yes  - Debug symbols enabled, no optimization, DEBUG not defined.
292
  full - Debug symbols enabled, no optimization, DEBUG defined.
293
  only - Debug symbols enabled, MySQL flags used, DEBUG not defined.
294
  prof - Profile code enabled, optimization on, DEBUG not defined.
295
  no   - No debug symbols, optimization on, DEBUG not defined.
296
396 by Paul McCullagh
Used MySQL root Makefile instead of config.status in order to extract settings
297
RN169: Used MySQL root Makefile instead of config.status in order to extract settings (such as CFLAGS and CXXFLAGS) for the PBXT build.
298
299
RN168: Fixed Windows build after merging changes for Drizzle.
300
301
RN167: Fixed "This table requires primary key" error in sql-bench.
302
303
RN166: Fixed threading problems that caused crashes in sql-bench.
304
305
RN165: Added sql-bench to pbxt source tree.
386.1.4 by bb
merged Paul's changes for Drizzle
306
377.1.5 by Paul McCullagh
Drizzle specific make files
307
RN164: Ported PBXT to Drizzle. To compile for Drizzle DRIZZLED must be defined on the command line. The -drz.am and -drz.in files are must be used when PBXT is embedded in Drizzle.
386.1.3 by bb
updated sql-bench/README and ChangeLog
308
386 by Paul McCullagh
Merged changes from RN163
309
RN163: Added "make test" build step. Running "make test" from the root of pbxt source tree will launch test/mysql-test/pbxt-test-run.pl with appropriate options to execute the pbxt functional test suite. On Windows where 
379.1.4 by Vladimir Kolesnikov
updated ChangeLog
310
pbxt is statically linked into mysql server binary pbxt testing works by going to test/mysql-test directory and running ./pbxt-test-run.pl with --base-dir argument pointing to a mysql source tree (mysql binaries are taken 
311
from there) and passing the rest of usual arguments (--force --mysqld=--default-storage-engine=pbxt) 
312
382 by Paul McCullagh
Added pbxt.location system table, drop database pbxt now works
313
RN162: The 'pbxt' database must now be dropped explicitly. It is automatically created when the first PBXT table is created. After that, the pbxt database can be dropped once all PBXT tables have been dropped. Dropping the pbxt database will also cause all transaction (pbxt/system directory) and data logs (pbxt/data directory) to also be deleted.
314
315
RN161: Added pbxt.location system table. This table can only be dropped when all PBXT tables have been deleted. Dropping the system table will cause all transaction (pbxt/system directory) and data logs (pbxt/data directory) to also be deleted.
316
317
RN160: Made changes to run with MySQL 6.0.6.
318
379 by Paul McCullagh
Added release notes
319
RN159: Changes to configure: added --with-plugindir=<path>, which should be used to specify the plugin directory. This means that --libdir should no longer be used. For backwards compatibility configure will still recognize this options if the path ends with 'plugin'.
320
321
Also updated --help, to include all options, and better desciptions of the options.
322
323
The configure options are now as follows:
324
325
--with-mysql=<path> - (Required) It specifies the path to the MySQL source tree. The source should already be built. All other options will be taken from the MySQL build by default.
326
--with-debug=yes/no - (Optional) Specify if then engine should be built with different debug options to the MySQL source tree.
327
--with-plugindur=<path> - (Optional) Specify an alternative installation directory for the plugin. By default it will be installed in the plugin directory of the MySQL installation.
328
329
330
RN158: Added support for core dumps on Windows. This can be enabled by defining XT_COREDUMP. On by default at the moment. If the server crashes a file called PBXTCore00000001.dmp will be created in the data directory. This file can be openned using MS VS.
331
332
RN157: Fixed a compile problem with tv_nsec which is not supported on all platforms.
333
334
RN156: Updated tests to run with MySQL 5.1.28.
335
369.1.3 by Vladimir Kolesnikov
Fixed RN155: Errors during cascade update of VARCHAR values with trailing spaces
336
RN155: Errors during cascade update of VARCHAR values with trailing spaces
337
369.1.1 by Vladimir Kolesnikov
Fixed a bug: impossible to create a foreign key that referenced an ENUM or SET column
338
RN154: Fixed a bug: impossible to create a foreign key that referenced an ENUM or SET column
339
367 by vkolesnikov
fixed a bug that caused the following problems:
340
RN153: Fixed a bug that caused the following problems: #1. Foreign keys: crash if update cascade and autocommit=0 #2. Foreign keys: crash if update cascade and multi-level recursion
341
363 by vkolesnikov
RN152: Fixed missing information about foreign keys in I_S.table_constraints and I_S.referential_constraints
342
RN152: Fixed missing information about foreign keys in I_S.table_constraints and I_S.referential_constraints
343
430 by Paul McCullagh
Set release date
344
------- 1.0.05 Beta - 2008-08-30
357 by paul-mccullagh
Added a callback called by a thread after releasing a lock, this prevents livelock when waiting for a lock
345
346
RN151: "Quick config": It is now possible to configure the engine by just specifying the mysql source code tree (the --with-mysql option). The --libdir and --with-debug setting will be deduced automatically. 
347
348
RN150: Added system variable pbxt_sweeper_priority, 0 = low (default), 1 = normal (same as user threads), 2 = high. The sweeper cleans up deleted records (deleted records also result from an update). If allowed to accumulate, these records can slow searches. Higher priority for the sweeper is recommended on systems with 4 or more cores.  
349
350
RN149: Record cleanup is now initiated if a deleted record is found, and the transaction that deleted the record has ended. Since waking up the sweeper is an expensive operation, normally the sweeper will run every 1/10th of a second.
351
352
RN148: Fixed a bug which caused transaction starvation (one transaction was constantly locked out) during high conflict updates. This lead to cleanup of records not being done, which lead to a general slow down.
353
354
RN147: Fixed a problem with TRUNCATE TABLE: a failed TRUNCATE TABLE could put the engine into an invalid state that later caused a crash
355
356
RN146: Fixed a bug that caused the error: "-49: Record format unknown, either corrupted or upgrade required".
350 by vkolesnikov
RN146: Fixed a problem with TRUNCATE TABLE
357
347 by paul-mccullagh
Set version number to 1.0.05
358
RN145: Added pbxt_db_offline_log_function system variable, 0 = recycle logs (default), 1 = delete logs (default on Mac OS X), 2 = keep logs.
359
430 by Paul McCullagh
Set release date
360
------- 1.0.04 Alpha - 2008-08-02
297 by paul-mccullagh
Handle restart and recovery even when the index of a table is corrupt
361
344 by paul-mccullagh
I actually forgot I did this!
362
RN144: Completed port and testing of Windows version.
363
342 by paul-mccullagh
Release notes
364
RN143: Fixed a bug which caused the free-er thread to hang. This was a result of an invalid operation ID, which was the result of the checkpointer flushing the table at the same time as a foreground thread.
365
366
RN142: The fast RW/mutex lock can now handle nested calls. This is possible during a sequential scan.
367
305 by paul-mccullagh
Added pbxt_auto_increment_mode and automatic re-calc statistics when table exceeds 200 rows
368
RN141: The normal behavior in MySQL is that an auto-increment values will be re-issued if you delete the row containing the current maximum auto-increment value and then restart the server. To prevent this you can use ALTER TABLE my_table AUTO_INCREMENT = <current-max-auto-increment> + 1, before deleting the current maximum auto-increment value.
369
370
A new system variable, pbxt_auto_increment_mode, has been added so that this work around is not necessary. When set to 0 (the default), auto-increment works as described above. When set to 1, the AUTO_INCREMENT value of the table is automatically to prevent previously issued auto-increment values being returned.
371
372
However, if the server crashes, a gap of up to 100 unique values can result, because the table AUTO_INCREMENT value is incremented in steps of 100.
373
374
RN140: Index statistics are now automatically recalculated when the table row count exceeds 200. 
375
303 by paul-mccullagh
End of block was overwritten, block_len - 1 required
376
RN139: Fixed a bug that caused index corruption, error: "int idx_push(index_xt.cc:172) -2: Core B-tree too deep".
377
297 by paul-mccullagh
Handle restart and recovery even when the index of a table is corrupt
378
RN138: Handle startup and recovery when an index is corrupted.
379
380
RN137: Fixed a bug in the zero wait R/W lock that caused the lock to fail (the state is extremely volatile, and must be written to memory after increment).
381
303 by paul-mccullagh
End of block was overwritten, block_len - 1 required
382
RN136: Fixed a bug that cause the error "int xt_pwrite_file(filesys_xt.cc:789) errno (14): Bad address".
275 by paul-mccullagh
Fixed a bug that returned duplicate rows, and TRUNCATE TABLE when using BLOB streaming
383
384
RN135: Fixed TRUNCATE TABLE that did not work correctly when the table contained BLOBs stored in the BLOB streaming engine (www.blobstreaming.org).
385
297 by paul-mccullagh
Handle restart and recovery even when the index of a table is corrupt
386
RN134: Fixed a bug that caused duplicate rows to be returned from an index scan (using a SELECT FOR UPDATE) if a concurrent update was done.
275 by paul-mccullagh
Fixed a bug that returned duplicate rows, and TRUNCATE TABLE when using BLOB streaming
387
360 by paul-mccullagh
Remove a debug
388
RN133: Optimised PBXT for multi-processor scale-up. This mostly involved using different types of locks instead of the standard pthread mutex and reader/writer locks [TODO: 0038].
275 by paul-mccullagh
Fixed a bug that returned duplicate rows, and TRUNCATE TABLE when using BLOB streaming
389
430 by Paul McCullagh
Set release date
390
------- 1.0.03 Alpha - 2008-05-30
229 by paul-mccullagh
Updated release notes
391
392
RN132: Fixed bug when using PBXT in conjunction with the BLOB streaming engine (www.blobstreaming.org). Uploaded BLOBs could not be inserted into a table.
393
394
RN131: Fixed wait for background processes on shutdown. Shutdown will wait a maximum of 16 seconds for each process.
395
396
RN130: Fixed calculation of bytes to be read for recovery.
397
398
RN129: Fixed bug in cleanup of unterminated transactions.
399
400
RN128: The writer will now start working when one of the following is true:
218 by paul-mccullagh
Fixed checkpointing frequency, and other bugs
401
- it is time for a checkpoint,
402
- the log cache is almost full,
403
- the free'er is waiting for the writer,
404
- there is no other activity.
405
229 by paul-mccullagh
Updated release notes
406
RN127: Fixed checkpoint frequency. Checkpointing is now done correctly after 'pbxt_checkpoint_frequency' bytes.
407
360 by paul-mccullagh
Remove a debug
408
RN126: Implemented index consistent write [TODO: 0050].
229 by paul-mccullagh
Updated release notes
409
410
RN125: Implemented memory mapping for row pointer (.xtr) and handle data files (.xtd).
411
412
RN124: Index files now use direct I/O.
413
430 by Paul McCullagh
Set release date
414
------- 1.0.02 Alpha - 2008-04-25
229 by paul-mccullagh
Updated release notes
415
416
RN123: Fixed compile errors with MySQL 5.1.24.
215 by paul-mccullagh
Fixed some tests
417
430 by Paul McCullagh
Set release date
418
------- 1.0.01 Alpha - 2008-03-28
208 by paul-mccullagh
Updated release notes
419
420
RN122: ++++ NOTE: This version is not compatible with older versions of PBXT ++++.
421
422
RN121: Transaction logs are now global so that multi-database statements are now possible. This makes it also possible to work PBXT temporary tables.
423
424
RN120: Transaction logs pre-allocated and recycled.
425
426
RN119: Transaction log writes on 512 byte boundaries only.
195 by paul-mccullagh
Transaction log writes on 512 byte boundaries only
427
430 by Paul McCullagh
Set release date
428
------- 1.0.00 Alpha - 2008-03-10
173 by paul-mccullagh
Implemented full durability
429
430
This version has alpha status because of the large number of changes done for full durability.
431
193 by paul-mccullagh
Updated notes
432
RN118: ++++ NOTE: This version is incompatible to older versions of PBXT ++++.
433
434
RN117: Documentation now avaliable at http://www.primebase.org/documentation.
435
436
RN116: Corrected the plug.in file so that PBXT compiles when dropped into the storage directory in the MySQL source tree.
185 by paul-mccullagh
Updated tests for MySQL 5.1.23
437
438
RN115: Compiled and tested with MySQL 5.1.23.
173 by paul-mccullagh
Implemented full durability
439
440
RN114: Increased index block size. Minimum is now 4K. Default is 16K.
441
185 by paul-mccullagh
Updated tests for MySQL 5.1.23
442
RN113: Calculate index selectivity to return a more accurate value from records_in_range(). NOTE: FLUSH TABLESl will update the index statistics, after data has been inserted or updated.
173 by paul-mccullagh
Implemented full durability
443
444
RN112: Optimized table storage, saving 8 bytes per row.
445
446
RN111: Optimized search on keys containing 2 or 3 not null integer values.
447
448
RN110: Optimization: store the row ID in the index so that an index entry can be verified as current without loading the record. This is necessary to optimize an access with index coverage.
449
450
RN109: Optimization: only load the record extended data if required.
451
452
RN108: Implemented SHOW ENGINE PBXT STATUS;
453
185 by paul-mccullagh
Updated tests for MySQL 5.1.23
454
RN107: Added the following system variables:
173 by paul-mccullagh
Implemented full durability
455
456
pbxt_index_cache_size - The amount of memory allocated to the index cache, used only to cache index data
457
pbxt_record_cache_size - The amount of memory allocated to the record cache used to cache table data
458
pbxt_log_cache_size - The amount of memory allocated to the transaction log cache used to cache on transaction log data
459
pbxt_log_file_threshold - The size of a transaction log before rollover, and a new log is created
185 by paul-mccullagh
Updated tests for MySQL 5.1.23
460
pbxt_transaction_buffer_size - The size of the global transaction log buffer (the engine allocates 2 buffers of this size)
173 by paul-mccullagh
Implemented full durability
461
pbxt_log_buffer_size - The size of the buffer used to cache data from transaction and data logs during sequential scans, or when writing a data log
185 by paul-mccullagh
Updated tests for MySQL 5.1.23
462
pbxt_checkpoint_frequency - The amount of data written to the transaction log before a checkpoint is performed
173 by paul-mccullagh
Implemented full durability
463
pbxt_data_log_threshold - The maximum size of a data log file
185 by paul-mccullagh
Updated tests for MySQL 5.1.23
464
pbxt_garbage_threshold - The percentage of garbage in a data log file before it is compacted
173 by paul-mccullagh
Implemented full durability
465
466
RN106: PBXT now compiles for MySQL 6.0.3.
467
468
RN104: Updates now locks a record temporarily. This prevents most "record changed" errors, however, it makes UPDATE statements a type of "committed read". This means that you may update a different value to that which you selected in repeatable read mode. To avoid this, use SELECT FOR UPDATE if you plan to UPDATE records after reading.
469
470
RN103: Implemented SELECT FOR UPDATE. This is implemented by turning SELECT FOR UPDATE into a type of "committed read". This means that, if you do a SELECT followed by a SELECT FOR UPDATE you can get different results, even in repeatable read mode.
471
472
RN102: Implemented recovery of index entries. Note: indexes are not yet fully consistent. This means that index can become currupted due to a crash. Data, however, cannot be lost. The indices can be rebuild using REPAIR TABLE.
473
474
RN101: Writing and flushing of a single transaction write-ahead log.
475
476
RN100: Automatic rollover of transaction logs as they become full.
477
478
RN99: Implementation of the transaction log cache.
479
480
RN98: Group commit.
481
482
RN97: Implementation of the writer thread that applies changes in the transaction log to the database.
483
484
RN96: Implementation of the checkpointer thread that periodically flushes the database and writes a checkpoint which determines the recovery start point.
485
486
RN95: Implementation of the free'er thread that is responsible for keeping the record cache at a preset level.
487
488
RN94: Modifications to the record cache so that rows are stored in pages, in order to speed up sequence access.
489
490
RN93: Implemented the recovery process which applies changes written to the log that are not in the database, on startup.
491
492
RN92: Modification of the sweeper thread which cleans up rolled-back transactions and deleted data, to use the new transaction log format.
493
494
RN91: Modifications to the data logs so that they use the same record structure as the transaction logs.
495
496
RN90: The data logs are now managed "per database" in order to minimize the work done to flush and commit a transaction.
497
498
RN89: Implementation of a file handle pool for the data logs.
499
500
------- 0.9.91 Beta - 2007-10-30
167 by paul-mccullagh
Corrected problem with URL encoding in BLOB URLs, only unreserved chars used now (see RFC2396)
501
502
RN88: The format of the URL genearated by MyBS has been changed. The format of the BLOB URLs is now as follows:
503
504
'~*' <db-name> '/' <type-char> <table-id> '-' <blob-id> '-' <access-code> '-' <server-id>
505
506
Where <type-char> is '_' or '~'.
507
508
Examples: ~*test/_11-128-fbd590b-0, ~*test/~1-524-3dc45b09-0
509
510
In other words, the characters '>' has been replace by '*', '^' has been replace by '_' and ':' has been replace by '~'. The reason for this is that the characters '>' and '^' are not allowed in URLs, and must be URL-encoded. The character ':' is reserved, but allowed.
511
512
NOTE: This change makes this version incompatible with previous versions of MyBS. If you have a table with BLOB URLs, you can upgrade the URLs as follows:
513
514
UPDATE blob_table SET blob_col = REPLACE(REPLACE(blob_col, '~>', '~*'), '/:', '/~');
515
516
Replacing '^' is not necessary because BLOB URLs with '^' should not appear in tables. 
517
165 by paul-mccullagh
Corrected stack trace of errors passed through the BLOB streaming API
518
------- 0.9.90 Beta - 2007-10-17
519
520
RN87: Corrected stack trace of errors passed through the BLOB streaming API.
159 by paul-mccullagh
Updated for 0.9.90
521
163 by paul-mccullagh
Added change
522
RN86: Added new engine API accessor functions that appeared in 5.1.21 (thanks Stewart).
523
159 by paul-mccullagh
Updated for 0.9.90
524
RN85: Added plug.in file. PBXT now compiles when dropped into the storage directory of the MySQL build tree. However, you have rebuild configure. For example:
525
526
rm -rf autom4te.cache/
527
aclocal
528
autoconf
529
autoheader
530
automake -a
531
./configure --help
532
./configure --with-plugins=max --without-innodb --prefix=/usr/local/mysql --with-debug=full
533
534
NOTE: ./configure --help should show that the PBXT has been included.
535
536
RN84: Fixed several problems with shutdown of PBXT in combiniation with MyBS.
537
144 by paul-mccullagh
release notes
538
------- 0.9.89 Beta - 2007-08-17
539
159 by paul-mccullagh
Updated for 0.9.90
540
RN83 (2007-08-21): Fixed a crash due to a compile bug that does not like the contruct *((xtWordPS *) &(v)) = (xtWordPS) (x) (macro allocr_() and alloczr_()).
541
542
RN82: It is now possible to insert non-URL values into a LONGBLOB field, in the previous version the generated an "Invalid URL" error. Such values can be retrieved as a stream using a field reference.
144 by paul-mccullagh
release notes
543
544
RN81: Fixed a bug that caused PBXT to crash during certina operations when MyBS was not installed.
545
546
RN80: Set engine as capable of row-level replication, but not as statement replication. Statement replication does not work because MVCC is not serializable.
547
140 by paul-mccullagh
Support for the features of the MyBS BLOB Streaming engine, version 0.5 Alpha
548
------- 0.9.88 Beta - 2007-07-25
549
141 by paul-mccullagh
Ported to MySQL 5.1.20
550
RN79: Made some corrections in order to compile with MySQL 5.1.20.
551
140 by paul-mccullagh
Support for the features of the MyBS BLOB Streaming engine, version 0.5 Alpha
552
RN78: Support for the features of the MyBS BLOB Streaming engine, version 0.5 Alpha.
553
139 by paul-mccullagh
Fixed a bug that caused a crash while handling BLOB data. The crash was due to changing the field structure which is shared data
554
RN77: Bugfix: The server crashes during BLOB data handling. The reason is the table field structure is shared, and may not be changed.
555
132 by paul-mccullagh
Added BLOB streaming stuff
556
------- 0.9.87 Beta - 2007-06-19
557
138 by paul-mccullagh
Added the latest bug fix
558
RN76: The major feature of this release is support for the BLOB Streaming Engine. The current version enables the download of specific BLOB columns via the Streaming Engine. For example:
132 by paul-mccullagh
Added BLOB streaming stuff
559
560
use test;
561
CREATE TABLE notes_tab (
562
  n_id        INTEGER PRIMARY KEY,
563
  n_text      BLOB
564
) ENGINE=pbxt;
565
INSERT notes_tab VALUES (1, "This is a BLOB streaming test!");
566
567
The URL:
568
569
http://localhost:8080/test/notes_tab/n_text/n_id=1
570
571
will return the value "This is a BLOB streaming test!"
572
138 by paul-mccullagh
Added the latest bug fix
573
RN75: Bugfix: MySQL prints error: "Plugin 'PBXT' will be forced to shutdown". This error was caused by the plug-in having a reference to itself.
574
132 by paul-mccullagh
Added BLOB streaming stuff
575
RN74: Added system variable pbxt_index_cache_size and pbxt_record_cache_size. These variable can now be set on the mysqld command line (for example: --pbxt_record_cache_size=50MB). The values are also displayed by SHOW VARIABLES.
576
107 by paul-mccullagh
Update notes
577
------- 0.9.86 Beta - 2007-04-07
102 by paul-mccullagh
Added release notes and changed the version number
578
579
RN74: ++++ NOTE: This version is incompatible to older versions of PBXT ++++.
580
132 by paul-mccullagh
Added BLOB streaming stuff
581
In order to upgrade, install the older version of PBXT. Convert all tables to MyISAM using ALTER TABLE t1 ENGINE=MyISAM. Then install the new version of PBXT and convert back using ALTER TABLE t1 ENGINE=PBXT.
102 by paul-mccullagh
Added release notes and changed the version number
582
107 by paul-mccullagh
Update notes
583
RN73: Each table will now use a maximum of 4 data log files. This means a maximum of 7 files per table. The minimum is 3 for tables that do not have a variable field that exceeds about 40 bytes in size. This means that under Linux PBXT requires a maximum of 7 file handles per table used. Windows lock of pread/pwrite (atomic seek and read/write) functions means it requires a file handler per file per open table handler. [TODO: 0044]
102 by paul-mccullagh
Added release notes and changed the version number
584
585
RN72: All threads now write to the same data log file. Recovery and compaction take this fact into account. Each thread still writes its own transaction log.
586
587
RN71: Removed all directory scans when creating and dropping table. Increased the table limit to 10000.
588
589
RN70: Changed locking to avoid a deadlock when TRUNCATE TABLE is used together with other DML.
590
591
RN69: procedures and functions are now considered atomic, and execute in a single transaction.
592
593
RN68: Bug fixed: all files are now correctly flushed before commit.
594
68 by paul-mccullagh
Last minute release notes
595
------- 0.9.85 Beta - 2007-03-15
596
597
RN67: Changed the implementation of the pushsr_ and allocr_ macros because "*((void **) &(v) = " caused a crash due to a compiler error on some platforms (thanks Luciano for your help on this one and RN66).
58 by paul-mccullagh
latest changes
598
599
RN66: Fixed a bug that caused PBXT to corrupt the index file when the size exceeded 4GB. [TODO: 0031]
600
601
RN65: PBXT now runs under Windows. This source tree must be placed in the MySQL source storage directory in order to compile. Further details of how to build are in the windows-readme.txt file. [TODO: 0027]
602
603
RN64: Improved speed of table lookup by ID after a table has been deleted. The sweeper needs to ignore these records. Scanning the directory each time was too slow.
604
605
RN63: Added checking for repeat update of a record in a statement.
606
607
RN62: Committed read no longer blocks due to a change made by another transaction (the XT_REPEATABLE_READ_BLOCKS define, turns blocking on).
608
609
RN61: Avoid checking for duplicates if an index is not modified by an update.
610
611
RN60: Records updated repeatedly by a transaction are now updated in place. [TODO: 0040]
612
21 by paul-mccullagh
Changes for 0.9.8 release
613
------- 0.9.8 Beta - 2007-01-30
16 by paul-mccullagh
RN59: Reduced the number of file handles used to a maximum of one per file. This assumes that pread() and pwrite() allows multiple threads to use the same file handle (according to my tests, this is the case).
614
615
RN59: Reduced the number of file handles used to a maximum of one per file. This assumes that pread() and pwrite() allows multiple threads to use the same file handle (according to my tests, this is the case).
616
617
RN58: Added the configure flag --with-debug=only which compiles a version of the plug-in with debug symbols that will link to an non-debug MySQL server.
618
619
RN57: Changed error number returned on lock from 1205 (lock timeout) to 1020 (optimistic lock failure).
620
621
RN56: Added UNIX environment variable for PBXT system parameters. These must be set before starting mysqld, for example:
622
623
setenv pbxt_index_cache_size 400MB
624
setenv pbxt_record_cache_size "1 GB"
625
626
Values are in bytes unless one of the following units is specified: GB, MB, Kb
627
628
RN55: Fixed a bug which prevented VARCHAR values from being compressed correctly when stored in variable length rows.
629
630
RN54: Fixed a bug which caused a crash when PBXT was used with MySQL 5.1.14. This bug also caused data to be corrupted on insert.
631
15 by paul-mccullagh
Set query caching mode to transactional, Added conditions so that the engine compiles with MySQL 5.1.14 and 5.1.13
632
RN53: Set query caching mode to transactional. [TODO: 0027]
633
634
RN52: Added conditions so that the engine compiles with MySQL 5.1.14 and 5.1.13.
635
9 by paul-mccullagh
Corrected release date
636
------- 0.9.74 Beta - 2006-12-14
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
637
638
RN51: DELETE FROM <table>; is no longer implemented by  re-creating the table. This statement now works by deleting all rows. TRUNCATE is implemented as before, by re-creating the table.
639
640
RN50: The test scripts innodb.test and innodb-mysql.test have been modified to run with PBXT.
641
642
RN49: [TODO: 0020] Implemented foreign keys. Functionality is identical to InnoDB with 2 exceptions:
643
644
* Data types of referenced columns must be an exact match (e.g. you cannot mix VARCHAR and CHAR values).
645
* Currently an exact matching index is required on referenced columns (i.e. the index may not have more columns that the columns used in the foreign key definition).
646
647
Also note the following:
648
649
* It is possible to create foreign keys that reference non-existent tables or columns. An error will occur when updating a table with an incorrect foreign key declaration.
650
* If you alter the data-type of a column referenced by a foreign key set you need to set foreign_key_checks=0; or an error will occur.
651
652
RN48: Fixed a bug in the implementation of indexes on ENUM and SET types.
653
654
RN47: Fixed a bug that caused a crash when an index was place on a BLOB column, and data was retrieved from the index directly.
655
7 by paul-mccullagh
RN47: Modified make dist so that the mysql-test-update folder is shipped
656
------- 0.9.73 Beta - 2006-10-31
657
658
RN46: Updated test scripts to run with MySQL 5.1.13.
659
1 by paul-mccullagh
Initial import
660
------- 0.9.72 Beta - 2006-10-19
661
662
RN45: Corrected compilation errors that occurred due to a change to struct st_mysql_plugin.
663
664
------- 0.9.71 Beta - 2006-10-04
665
666
RN44: Corrected compilation errors that occurred due to changes in the storage engine API.
667
668
------- 0.9.7 Beta - 2006-09-20
669
670
RN43: This is the first Beta release of PrimeBase XT. It has been integrated into MySQL 4.1.21 and is available as a plug-in for MySQL 5.1.12, or later. This version has been extensively tested using mysql-test-run, on various Linux and Mac OS X platforms.
671
672
RN42: ++++ NOTE: This version is incompatible to older versions of PBXT ++++. Files created by older versions cannot be opened by version 0.9.7.
673
674
RN41: Renaming or deleting a table while using a name with different case to the original created name did not work.
675
676
RN40: Fixed a bug when grouping and searching on indexed columns that contain a null.
677
678
RN39: Fixed bugs related to trailing spaces on VARCHAR values. Values that only vary by the number of trailing spaces (for example "aa" and "aa "), are now correctly handled as identical.
679
680
RN38: The default AUTO_INCREMENT value was not correctly preserved during ALTER TABLE.
681
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
682
RN37: Created a MySQL 5.1 Plugin version of PBXT. [TODO: 0017]
1 by paul-mccullagh
Initial import
683
684
RN36: Fixed a race condition in the row cache which had the affect that inserted rows dissappeared after cleanup because the cache was out of date. I was only able to reproduce this error on multi-processor machines.
685
686
------- 0.9.6 - 2006-08-05
687
688
RN35: ++++ NOTE: This version is incompatible to older versions of PBXT ++++.
689
690
The disk format of tables and log files has changed slightly in this version. As a result, files created by older versions cannot be opened by version 0.9.6. An error will be generated. If you have data wish to preserve, first start the older version of XT and convert all tables to MyISAM. The stop the server and removed all transaction log file (files of the form xtlog-*.xt). Then start the new version and convert tables back to XT.
691
692
RN34: Implemented READ COMMITTED transaction mode. XT now supports READ COMMITTED and SERIALIZABLE transaction modes. NOTE: if the mode is set to REPEATABLE READ, SERIALIZABLE is used. If the mode is set to READ UNCOMMITTED READ COMMITTED is used.
693
694
RN33: The implementation of AUTO_INCREMENT on a paritial index is non-standard. A unique value is generated without regard to the value of the index prefix. For example, assume we have the following table: CREATE TABLE t1 (c1 CHAR(10) not null, c2 INT not null AUTO_INCREMENT, PRIMARY KEY(c1, c2));
695
696
With the following contents:   c1 c2
697
                               A  8
698
                               B  1
699
700
After executing the following statement: insert into t1 (c1) values ('B');
701
702
This is the result using PBXT: c1 c2
703
                               A  8
704
                               B  1
705
                               B  9
706
707
The standard result would be:  c1 c2
708
                               A  8
709
                               B  1
710
                               B  2
711
712
RN32: PBXT does not permit access to multiple databases within a single transaction. For example:
713
714
begin;
715
update database_1.t1 set a=10;
716
update database_2.t2 set d=10;
717
commit;
718
719
In this case the following error is returned: 1015: Can't lock file (errno: -1)
720
721
RN31: The implementation of COUNT(*) has changed. For effectiency, rows are not counted. The information is taken from the header of the record (.xtr) files. This information is only 100% accurate after transaction cleanup has completed. Which basically means, only when PBXT is idle. ANALYZE TABLE waits for all background activity to stop, so the statement may be executed before a COUNT(*) to ensure an accurate result. NOTE: Other then waiting for background processes, ANALYSE TABLE is not implemented.
722
723
RN30: Two concurrency bugs have been fixed: a shared lock was used instead of an exclusive lock when deleting from a transaction list, the transaction segment semaphore was not initialized. XT now runs correctly in a multi-processor environment. The test used was sysbench on a dual-process, dual-core, AMD 64-bit machine running SUSE Linux 10.0.
724
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
725
RN29: PBXT compiles and runs on under 64-bit Lunix. [TODO: 0009]
1 by paul-mccullagh
Initial import
726
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
727
RN28: ./mysql-test-run --force --mysqld=--default-storage-engine=pbxt will now execute most tests successfully. Changes to the tests and the result have been documented in http://www.primebase.com/xt/download/pbxt-test-run-changes.txt. [TODO: 0004, 0019]
1 by paul-mccullagh
Initial import
728
729
RN27: Fixed a bug that caused the server to crash if when using tables locks and transactions. For example: LOCK TABLES, BEGIN, COMMIT, SELECT. This sequence now returns an error. The correct sequence is:
730
731
LOCK TABLES, BEGIN, COMMIT, UNLOCK TABLES, SELECT
732
or
733
LOCK TABLES, BEGIN, COMMIT, BEGIN, SELECT COMMIT, UNLOCK TABLES
734
735
RN26: Fixed a concurrency problem which caused a number of threads to hang during the sysbench test - see RN30 above (bug reported by Vadim).
736
737
RN25: Fixed a bug that caused the server to hang when ha_pbxt::create() and ha_pbxt::ha_open() where given different, but equivalent paths for a particular table.
738
739
RN24: Fixed bug in the indexing of blob columns, for example: create table t1(name_id int, name blob, INDEX name_idx (name(5)));
740
741
RN23: When a duplicate key error occurs in auto-commit mode, the transaction is now rolled back.
742
743
RN22: Fixed incorrect duplicate key error. In the case of a unique key which allows NULLs, duplicates are allowed if the inserted key contains a NULL. For example:
744
745
create table t1 (id int not null, str char(10), unique(str));
746
insert into t1 values (1, null),(2, null),(3, "foo"),(4, "bar");
747
748
RN21: PBXT now returns the correct error code on duplicate key: 1062 instead of 1022.
749
750
RN19: Implemented AUTO_INCREMENT on partial keys. However, the XT implementation is non-standard. Increment of partial index works, but the ID generated is incremented like a non-partial index. For example:
751
752
create table t1 (c1 char(10) not null, c2 int not null auto_increment, primary key(c1, c2));
753
select * from t1;
754
c1 c2
755
A  8
756
B  1
757
758
insert into t1 (c1) values ('B');
759
select * from t1;
760
c1 c2
761
A  8
762
B  1
763
B  9
764
765
The standard result would be:
766
c1 c2
767
A  8
768
B  1
769
B  2
770
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
771
RN18: Implemented TRUNCATE TABLE and DELETE FROM <table>; (i.e. a DELETE without WHERE clause). Previously DELETE FROM <table>; did not cause an error, but no rows where deleted (TRUNCATE TABLE returned an error). [TODO: 0012, 0022]
1 by paul-mccullagh
Initial import
772
773
RN17: Implemented CREATE TABLE (...) auto_increment=<value>;
774
775
------- 0.9.51 - 2006-07-06
776
777
RN16: Fixed crash which could occur when creating the first table in a database (bug reported by Hakan). 
778
779
------- 0.9.5 - 2006-07-03
780
781
RN15: This version concludes the re-structuring of the PBXT implementation. I have made a number of major changes, including:
782
783
- All files except the transaction logs are now associated with a particular table. All table related files begin with the name of the table. The extension indicates the function. 
784
785
- I have merged the handle and the fixed length row data for performance reasons.
786
787
- Only the variable size component of a row is stored in the data log files. As a result the data logs can now be considered as a type of "overflow" area.
788
789
- Memory mapped files are no longer used because it is not possible to flush changes to the disk.
790
791
RN14: File names have the following forms:
792
793
[table-name]-[table-id].xtr - These files contains the table row pointers. Each row pointer occupies 8 bytes and refers to a list of records. The file name also contains the table ID. This is a unique number which is used internally by XT to identify the table. 
794
795
[table-name].xtd - This file contains the fixed length data of a table. Each data item includes a handle and a record. The handle references a record in the data log file if the table contains variable length records.
796
797
[table-name].xti - This file contains the index data of the table.
798
799
[table-name]-[log-id].xtl - This is a data log file. It contains the variable length data of the table. A table may have any number of data log files, each with a unique ID.
800
801
xtlog-[log-id].xt - These files are the transaction logs. Log entries that specify updates reference a data file record. Each active thread has its own transaction log in order to avoid contension.
802
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
803
RN13: Fixed the bug "Hang on DROP DATABASE". [TODO: 0016] 
1 by paul-mccullagh
Initial import
804
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
805
RN12: PBXT currently only supports the "Serializable" transaction isolation level. This is the highest isolation level possible and includes the "repeatable-read" functionality [TODO: 0015]. This is implemented by giving every transaction a snapshot of the database at the point when the transaction is started.
1 by paul-mccullagh
Initial import
806
807
If the transaction tries to update a record that was updated by some other transaction after the snapshot was taken, a locked error is returned. A deadlock can occur if 2 transactions update the same record in a different order. PBXT can detect all deadlocks.
808
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
809
RN11: I have implemented write buffering on the table data files. [TODO: 0013]
810
811
RN10: The unique constraint (UNIQUE INDEX/PRIMARY KEY) is now checked correctly. [TODO: 0008]
812
813
RN9: I have implemented a conventional B-tree algorithm for the indices (instead of the Lehman and Yoa B*-link tree). Although this reduces concurrency it improves the performance of queries significantly because of the simplicity of the algorithm. Deletion is also implemented in a very simple manner. [TODO: 0007]
814
815
RN8: PBXT now has only 2 caches [TODO: 0006]:
1 by paul-mccullagh
Initial import
816
817
The Index Cache (pbxt_index_cache_size): This is the amount of memory the PBXT storage engine uses to cache index data and row pointers. This is all the data in the files with the extensions '.xti' and '.xtr'. This cache is managed in blocks of 2K.
818
819
The Record Cache (pbxt_record_cache_size): This is the amount of memory the PBXT storage engine uses to cache table row data (handles and records). This is all the data in the files with the extension '.xtd'.
820
821
The size of the caches are determined by the values of the system variables pbxt_index_cache_size and pbxt_row_cache_size. By default these values are set to 32MB.
822
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
823
RN7: Auto-increment is now implemented in memory. This is done by doing a MAX() select when a table is first opened to get the high value. After that, then high value is incremented in memory on INSERT. On UPDATE (or INSERT) the value in memory is adjusted if necessary. This method also makes it possible for rows to be inserted simultaneously on the same table. [TODO: 0005, 0014]
824
825
RN6: ./run-all-tests --create-options=TYPE=PBXT succeeds. [TODO: 0004]
826
827
RN5: Using sql-bench and my own Java based test I have confirmed that PBXT behaves correctly during multi-threaded access. [PARTIALY TODO: 0002]
828
829
RN4: Load/Stability test. Using sql-bench I have tested PBXT under load over a long period of time. [PARTIALY TODO: 0001]
1 by paul-mccullagh
Initial import
830
831
------- 0.9.2 - 2006-04-01
832
833
RN3: Fixed a bug that cause the error "-6: Handle is out of range: [0:0]".
834
835
RN2: Implemented SET, ENUM and YEAR data types.
836
8 by paul-mccullagh
Implemented foreign keys and fixed some bugs (RN47 - RN51)
837
RN1: Fixed a bug in the error reporting when a table is created with a datatype that is not supported. [TODO: 0011]
1 by paul-mccullagh
Initial import
838
107 by paul-mccullagh
Update notes
839