On Tue, May 13, 2014 at 10:39 AM, Mahesh Gadgil <maheshgadgil(a)hotmail.com>wrote:
I am running hibernate tests on SAP SYBASE ASE database currently. I
am
looking to get advice on what the best solution is to these problems.I know
some tests that could not be run on ASE, have been skipped using
SkipForDialect annotation in the past.The issues I am listing are for the
remaining tests.
1. Some tests like below create a "User" table, which is not allowed by
ASE. This can be fixed (thanks Brett Meyer) by adding @Table annotation and
renaming the table by adding and escaping double quotes as
"\"User\"" and
setting 'set quoted_identifier on' option on ASE. If this change makes into
the source code, would this impact testing of other databases?
org.hibernate.test.cache.CollectionCacheEvictionTest
Yes, we should make this change upstream
2. Many tests like below create column names in smaller case but use
names
with uppercase in the sql that's generated. These tests fail on ASE because
of its default setting of 'case sensitive'. This is easily fixed by setting
ASE to ignore 'case' altogether. However I believe we need to be consistent
with our naming conventions to avoid such problems.
org.hibernate.test.annotations.entity.BasicHibernateAnnotationsTest -----
CATEGORY column
TBH I think that having case-sensitive (non-delimited) identifiers is
silly. I don't plan on changing these in the tests. I'd expect you to
alter the db to not use case-sensitive identifiers.
3. Some tests like below use defaults for datetime columns as
CURRENT_TIMESTAMP. This needs to be replaced with getdate() for ASE. Is
there a way, this can be made db independent or dynamic?
org.hibernate.test.generated.DefaultGeneratedValueTest
current_timestamp is one of the few functions explicitly called out for
support in the SQL standard. SAP SYBASE ASE does not support that?