|
|
(17 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | = Connector/OpenOffice.org development issues to discuss with OOo team =
| + | #REDIRECT [[Database/Drivers/MySQL Native/Known Problems]] |
− | | + | |
− | == Base related ==
| + | |
− | | + | |
− | === ENUM/SET "not supported" ===
| + | |
− | | + | |
− | ENUM/SET are mapped into VARCHAR. This will - sooner or later - cause follow-up errors, for example, when inserting values. This is a known Base restriction and should be documented in the Driver manual as a pitfall.
| + | |
− | | + | |
− | === TIME value range ===
| + | |
− | | + | |
− | [http://dev.mysql.com/doc/refman/5.1/en/time.html|MySQL's TIME] data type may have a significantly larger value range than the Base counterpart. Base is using an unsigned short to represent Time values. | + | |
− | | + | |
− | === 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.
| + | |
− | | + | |
− | === OOo shows unrelated databases/schemata ===
| + | |
− | | + | |
− | 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.
| + | |
− | | + | |
− | == Unclassified: Base and/or Driver related ==
| + | |
− | | + | |
− | === 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.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | == MySQL related ==
| + | |
− | | + | |
− | === 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 [http://dev.mysql.com/doc/refman/5.1/en/other-vendor-data-types.html 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.
| + | |