private boolean columnExists()

in src/main/java/com/epam/digital/data/platform/liquibase/extension/change/core/DdmMakeObjectChange.java [63:90]


    private boolean columnExists(Database database, String table, String column) {
        boolean exists = false;

        Statement statement = null;
        ResultSet resultSet = null;

        if (database.getConnection() instanceof JdbcConnection) {
            try {
                statement = ((JdbcConnection) database.getConnection()).createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

                String sql = "SELECT EXISTS(SELECT 1 "
                    + "FROM information_schema.columns "
                    + "WHERE table_name='" + table + "' AND column_name='" + column + "') as " + DdmConstants.ATTRIBUTE_COLUMN + ";";

                resultSet = statement.executeQuery(sql);

                if (resultSet.next()) {
                    exists = resultSet.getBoolean(DdmConstants.ATTRIBUTE_COLUMN);
                }
            } catch (SQLException | DatabaseException e) {
                Scope.getCurrentScope().getLog(database.getClass()).info("Cannot select version", e);
            } finally {
                JdbcUtils.close(resultSet, statement);
            }
        }

        return exists;
    }