Skip to content

Commit

Permalink
HHH-3701 HHH-3640 : Add support for mod, bit_length, and trim to Syba…
Browse files Browse the repository at this point in the history
…seASE15Dialect

git-svn-id: https://svn.jboss.org/repos/hibernate/core/branches/Branch_3_2@15957 1b8cb986-b30d-0410-93ca-fae66ebed9b2
  • Loading branch information
gbadner committed Feb 11, 2009
1 parent a088d6b commit 033feaa
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/org/hibernate/dialect/SybaseASE15Dialect.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.hibernate.Hibernate;
import org.hibernate.LockMode;
import org.hibernate.cfg.Environment;
import org.hibernate.dialect.function.AnsiTrimEmulationFunction;
import org.hibernate.dialect.function.CharIndexFunction;
import org.hibernate.dialect.function.NoArgSQLFunction;
import org.hibernate.dialect.function.SQLFunctionTemplate;
Expand All @@ -29,6 +30,9 @@ public SybaseASE15Dialect() {
registerFunction( "minute", new SQLFunctionTemplate(Hibernate.INTEGER, "datepart(minute, ?1)") );
registerFunction( "hour", new SQLFunctionTemplate(Hibernate.INTEGER, "datepart(hour, ?1)") );
registerFunction( "extract", new SQLFunctionTemplate( Hibernate.INTEGER, "datepart(?1, ?3)" ) );
registerFunction( "mod", new SQLFunctionTemplate( Hibernate.INTEGER, "?1 % ?2" ) );
registerFunction( "bit_length", new SQLFunctionTemplate( Hibernate.INTEGER, "datalength(?1) * 8" ) );
registerFunction( "trim", new AnsiTrimEmulationFunction( AnsiTrimEmulationFunction.LTRIM, AnsiTrimEmulationFunction.RTRIM, "str_replace" ) );
}

// Overridden informational metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
2 changes: 2 additions & 0 deletions test/org/hibernate/test/AllTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import org.hibernate.test.cuk.CompositePropertyRefTest;
import org.hibernate.test.cut.CompositeUserTypeTest;
import org.hibernate.test.deletetransient.DeleteTransientEntityTest;
import org.hibernate.test.dialect.function.AnsiTrimEmulationFunctionTest;
import org.hibernate.test.dialect.functional.cache.SQLFunctionsInterSystemsTest;
import org.hibernate.test.dialect.unit.lockhint.SQLServerLockHintsTest;
import org.hibernate.test.dialect.unit.lockhint.SybaseASE15LockHintsTest;
Expand Down Expand Up @@ -500,6 +501,7 @@ public static Test unfilteredSuite() {
suite.addTest( KeyManyToOneTest.suite() );
suite.addTest( LazyKeyManyToOneTest.suite() );
suite.addTest( EagerKeyManyToOneTest.suite() );
suite.addTest( AnsiTrimEmulationFunctionTest.suite() );
suite.addTest( SQLFunctionsInterSystemsTest.suite() );
suite.addTest( SybaseASE15LockHintsTest.suite() );
suite.addTest( SybaseLockHintsTest.suite() );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@
import java.util.List;
import java.util.ArrayList;

import junit.framework.Test;
import junit.framework.TestCase;

import org.hibernate.dialect.function.AnsiTrimEmulationFunction;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;

/**
* TODO : javadoc
Expand All @@ -38,6 +40,10 @@
public class AnsiTrimEmulationFunctionTest extends TestCase {
private static final String trimSource = "a.column";

public static Test suite() {
return new FunctionalTestClassTestSuite( AnsiTrimEmulationFunctionTest.class );
}

public void testBasicSqlServerProcessing() {
AnsiTrimEmulationFunction function = new AnsiTrimEmulationFunction();

Expand Down

0 comments on commit 033feaa

Please sign in to comment.