Package org.geotools.data.teradata

Source Code of org.geotools.data.teradata.TeradataFilterToSQLTest

package org.geotools.data.teradata;

import java.util.Arrays;
import java.util.logging.Level;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.geotools.jdbc.AutoGeneratedPrimaryKeyColumn;
import org.geotools.jdbc.JDBCTestSetup;
import org.geotools.jdbc.JDBCTestSupport;
import org.geotools.jdbc.PrimaryKeyColumn;
import org.opengis.filter.Filter;
import org.opengis.filter.FilterFactory;
import org.opengis.filter.expression.Expression;

/**
*
* @author Ian Schneider <ischneider@opengeo.org>
*/
public class TeradataFilterToSQLTest extends JDBCTestSupport {

    @Override
    protected JDBCTestSetup createTestSetup() {
        return new TeradataFilterToSQLTestSetup();
    }
   
    //Ensure that we exercise the composite primary index with bbox sql
    public void testIt() throws Exception {
        FilterFactory ff = dataStore.getFilterFactory();
        Filter bbox = ff.bbox("geometry", 0, 0, 10, 10, "4326");
        Filter filter = ff.and(bbox,
        ff.and(
                ff.equals(ff.literal("intProperty"), ff.literal(5)),
                ff.equals(ff.literal("doubleProperty"), ff.literal(5))
                ));
        ff.equals(ff.literal("intProperty"), ff.literal(5));
        SimpleFeatureIterator features = dataStore.getFeatureSource("cpi").getFeatures(filter).features();
        while (features.hasNext()) {
            features.next();
        }
        // if we made it here, we passed
    }
   
    private static class TeradataFilterToSQLTestSetup extends TeradataTestSetup {

        @Override
        protected void setUpData() throws Exception {
            super.setUpData();
            // cpi == composite primary index
            runSafe("DELETE FROM SYSSPATIAL.GEOMETRY_COLUMNS WHERE F_TABLE_NAME = 'cpi'");
            runSafe("DROP HASH INDEX \"cpi_geometry_idx_idx\"");
            runSafe("DROP TABLE \"cpi_geometry_idx\"");
            runSafe("DROP TABLE \"cpi\"");

            run("CREATE TABLE \"cpi\"(" //
                    + "\"id\" not null integer, " //
                    + "\"geometry\" ST_GEOMETRY, " //
                    + "\"intProperty\" int," //
                    + "\"doubleProperty\" double precision, " //
                    + "\"stringProperty\" varchar(200) casespecific) UNIQUE PRIMARY INDEX(intProperty,doubleProperty)");
            run("INSERT INTO SYSSPATIAL.GEOMETRY_COLUMNS VALUES('"
                    + fixture.getProperty("database") + "', '" + fixture.getProperty("schema")
                    + "', 'cpi', 'geometry', 2, " + srid4326 + ", 'LINESTRING',-180,-90,180,90)");
            //@todo when things are fixed on teradata side of things, add back primary index
            run("CREATE MULTISET TABLE \"cpi_geometry_idx\""
                    + " (intProperty INTEGER NOT NULL, doubleProperty double precision not null, cellid INTEGER NOT NULL)"
                    + " UNIQUE PRIMARY INDEX (intProperty,doubleProperty)");
//                    + " (id INTEGER NOT NULL, cellid INTEGER NOT NULL)");
            run("CREATE HASH INDEX cpi_geometry_idx_idx (cellid) ON cpi_geometry_idx ORDER BY (cellid);");
           
            runSafe("DELETE FROM sysspatial.tessellation WHERE f_table_name = 'cpi'");
            run("INSERT INTO sysspatial.tessellation VALUES ("
                    + "'geotools',"
                    + "'cpi',"
                    + "'geometry',"
                    + "-180,-90,180,90,"
                    + "1000,1000,3,.01,0"
                + ")");
        }

       
    }
   
   
   
}
TOP

Related Classes of org.geotools.data.teradata.TeradataFilterToSQLTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.