Database/Drivers/MySQL Native/Known Driver Problems
Contents
Connector/OpenOffice.org development issues to discuss with OOo team
Empty schemata not shown
Create an empty schemata/database. Create a new Base database which connects to an empty MySQL database. The MySQL database is not show. Reason: OOo calls getTables() - no tables - schema not displayed. Setting might even be cached - verify that database becomes visible after creating table (from mysql prompt) in schema.
DECIMAL shown as TEXT
Base shows numerical DECIMAL columns as TEXT. I'm 95% sure C/C++ and C/OOo report a proper column type.
Create a new Base database that connects to a MySQL schemata "test". Have "test" in the connection settings! OOo will ignore it and query MySQL for all tables in all schematas.
000514/01/0000116 OConnection::getMetaData 0000515/01/0000117 ODatabaseMetaData::getURL 0000517/01/0000118 OConnection::getMetaData 0000518/01/0000119 ODatabaseMetaData::getTables 0000519/01/0000120 >MySQL_ConnectionMetaData::getTables 0000520/02/0000121 | INF: catalog= schemaPattern=% tablePattern=%
As a consequence the user will see all schemata he has access to not only the schemata/database "test" as requested in the connection settings
No default schema on table creation
Base does not preselect a default schema in the table editor dialog. Its does not even if you connect to a schema (see also OOo shows unrelated databases/schemata)
No way to set MySQL specific table attributes
The Base table editor does not give access to table attributes. Not even basic ones such as the Engine (MyISAM: non-transactional, InnoDB: transactional).
Base does not recognize schema changes
After connecting to a database and opening a table once, Base will not recognize changes applied to the DB schema meanwhile when opening the table in the table editor again.
Base table column comments
Likely a Feature Request: Base table column comments are not synchronized with the MySQL DB and its schema.
Default values not properly processed
The Base table editor neither properly sets default values nor does it re-engineer default values properly.
SMALLINT becomes REAL
When loading a table with a SMALLINT column it is shown as a FLOAT/REAL column in Base
BIGINT values crippled?
Large BIGINT values are displayed in Base using scientific notation: 1e+15. If one changes the display format to number #.### the first 14 values of a large number (9223372036854775807) are displayed properly but then some rounding takes place, for example: 9223372036854800000. Connector/C++ can handle long long (L64) values properly and Base does use getLong() nevertheless the displayed value seems wrong.
TIME value range
TIME data type may have a significantly larger value range than the Base counterpart.
information_schema (I_S) not shown in schema list
SHOW DATABASES shows the I_S. When quering the I_S for schema, the I_S will not expose itself. Different versions of Connector/C++ use different ways to fetch schema lists. Until and including Alpha SHOW DATABSES is used.
TINYINT / BOOLEAN
Educate Base users on MySQL Server type mappings, for example BOOL[EAN] -> TINYINT.
DatabseMetaData::getColumns() COLUMN_SIZE
DatabseMetaData::getColumns() takes COLUMN_SIZE from getDisplaySize(). getDisplaySize() returns always 20, which needs to be tweaked on a per-datatype basis.
Affected: DECIMAL/FLOAT.
DatabseMetaData::getColumns() DECIMAL_DIGITS
DatabseMetaData::getColumns() does not set DECIMAL_DIGITS. Therefore, Base does not show it properly.