/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2011, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.data.teradata; import org.geotools.jdbc.JDBCViewTestSetup; /** * * * @source $URL$ */ public class TeradataViewTestSetup extends JDBCViewTestSetup { public TeradataViewTestSetup() { super(new TeradataTestSetup()); } public TeradataTestSetup getDelegate() { return (TeradataTestSetup) delegate; } @Override protected void setUpData() throws Exception { super.setUpData(); createLakesView2(); } @Override protected void createLakesTable() throws Exception { run("CREATE TABLE lakes (fid NOT NULL PRIMARY KEY INTEGER, id INTEGER, geom ST_Geometry, " + "name VARCHAR(100))"); run("INSERT INTO SYSSPATIAL.GEOMETRY_COLUMNS (F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME," + " F_GEOMETRY_COLUMN, COORD_DIMENSION, SRID, GEOM_TYPE) VALUES ('', '" + fixture.getProperty("database") + "', 'lakes', 'geom', 2, " + getDelegate().getSrid4326() + ", 'POLYGON')"); run("INSERT INTO lakes VALUES (0, 0, 'POLYGON((12 6, 14 8, 16 6, 16 4, 14 4, 12 6))', 'muddy')"); } @Override protected void dropLakesTable() throws Exception { runSafe("DELETE FROM SYSSPATIAL.GEOMETRY_COLUMNS WHERE F_TABLE_NAME = 'lakes'"); runSafe("DROP TABLE lakes"); } @Override protected void createLakesView() throws Exception { run("CREATE VIEW lakesview AS SELECT * FROM lakes"); run("INSERT INTO SYSSPATIAL.GEOMETRY_COLUMNS (F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME," + " F_GEOMETRY_COLUMN, COORD_DIMENSION, SRID, GEOM_TYPE) VALUES ('', '" + fixture.getProperty("database") + "', 'lakesview', 'geom', 2, " + getDelegate().getSrid4326() + ", 'POLYGON')"); } protected void createLakesView2() throws Exception { runSafe("DROP VIEW lakesview2"); run("CREATE VIEW lakesview2 AS SELECT * FROM lakes"); runSafe("DELETE FROM SYSSPATIAL.GEOMETRY_COLUMNS WHERE F_TABLE_NAME = 'lakesview2'"); run("INSERT INTO SYSSPATIAL.GEOMETRY_COLUMNS (F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME," + " F_GEOMETRY_COLUMN, COORD_DIMENSION, SRID, GEOM_TYPE) VALUES ('', '" + fixture.getProperty("database") + "', 'lakesview2', 'geom', 2, " + getDelegate().getSrid4326() + ", 'POLYGON')"); runSafe("DROP TABLE \"gt_pk_metadata\""); run("CREATE TABLE gt_pk_metadata (" + "table_schema VARCHAR(32) NOT NULL, " + "table_name VARCHAR(32) NOT NULL, " + "pk_column VARCHAR(32) NOT NULL, " + "pk_column_idx INTEGER, " + "pk_policy VARCHAR(32), " + "pk_sequence VARCHAR(64), " + "unique (table_schema, table_name, pk_column)," + "check (pk_policy in ('sequence', 'assigned', 'autoincrement')))"); run("INSERT INTO gt_pk_metadata VALUES('" + fixture.getProperty("schema") + "', 'lakesview2', 'fid', 0, 'assigned', NULL)"); runSafe("DROP TABLE \"lakes_geom_idx\""); run("CREATE TABLE \"lakes_geom_idx\"" + " (fid INTEGER NOT NULL, cellid INTEGER NOT NULL)"); runSafe("DROP VIEW \"lakesview2_geom_idx\""); run("CREATE VIEW \"lakesview2_geom_idx\" AS SELECT * FROM lakes_geom_idx"); runSafe("DELETE FROM sysspatial.tessellation WHERE f_table_name = 'lakesview2'"); run("INSERT INTO sysspatial.tessellation VALUES (" + "'geotools'," + "'lakesview2'," + "'geom'," + "-180,-90,180,90," + "1000,1000,3,.01,0" + ")"); } @Override protected void dropLakesView() throws Exception { run("DELETE FROM SYSSPATIAL.GEOMETRY_COLUMNS WHERE F_TABLE_NAME = 'lakesview'"); runSafe("DROP VIEW lakesview"); } @Override protected void createLakesViewPk() throws Exception { } @Override protected void dropLakesViewPk() throws Exception { } }