/
SqliteJdbcSymmetricDialect.java
38 lines (30 loc) · 1.43 KB
/
SqliteJdbcSymmetricDialect.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package org.jumpmind.symmetric.db.sqlite;
import java.sql.Connection;
import java.sql.SQLException;
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.db.sql.IConnectionCallback;
import org.jumpmind.db.sql.ISqlTransaction;
import org.jumpmind.db.sql.JdbcSqlTransaction;
import org.jumpmind.symmetric.service.IParameterService;
public class SqliteJdbcSymmetricDialect extends SqliteSymmetricDialect {
public SqliteJdbcSymmetricDialect(IParameterService parameterService, IDatabasePlatform platform) {
super(parameterService, platform);
}
@Override
protected void setSqliteFunctionResult(ISqlTransaction transaction, final String name, final String result){
JdbcSqlTransaction trans = (JdbcSqlTransaction)transaction;
trans.executeCallback(new IConnectionCallback<Object>() {
@Override
public Object execute(Connection con) throws SQLException {
org.sqlite.SQLiteConnection unwrapped = ((org.sqlite.SQLiteConnection)((org.apache.commons.dbcp.DelegatingConnection)con).getInnermostDelegate());
org.sqlite.Function.create(unwrapped, name, new org.sqlite.Function() {
@Override
protected void xFunc() throws SQLException {
this.result(result);
}
});
return null;
}
});
}
}