未验证 提交 827c07ec 编写于 作者: C Charly 提交者: GitHub

Merge pull request #4757 from Sargul/devel

support for limit statement in exasol
......@@ -40,6 +40,8 @@ import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.exec.DBCQueryTransformType;
import org.jkiss.dbeaver.model.exec.DBCQueryTransformer;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCDatabaseMetaData;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
......@@ -51,6 +53,7 @@ import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.impl.jdbc.cache.JDBCObjectSimpleCache;
import org.jkiss.dbeaver.model.impl.sql.QueryTransformerLimit;
import org.jkiss.dbeaver.model.meta.Association;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
......@@ -839,5 +842,16 @@ public class ExasolDataSource extends JDBCDataSource
return exasolCurrentUserPrivileges.getTablePrefix(fallback);
}
@Override
public DBCQueryTransformer createQueryTransformer(@NotNull DBCQueryTransformType type) {
if (type == DBCQueryTransformType.RESULT_SET_LIMIT) {
return new QueryTransformerLimit(false);
} else if (type == DBCQueryTransformType.FETCH_ALL_TABLE) {
return new QueryTransformerFetchAll();
}
return super.createQueryTransformer(type);
}
}
package org.jkiss.dbeaver.ext.exasol.model;
import java.sql.SQLException;
import java.sql.Statement;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCQueryTransformer;
import org.jkiss.dbeaver.model.exec.DBCStatement;
import org.jkiss.dbeaver.model.sql.SQLQuery;
public class QueryTransformerFetchAll implements DBCQueryTransformer {
@Override
public void setParameters(Object... parameters) {
}
@Override
public String transformQueryString(SQLQuery query) throws DBCException {
return query.getText();
}
@Override
public void transformStatement(DBCStatement statement, int parameterIndex) throws DBCException {
try {
((Statement)statement).setFetchSize(2000);
} catch (SQLException e) {
throw new DBCException(e, statement.getSession().getDataSource());
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册