Changes between Initial Version and Version 5 of Ticket #413


Ignore:
Timestamp:
Oct 25, 2006, 11:08:22 PM (17 years ago)
Author:
Nicklas Nordborg
Comment:
  1. TestPlateFlatFileImporter, TestRawDataFlatFileImporter, TestPluginConfiguration,

TestReporterFlatFileImporter and TestReporterMapFlatFileImporter fails

++Testing plugin configuration
--Create plugin definition OK
--Create plugin configuration OK
--List plugin configurations OK (1)
--Load plugin configuration OK
--Configure plugin configuration FAILED
org.hibernate.exception.SQLGrammarException: could not initialize a collection:
[net.sf.basedb.core.data.PluginConfigurationData.configurationValues#2091]
[snip]
  at net.sf.basedb.core.PluginConfiguration.getParameterNames(PluginConfiguration.java:283)
  at net.sf.basedb.core.ParameterValuesImpl.<init>(ParameterValuesImpl.java:96)
  at net.sf.basedb.core.PluginConfiguration.configure(PluginConfiguration.java:496)
  at TestPluginConfiguration.test_configure(TestPluginConfiguration.java:189)
  at TestPluginConfiguration.test_all(TestPluginConfiguration.java:63)
  at TestPluginConfiguration.main(TestPluginConfiguration.java:48)
Caused by: java.sql.SQLException: ORA-00972: identifier is too long

All plugin configuration related exceptions seems to be related to that there is no VersionedPluginConfigurationValues table. If I try to create it by hand I get the error message: Table Name VERSIONEDPLUGINCONFIGURATIONVALUES exceeds allowed size.

Oracle seems to have a limit of 30 characters for table names. We can solve it by changing the name of the table, but it is likely to cause problems with other installation using MySQL or Postgres. Another solution is to let the DbEngine inspect and maybe change all mapping information before the final configuration. We could for example add a method DbEngine.fixTableAnomalies(Table table) which could inspect table and column names (and possible other not yet known things) and change the name. In this case the OracleDbEngine should truncate the table name to 30 characters. The method should be called from HibernateUtil.init() just before the call to final configuration (cfg.configure()).

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #413 – Description

    initial v5  
    11The current implementation doesn't work with Oracle databases for a number of reasons. I will add comments to this ticket describing each issue I found while testing and any possible solutions I came up with.
     2