Known Issues with Various Popular Databases
|
The following comments are valid for the versions of these databases that were available at the time of this release. Newer versions of these databases may fix these issues, or introduce new ones.
|
|
Postgresql
|
|
|
Postgresql version 7.3, JDBC version 7.3.3
|
|
•
|
Postgresql does not support the SQL types BINARY, VARBINARY, or LONG VARBINARY. Instead, the BYTEA type can be used. When casting, the appropriate SQL type must be used.
|
•
|
Postgresql does not support the SQL type DOUBLE. Instead, the DOUBLE PRECISION type can be used. When casting, DOUBLE must be used.
|
•
|
Postgresql does not support the SQL type LONG VARCHAR. Instead, the VARCHAR type can be used.
|
•
|
Postgresql does not support the SQL type BIT and TINYINT. Instead, the SMALLINT type can be used. When casting, the appropriate SQL type must be used.
|
•
|
Postgresql only supports serializable and committedread transaction types for Connection modules.
|
•
|
The fetchsize option for Result modules is not supported.
|
•
|
The maxfieldsize option for Statement modules is not supported.
|
|
|
|
MySQL
|
|
|
MySQL Version 3.23.49, JDBC Version 3.0.8
|
|
•
|
MySQL converts columns of type BINARY and VARBINARY to CHAR and VARCHAR, respectively, with a binary flag. This behavior is not supported through the JDBC interface, meaning Maple cannot determine if a character column actually contains binary data. Therefore, data from binary columns is returned as strings. These strings can be converted to byte values using convert,bytes. When calling UpdateData to update a column of these types, an explicit cast to the SQL type (BINARY or VARBINARY) must be used.
|
•
|
MySQL treats columns of type BIT and BOOLEAN as TINYINT. The values returned from columns of these types are numbers, where 0 represents false and any other value represents true. When calling UpdateData to update a column of these types, an explicit cast to the SQL type (BIT or BOOLEAN) must be used.
|
•
|
MySQL's TIMESTAMP is incompatible with the SQL TIMESTAMP type. The TIMEDATE type is more similar. Both MySQL's TIMESTAMP and TIMEDATE are accurate to the nearest second. MySQL's TIMESTAMP may automatically update its value to the current time when set to NULL. For more information on TIMESTAMP and TIMEDATE, see the MySQL documentation.
|
•
|
MySQL's DECIMAL and NUMERIC types can store data only in the range of a DOUBLE.
|
•
|
MySQL transaction support depends on the table type of the database. For transactions to function you must be working with one of the transaction safe table types (InnoDB or BDB). Otherwise, every statement will be autocommitted, Rollback and Commit will not function, and setting the transaction isolation will have no effect. MySQL versions 4 and later use InnoDB as the default table type.
|
|
|
|