# Version 2.5.3

## Bug

- [SYMMETRICDS-555] - Connection pool can exhaust at high activity because of out of order interceptors in 2.5
- [SYMMETRICDS-556] - Slow extracts - During the extract process routers are being queried from the database for each data event read.
- [SYMMETRICDS-557] - sym_data_gap can be left stranded without a required last gap entry record

## New Feature

- [SYMMETRICDS-559] - Add support for geometry types in postgres. The fix should work for other unknown types that can be cast and dealt with as varchar fields

# Version 2.5.2

## Bug

- [SYMMETRICDS-551] - Don't sync changes to sym_node_security if the registration_enabled or initial_load_enabled flag have changed
- [SYMMETRICDS-552] - Don't resync triggers if the configuration has changed via the symmetricds dataloader (they will have already been sync'd during the load)

## Improvement

- [SYMMETRICDS-554] - Pass a datasource to the beanshell script that gets called during dataload when a beanshell script is encountered.

# Version 2.5.1

## Bug

- [SYMMETRICDS-540] - Postgres insert of same row with no primary keys does not insert a row past the first insert.
- [SYMMETRICDS-542] - two errors in JRE5.0

## Improvement

- [SYMMETRICDS-547] - Limit the number of nodes that can register in parallel the same way nodes that can pull and push are limited.

# Version 2.5.0

## Bug

- [SYMMETRICDS-514] - If gap detection is interrupted you could end up with overlapping gaps which in turn could cause integrity violations.
- [SYMMETRICDS-515] - Fix issue with use_stream_lobs
- [SYMMETRICDS-518] - Fix NullPointerException in transform dataloader's fallback logging
- [SYMMETRICDS-519] - When a transformed row is being loaded (from the dataloader) and it encounters a conflict it should re-transform the original data
- [SYMMETRICDS-520] - PostgreSQL - Quotes around tables in trigger creation.
- [SYMMETRICDS-522] - When there are multiple transformations with different columns sets, and the same target tables are defined, the metadata that gets written out during extract can be wrong
- [SYMMETRICDS-523] - Make postgres dataloader more efficient by removing the use of savepoints.
- [SYMMETRICDS-524] - Client DataLoad nullpointers when registering if server fails to send down a values for sym_node
- [SYMMETRICDS-525] - Pass old data to transformations when a DELETE event comes through
- [SYMMETRICDS-527] - Postgres doesn't accept null characters (0x00) in textfields while other databases do. Strip them out during synchronization.
- [SYMMETRICDS-529] - Support reading in TIMESTAMP WITH TIME ZONE data types in Oracle
- [SYMMETRICDS-530] - sym_pkg is recreated each time the symmetricds server restarts
- [SYMMETRICDS-533] - ORA-01489: result of string concatenation is too long: Because of large varchar fields that exceed the limit when , and " are escaped
- [SYMMETRICDS-534] - Postgresql to mssql 2K8
- [SYMMETRICDS-537] - Ping pongs happens when collation is set to Latin1_General_CI_AS on SQL Server because 0x0 aren't stripped from source_node_id when it is pulled from context_info()

## Improvement

- [SYMMETRICDS-491] - When a SymmetricDS configuration change is detected during routing, queue up a syncTriggers() operation
- [SYMMETRICDS-517] - Add support for hosting multiple engines in a single SymmetricDS server
- [SYMMETRICDS-526] - When creating autoincrement columns in postgres don't specify that they have to be unique. The fact that a primary key is defined will be enough to indicate the uniqueness.
- [SYMMETRICDS-532] - Only attempt fallback to update when there is a true primary key collision.
- [SYMMETRICDS-536] - Consolidate code that reads tables in the ddlutils package.
- [SYMMETRICDS-538] - Don't read every table in the database at SymmetricDS startup. Only read in the relevant SymmetricDS tables to check for needed alterations.
- [SYMMETRICDS-539] - Capture and route node and node_security changes out to all interested nodes.

## New Feature

- [SYMMETRICDS-528] - Add support for Greenplum as a SymmetricDS client