Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Problems with sqlPaging in Oracle

    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:
    Code:
            if(paging.equals("sqlLimit") && !driver.supportsSQLLimit()) {
                if(opConfig != null && opConfig.get("sqlPaging") != null) {
                    log.warn("...");
                }
    
                paging = "jdbcScroll";
            }
    When I explicitly enable support for sqlPaging in my server.properties via
    Code:
    sql.MyGatabase.driver.supportsSQLLimit: true
    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:

    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
    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

    #2
    This is fixed now and will be available for download in nightly builds since Mar 25 (today). Unnecessary warning will not be logged.

    Comment


      #3
      Thanks

      Comment

      Working...
      X