This is the changelog history for the pgExpress driver.
Version 1.60 |
Release Date: 13 Oct 2002 |
Enhancements and bugfixes.
ADDED - New custom setting:
FetchCursor. Allows one to use automatically DECLARE/FETCH cursors. Rows
will be retrieved on demand. For registered users only.
ADDED - Localization support. Now
pgExpress support the following languages: English, Portuguese (Brazilian),
Spanish, German, Icelandic and Chinese (Taiwan). More languages to come...
ADDED
- New custom setting: ServerDecimalSeparator. Will allow to force a Decimal
separator char on the server. This should not be necessary, however, since
pgExpress is able to find out the correct chars automatically.
ADDED - New demo: Params. A simple
demonstration of use of Params with pgExpress.
CHANGED - Updated documentation.
CHANGED - Demo version now allows
only max 15 update/isert/delete commands per transaction.
CHANGED - The packages version of
the driver has been dropped.
CHANGED - Updated PGEDemo. Now it
should be more portable to Delphi 7.
CHANGED - Updated installer (Windows
version only).
FIXED - Fixed bug for some
types of prepared queries.
FIXED - Fixed "not
under Delphi" issues
FIXED - Fixed PostgreSQL
loss of precision when using functions on numeric values returned by functions
suchs as "select max(my_numeric_field) from test;".
FIXED - Use of Money/Currency
type should be ok now.
|
|
Version 1.50 |
Release Date: 04 Sep 2002 |
Important Notes:
1. The registration process has changed. Registered users, please refer
to the Registration.htm file in your distribution.
2 . Check the new way of passing custom parameters to the connections
(using the Database property). This obsoletes the dbxdrivers.ini
custom params now.
3 . Since now the TEXT fields will be mapped to Memo fields by default,
some applications can get broken. Either fix them (recommended) by deleting
the old fields and recreating them or use the TextAsBlob = False custom
setting for getting the old behavior.
ADDED - Delphi 7 support.
The driver should work with Delphi 7 now. Some of the small new features
of dbExpress introduced on Delphi and Kylix 3 will be supported in the
next version.
ADDED
- New custom setting: QuoteObjects. Setting this option to True will make
the pgExpress Driver quote object names (fields, tables, etc.). Some users
needed it to port SQL queries from phppgadin, for instance. More info
on the documentation.
ADDED - New custom setting: GetExtendedFiledInformation.
This setting will get extended information about the fields in a dataset;
more specifically, get it will allow to check if a field is AutoIncrement
or is nullable. Please check the docs for more information.
ADDED - New custom setting: TypesCachingMode.
This setting controls how often the Types from PostgreSQL are (re)mapped
into dbExpress/VCL types.
ADDED - Unsafe SQL parameters and
now properly escaped (using libpq's PQescapeString).
ADDED - Docs enhanced.
ADDED - New libpq included. This should
fix the Multibyte problems that some users have been having.
ADDED - Better support for foreign locales (those using ','
as Decimal separator).
ADDED - Installer changes (on Windows
platform).
ADDED - Several small internal optimizations
and support for the forthcoming pgExpress Suite.
CHANGED - The registration procedure is changed. The old way
(Registry keys) lead to some portability issues. The new way makes it
much easier to deploy your applications and don't requires anything special
to be done on the target machines.
CHANGED - Now PostgreSQL TEXT fields
will be mapped to Memo (BLOB) fields by default. This will make grids
faster, reduce memory requirements and it does make sense after all.
CHANGED - Changed some messages that
will appear on the TSQLMonitor components.
CHANGED - The custom parameters on
the dbxdrivers.ini file are now obsolete and not supported anymore. They
can remain there but will be ignored Please query the documentation for
the new way of passing parameters using the Database setting (in the Special
Params section).
CHANGED - The ISQLMetadata.getColumns
interface is enhanced and will provide much more accurate information
to TSQLDataset.SetSchemaInfo(stColumns, '', '') calls.
FIXED - A update/delete/insert
bug exception could occur when updating to null values. This is fixed
now.
FIXED - The ISQLMetadata.GetProcedureParams()
was not working properly due to some internal changes whose were needed
for our upcoming product: the pgExpress Suite. Now the Stored Procedures
(emulated through functions) parameters are automatically filled again.
FIXED - The MaxBlobSize parameter was not being considered
for text fields mapped as TMemoFields.
FIXED - Some minor bugs.
|
|
Version 1.0a |
Release Date: 26 Jul 2002 |
Small bugfix version.
FIXED - I've added a small last-minute
bug in the last version. When you closed and reopened a dataset, the fields
wouldn't get remapped and that would cause a GPF with "Catastrophic
failure" message. I apologize for that.
|
|
Version 1.00 |
Release Date: 25 Jul 2002 |
Several optimizations, some bugfixes and
Localization support.
ADDED -
MultiByte (Localization) support. Now the pgExpress is able to support
localizations using the libpq MultiByte support. Please refer to the documentation
for more details.
CHANGED - Several internal optimizations
CHANGED - TEXT fields are now mapped
as Memo fields. This will make them much more efficient in terms of memory
utilization and enhance the application's performance. Please refer to
our FAQ for more information.
CHANGED - Now the driver uses a smarter
algorithm to detect thousands and decimal separators automatically.
CHANGED - Binary BLOB fields
are marked read only. This change have to be
made because there is no reliable way to update the PostgreSQL Large Objects
on dbExpress (due to the OID nature of the Large Objects).
FIXED - Fixed some UPDATE bugs.
FIXED - Fixed NUMERIC field bug that
could be raised on some conditions (scale was scale + 4 making the fields
appear to be divided by 10000).
FIXED - Fixed ISQLMetadat.getColumns()
method that got broken on PostgreSQL 7.2 because the OID fields got optional.
This makes the internal VCL's SQL editor (that from the TSQLDataset.CommandText
property when CommandType=ctQuery) and the TSQLDataset.GetColumns() method
work again. |
|
Version 0.96b |
Release Date: 02 May 2002 |
Bugfix revision.
CHANGED - Some internal changes and
optimizations.
CHANGED - Demo "PGEDemo"
updated.
FIXED
- Fixed a bug where an empty string parameter would raise a server error
(thanks Andy Samuel for reporting).
FIXED - Fixed a bug where an ExecuteDirect()
call could make the demo driver think it's not under the IDE.
FIXED - Fixed "Invalid timestamp"
errors on PostgreSQL 7.2 timestamp fields with timezones and milliseconds
precision.
Quoting from http://www.postgresql.org/idocs/index.php?functions-datetime.html#FUNCTIONS-DATETIME-CURRENT:
" ==> Note: Prior to PostgreSQL 7.2, the precision parameters
were unimplemented, and the result was always given in integer seconds."
Thanks Garry Gebhardt for testing.
FIXED - Fixed libpq reloading which
could break multiple connections. |
|
Version 0.96a |
Release Date: 16
Apr 2002 |
Minor Release.
ADDED -
Int8 support as Bcd (PostgreSQL [numeric] field). They should work transparently
to the end user as they were Int8 fields. This wasn't on the previous
version because there are many bugs related to Bcd fields on Delphi
6; they were fixed on Update Packs 1 and 2. We think however that with
took extra care in the implementation to avoid raising such bugs even
on plain Delphi 6 (without service packs). We urge you, however, to update
your Delphi distribution to the latest service pack to ensure everything
will work ok. Kylix (specially v1) seems to suffer from the same bugs;
please update it too. Int8 as Bcd is the new default mapping for Int8
fields. Please use the Int8Mode driver option if you want to change
it.
FIXED - Under certain conditions,
a failed database login could lead to a driver exception. This bug was
introduced on v0.96. |
|
Version 0.96 |
Release Date: 15
Apr 2002 |
Fixes and a few enhancements.
ADDED -
A new installation package is available to make it easier to install the
pgExpress Driver. It's availble at the Vita Voom Software's website. It
will install the driver and also create entries on the dbxdriver/dbxconnections
files automatically. You should however tune the [PGEConnection] entry
it creates to meet your configuration. The regular zip package is also
available.
ADDED - A small demo (PGEDemo) is added to the
distribution. The demo will compile on both Kylix and Delphi.
ADDED - Arrays
support by default now. This is a delicate issue; arrays in PostgreSQL
always have variable length, regardless of what is declared in it's table
definition (that is for documentation only).
Thus, arrays are supported if mapped as strings.
ADDED - Better
int8 variable support. Unhappily, dbExpress does not provide
int8 support. This made the driver misbehave with tables that use
int8 types (including int8 serials such as those generated by phpPgAdmin,
PgAdmin II and the alike). Now the int8 type is support by default
as a String type, but it can also be mapped as Int4 or ignored
(please refer to the docs).
ADDED -
Better documentation about the special params supported
by the pgExpress driver (MapUnknownAsString, ArrayAsString, etc.)
ADDED - new libpq interface
library from PostgreSQL 7.21 (for both Windows and Linux).
FIXED - Fixed a bug where select queries using parameters
(TCustomClientDataset.Params or TCustomSQLDataset.Params descendants)
would not run properly.
FIXED - Fixed int8 support (including
new option in dbxdrivers.ini).
FIXED - Fixed 'Format '%s' invalid
or incompatible with argument' when demo limit of 50 updates/inserts/deletes
per transaction reached. |
|
Version 0.95a |
Release Date: 24
Feb 2002 |
Bugfix revision.
CHANGED - Added more installation
instructions for Kylix.
FIXED - Fixed a small bug on datetime fields that use timezone.
FIXED - The first 0.95 distribution
didn't include a libpq.dll file. Now that's fixed.
|
|
Version 0.95 |
Release Date: 12
Oct 2001 |
Major revision. Many internal changes have
been made to support Stored Procedures and other features. The driver
was rewritten in about 60%.
ADDED - Stored Procedures support.
Since PostgreSQL currently has no real support for stored procudures,
they are emulated through Functions (create by using "create
function" statments). Functions that return "opaque" can't
be supported because they can only be called by triggers or rules. Functions
that return "SETOF" types (datasets) will be supported probably
on the next version.
ADDED -
Now the driver will read extra, non-standard options from the dbxdrivers.ini
file. Those options include "TypesCachingMode", "TextAsBlob"
and "MapUnkownAsString".
ADDED -
A new version of the libpq library was added, and the new PQescapeString
and PQescapeBytea and PQfreeNotify functions are now available.
ADDED - Added TypeMappings caching. The PostgreSQL native types
information will be cached on the driver level (default), the connection
level or the cursor level. PostgreSQL requires a types lookup due to it's
dynamic typing nature. This option reduces traffic to the server and makes
the driver faster. As said, this option defaults to "driver"
(meaning that types will be cached only once per session) and can be changed
by setting the dbxdrivers.ini "TypesCachingMode" option.
For more details about TypeMappings caching, please refer to the driver
documentation.
For more information about the PostgreSQL types mechanism, please refer
to the PostgreSQL Manuals.
ADDED -
"TextAsBlob" option. This dbxdrivers.ini setting will make the
text fields to be mapped as BLOBs. That can make you support PostgreSQL
'text' fields larger then 32Kb.
ADDED - "MapUnknownAsString"
option. This dbxdrivers.ini setting will make unknown types to be mapped
as strings. Virtually all PostgreSQL types can be supported using this
option. This option defaults to true on the driver but can be set to False
if you don't like it.
ADDED - The registered version of
the driver now supports int2vector and oidvector types, and maps them
as integer arrays.
ADDED - Database server checking.
Now the driver will enforce that PostgreSQL 7.1 or superior is being used.
The driver is not compatible with older servers.
ADDED - Portuguese translation of
the driver. If you want to contribute with a translation, please email
us.
ADDED - Callback function support. Now the pgExpress driver
will work properly with TSQLMonitors.
ADDED - Support for HostName parameter in dbxconnections.ini
file.
CHANGED - Now the driver
will use the interface library specified by the "VendorLib"
parameter in the dbxdrivers file. If this is not set, defaults to "libpq.dll"
on windows systems, or "libpq.so" on linux.
CHANGED - MANY internal changes
and optimizations. The driver should be more flexible then ever.
CHANGED - Made driver more compatible
with other Borland drivers.
FIXED - Fixed a bug where the path
environment would not be properly detected, causing the library to not
be located.
FIXED - Fixed a few blob bugs.
FIXED - Fixed a small fldVARBYTES
and fldBYTES bug (please document things better, Borland ;-) ). |
|
Version 0.90a |
Release Date: 10
Oct 2001 |
Maintence release.
ADDED - Kylix support. pgExpress
is now also avaiable under Linux.
CHANGED - Updated the libpq.dll
interface library to one from a PostgreSQL 7.2 CVS snapshot. This version
fixes a bug where a query with more then 8191 bytes would kill the database
connection. This was actually a PostgreSQL bug, not pgExpress.
FIXED - Fixed a bug where a query
with more then 8191 bytes would kill the database connection (read above).
FIXED - Fixed a bug where the path
environment would not be properly detected, causing the library to not
be located. This error occurs only on a very few systems and was very
difficult to detect.
FIXED - Fixed "LIBPQ library
[%s] was not found". - argument '%s' was not being expanded. |
|
Version 0.90 |
Release Date: 05
Jul 2001 |
First release of the pgExpress Driver. |
|