/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.flume.channel.jdbc; import org.apache.flume.channel.jdbc.impl.DerbySchemaHandler; import org.junit.Assert; import org.junit.Test; public class TestDerbySchemaHandlerQueries { public static final String EXPECTED_QUERY_CREATE_SCHEMA_FLUME = "CREATE SCHEMA FLUME"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_EVENT = "CREATE TABLE FLUME.FL_EVENT ( FLE_ID BIGINT GENERATED ALWAYS AS " + "IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY, FLE_PAYLOAD " + "VARCHAR(16384) FOR BIT DATA, FLE_CHANNEL VARCHAR(64), " + "FLE_SPILL BOOLEAN)"; public static final String EXPECTED_QUERY_CREATE_INDEX_FLE_CHANNEL = "CREATE INDEX FLUME.IDX_FLE_CHANNEL ON FLUME.FL_EVENT (FLE_CHANNEL)"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_PLSPILL_FK = "CREATE TABLE FLUME.FL_PLSPILL ( FLP_EVENT BIGINT, FLP_SPILL BLOB, " + "FOREIGN KEY (FLP_EVENT) REFERENCES FLUME.FL_EVENT (FLE_ID))"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_PLSPILL_NOFK = "CREATE TABLE FLUME.FL_PLSPILL ( FLP_EVENT BIGINT, FLP_SPILL BLOB)"; public static final String EXPECTED_QUERY_CREATE_INDEX_FLP_EVENT = "CREATE INDEX FLUME.IDX_FLP_EVENT ON FLUME.FL_PLSPILL (FLP_EVENT)"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_HEADER_FK = "CREATE TABLE FLUME.FL_HEADER ( FLH_ID BIGINT GENERATED ALWAYS AS " + "IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY, " + "FLH_EVENT BIGINT, FLH_NAME VARCHAR(251), " + "FLH_VALUE VARCHAR(251), FLH_NMSPILL BOOLEAN, " + "FLH_VLSPILL BOOLEAN, FOREIGN KEY (FLH_EVENT) " + "REFERENCES FLUME.FL_EVENT (FLE_ID))"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_HEADER_NOFK = "CREATE TABLE FLUME.FL_HEADER ( FLH_ID BIGINT GENERATED ALWAYS AS " + "IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY, " + "FLH_EVENT BIGINT, FLH_NAME VARCHAR(251), " + "FLH_VALUE VARCHAR(251), FLH_NMSPILL BOOLEAN, " + "FLH_VLSPILL BOOLEAN)"; public static final String EXPECTED_QUERY_CREATE_INDEX_FLH_EVENT = "CREATE INDEX FLUME.IDX_FLH_EVENT ON FLUME.FL_HEADER (FLH_EVENT)"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_NMSPILL_FK = "CREATE TABLE FLUME.FL_NMSPILL ( FLN_HEADER BIGINT, FLN_SPILL " + "VARCHAR(32517), FOREIGN KEY (FLN_HEADER) REFERENCES " + "FLUME.FL_HEADER (FLH_ID))"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_NMSPILL_NOFK = "CREATE TABLE FLUME.FL_NMSPILL ( FLN_HEADER BIGINT, FLN_SPILL " + "VARCHAR(32517))"; public static final String EXPECTED_QUERY_CREATE_INDEX_FLN_HEADER = "CREATE INDEX FLUME.IDX_FLN_HEADER ON FLUME.FL_NMSPILL (FLN_HEADER)"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_VLSPILL_FK = "CREATE TABLE FLUME.FL_VLSPILL ( FLV_HEADER BIGINT, FLV_SPILL " + "VARCHAR(32517), FOREIGN KEY (FLV_HEADER) REFERENCES " + "FLUME.FL_HEADER (FLH_ID))"; public static final String EXPECTED_QUERY_CREATE_TABLE_FL_VLSPILL_NOFK = "CREATE TABLE FLUME.FL_VLSPILL ( FLV_HEADER BIGINT, FLV_SPILL " + "VARCHAR(32517))"; public static final String EXPECTED_QUERY_CREATE_INDEX_FLV_HEADER = "CREATE INDEX FLUME.IDX_FLV_HEADER ON FLUME.FL_VLSPILL (FLV_HEADER)"; public static final String EXPECTED_COLUMN_LOOKUP_QUERY = "SELECT COLUMNNAME from SYS.SYSCOLUMNS where REFERENCEID = " + "(SELECT TABLEID FROM SYS.SYSTABLES WHERE TABLENAME = ? AND " + "SCHEMAID = (SELECT SCHEMAID FROM SYS.SYSSCHEMAS WHERE " + "SCHEMANAME = ? ))"; public static final String EXPECTED_QUERY_CHANNEL_SIZE = "SELECT COUNT(*) FROM FLUME.FL_EVENT"; public static final String EXPECTED_STMT_INSERT_EVENT_BASE = "INSERT INTO FLUME.FL_EVENT (FLE_PAYLOAD, FLE_CHANNEL, FLE_SPILL) " + "VALUES ( ?, ?, ?)"; public static final String EXPECTED_STMT_INSERT_EVENT_SPILL = "INSERT INTO FLUME.FL_PLSPILL (FLP_EVENT, FLP_SPILL) VALUES ( ?, ?)"; public static final String EXPECTED_STMT_INSERT_HEADER_BASE = "INSERT INTO FLUME.FL_HEADER (FLH_EVENT, FLH_NAME, FLH_VALUE, " + "FLH_NMSPILL, FLH_VLSPILL) VALUES ( ?, ?, ?, ?, ?)"; public static final String EXPECTED_STMT_INSERT_HEADER_NAME_SPILL = "INSERT INTO FLUME.FL_NMSPILL (FLN_HEADER, FLN_SPILL) VALUES ( ?, ?)"; public static final String EXPECTED_STMT_INSERT_HEADER_VALUE_SPILL = "INSERT INTO FLUME.FL_VLSPILL (FLV_HEADER, FLV_SPILL) VALUES ( ?, ?)"; public static final String EXPECTED_STMT_FETCH_PAYLOAD_BASE = "SELECT FLE_ID, FLE_PAYLOAD, FLE_SPILL FROM FLUME.FL_EVENT WHERE " + "FLE_ID = (SELECT MIN(FLE_ID) FROM FLUME.FL_EVENT WHERE " + "FLE_CHANNEL = ?)"; public static final String EXPECTED_STMT_FETCH_PAYLOAD_SPILL = "SELECT FLP_SPILL FROM FLUME.FL_PLSPILL WHERE FLP_EVENT = ?"; public static final String EXPECTED_STMT_FETCH_HEADER_BASE = "SELECT FLH_ID, FLH_NAME, FLH_VALUE, FLH_NMSPILL, FLH_VLSPILL FROM " + "FLUME.FL_HEADER WHERE FLH_EVENT = ?"; public static final String EXPECTED_STMT_FETCH_HEADER_NAME_SPILL = "SELECT FLN_SPILL FROM FLUME.FL_NMSPILL WHERE FLN_HEADER = ?"; public static final String EXPECTED_STMT_FETCH_HEADER_VALUE_SPILL = "SELECT FLV_SPILL FROM FLUME.FL_VLSPILL WHERE FLV_HEADER = ?"; public static final String EXPECTED_STMT_DELETE_HEADER_VALUE_SPILL = "DELETE FROM FLUME.FL_VLSPILL WHERE FLV_HEADER = ?"; public static final String EXPECTED_STMT_DELETE_HEADER_NAME_SPILL = "DELETE FROM FLUME.FL_NMSPILL WHERE FLN_HEADER = ?"; public static final String EXPECTED_STMT_DELETE_EVENT_SPILL = "DELETE FROM FLUME.FL_PLSPILL WHERE FLP_EVENT = ?"; public static final String EXPECTED_STMT_DELETE_HEADER_BASE = "DELETE FROM FLUME.FL_HEADER WHERE FLH_EVENT = ?"; public static final String EXPECTED_STMT_DELETE_EVENT_BASE = "DELETE FROM FLUME.FL_EVENT WHERE FLE_ID = ?"; @Test public void testCreateQueries() { Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_SCHEMA_FLUME, EXPECTED_QUERY_CREATE_SCHEMA_FLUME); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_EVENT, EXPECTED_QUERY_CREATE_TABLE_FL_EVENT); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_INDEX_FLE_CHANNEL, EXPECTED_QUERY_CREATE_INDEX_FLE_CHANNEL); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_PLSPILL_FK, EXPECTED_QUERY_CREATE_TABLE_FL_PLSPILL_FK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_PLSPILL_NOFK, EXPECTED_QUERY_CREATE_TABLE_FL_PLSPILL_NOFK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_INDEX_FLP_EVENT, EXPECTED_QUERY_CREATE_INDEX_FLP_EVENT); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_HEADER_FK, EXPECTED_QUERY_CREATE_TABLE_FL_HEADER_FK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_HEADER_NOFK, EXPECTED_QUERY_CREATE_TABLE_FL_HEADER_NOFK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_INDEX_FLH_EVENT, EXPECTED_QUERY_CREATE_INDEX_FLH_EVENT); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_NMSPILL_FK, EXPECTED_QUERY_CREATE_TABLE_FL_NMSPILL_FK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_NMSPILL_NOFK, EXPECTED_QUERY_CREATE_TABLE_FL_NMSPILL_NOFK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_INDEX_FLN_HEADER, EXPECTED_QUERY_CREATE_INDEX_FLN_HEADER); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_VLSPILL_FK, EXPECTED_QUERY_CREATE_TABLE_FL_VLSPILL_FK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_TABLE_FL_VLSPILL_NOFK, EXPECTED_QUERY_CREATE_TABLE_FL_VLSPILL_NOFK); Assert.assertEquals(DerbySchemaHandler.QUERY_CREATE_INDEX_FLV_HEADER, EXPECTED_QUERY_CREATE_INDEX_FLV_HEADER); Assert.assertEquals(DerbySchemaHandler.COLUMN_LOOKUP_QUERY, EXPECTED_COLUMN_LOOKUP_QUERY); Assert.assertEquals(DerbySchemaHandler.QUERY_CHANNEL_SIZE, EXPECTED_QUERY_CHANNEL_SIZE); Assert.assertEquals(DerbySchemaHandler.STMT_INSERT_EVENT_BASE, EXPECTED_STMT_INSERT_EVENT_BASE); Assert.assertEquals(DerbySchemaHandler.STMT_INSERT_EVENT_SPILL, EXPECTED_STMT_INSERT_EVENT_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_INSERT_HEADER_BASE, EXPECTED_STMT_INSERT_HEADER_BASE); Assert.assertEquals(DerbySchemaHandler.STMT_INSERT_HEADER_NAME_SPILL, EXPECTED_STMT_INSERT_HEADER_NAME_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_INSERT_HEADER_VALUE_SPILL, EXPECTED_STMT_INSERT_HEADER_VALUE_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_FETCH_PAYLOAD_BASE, EXPECTED_STMT_FETCH_PAYLOAD_BASE); Assert.assertEquals(DerbySchemaHandler.STMT_FETCH_PAYLOAD_SPILL, EXPECTED_STMT_FETCH_PAYLOAD_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_FETCH_HEADER_BASE, EXPECTED_STMT_FETCH_HEADER_BASE); Assert.assertEquals(DerbySchemaHandler.STMT_FETCH_HEADER_NAME_SPILL, EXPECTED_STMT_FETCH_HEADER_NAME_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_FETCH_HEADER_VALUE_SPILL, EXPECTED_STMT_FETCH_HEADER_VALUE_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_DELETE_HEADER_VALUE_SPILL, EXPECTED_STMT_DELETE_HEADER_VALUE_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_DELETE_HEADER_NAME_SPILL, EXPECTED_STMT_DELETE_HEADER_NAME_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_DELETE_EVENT_SPILL, EXPECTED_STMT_DELETE_EVENT_SPILL); Assert.assertEquals(DerbySchemaHandler.STMT_DELETE_HEADER_BASE, EXPECTED_STMT_DELETE_HEADER_BASE); Assert.assertEquals(DerbySchemaHandler.STMT_DELETE_EVENT_BASE, EXPECTED_STMT_DELETE_EVENT_BASE); } }