Details
-
Bug
-
Resolution: Done
-
Major
-
12.0.0.Dev03, 11.0.3.Final
Description
I use JDBC cache store in Oracle 11.2. It works fine with Infinispan 9.4, but isn't work with Infinispan 11. Infinispan can't create appropriate indexes because they's names has dublicates during creation stage.
Reason of this problem is the code which don't generate properly names of indexes. In the Oracle database version 12.1 and below maximum length of table or index name is 30 characters.
The constant segmentIndexExt which exists in the class org.infinispan.persistence.jdbc.impl.table.AbstractTableManager has value "segment_index" which is already 13 characters long.
Method getIndexName() of class org.infinispan.persistence.jdbc.impl.table.OracleTableManager generates index name using concatenation this constant and table name. If index name is longer that 30 characters then method cuts it at the end.
Table name equals name of cache.
In case when somebody need create two caches which names are mostly same and longer that 15 characters, Infinispan tries to create indexes with same name.