Hi,
I am using SQLDataSources with Oracle database. SmartClient seems to improperly handle paging when I issue a windowed select.
When I execute a fetch (eg. from paged ListGrid), then in SQLDataSource.executeWindowedSelect paging is always changed to jdbcScroll, causing working with large tables to be really slow:
When I explicitly enable support for sqlPaging in my server.properties via
then SmartClient properly generates windowed queries by wrapping my query with OracleDriver.limitQuery, but as soon as I customize operationBinding I start getting warnings in log after each updateData:
Can at least this warning be fixed to appear correctly - only when customSQL is actually set? It adds unnecessary clutter to my logs.
SmartClient version: v10.1p_2016-03-07/PowerEdition Deployment
I am using SQLDataSources with Oracle database. SmartClient seems to improperly handle paging when I issue a windowed select.
When I execute a fetch (eg. from paged ListGrid), then in SQLDataSource.executeWindowedSelect paging is always changed to jdbcScroll, causing working with large tables to be really slow:
Code:
if(paging.equals("sqlLimit") && !driver.supportsSQLLimit()) { if(opConfig != null && opConfig.get("sqlPaging") != null) { log.warn("..."); } paging = "jdbcScroll"; }
Code:
sql.MyGatabase.driver.supportsSQLLimit: true
Code:
create table test(a int, b int, primary key (a)); insert into test values (1, 1); commit;
Code:
<DataSource ID="testDS" serverType="sql" tableName="test" autoDeriveSchema="true"> <fields> <field name="A" primaryKey="true" /> </fields> <operationBindings> <operationBinding operationType="fetch" qualifyColumnNames="false" /> </operationBindings? </DataSource>
Code:
testDS.updateData({A:1, B:1})
Code:
09:58:46.187 [ppr][qtp683523720-21][] DEBUG c.j.bonecp.PreparedStatementHandle - UPDATE test SET B=1 WHERE (test.A=1) 09:58:46.190 [ppr][qtp683523720-21][] DEBUG com.jolbox.bonecp.StatementHandle - SELECT * FROM (SELECT /*+ FIRST_ROWS(1) */ a.*, rownum myrownum FROM (SELECT test.A, test.B FROM test WHERE (test.A=1) AND 1=1) a where rownum <=1) WHERE myrownum >= 1 09:58:46.193 [ppr][qtp683523720-21][] WARN com.isomorphic.sql.SQLDataSource - [builtinApplication.testDS_update, builtinApplication.null] DataSource 'testDS', operationId: 'null' is a customSQL operation, but specifies sqlPaging: 'sqlLimit'. SmartClient/SmartGWT Server does not currently support sqlLimit paging for customSQL operations: only the first page will be returned. Consider using progressiveLoading, or a different sqlPaging setting
SmartClient version: v10.1p_2016-03-07/PowerEdition Deployment
Comment