http://git-wip-us.apache.org/repos/asf/sqoop/blob/5de4b437/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryInsertUpdateDeleteSelectQuery.java ---------------------------------------------------------------------- diff --git a/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryInsertUpdateDeleteSelectQuery.java b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryInsertUpdateDeleteSelectQuery.java new file mode 100644 index 0000000..921f12f --- /dev/null +++ b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryInsertUpdateDeleteSelectQuery.java @@ -0,0 +1,550 @@ +/** + * 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.sqoop.repository.common; + +import static org.apache.sqoop.repository.common.CommonRepositorySchemaConstants.*; + +public class CommonRepositoryInsertUpdateDeleteSelectQuery { + /*******DIRECTION TABLE **************/ + public static final String STMT_SELECT_SQD_ID_BY_SQD_NAME = + "SELECT " + COLUMN_SQD_ID + " FROM " + TABLE_SQ_DIRECTION + + " WHERE " + COLUMN_SQD_NAME + "=?"; + + public static final String STMT_SELECT_SQD_NAME_BY_SQD_ID = + "SELECT " + COLUMN_SQD_NAME + " FROM " + TABLE_SQ_DIRECTION + + " WHERE " + COLUMN_SQD_ID + "=?"; + + /*********CONFIGURABLE TABLE ***************/ + //DML: Get configurable by given name + public static final String STMT_SELECT_FROM_CONFIGURABLE = + "SELECT " + + COLUMN_SQC_ID + ", " + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + + " FROM " + TABLE_SQ_CONFIGURABLE + + " WHERE " + COLUMN_SQC_NAME + " = ?"; + + //DML: Get all configurables for a given type + public static final String STMT_SELECT_CONFIGURABLE_ALL_FOR_TYPE = + "SELECT " + + COLUMN_SQC_ID + ", " + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + + " FROM " + TABLE_SQ_CONFIGURABLE + + " WHERE " + COLUMN_SQC_TYPE + " = ?"; + + //DML: Insert into configurable + public static final String STMT_INSERT_INTO_CONFIGURABLE = + "INSERT INTO " + TABLE_SQ_CONFIGURABLE + " (" + + COLUMN_SQC_NAME + ", " + + COLUMN_SQC_CLASS + ", " + + COLUMN_SQC_VERSION + ", " + + COLUMN_SQC_TYPE + + ") VALUES (?, ?, ?, ?)"; + + //Delete all configs for a given configurable + public static final String STMT_DELETE_CONFIGS_FOR_CONFIGURABLE = + "DELETE FROM " + TABLE_SQ_CONFIG + + " WHERE " + COLUMN_SQ_CFG_CONFIGURABLE + " = ?"; + + //Delete all inputs for a given configurable + public static final String STMT_DELETE_INPUTS_FOR_CONFIGURABLE = + "DELETE FROM " + TABLE_SQ_INPUT + + " WHERE " + + COLUMN_SQI_CONFIG + + " IN (SELECT " + + COLUMN_SQ_CFG_ID + + " FROM " + TABLE_SQ_CONFIG + + " WHERE " + + COLUMN_SQ_CFG_CONFIGURABLE + " = ?)"; + + //Update the configurable + public static final String STMT_UPDATE_CONFIGURABLE = + "UPDATE " + TABLE_SQ_CONFIGURABLE + + " SET " + COLUMN_SQC_NAME + " = ?, " + + COLUMN_SQC_CLASS + " = ?, " + + COLUMN_SQC_VERSION + " = ?, " + + COLUMN_SQC_TYPE + " = ? " + + " WHERE " + COLUMN_SQC_ID + " = ?"; + + /**********CONFIG TABLE **************/ + //DML: Get all configs for a given configurable + public static final String STMT_SELECT_CONFIG_FOR_CONFIGURABLE = + "SELECT " + + COLUMN_SQ_CFG_ID + ", " + + COLUMN_SQ_CFG_CONFIGURABLE + ", " + + COLUMN_SQ_CFG_NAME + ", " + + COLUMN_SQ_CFG_TYPE + ", " + + COLUMN_SQ_CFG_INDEX + + " FROM " + TABLE_SQ_CONFIG + + " WHERE " + COLUMN_SQ_CFG_CONFIGURABLE + " = ? " + + " ORDER BY " + COLUMN_SQ_CFG_INDEX; + + + //DML: Insert into config + public static final String STMT_INSERT_INTO_CONFIG = + "INSERT INTO " + TABLE_SQ_CONFIG + " (" + + COLUMN_SQ_CFG_CONFIGURABLE + ", " + + COLUMN_SQ_CFG_NAME + ", " + + COLUMN_SQ_CFG_TYPE + ", " + + COLUMN_SQ_CFG_INDEX + + ") VALUES ( ?, ?, ?, ?)"; + + /********** INPUT TABLE **************/ + // DML: Get inputs for a given config + public static final String STMT_SELECT_INPUT = + "SELECT " + + COLUMN_SQI_ID + ", " + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + ", " + + COLUMN_SQI_ENUMVALS + ", " + + "cast(null as varchar(100))" + + " FROM " + TABLE_SQ_INPUT + + " WHERE " + COLUMN_SQI_CONFIG + " = ?" + + " ORDER BY " + COLUMN_SQI_INDEX; + + // DML: Insert into config input + public static final String STMT_INSERT_INTO_INPUT = + "INSERT INTO " + TABLE_SQ_INPUT + " (" + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + ", " + + COLUMN_SQI_ENUMVALS + + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; + + /**********LINK INPUT TABLE **************/ + //DML: Get inputs and values for a given link + public static final String STMT_FETCH_LINK_INPUT = + "SELECT " + + COLUMN_SQI_ID + ", " + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + "," + + COLUMN_SQI_ENUMVALS + ", " + + COLUMN_SQ_LNKI_VALUE + + " FROM " + TABLE_SQ_INPUT + + " LEFT OUTER JOIN " + TABLE_SQ_LINK_INPUT + + " ON " + COLUMN_SQ_LNKI_INPUT + " = " + COLUMN_SQI_ID + + " AND " + COLUMN_SQ_LNKI_LINK + " = ?" + + " WHERE " + COLUMN_SQI_CONFIG + " = ?" + + " AND (" + COLUMN_SQ_LNKI_LINK + " = ?" + " OR " + COLUMN_SQ_LNKI_LINK + " IS NULL)" + + " ORDER BY " + COLUMN_SQI_INDEX; + + /**********JOB INPUT TABLE **************/ + //DML: Fetch inputs and values for a given job + public static final String STMT_FETCH_JOB_INPUT = + "SELECT " + + COLUMN_SQI_ID + ", " + + COLUMN_SQI_NAME + ", " + + COLUMN_SQI_CONFIG + ", " + + COLUMN_SQI_INDEX + ", " + + COLUMN_SQI_TYPE + ", " + + COLUMN_SQI_STRMASK + ", " + + COLUMN_SQI_STRLENGTH + ", " + + COLUMN_SQI_ENUMVALS + ", " + + COLUMN_SQBI_VALUE + + " FROM " + TABLE_SQ_INPUT + + " LEFT OUTER JOIN " + TABLE_SQ_JOB_INPUT + + " ON " + COLUMN_SQBI_INPUT + " = " + COLUMN_SQI_ID + + " AND " + COLUMN_SQBI_JOB + " = ?" + + " WHERE " + COLUMN_SQI_CONFIG + " = ?" + + " AND (" + COLUMN_SQBI_JOB + " = ? OR " + COLUMN_SQBI_JOB + " IS NULL)" + + " ORDER BY " + COLUMN_SQI_INDEX; + + /**********LINK TABLE **************/ + // DML: Insert new link + public static final String STMT_INSERT_LINK = + "INSERT INTO " + TABLE_SQ_LINK + " (" + + COLUMN_SQ_LNK_NAME + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + COLUMN_SQ_LNK_ENABLED + ", " + + COLUMN_SQ_LNK_CREATION_USER + ", " + + COLUMN_SQ_LNK_CREATION_DATE + ", " + + COLUMN_SQ_LNK_UPDATE_USER + ", " + + COLUMN_SQ_LNK_UPDATE_DATE + + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; + + // DML: Insert new link inputs + public static final String STMT_INSERT_LINK_INPUT = + "INSERT INTO " + TABLE_SQ_LINK_INPUT + " (" + + COLUMN_SQ_LNKI_LINK + ", " + + COLUMN_SQ_LNKI_INPUT + ", " + + COLUMN_SQ_LNKI_VALUE + + ") VALUES (?, ?, ?)"; + + // DML: Update link + public static final String STMT_UPDATE_LINK = + "UPDATE " + TABLE_SQ_LINK + " SET " + + COLUMN_SQ_LNK_NAME + " = ?, " + + COLUMN_SQ_LNK_UPDATE_USER + " = ?, " + + COLUMN_SQ_LNK_UPDATE_DATE + " = ? " + + " WHERE " + COLUMN_SQ_LNK_ID + " = ?"; + + // DML: Enable or disable link + public static final String STMT_ENABLE_LINK = + "UPDATE " + TABLE_SQ_LINK + " SET " + + COLUMN_SQ_LNK_ENABLED + " = ? " + + " WHERE " + COLUMN_SQ_LNK_ID + " = ?"; + + // DML: Delete rows from link input table + public static final String STMT_DELETE_LINK_INPUT = + "DELETE FROM " + TABLE_SQ_LINK_INPUT + + " WHERE " + COLUMN_SQ_LNKI_LINK + " = ?"; + + // DML: Delete row from link table + public static final String STMT_DELETE_LINK = + "DELETE FROM " + TABLE_SQ_LINK + + " WHERE " + COLUMN_SQ_LNK_ID + " = ?"; + + // DML: Select one specific link + public static final String STMT_SELECT_LINK_SINGLE = + "SELECT " + + COLUMN_SQ_LNK_ID + ", " + + COLUMN_SQ_LNK_NAME + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + COLUMN_SQ_LNK_ENABLED + ", " + + COLUMN_SQ_LNK_CREATION_USER + ", " + + COLUMN_SQ_LNK_CREATION_DATE + ", " + + COLUMN_SQ_LNK_UPDATE_USER + ", " + + COLUMN_SQ_LNK_UPDATE_DATE + + " FROM " + TABLE_SQ_LINK + + " WHERE " + COLUMN_SQ_LNK_ID + " = ?"; + + // DML: Select one specific link by name + public static final String STMT_SELECT_LINK_SINGLE_BY_NAME = + "SELECT " + + COLUMN_SQ_LNK_ID + ", " + + COLUMN_SQ_LNK_NAME + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + COLUMN_SQ_LNK_ENABLED + ", " + + COLUMN_SQ_LNK_CREATION_USER + ", " + + COLUMN_SQ_LNK_CREATION_DATE + ", " + + COLUMN_SQ_LNK_UPDATE_USER + ", " + + COLUMN_SQ_LNK_UPDATE_DATE + + " FROM " + TABLE_SQ_LINK + + " WHERE " + COLUMN_SQ_LNK_NAME + " = ?"; + + // DML: Select all links + public static final String STMT_SELECT_LINK_ALL = + "SELECT " + + COLUMN_SQ_LNK_ID + ", " + + COLUMN_SQ_LNK_NAME + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + COLUMN_SQ_LNK_ENABLED + ", " + + COLUMN_SQ_LNK_CREATION_USER + ", " + + COLUMN_SQ_LNK_CREATION_DATE + ", " + + COLUMN_SQ_LNK_UPDATE_USER + ", " + + COLUMN_SQ_LNK_UPDATE_DATE + + " FROM " + TABLE_SQ_LINK; + + // DML: Select all links for a specific connector. + public static final String STMT_SELECT_LINK_FOR_CONNECTOR_CONFIGURABLE = + "SELECT " + + COLUMN_SQ_LNK_ID + ", " + + COLUMN_SQ_LNK_NAME + ", " + + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + COLUMN_SQ_LNK_ENABLED + ", " + + COLUMN_SQ_LNK_CREATION_USER + ", " + + COLUMN_SQ_LNK_CREATION_DATE + ", " + + COLUMN_SQ_LNK_UPDATE_USER + ", " + + COLUMN_SQ_LNK_UPDATE_DATE + + " FROM " + TABLE_SQ_LINK + + " WHERE " + COLUMN_SQ_LNK_CONFIGURABLE + " = ?"; + + // DML: Check if given link exists + public static final String STMT_SELECT_LINK_CHECK_BY_ID = + "SELECT count(*) FROM " + TABLE_SQ_LINK + + " WHERE " + COLUMN_SQ_LNK_ID + " = ?"; + + /**********JOB TABLE **************/ + // DML: Insert new job + public static final String STMT_INSERT_JOB = + "INSERT INTO " + TABLE_SQ_JOB + " (" + + COLUMN_SQB_NAME + ", " + + COLUMN_SQB_FROM_LINK + ", " + + COLUMN_SQB_TO_LINK + ", " + + COLUMN_SQB_ENABLED + ", " + + COLUMN_SQB_CREATION_USER + ", " + + COLUMN_SQB_CREATION_DATE + ", " + + COLUMN_SQB_UPDATE_USER + ", " + + COLUMN_SQB_UPDATE_DATE + + ") VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; + + // DML: Insert new job inputs + public static final String STMT_INSERT_JOB_INPUT = + "INSERT INTO " + TABLE_SQ_JOB_INPUT + " (" + + COLUMN_SQBI_JOB + ", " + + COLUMN_SQBI_INPUT + ", " + + COLUMN_SQBI_VALUE + + ") VALUES (?, ?, ?)"; + + public static final String STMT_UPDATE_JOB = + "UPDATE " + TABLE_SQ_JOB + " SET " + + COLUMN_SQB_NAME + " = ?, " + + COLUMN_SQB_UPDATE_USER + " = ?, " + + COLUMN_SQB_UPDATE_DATE + " = ? " + + " WHERE " + COLUMN_SQB_ID + " = ?"; + + // DML: Enable or disable job + public static final String STMT_ENABLE_JOB = + "UPDATE " + TABLE_SQ_JOB + " SET " + + COLUMN_SQB_ENABLED + " = ? " + + " WHERE " + COLUMN_SQB_ID + " = ?"; + + // DML: Delete rows from job input table + public static final String STMT_DELETE_JOB_INPUT = + "DELETE FROM " + TABLE_SQ_JOB_INPUT + + " WHERE " + COLUMN_SQBI_JOB + " = ?"; + + // DML: Delete row from job table + public static final String STMT_DELETE_JOB = + "DELETE FROM " + TABLE_SQ_JOB + + " WHERE " + COLUMN_SQB_ID + " = ?"; + + // DML: Check if given job exists + public static final String STMT_SELECT_JOB_CHECK_BY_ID = + "SELECT count(*) FROM " + TABLE_SQ_JOB + + " WHERE " + COLUMN_SQB_ID + " = ?"; + + // DML: Check if there are jobs for given link + public static final String STMT_SELECT_JOBS_FOR_LINK_CHECK = + "SELECT" + + " count(*)" + + " FROM " + TABLE_SQ_JOB + + " JOIN " + TABLE_SQ_LINK + + " ON " + COLUMN_SQB_FROM_LINK + " = " + COLUMN_SQ_LNK_ID + + " WHERE " + COLUMN_SQ_LNK_ID + " = ? "; + + //DML: Select all jobs + public static final String STMT_SELECT_JOB = + "SELECT " + + "FROM_CONNECTOR." + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + "TO_CONNECTOR." + COLUMN_SQ_LNK_CONFIGURABLE + ", " + + "JOB." + COLUMN_SQB_ID + ", " + + "JOB." + COLUMN_SQB_NAME + ", " + + "JOB." + COLUMN_SQB_FROM_LINK + ", " + + "JOB." + COLUMN_SQB_TO_LINK + ", " + + "JOB." + COLUMN_SQB_ENABLED + ", " + + "JOB." + COLUMN_SQB_CREATION_USER + ", " + + "JOB." + COLUMN_SQB_CREATION_DATE + ", " + + "JOB." + COLUMN_SQB_UPDATE_USER + ", " + + "JOB." + COLUMN_SQB_UPDATE_DATE + + " FROM " + TABLE_SQ_JOB + " JOB" + + " LEFT JOIN " + TABLE_SQ_LINK + " FROM_CONNECTOR" + + " ON " + COLUMN_SQB_FROM_LINK + " = FROM_CONNECTOR." + COLUMN_SQ_LNK_ID + + " LEFT JOIN " + TABLE_SQ_LINK + " TO_CONNECTOR" + + " ON " + COLUMN_SQB_TO_LINK + " = TO_CONNECTOR." + COLUMN_SQ_LNK_ID; + + // DML: Select one specific job + public static final String STMT_SELECT_JOB_SINGLE_BY_ID = + STMT_SELECT_JOB + " WHERE " + COLUMN_SQB_ID + " = ?"; + + // DML: Select one specific job + public static final String STMT_SELECT_JOB_SINGLE_BY_NAME = + STMT_SELECT_JOB + " WHERE " + COLUMN_SQB_NAME + " = ?"; + + // DML: Select all jobs for a Connector + public static final String STMT_SELECT_ALL_JOBS_FOR_CONNECTOR_CONFIGURABLE = + STMT_SELECT_JOB + + " WHERE FROM_LINK." + COLUMN_SQ_LNK_CONFIGURABLE + " = ? OR TO_LINK." + + COLUMN_SQ_LNK_CONFIGURABLE + " = ?"; + + /**********SUBMISSION TABLE **************/ + // DML: Insert new submission + public static final String STMT_INSERT_SUBMISSION = + "INSERT INTO " + TABLE_SQ_SUBMISSION + "(" + + COLUMN_SQS_JOB + ", " + + COLUMN_SQS_STATUS + ", " + + COLUMN_SQS_CREATION_USER + ", " + + COLUMN_SQS_CREATION_DATE + ", " + + COLUMN_SQS_UPDATE_USER + ", " + + COLUMN_SQS_UPDATE_DATE + ", " + + COLUMN_SQS_EXTERNAL_ID + ", " + + COLUMN_SQS_EXTERNAL_LINK + ", " + + COLUMN_SQS_EXCEPTION + ", " + + COLUMN_SQS_EXCEPTION_TRACE + ") " + + " VALUES(?, ?, ?, ?, ?, ?, ?, substr(?, 1, 150) , substr(?, 1, 150), substr(?, 1, 750))"; + + // DML: Update existing submission + public static final String STMT_UPDATE_SUBMISSION = + "UPDATE " + TABLE_SQ_SUBMISSION + " SET " + + COLUMN_SQS_STATUS + " = ?, " + + COLUMN_SQS_UPDATE_USER + " = ?, " + + COLUMN_SQS_UPDATE_DATE + " = ?, " + + COLUMN_SQS_EXCEPTION + " = ?, " + + COLUMN_SQS_EXCEPTION_TRACE + " = ?" + + " WHERE " + COLUMN_SQS_ID + " = ?"; + + // DML: Check if given submission exists + public static final String STMT_SELECT_SUBMISSION_CHECK = + "SELECT" + + " count(*)" + + " FROM " + TABLE_SQ_SUBMISSION + + " WHERE " + COLUMN_SQS_ID + " = ?"; + + // DML: Purge old entries + public static final String STMT_PURGE_SUBMISSIONS = + "DELETE FROM " + TABLE_SQ_SUBMISSION + + " WHERE " + COLUMN_SQS_UPDATE_DATE + " < ?"; + + // DML: Get unfinished + public static final String STMT_SELECT_SUBMISSION_UNFINISHED = + "SELECT " + + COLUMN_SQS_ID + ", " + + COLUMN_SQS_JOB + ", " + + COLUMN_SQS_STATUS + ", " + + COLUMN_SQS_CREATION_USER + ", " + + COLUMN_SQS_CREATION_DATE + ", " + + COLUMN_SQS_UPDATE_USER + ", " + + COLUMN_SQS_UPDATE_DATE + ", " + + COLUMN_SQS_EXTERNAL_ID + ", " + + COLUMN_SQS_EXTERNAL_LINK + ", " + + COLUMN_SQS_EXCEPTION + ", " + + COLUMN_SQS_EXCEPTION_TRACE + + " FROM " + TABLE_SQ_SUBMISSION + + " WHERE " + COLUMN_SQS_STATUS + " = ?"; + + // DML : Get all submissions + public static final String STMT_SELECT_SUBMISSIONS = + "SELECT " + + COLUMN_SQS_ID + ", " + + COLUMN_SQS_JOB + ", " + + COLUMN_SQS_STATUS + ", " + + COLUMN_SQS_CREATION_USER + ", " + + COLUMN_SQS_CREATION_DATE + ", " + + COLUMN_SQS_UPDATE_USER + ", " + + COLUMN_SQS_UPDATE_DATE + ", " + + COLUMN_SQS_EXTERNAL_ID + ", " + + COLUMN_SQS_EXTERNAL_LINK + ", " + + COLUMN_SQS_EXCEPTION + ", " + + COLUMN_SQS_EXCEPTION_TRACE + + " FROM " + TABLE_SQ_SUBMISSION + + " ORDER BY " + COLUMN_SQS_UPDATE_DATE + " DESC"; + + // DML: Get submissions for a job + public static final String STMT_SELECT_SUBMISSIONS_FOR_JOB = + "SELECT " + + COLUMN_SQS_ID + ", " + + COLUMN_SQS_JOB + ", " + + COLUMN_SQS_STATUS + ", " + + COLUMN_SQS_CREATION_USER + ", " + + COLUMN_SQS_CREATION_DATE + ", " + + COLUMN_SQS_UPDATE_USER + ", " + + COLUMN_SQS_UPDATE_DATE + ", " + + COLUMN_SQS_EXTERNAL_ID + ", " + + COLUMN_SQS_EXTERNAL_LINK + ", " + + COLUMN_SQS_EXCEPTION + ", " + + COLUMN_SQS_EXCEPTION_TRACE + + " FROM " + TABLE_SQ_SUBMISSION + + " WHERE " + COLUMN_SQS_JOB + " = ?" + + " ORDER BY " + COLUMN_SQS_UPDATE_DATE + " DESC"; + + // DML: Select counter group + public static final String STMT_SELECT_COUNTER_GROUP = + "SELECT " + + COLUMN_SQG_ID + ", " + + COLUMN_SQG_NAME + " " + + "FROM " + TABLE_SQ_COUNTER_GROUP + " " + + "WHERE " + COLUMN_SQG_NAME + " = substr(?, 1, 75)"; + + // DML: Insert new counter group + public static final String STMT_INSERT_COUNTER_GROUP = + "INSERT INTO " + TABLE_SQ_COUNTER_GROUP + " (" + + COLUMN_SQG_NAME + ") " + + "VALUES (substr(?, 1, 75))"; + + // DML: Select counter + public static final String STMT_SELECT_COUNTER = + "SELECT " + + COLUMN_SQR_ID + ", " + + COLUMN_SQR_NAME + " " + + "FROM " + TABLE_SQ_COUNTER + " " + + "WHERE " + COLUMN_SQR_NAME + " = substr(?, 1, 75)"; + + // DML: Insert new counter + public static final String STMT_INSERT_COUNTER = + "INSERT INTO " + TABLE_SQ_COUNTER + " (" + + COLUMN_SQR_NAME + ") " + + "VALUES (substr(?, 1, 75))"; + + // DML: Insert new counter submission + public static final String STMT_INSERT_COUNTER_SUBMISSION = + "INSERT INTO " + TABLE_SQ_COUNTER_SUBMISSION + " (" + + COLUMN_SQRS_GROUP + ", " + + COLUMN_SQRS_COUNTER + ", " + + COLUMN_SQRS_SUBMISSION + ", " + + COLUMN_SQRS_VALUE + ") " + + "VALUES (?, ?, ?, ?)"; + + // DML: Select counter submission + public static final String STMT_SELECT_COUNTER_SUBMISSION = + "SELECT " + + COLUMN_SQG_NAME + ", " + + COLUMN_SQR_NAME + ", " + + COLUMN_SQRS_VALUE + " " + + "FROM " + TABLE_SQ_COUNTER_SUBMISSION + " " + + "LEFT JOIN " + TABLE_SQ_COUNTER_GROUP + + " ON " + COLUMN_SQRS_GROUP + " = " + COLUMN_SQG_ID + " " + + "LEFT JOIN " + TABLE_SQ_COUNTER + + " ON " + COLUMN_SQRS_COUNTER + " = " + COLUMN_SQR_ID + " " + + "WHERE " + COLUMN_SQRS_SUBMISSION + " = ? "; + + // DML: Delete rows from counter submission table + public static final String STMT_DELETE_COUNTER_SUBMISSION = + "DELETE FROM " + TABLE_SQ_COUNTER_SUBMISSION + + " WHERE " + COLUMN_SQRS_SUBMISSION + " = ?"; + + /******* CONFIG and CONNECTOR DIRECTIONS ****/ + public static final String STMT_INSERT_SQ_CONNECTOR_DIRECTIONS = + "INSERT INTO " + TABLE_SQ_CONNECTOR_DIRECTIONS + " " + + "(" + COLUMN_SQCD_CONNECTOR + ", " + COLUMN_SQCD_DIRECTION + ")" + + " VALUES (?, ?)"; + + public static final String STMT_INSERT_SQ_CONFIG_DIRECTIONS = + "INSERT INTO " + TABLE_SQ_CONFIG_DIRECTIONS + " " + + "(" + COLUMN_SQ_CFG_DIR_CONFIG + ", " + COLUMN_SQ_CFG_DIR_DIRECTION + ")" + + " VALUES (?, ?)"; + + public static final String STMT_SELECT_SQ_CONNECTOR_DIRECTIONS_ALL = + "SELECT " + COLUMN_SQCD_CONNECTOR + ", " + COLUMN_SQCD_DIRECTION + + " FROM " + TABLE_SQ_CONNECTOR_DIRECTIONS; + + public static final String STMT_SELECT_SQ_CONNECTOR_DIRECTIONS = + STMT_SELECT_SQ_CONNECTOR_DIRECTIONS_ALL + " WHERE " + + COLUMN_SQCD_CONNECTOR + " = ?"; + + public static final String STMT_SELECT_SQ_CONFIG_DIRECTIONS_ALL = + "SELECT " + COLUMN_SQ_CFG_DIR_CONFIG + ", " + COLUMN_SQ_CFG_DIR_DIRECTION + + " FROM " + TABLE_SQ_CONFIG_DIRECTIONS; + + public static final String STMT_SELECT_SQ_CONFIG_DIRECTIONS = + STMT_SELECT_SQ_CONFIG_DIRECTIONS_ALL + " WHERE " + + COLUMN_SQ_CFG_DIR_CONFIG + " = ?"; +}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/5de4b437/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositorySchemaConstants.java ---------------------------------------------------------------------- diff --git a/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositorySchemaConstants.java b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositorySchemaConstants.java new file mode 100644 index 0000000..173dcb8 --- /dev/null +++ b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositorySchemaConstants.java @@ -0,0 +1,248 @@ +/** + * 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.sqoop.repository.common; + +public final class CommonRepositorySchemaConstants { + + public static final String SCHEMA_SQOOP = "SQOOP"; + + private static final String SCHEMA_PREFIX = SCHEMA_SQOOP + "."; + + // SQ_DIRECTION + + public static final String TABLE_SQ_DIRECTION_NAME = "SQ_DIRECTION"; + + public static final String TABLE_SQ_DIRECTION = SCHEMA_PREFIX + TABLE_SQ_DIRECTION_NAME; + + public static final String COLUMN_SQD_ID = "SQD_ID"; + + public static final String COLUMN_SQD_NAME = "SQD_NAME"; + + // SQ_CONFIGURABLE + + public static final String TABLE_SQ_CONFIGURABLE_NAME = "SQ_CONFIGURABLE"; + + public static final String TABLE_SQ_CONFIGURABLE = SCHEMA_PREFIX + TABLE_SQ_CONFIGURABLE_NAME; + + public static final String COLUMN_SQC_ID = "SQC_ID"; + + public static final String COLUMN_SQC_NAME = "SQC_NAME"; + + public static final String COLUMN_SQC_CLASS = "SQC_CLASS"; + + public static final String COLUMN_SQC_VERSION = "SQC_VERSION"; + + public static final String COLUMN_SQC_TYPE = "SQC_TYPE"; + + // SQ_CONNECTOR_DIRECTIONS + + public static final String TABLE_SQ_CONNECTOR_DIRECTIONS_NAME = "SQ_CONNECTOR_DIRECTIONS"; + + public static final String TABLE_SQ_CONNECTOR_DIRECTIONS = SCHEMA_PREFIX + + TABLE_SQ_CONNECTOR_DIRECTIONS_NAME; + + public static final String COLUMN_SQCD_CONNECTOR = "SQCD_CONNECTOR"; + + public static final String COLUMN_SQCD_DIRECTION = "SQCD_DIRECTION"; + + // SQ_CONFIG + + public static final String TABLE_SQ_CONFIG_NAME = "SQ_CONFIG"; + + public static final String TABLE_SQ_CONFIG = SCHEMA_PREFIX + TABLE_SQ_CONFIG_NAME; + + public static final String COLUMN_SQ_CFG_ID = "SQ_CFG_ID"; + + public static final String COLUMN_SQ_CFG_CONFIGURABLE = "SQ_CFG_CONFIGURABLE"; + + public static final String COLUMN_SQ_CFG_DIRECTION = "SQ_CFG_DIRECTION"; + + public static final String COLUMN_SQ_CFG_NAME = "SQ_CFG_NAME"; + + public static final String COLUMN_SQ_CFG_TYPE = "SQ_CFG_TYPE"; + + public static final String COLUMN_SQ_CFG_INDEX = "SQ_CFG_INDEX"; + + // SQ_CONFIG_DIRECTIONS + + public static final String TABLE_SQ_CONFIG_DIRECTIONS_NAME = "SQ_CONFIG_DIRECTIONS"; + + public static final String TABLE_SQ_CONFIG_DIRECTIONS = SCHEMA_PREFIX + + TABLE_SQ_CONFIG_DIRECTIONS_NAME; + + public static final String COLUMN_SQ_CFG_DIR_CONFIG = "SQ_CFG_DIR_CONFIG"; + + public static final String COLUMN_SQ_CFG_DIR_DIRECTION = "SQ_CFG_DIR_DIRECTION"; + + // SQ_INPUT + + public static final String TABLE_SQ_INPUT_NAME = "SQ_INPUT"; + + public static final String TABLE_SQ_INPUT = SCHEMA_PREFIX + TABLE_SQ_INPUT_NAME; + + public static final String COLUMN_SQI_ID = "SQI_ID"; + + public static final String COLUMN_SQI_NAME = "SQI_NAME"; + + public static final String COLUMN_SQI_CONFIG = "SQI_CONFIG"; + + public static final String COLUMN_SQI_INDEX = "SQI_INDEX"; + + public static final String COLUMN_SQI_TYPE = "SQI_TYPE"; + + public static final String COLUMN_SQI_STRMASK = "SQI_STRMASK"; + + public static final String COLUMN_SQI_STRLENGTH = "SQI_STRLENGTH"; + + public static final String COLUMN_SQI_ENUMVALS = "SQI_ENUMVALS"; + + public static final String TABLE_SQ_LINK_NAME = "SQ_LINK"; + + public static final String TABLE_SQ_LINK = SCHEMA_PREFIX + TABLE_SQ_LINK_NAME; + + public static final String COLUMN_SQ_LNK_ID = "SQ_LNK_ID"; + + public static final String COLUMN_SQ_LNK_NAME = "SQ_LNK_NAME"; + + public static final String COLUMN_SQ_LNK_CONFIGURABLE = "SQ_LNK_CONFIGURABLE"; + + public static final String COLUMN_SQ_LNK_CREATION_USER = "SQ_LNK_CREATION_USER"; + + public static final String COLUMN_SQ_LNK_CREATION_DATE = "SQ_LNK_CREATION_DATE"; + + public static final String COLUMN_SQ_LNK_UPDATE_USER = "SQ_LNK_UPDATE_USER"; + + public static final String COLUMN_SQ_LNK_UPDATE_DATE = "SQ_LNK_UPDATE_DATE"; + + public static final String COLUMN_SQ_LNK_ENABLED = "SQ_LNK_ENABLED"; + + // SQ_JOB + + public static final String TABLE_SQ_JOB_NAME = "SQ_JOB"; + + public static final String TABLE_SQ_JOB = SCHEMA_PREFIX + TABLE_SQ_JOB_NAME; + + public static final String COLUMN_SQB_ID = "SQB_ID"; + + public static final String COLUMN_SQB_NAME = "SQB_NAME"; + + public static final String COLUMN_SQB_FROM_LINK = "SQB_FROM_LINK"; + + public static final String COLUMN_SQB_TO_LINK = "SQB_TO_LINK"; + + public static final String COLUMN_SQB_CREATION_USER = "SQB_CREATION_USER"; + + public static final String COLUMN_SQB_CREATION_DATE = "SQB_CREATION_DATE"; + + public static final String COLUMN_SQB_UPDATE_USER = "SQB_UPDATE_USER"; + + public static final String COLUMN_SQB_UPDATE_DATE = "SQB_UPDATE_DATE"; + + public static final String COLUMN_SQB_ENABLED = "SQB_ENABLED"; + + // SQ_LINK_INPUT + + public static final String TABLE_SQ_LINK_INPUT_NAME = "SQ_LINK_INPUT"; + + public static final String TABLE_SQ_LINK_INPUT = SCHEMA_PREFIX + TABLE_SQ_LINK_INPUT_NAME; + + public static final String COLUMN_SQ_LNKI_LINK = "SQ_LNKI_LINK"; + + public static final String COLUMN_SQ_LNKI_INPUT = "SQ_LNKI_INPUT"; + + public static final String COLUMN_SQ_LNKI_VALUE = "SQ_LNKI_VALUE"; + + // SQ_JOB_INPUT + + public static final String TABLE_SQ_JOB_INPUT_NAME = "SQ_JOB_INPUT"; + + public static final String TABLE_SQ_JOB_INPUT = SCHEMA_PREFIX + TABLE_SQ_JOB_INPUT_NAME; + + public static final String COLUMN_SQBI_JOB = "SQBI_JOB"; + + public static final String COLUMN_SQBI_INPUT = "SQBI_INPUT"; + + public static final String COLUMN_SQBI_VALUE = "SQBI_VALUE"; + + // SQ_SUBMISSION + + public static final String TABLE_SQ_SUBMISSION_NAME = "SQ_SUBMISSION"; + + public static final String TABLE_SQ_SUBMISSION = SCHEMA_PREFIX + TABLE_SQ_SUBMISSION_NAME; + + public static final String COLUMN_SQS_ID = "SQS_ID"; + + public static final String COLUMN_SQS_JOB = "SQS_JOB"; + + public static final String COLUMN_SQS_STATUS = "SQS_STATUS"; + + public static final String COLUMN_SQS_CREATION_USER = "SQS_CREATION_USER"; + + public static final String COLUMN_SQS_CREATION_DATE = "SQS_CREATION_DATE"; + + public static final String COLUMN_SQS_UPDATE_USER = "SQS_UPDATE_USER"; + + public static final String COLUMN_SQS_UPDATE_DATE = "SQS_UPDATE_DATE"; + + public static final String COLUMN_SQS_EXTERNAL_ID = "SQS_EXTERNAL_ID"; + + public static final String COLUMN_SQS_EXTERNAL_LINK = "SQS_EXTERNAL_LINK"; + + public static final String COLUMN_SQS_EXCEPTION = "SQS_EXCEPTION"; + + public static final String COLUMN_SQS_EXCEPTION_TRACE = "SQS_EXCEPTION_TRACE"; + + // SQ_COUNTER_GROUP + + public static final String TABLE_SQ_COUNTER_GROUP_NAME = "SQ_COUNTER_GROUP"; + + public static final String TABLE_SQ_COUNTER_GROUP = SCHEMA_PREFIX + TABLE_SQ_COUNTER_GROUP_NAME; + + public static final String COLUMN_SQG_ID = "SQG_ID"; + + public static final String COLUMN_SQG_NAME = "SQG_NAME"; + + // SQ_COUNTER_GROUP + + public static final String TABLE_SQ_COUNTER_NAME = "SQ_COUNTER"; + + public static final String TABLE_SQ_COUNTER = SCHEMA_PREFIX + TABLE_SQ_COUNTER_NAME; + + public static final String COLUMN_SQR_ID = "SQR_ID"; + + public static final String COLUMN_SQR_NAME = "SQR_NAME"; + + // SQ_COUNTER_SUBMISSION + + public static final String TABLE_SQ_COUNTER_SUBMISSION_NAME = "SQ_COUNTER_SUBMISSION"; + + public static final String TABLE_SQ_COUNTER_SUBMISSION = SCHEMA_PREFIX + + TABLE_SQ_COUNTER_SUBMISSION_NAME; + + public static final String COLUMN_SQRS_GROUP = "SQRS_GROUP"; + + public static final String COLUMN_SQRS_COUNTER = "SQRS_COUNTER"; + + public static final String COLUMN_SQRS_SUBMISSION = "SQRS_SUBMISSION"; + + public static final String COLUMN_SQRS_VALUE = "SQRS_VALUE"; + + private CommonRepositorySchemaConstants() { + // Disable explicit object creation + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/sqoop/blob/5de4b437/repository/repository-derby/pom.xml ---------------------------------------------------------------------- diff --git a/repository/repository-derby/pom.xml b/repository/repository-derby/pom.xml index 6ad6d64..9be96db 100644 --- a/repository/repository-derby/pom.xml +++ b/repository/repository-derby/pom.xml @@ -38,6 +38,11 @@ limitations under the License. </dependency> <dependency> + <groupId>org.apache.sqoop.repository</groupId> + <artifactId>sqoop-repository-common</artifactId> + </dependency> + + <dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/sqoop/blob/5de4b437/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java index 8fbf47f..d869cb7 100644 --- a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java +++ b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java @@ -24,7 +24,6 @@ public final class DerbyRepoConstants { @Deprecated // use only for the upgrade code public static final String SYSKEY_VERSION = "version"; - public static final String SYSKEY_DERBY_REPOSITORY_VERSION = "repository.version"; /** * Expected version of the repository structures. http://git-wip-us.apache.org/repos/asf/sqoop/blob/5de4b437/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoError.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoError.java b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoError.java index aad219e..769544b 100644 --- a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoError.java +++ b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoError.java @@ -24,174 +24,34 @@ public enum DerbyRepoError implements ErrorCode { /** An unknown error has occurred. */ DERBYREPO_0000("An unknown error has occurred"), - /** The Derby Repository handler was unable to determine if schema exists.*/ - DERBYREPO_0001("Unable to determine if schema exists"), - /** The system was unable to shutdown embedded derby repository server. */ - DERBYREPO_0002("Unable to shutdown embedded Derby instance"), + DERBYREPO_0001("Unable to shutdown embedded Derby instance"), /** The system was unable to run the specified query. */ - DERBYREPO_0003("Unable to run specified query"), - - /** The system was unable to query the repository for given entity */ - DERBYREPO_0004("Unable to retrieve entity data"), - - /** The repository contains more than one connector with same name */ - DERBYREPO_0005("Invalid entity state - multiple connectors with name"), - - /** The system does not support the given input type.*/ - DERBYREPO_0006("Unknown input type encountered"), - - /** The system does not support the given config type.*/ - DERBYREPO_0007("Unknown config type encountered"), - - /** No input was found for the given config. */ - DERBYREPO_0008("The config contains no input"), - - /** The system could not load the config due to unexpected position of input.*/ - DERBYREPO_0009("The config input retrieved does not match expected position"), - - /** - * The system could not load the connector due to unexpected position - * of config. - */ - DERBYREPO_0010("The config retrieved does not match expected position"), - - /** - * The system was not able to register entity due to a pre-assigned - * persistence identifier. - */ - DERBYREPO_0011("Entity cannot have preassigned persistence id"), + DERBYREPO_0002("Unable to run specified query"), /** * The system was unable to register various entities. */ - DERBYREPO_0012("Unexpected update count when registering entity"), + DERBYREPO_0003("Unexpected update count when registering entity"), /** * The system was unable to register entity due to a failure to retrieve * the generated identifier. */ - DERBYREPO_0013("Unable to retrieve generated identifier"), - - /** - * The system was unable to register connector due to a server - * error. - */ - DERBYREPO_0014("Registration of connector failed"), - - /** - * The system was not able to register connector due to an unexpected - * update count. - */ - DERBYREPO_0015("Unexpected update count on config registration"), - - /** - * The system was unable to register connector due to a failure to - * retrieve the generated identifier for a config. - */ - DERBYREPO_0016("Unable to retrieve generated identifier for config"), - - /** - * The system was unable to register connector due to an unexpected - * update count for config input registration. - */ - DERBYREPO_0017("Unexpected update count for config input"), - - /** - * The system was unable to register connector due to a failure to - * retrieve the generated identifier for a config input. - */ - DERBYREPO_0018("Unable to retrieve generated identifier for config input"), + DERBYREPO_0004("Unable to retrieve generated identifier"), /** We cant create new link in repository **/ - DERBYREPO_0019("Unable to create new link data"), - - /** We can't save values for input to repository **/ - DERBYREPO_0020("Unable to save input values to the repository"), - - /** We can't update link in repository **/ - DERBYREPO_0021("Unable to update link in repository"), - - /** We can't delete link in repository **/ - DERBYREPO_0022("Unable to delete link in repository"), - - /** We can't restore link from repository **/ - DERBYREPO_0023("Unable to load link from repository"), - - /** We can't restore specific link from repository **/ - DERBYREPO_0024("Unable to load specific link from repository"), - - /** We're unable to check if given link already exists */ - DERBYREPO_0025("Unable to check if given link exists"), - - /** We cant create new job in repository **/ - DERBYREPO_0026("Unable to create new job data"), - - /** We can't update job in repository **/ - DERBYREPO_0027("Unable to update job in repository"), - - /** We can't delete job in repository **/ - DERBYREPO_0028("Unable to delete job in repository"), - - /** We're unable to check if given job already exists */ - DERBYREPO_0029("Unable to check if given job exists"), - - /** We can't restore specific job from repository **/ - DERBYREPO_0030("Unable to load specific job from repository"), - - /** We can't restore job from repository **/ - DERBYREPO_0031("Unable to load job from repository"), - - /** Can't verify if link is referenced from somewhere **/ - DERBYREPO_0032("Unable to check if link is in use"), - - /** We're unable to check if given submission already exists */ - DERBYREPO_0033("Unable to check if given submission exists"), - - /** We cant create new submission in repository **/ - DERBYREPO_0034("Unable to create new submission data"), - - /** We can't update submission in repository **/ - DERBYREPO_0035("Unable to update submission in the repository"), - - /** Can't purge old submissions **/ - DERBYREPO_0036("Unable to purge old submissions"), - - /** Can't retrieve unfinished submissions **/ - DERBYREPO_0037("Can't retrieve unfinished submissions"), - - DERBYREPO_0038("Update of connector failed"), - - /** Can't retrieve all submissions **/ - DERBYREPO_0039("Can't retrieve all submissions"), - - /** Can't retrieve submissions for a job **/ - DERBYREPO_0040("Can't retrieve submissions for a job"), + DERBYREPO_0005("Unable to create new link data"), /** Can't detect version of the database structures **/ - DERBYREPO_0041("Can't detect version of repository storage"), - - /** Can't enable/disable link **/ - DERBYREPO_0042("Can't enable/disable link"), - - /** Can't enable/disable job **/ - DERBYREPO_0043("Can't enable/disable job"), - - DERBYREPO_0044("Update of driver config failed"), - - DERBYREPO_0045("Can't retrieve all connectors"), - - DERBYREPO_0046("Could not add directions"), - - DERBYREPO_0047("Could not get ID of recently added direction"), - - DERBYREPO_0048("Could not register config direction"), + DERBYREPO_0006("Can't detect version of repository storage"), - DERBYREPO_0049("Could not set connector direction"), + /** Can't add directions **/ + DERBYREPO_0007("Could not add directions"), - /** The system was unable to register driver due to a server error **/ - DERBYREPO_0050("Registration of driver failed"), + /** Can't get ID of direction **/ + DERBYREPO_0008("Could not get ID of recently added direction"), ;
