]
Evgenii Balakhonov updated ISPN-12323:
--------------------------------------
Attachment: 0030-ISPN-12323-Index-creation-error-in-Oracle-12.1-and-b.patch
Index creation error in Oracle 12.1 and below
---------------------------------------------
Key: ISPN-12323
URL:
https://issues.redhat.com/browse/ISPN-12323
Project: Infinispan
Issue Type: Bug
Components: Loaders and Stores
Affects Versions: 11.0.3.Final
Reporter: Evgenii Balakhonov
Priority: Major
Labels: infinispan-cachestore-jdbc
Attachments: 0030-ISPN-12323-Index-creation-error-in-Oracle-12.1-and-b.patch
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.