* In PRAGMA journal_mode=TRUNCATE mode, call fsync() immediately after truncating the journal file to ensure that the transaction is durable across a power loss.
* Fix an assertion fault that can occur when updating the NULL value of a field at the end of a table that was added using ALTER TABLE ADD COLUMN.
* Do not attempt to use the strchrnul() function from the standard C library unless the HAVE_STRCHRNULL compile-time option is set.
* Fix a couple of problems associated with running an UPDATE or DELETE on a VIEW with a rowid in the WHERE clause.
Changes in 0.57:
- fixed an overloaded virtual function error in sqlr-status
- fixed parsing of "term as type" clauses in queries
- fixed 0 vs. None error in python getRowDictionary method
- tweaked php and php_pdo modules to build with php 5.6.0 on windows
- updated deployment projects for windows, adding perl, php, python
and java, and adding x64 support
- describe/getColumnList supports synonyms with oracle now
- the mysql, firebird and oracle connections return sensible errors when
the format of a numeric bind variable is wrong now
- fixed a bug that could cause the mysql connection to loop up if
alphanumeric bind variable names were used instead of numbers
- fixed a bug that could cause the database specified in the mysql
connection string to be ignored
- fixed a bind-variable translation bug that could cause variables not
to be translated when multiple formats are used in the same
query and one of them is the correct format
- describing oracle tables returns key (PRI,UNI,MUL) info now
- added disablekeylookup option to disable getting key information when
describing oracle tables
- fixed broken --with-system-libtool configure option
- mysql-config --libs_r is used in preference to --libs now,
solves build error with maria db on ubuntu 14.04.1
- fixed mysql drop-in lib errors with mysql_row_seek and mysql_row_tell
Changes in 2.4.1:
- Fixed#448, add hook to the connection pool for detecting closed
connections.
- Fixed#229, fix join attribute detection.
- Fixed#447, fixed documentation typo.
Changes in 2.4.0:
- Most of the introspection logic was moved out of the pwiz module and
into playhouse.reflection.
- Created a new reflection extension for introspecting databases. The
reflection module additionally can generate actual peewee Model classes
dynamically.
- Created a dataset library (based on the SQLAlchemy project of the same
name). For more info check out the blog post announcing playhouse.dataset.
- Added a db_url module which creates Database objects from a connection
string.
- Added csv dump functionality to the CSV utils extension.
- Added an atomic context manager to support nested transactions.
- Added support for HStore, JSON and TSVector to the reflection module.
- More documentation updates.
- Fixed#440, which fixes a bug where Model.dirty_fields did not return
an empty set for some subclasses of QueryResultWrapper.
---------
0.27.5 (2014-10-24)
^^^^^^^^^^^^^^^^^^^
- Made assert_* functions automatically rollback session
- Changed make_order_by_deterministic attach order by primary key for queries without order by
- Fixed alias handling in has_unique_index
- Fixed alias handling in has_index
- Fixed alias handling in make_order_by_deterministic
0.27.4 (2014-10-23)
^^^^^^^^^^^^^^^^^^^
- Added assert_non_nullable, assert_nullable and assert_max_length testing functions
0.27.3 (2014-10-22)
^^^^^^^^^^^^^^^^^^^
- Added supported for various SQLAlchemy objects in make_order_by_deterministic (previosly this function threw exceptions for other than Column objects)
0.27.2 (2014-10-21)
^^^^^^^^^^^^^^^^^^^
- Fixed MapperEntity handling in get_mapper and get_tables utility functions
- Fixed make_order_by_deterministic handling for queries without order by (no just silently ignores those rather than throws exception)
- Made make_order_by_deterministic if given query uses strings as order by args
0.27.1 (2014-10-20)
^^^^^^^^^^^^^^^^^^^
- Added support for more SQLAlchemy based objects and classes in get_tables function
- Added has_unique_index utility function
- Added make_order_by_deterministic utility function
0.27.0 (2014-10-14)
^^^^^^^^^^^^^^^^^^^
- Added EncryptedType
0.26.17 (2014-10-07)
^^^^^^^^^^^^^^^^^^^^
- Added explain and explain_analyze expressions
- Added analyze function
1.44 2014-10-22
- Switched to a production version. (ISHIGAKI)
1.43_09 2014-10-20
- Resolved#99583: Legacy DOS 8.3 filename support incompatible
with SQLITE WAL journal mode (spotted by Pat Horton) (ISHIGAKI)
- 1.43_07/08 were not VC6 compatible (ISHIGAKI)
1.43_08 2014-08-21
- Updated to SQLite 3.8.6, which should fix a unique index
issue: see http://www.sqlite.org/src/info/9a6daf340df99ba93c
for details (ISHIGAKI)
1.43_07 2014-07-30
- Resolved#97598: Crash on disconnect with virtual tables (FTS4)
(patch and test code by Rob++) (ISHIGAKI)
1.43_06 2014-07-22
- Fixed compile error/warning for older perls (reported by ribasushi)
(ISHIGAKI)
1.43_05 2014-07-21
- No significant code changes; removed unnecessary dependencies.
1.43_04 2014-07-21
*** CHANGES THAT MAY POSSIBLY BREAK YOUR OLD APPLICATIONS ***
- Resolved#96877: sql statements should be converted to utf8 (DAMI)
If you set sqlite_unicode to true, SQL statements will be upgraded
to avoid inconsistency between embedded params and bind params.
- Resolved#96494: [PATCH] add SYSTEM TABLE to table_info() type
list (MJP)
- Supported virtual tables in Perl, and added two sample tables
(DAMI++)
1.43_03 2014-06-12
- Updated to SQLite 3.8.5, which should fix query planner's
issues in SQLite (ISHIGAKI)
- Fixed busy_timeout to accept 0 to disable (reported by zdm)
(ISHIGAKI)
- Resolved#95511: primary_key_info fails to return names for
named primary keys (Kenneth Kroenlein)
- Resolved#96050: Segfault in disconnected sqlite_db_filename
(reported by Alex Vandiver) (ISHIGAKI)
1.43_02 2014-03-26
- Limited -std=gnu99 to solaris gcc only, though it may be
harmless in many cases (mattp++) (ISHIGAKI)
1.43_01 2014-03-26
- Added -std=gnu99 for solaris gcc users (reported by mattp++)
(ISHIGAKI)
The following bugs have been fixed since version 4.2.10:
- bug #4562 [security] XSS in debug SQL output
- bug #4563 [security] XSS in monitor query analyzer
Performance Enhancements:
* Many micro-optimizations result in 20.3% more work for the same number of CPU cycles relative to the previous release. The cumulative performance increase since version 3.8.0 is 61%. (Measured using cachegrind on the speedtest1.c workload on Ubuntu 13.10 x64 with gcc 4.8.1 and -Os. Your performance may vary.)
* The sorter can use auxiliary helper threads to increase real-time response. This feature is off by default and may be enabled using the PRAGMA threads command or the SQLITE_DEFAULT_WORKER_THREADS compile-time option.
* Enhance the skip-scan optimization so that it is able to skip index terms that occur in the middle of the index, not just as the left-hand side of the index.
* Improved optimization of CAST operators.
* Various improvements in how the query planner uses sqlite_stat4 information to estimate plan costs.
New Features:
* Added new interfaces with 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_result_blob64(), sqlite3_bind_text64(), and sqlite3_result_text64().
* Added the new interface sqlite3_msize() that returns the size of a memory allocation obtained from sqlite3_malloc64() and its variants.
* Added the SQLITE_LIMIT_WORKER_THREADS option to sqlite3_limit() and PRAGMA threads command for configuring the number of available worker threads.
* The spellfix1 extension allows the application to optionally specify the rowid for each INSERT.
* Added the User Authentication extension.
Bug Fixes:
* Fix a bug in the partial index implementation that might result in an incorrect answer if a partial index is used in a subquery or in a view.
* Fix a query planner bug that might cause a table to be scanned in the wrong direction (thus reversing the order of output) when a DESC index is used to implement the ORDER BY clause on a query that has an identical GROUP BY clause.
* Fix a bug in sqlite3_trace() that was causing it to sometimes fail to print an SQL statement if that statement needed to be re-prepared.
* Fix a faulty assert() statement.
The following bugs have been fixed since version 4.2.9.1:
- bug #4361 Can't change font size (when config.inc.php not present)
- bug #4542 Tab key in column name not shown
- bug PDF export: title not present in PDF
- bug #4543 Changing column name can break saved "order by" clause
- bug #4545 trying to favorite table while browser localStorage is disabled
throws JS error
- bug #4259 reCaptcha sound session expired problem
- bug #4548 Inline editing a field converts tab to spaces
- bug #4252 Database-level permission bug for db names containing underscores
- bug #3120 Events are not exported when using xml
- bug #4554 Grid-editing timestamp column forces datepicker
- bug #4556 Fast filters for tables, views etc. should be governed by
NavigationTreeDisplayItemFilterMinimum
Intented as a clean implementation (replacement) of wip/mysql-sphinxse.
SphinxSE is MySQL storage engine which can be compiled into MySQL server 5.x
using its pluggable architecture. Despite the name, SphinxSE does not
actually store any data itself. It is actually a built-in client which
allows MySQL server to talk to searchd, run search queries, and obtain
search results. All indexing and searching happen outside MySQL.
See http://sphinxsearch.com/docs/current.html#sphinxse-overview
Peewee is a simple and small ORM. It has few (but expressive)
concepts, making it easy to learn and intuitive to use.
Supports SQLite, MySQL and PostgreSQL.
Released 2.4.18 2014-10-09
Changes since 2.4.17:
Lib/
* Fixed raising exception in LDAPObject.read_s() when reading
an entry returns empty search result
New Features
------------
* allows rrdrestore to read input from stdin
* add documentation for RRDs::xport
* RPN operators MINNAN and MAXNAN
* --left-axis-format option to rrd_graph
Bugfixes
--------
* properly verify validity of user suplied format strings
* remove graph functions from python module when compiled without graphing
support
* verify that only short integers are used in COMPUTE rpn expressions
* eliminate duplicate setlocale calls
* fixed endless loop and double frees in rrd_restore
* fixed missing variable initializations in rrd_graph
* fixed JSON output format to actually be valid JSON
* detect failing fallocate and fall back to seeking
* fixed format string in ruby bindings
New Features
------------
* allows rrdrestore to read input from stdin
* add documentation for RRDs::xport
* RPN operators MINNAN and MAXNAN
* --left-axis-format option to rrd_graph
Bugfixes
--------
* properly verify validity of user suplied format strings
* remove graph functions from python module when compiled without graphing
support
* verify that only short integers are used in COMPUTE rpn expressions
* eliminate duplicate setlocale calls
* fixed endless loop and double frees in rrd_restore
* fixed missing variable initializations in rrd_graph
* fixed JSON output format to actually be valid JSON
* detect failing fallocate and fall back to seeking
* fixed format string in ruby bindings
* Connector/Python is now compatible with Django 1.7.
* RANGE_STRING is now supported as a sharding type.
* RANGE_DATETIME is now supported as a sharding type.
* Bugs Fixed
Fixed tcl library linking for AIX 7.
Fixed a bug that could cause a trap if a lock timeout occurred while opening a database.
Fixed missing encryption support for the Android JDBC driver.
Fixed an incorrect message being displayed when the -l option was specified to the db_hotbackup utility.
Fixed a bug that DB_ENV->log_get_config did not work correctly before DB_ENV->open.
Fixed a bug that could cause a SQL build failure when FTS3 is enabled.
Fixed a bug that prevented in-memory SQL database from being created properly. They can now be created without the use of the SQLITE_OPEN_CREATE flag.
Fixed a memory leak in SQL online backup.
Added additional examples for C++
Fixed a bug that could make odbc fail to build with sqlite source code.
Fixed bugs in compaction of large keys in the upper levels of btrees.
The db utilities (db_xxxx) no longer operate on replication clients that are being automatically initialized. The DB_REP_LOCKOUT error is now returned.
Using DB_TXN_SNAPSHOT on an HA client will now result in an error.
Fixed a bug that prevented a sub-database from being created under the directory identified in DB->set_create_dir.
Fixed a race condition on a cursor when using a multi-threaded application with the SQL API.
Fixed a race condition in the failchk code when cleaning up mutexes.
Fixed a resource leak in the db->verify() function for btrees. The bug would slow down verification and possibly cause it to run out of memory.
Removed a potential hang when compacting databases with many duplicates.
Fixed a bug that caused a crash when reentering dbsql and specifying replication=on for a SQL database where replication was already enabled.
Fixed an incorrect recursive call dealing with joins.
Fix build failures in ado.net
Fixed a bug that could cause a JDBC build failure on recent versions of Visual Studio.
Correct build problems when building dbstl with gcc-4.7.3
^^^^^^^^^^^^^^^^^^^^
- Fix aggregate value handling for cascade deleted objects
- Fix ambiguous column sorting with join table inheritance in sort_query
0.26.15 (2014-08-28)
^^^^^^^^^^^^^^^^^^^^
- Fix sort_query support for queries using mappers (not declarative classes) with calculated column properties
0.26.14 (2014-08-26)
^^^^^^^^^^^^^^^^^^^^
- Added count method to QueryChain class
0.26.13 (2014-08-23)
^^^^^^^^^^^^^^^^^^^^
- Added template parameter to create_database function
0.26.12 (2014-08-22)
^^^^^^^^^^^^^^^^^^^^
- Added quote utility function
0.26.11 (2014-08-21)
^^^^^^^^^^^^^^^^^^^^
- Fixed dependent_objects support for single table inheritance
0.26.10 (2014-08-13)
^^^^^^^^^^^^^^^^^^^^
- Fixed dependent_objects support for multiple dependencies
* Fixed a bug with the bytearray support introduced in 2.10.2. Thanks
Josh Owen.
* 2.10.2
* Added support for Hiredis's new bytearray support. Thanks
https://github.com/tzickel
* POSSIBLE BACKWARDS INCOMPATBLE CHANGE: Fixed a possible race condition
when multiple threads share the same Lock instance with a timeout. Lock
tokens are now stored in thread local storage by default. If you have
code that acquires a lock in one thread and passes that lock instance to
another thread to release it, you need to disable thread local storage.
Refer to the doc strings on the Lock class about the thread_local
argument information.
* Fixed a regression in from_url where "charset" and "errors" weren't
valid options. "encoding" and "encoding_errors" are still accepted
and preferred.
* The "charset" and "errors" options have been deprecated. Passing
either to StrictRedis.__init__ or from_url will still work but will
also emit a DeprecationWarning. Instead use the "encoding" and
"encoding_errors" options.
* Fixed a compatability bug with Python 3 when the server closes a
connection.
* Added BITPOS command. Thanks https://github.com/jettify.
* Fixed a bug when attempting to send large values to Redis in a Pipeline.
A new libmongoc-priv.so library is installed that does not have symbols
hidden. You can access private headers via the -private.h variants. This
means you will need to recompile your project every time the library is
changed (if you use those private headers, as they are subject to change).
For other minor changes, see commits made since 0.98.0:
https://github.com/mongodb/mongo-c-driver/compare/0.98.0...1.0.0
--[ Redis 2.8.17 ] Release date: 19 Sep 2014
# UPGRADE URGENCY: HIGH for Redis Sentinel.
LOW for Redis Server (unmodified compared to 2.8.16).
* [FIX] Resolved a memory leak in the hiredis library causing a memory leak
in Redis Sentinel when a monitored instance or another Sentinel is
unavailable. Every reconnection attempt will leak a small amount of
memory, but in the long run the process can reach a considerable size.
--[ Redis 2.8.16 ] Release date: 16 Sep 2014
# UPGRADE URGENCY: HIGH for Redis if you are using 2.8.15 + AOF.
LOW for Sentinel.
* [FIX] The ability to load truncated AOF files introduced with Redis 2.8.15
contains a bug fixed in this release: after loading the file was not
truncated to the last valid command, so the new commands are appended
after a non well formed command. This means that:
1) The first AOF rewrite triggered by the server will automatically
fix the problem.
2) However, if the server is restarted before the rewrite, Redis may
not be able to load the file and you need to manually fix it.
In order to fix a corrupted file you should start the redis-check-aof
utility WITHOUT the --fix option, just to check the offset where the
corruption is found. Around the offset reported by the check utility
you'll find, inside your AOF file, a command which is not complete
according to the Redis protocol. Just remove this incomplete command
leafing the file unaltered before and after the offending command,
and restart the server.
IMPORTANT #1: Redis 2.8.15 is the only stable version of Redis with
this bug so probably no actual real-world problem happened since the
problem is automatically fixed at the first automatic AOF rewrite.
IMPORTANT #2: Before upgrading to Redis 2.8.16, if you are using Redis
2.8.15 with AOF enabled, make sure to trigger a manual AOF rewrite
using the BGREWRITEAOF command.
* [FIX] SAVE is no longer propagated to AOF / slaves.
--[ Redis 2.8.15 ] Release date: 12 Sep 2014
# UPGRADE URGENCY: LOW for Redis, HIGH for Sentinel.
* [FIX] Sentinel critical bug fixed: the absolute majority was computed in a
wrong way because of a programming error. Now the implementation does
what the specification says and the majority to authorize a failover
(that should not be confused with the ODOWN quorum) is the majority of
*all* the Sentinels ever seen for a given master, regardless of their
current state.
* [FIX] GETRANGE test no longer fails for 32 bit builds (Matt Stancliff).
* [FIX] Limit SCAN latency when the hash table is in an odd state (very few
populted buckets because rehashing is in progress). (Xiaost and
Salvatore Sanfilippo)
* [NEW] Redis is now able to load truncated AOF files without requiring a
redis-check-aof utility run. The default now is to load truncated
(but apparently not corrupted) AOFs, you can change this in redis.conf.
(Salvatore Sanfilippo).
* [NEW] Sentinel: ability to announce itself with an arbitrary IP/port to work
in the context of natted networks. However this is probably still
not enough since there is no equivalent mechanism for slaves listed
in the master INFO output. (Dara Kong and Salvatore Sanfilippo)
--[ Redis 2.8.14 ] Release date: 1 Sep 2014
# UPGRADE URGENCY: HIGH for Lua scripting users, the server could crash because
of a bug introduced in Redis 2.8.10, otherwise LOW.
LOW for Redis Sentinel.
* [FIX] Don't prevent use of shared integers if maxmemory policy is non-LRU.
(Salvatore Sanfilippo)
* [FIX] Fail SYNC if background save child aborted due to a signal.
(Yossi Gottlieb)
* [FIX] Different small redis-cli fixes. (Dov Murik, Charsyam, cubicdaiya,
Kashif Rasul, Jan-Erik Rediger, Matt Stancliff)
* [FIX] AIX compilation fixes. (Siah Lyimo)
* [FIX] A number of other smaller issues.
* [FIX] Improved SIGINT handling (Matt Stancliff, Salvatore Sanfilippo)
* [FIX] Use unsigned types in SDS header to raise limit to 4GB.
(Matt Stancliff, Salvatore Sanfilippo)
* [FIX] Handle signed/unsigned comparisons with more care around the code.
(Salvatore Sanfilippo)
* [FIX] Colorized test output fixed to don't change the background color.
(Mariano Pérez Rodríguez)
* [FIX] More Sentinel IPv6 fixes. (Eiichi Sato)
* [FIX] Deny CLIENT command in scripts. (Matt Stancliff)
* [FIX] Allow datasets with more than 2 billion of keys, initial work.
* [FIX] Fix a Lua scripting crash by storing the length of the static
argv when first allocated. (Paddy Byers)
* [NEW] Pub/Sub PING. (Salvatore Sanfilippo)
* [NEW] Much faster ZUNIONSTORE. (Kyle Hubert, Salvatore Sanfilippo)
* [NEW] Faster ll2string() implementation. (Salvatore Sanfilippo)
* [NEW] **WARNING, minor API change**: PUBSUB NUMSUB: return type modified
to integer. (Matt Stancliff)
* [NEW] redis-benchmark support for AUTH. (CharSyam)
Released 2.4.17 2014-09-27
Changes since 2.4.16:
Lib/
* New hook syncrepl_refreshdone() in ldap.syncrepl.SyncReplConsumer
(thanks to Petr Spacek and Chris Mikkelson)
Modules/
* Added support for getting file descriptor of connection
with ldap.OPT_DESC
Version 3.4.2 Released September 25, 2015 (git commit 61440e1f4ccb6c293c5838676da1942e0df67271)
- Fix bug where single-quoted type arguments to the table_info()
method were causing a SQL error.
[Greg Sabino Mullane] (CPAN bug #99144)
InnoDB: An ALTER TABLE ... ADD FOREIGN KEY operation could cause a serious error.
InnoDB: With a transaction isolation level less than or equal to READ COMMITTED, gap locks were not taken when scanning a unique secondary index to check for duplicates. As a result, duplicate check logic failed allowing duplicate key values in the unique secondary index.
InnoDB: During recovery, a segmentation fault would occur when marking a table as corrupt.
yaSSL client code did not validate the encryption size or session ID length, which could cause the client to exit.
MySQL installation from RPM packages could fail if Postfix had been installed using yum.
yaSSL could fail preauthorization if the client supplied inaccurate buffer lengths.
Competition between threads could lead to timeout failure trying to rotate the audit log file.
On Linux (OEL6), if Sun DTrace was installed, the MySQL build failed.
LPAD() and RPAD() could cause a server exit if the pad string argument was not well formed.
The optimizer could create a zero-length column for a temporary table, causing a server exit.
The --skip-innodb option is now deprecated and its use results in a warning. It will be removed in a future MySQL release. This also applies to its synonyms (--innodb=OFF, --disable-innodb, and so forth).
MySQL Enterprise Edition now includes a set of encryption functions based on the OpenSSL library that expose OpenSSL capabilities at the SQL level.
Replication: The new variable simplified_binlog_gtid_recovery can be used to change the way binary log files are searched for previous GTIDs during recovery, speeding up the process when a large number of binary log files exist.
Internally, spatial data types such as Geometry are represented as BLOB values, so when invoked with the --hex-blob option, mysqldump now displays spatial values in hex.
Bugs Fixed...