Skip to content

Oracle8iDialect may not name temporary tables with HT_ prefix #3456

Description

@tohidemyname

Oracle8iDialect may not name all temporary tables with HT_ prefix. Some may be prefixed with T_ instead.

This bug was reported to hibernate:
https://hibernate.atlassian.net/browse/HHH-9290

The buggy code of hibernate is as follows:

public String generateTemporaryTableName(String baseTableName) {
	final String name = super.generateTemporaryTableName( baseTableName );
	return name.length() > 30 ? name.substring( 1, 30 ) : name;
}

The fixed code is as follows:

public String generateTemporaryTableName(String baseTableName) {
	final String name = super.generateTemporaryTableName( baseTableName );
	return name.length() > 30 ? name.substring( 0, 30 ) : name;
}

The latest NHibernate is identical to the buggy code:

public override string GenerateTemporaryTableName(String baseTableName)
{
	string name = base.GenerateTemporaryTableName(baseTableName);
	return name.Length > 30 ? name.Substring(1, (30) - (1)) : name;
}

As a result, NHibernate can have the identical bug but leave it unfixed.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions