public PostgreSqlPgDumpReveng() { super( new PostgreSqlDbPlatform(), new MultiLineStringSplitter("GO", true), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("-- PostgreSQL database dump").and(StringPredicates.contains("-- Dumped by pg_dump")) ), getRevengPatterns(), null ); setSkipLinePredicates(Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("SET statement_timeout") , StringPredicates.startsWith("SET default_tablespace") , StringPredicates.startsWith("SET lock_timeout") , StringPredicates.startsWith("SET idle_in_transaction_session_timeout") , StringPredicates.startsWith("SET client_encoding") , StringPredicates.startsWith("SET standard_conforming_strings") , StringPredicates.startsWith("SET check_function_bodies") , StringPredicates.startsWith("SET client_min_messages") , StringPredicates.startsWith("SET row_security") , StringPredicates.startsWith("SET default_with_oids") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("SET search_path") )); }
public MsSqlReveng() { super( new MsSqlDbPlatform(), new MultiLineStringSplitter("GO", true), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("-- PostgreSQL database dump").and(StringPredicates.contains("-- Dumped by pg_dump")) ), getRevengPatterns(), new Procedure2<ChangeEntry, String>() { @Override public void value(ChangeEntry changeEntry, String sql) { if (sql.contains("\"")) { changeEntry.addMetadataAnnotation(TextMarkupDocumentReader.TOGGLE_DISABLE_QUOTED_IDENTIFIERS); } } } ); setStartQuote("\\["); setEndQuote("\\]"); setSkipLinePredicates(Lists.immutable.<Predicate<String>>of( StringPredicates.matches(".*\\s*/\\*+\\s+Object") , StringPredicates.startsWith("/****** Object:") , StringPredicates.startsWith("SET ANSI_PADDING") , StringPredicates.startsWith("SET ANSI_NULLS") , StringPredicates.startsWith("SET QUOTED_IDENTIFIER") )); setSkipSchemaValidation(true); }
MultiLineStringSplitter.createSplitterOnSpaceAndLine("go"), Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("-- Sybase Adaptive Server Enterprise DDL Generator Utility"), StringPredicates.startsWith("use "), StringPredicates.startsWith("IF EXISTS ("), StringPredicates.startsWith("create database"), StringPredicates.startsWith("------------------------------------------------------------"), StringPredicates.startsWith("Grant "), StringPredicates.startsWith("exec sp_addgroup"), StringPredicates.startsWith("exec sp_adduser"), StringPredicates.startsWith("setuser"), StringPredicates.startsWith("SETUSER"), StringPredicates.startsWith("set quoted_identifier"), StringPredicates.startsWith("sp_placeobject"), StringPredicates.startsWith("exec sp_changedbowner"), StringPredicates.startsWith("exec master.dbo.sp_dboption"), StringPredicates.startsWith("checkpoint"), StringPredicates.startsWith("sp_addthreshold"), StringPredicates.startsWith("exec sp_addalias"), StringPredicates.startsWith("-- DDLGen Completed")), getRevengPatterns(), new Procedure2<ChangeEntry, String>() {
public static Predicates<? super String> convert(ImmutableCollection<String> patterns) { if (patterns == null) { return Predicates.alwaysTrue(); } PartitionIterable<String> wildcardPartition = patterns.partition(Predicates.or(StringPredicates.contains("*"), StringPredicates.contains("%"))); RichIterable<String> wildcardPatterns = wildcardPartition.getSelected(); RichIterable<WildcardPatternIndex> wildcardPatternIndexes = wildcardPatterns.collect(new Function<String, WildcardPatternIndex>() { @Override public WildcardPatternIndex valueOf(String patternString) { return new WildcardPatternIndex(patternString); } }); RichIterable<String> lookupPatterns = wildcardPartition.getRejected(); LookupIndex lookupIndex = lookupPatterns.notEmpty() ? new LookupIndex(lookupPatterns.toSet().toImmutable()) : null; MutableList<Index> indexes = Lists.mutable.empty(); if (lookupIndex != null) { indexes.add(lookupIndex); } indexes.withAll(wildcardPatternIndexes); return Predicates.or(indexes); } }
@Override public ImmutableList<ChangeInput> value(final ChangeType defaultChangeType, final FileObject file, String fileContent, final String objectName, final String schema, TextMarkupDocumentSection packageMetadata) { MutableList<String> sqls = MultiLineStringSplitter.createSplitterOnSpaceAndLine("GO").valueOf(fileContent); sqls = sqls.reject(Predicates.attributePredicate(StringFunctions.trim(), StringPredicates.empty())); MutableList<String> sortedSqls = this.sortSqls(sqls); MutableList<ChangeInput> changes = sortedSqls.zipWithIndex().collect( new Function<Pair<String, Integer>, ChangeInput>() { @Override public ChangeInput valueOf(Pair<String, Integer> object) { String content = object.getOne(); int index = object.getTwo(); ChangeType changeType = getChangeType(content, defaultChangeType); String changeName = "baseline-change-" + index; boolean active = true; String rollbackIfAlreadyDeployedCommand = null; String rollbackContent = null; ChangeInput change = new ChangeInput(false); change.setChangeKey(new ChangeKey(schema, changeType, objectName, changeName)); change.setOrder(index); change.setContentHash(contentHashStrategy.hashContent(content)); change.setContent(content); change.setRollbackIfAlreadyDeployedContent(rollbackIfAlreadyDeployedCommand); change.setActive(active); change.setRollbackContent(rollbackContent); change.setFileLocation(file); return change; } }); return changes.toImmutable(); }
sqlSnippets = sqlSnippets.select(StringPredicates.notBlank().and(Predicates.noneOf(skipPredicates))); return sqlSnippets;
MultiLineStringSplitter.createSplitterOnSpaceAndLine("go"), Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("-- Sybase Adaptive Server Enterprise DDL Generator Utility"), StringPredicates.startsWith("use "), StringPredicates.startsWith("IF EXISTS ("), StringPredicates.startsWith("create database"), StringPredicates.startsWith("------------------------------------------------------------"), StringPredicates.startsWith("Grant "), StringPredicates.startsWith("exec sp_addgroup"), StringPredicates.startsWith("exec sp_adduser"), StringPredicates.startsWith("setuser"), StringPredicates.startsWith("SETUSER"), StringPredicates.startsWith("set quoted_identifier"), StringPredicates.startsWith("sp_placeobject"), StringPredicates.startsWith("exec sp_changedbowner"), StringPredicates.startsWith("exec master.dbo.sp_dboption"), StringPredicates.startsWith("checkpoint"), StringPredicates.startsWith("sp_addthreshold"), StringPredicates.startsWith("exec sp_addalias"), StringPredicates.startsWith("-- DDLGen Completed")), getRevengPatterns(), new Procedure2<ChangeEntry, String>() {
public static Predicates<? super String> convert(ImmutableCollection<String> patterns) { if (patterns == null) { return Predicates.alwaysTrue(); } PartitionIterable<String> wildcardPartition = patterns.partition(Predicates.or(StringPredicates.contains("*"), StringPredicates.contains("%"))); RichIterable<String> wildcardPatterns = wildcardPartition.getSelected(); RichIterable<WildcardPatternIndex> wildcardPatternIndexes = wildcardPatterns.collect(new Function<String, WildcardPatternIndex>() { @Override public WildcardPatternIndex valueOf(String patternString) { return new WildcardPatternIndex(patternString); } }); RichIterable<String> lookupPatterns = wildcardPartition.getRejected(); LookupIndex lookupIndex = lookupPatterns.notEmpty() ? new LookupIndex(lookupPatterns.toSet().toImmutable()) : null; MutableList<Index> indexes = Lists.mutable.empty(); if (lookupIndex != null) { indexes.add(lookupIndex); } indexes.withAll(wildcardPatternIndexes); return Predicates.or(indexes); } }
@Override public ImmutableList<ChangeInput> value(final ChangeType defaultChangeType, final FileObject file, String fileContent, final String objectName, final String schema, TextMarkupDocumentSection packageMetadata) { MutableList<String> sqls = MultiLineStringSplitter.createSplitterOnSpaceAndLine("GO").valueOf(fileContent); sqls = sqls.reject(Predicates.attributePredicate(StringFunctions.trim(), StringPredicates.empty())); MutableList<String> sortedSqls = this.sortSqls(sqls); MutableList<ChangeInput> changes = sortedSqls.zipWithIndex().collect( new Function<Pair<String, Integer>, ChangeInput>() { @Override public ChangeInput valueOf(Pair<String, Integer> object) { String content = object.getOne(); int index = object.getTwo(); ChangeType changeType = getChangeType(content, defaultChangeType); String changeName = "baseline-change-" + index; boolean active = true; String rollbackIfAlreadyDeployedCommand = null; String rollbackContent = null; ChangeInput change = new ChangeInput(false); change.setChangeKey(new ChangeKey(schema, changeType, objectName, changeName)); change.setOrder(index); change.setContentHash(contentHashStrategy.hashContent(content)); change.setContent(content); change.setRollbackIfAlreadyDeployedContent(rollbackIfAlreadyDeployedCommand); change.setActive(active); change.setRollbackContent(rollbackContent); change.setFileLocation(file); return change; } }); return changes.toImmutable(); }
sqlSnippets = sqlSnippets.select(StringPredicates.notBlank().and(Predicates.noneOf(skipPredicates))); return sqlSnippets;
public PostgreSqlPgDumpReveng() { super( new PostgreSqlDbPlatform(), new MultiLineStringSplitter("GO", true), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("-- PostgreSQL database dump").and(StringPredicates.contains("-- Dumped by pg_dump")) ), getRevengPatterns(), null ); setSkipLinePredicates(Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("SET statement_timeout") , StringPredicates.startsWith("SET default_tablespace") , StringPredicates.startsWith("SET lock_timeout") , StringPredicates.startsWith("SET idle_in_transaction_session_timeout") , StringPredicates.startsWith("SET client_encoding") , StringPredicates.startsWith("SET standard_conforming_strings") , StringPredicates.startsWith("SET check_function_bodies") , StringPredicates.startsWith("SET client_min_messages") , StringPredicates.startsWith("SET row_security") , StringPredicates.startsWith("SET default_with_oids") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("SET search_path") )); }
public MsSqlReveng() { super( new MsSqlDbPlatform(), new MultiLineStringSplitter("GO", true), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("-- PostgreSQL database dump").and(StringPredicates.contains("-- Dumped by pg_dump")) ), getRevengPatterns(), new Procedure2<ChangeEntry, String>() { @Override public void value(ChangeEntry changeEntry, String sql) { if (sql.contains("\"")) { changeEntry.addMetadataAnnotation(TextMarkupDocumentReader.TOGGLE_DISABLE_QUOTED_IDENTIFIERS); } } } ); setStartQuote("\\["); setEndQuote("\\]"); setSkipLinePredicates(Lists.immutable.<Predicate<String>>of( StringPredicates.matches(".*\\s*/\\*+\\s+Object") , StringPredicates.startsWith("/****** Object:") , StringPredicates.startsWith("SET ANSI_PADDING") , StringPredicates.startsWith("SET ANSI_NULLS") , StringPredicates.startsWith("SET QUOTED_IDENTIFIER") )); setSkipSchemaValidation(true); }
public HsqlReveng() { // Note - HSQL Export currently super( new HsqlDbPlatform(), null, Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("SET DATABASE") , StringPredicates.startsWith("SET FILES") , StringPredicates.startsWith("SET SCHEMA") , StringPredicates.startsWith("INSERT INTO") , StringPredicates.startsWith("CREATE USER") , StringPredicates.startsWith("ALTER USER") , StringPredicates.startsWith("CREATE ROLE") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("GRANT ") , StringPredicates.startsWith("ALTER SEQUENCE SYSTEM_LOBS") ), getRevengPatterns(), null ); setStartQuote(QUOTE); setEndQuote(QUOTE); }
.contains("FOREIGN KEY")); MutableList<String> fkStatements = splitStatements.getSelected(); final Pattern triggerPattern = Pattern.compile("(?i).*create.*trigger\\s+(\\w+)\r?\n.*", Pattern.DOTALL);
public Db2lookReveng() { super( new Db2DbPlatform(), new MultiLineStringSplitter("~", false), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("CLP file was created using DB2LOOK") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("SET CURRENT SCHEMA") , StringPredicates.startsWith("SET CURRENT PATH") , StringPredicates.startsWith("COMMIT WORK") , StringPredicates.startsWith("CONNECT RESET") , StringPredicates.startsWith("TERMINATE") , StringPredicates.startsWith("SET NLS_STRING_UNITS = 'SYSTEM'") ), getRevengPatterns(), null ); setStartQuote("\""); setEndQuote("\""); }
public HsqlReveng() { // Note - HSQL Export currently super( new HsqlDbPlatform(), null, Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("SET DATABASE") , StringPredicates.startsWith("SET FILES") , StringPredicates.startsWith("SET SCHEMA") , StringPredicates.startsWith("INSERT INTO") , StringPredicates.startsWith("CREATE USER") , StringPredicates.startsWith("ALTER USER") , StringPredicates.startsWith("CREATE ROLE") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("GRANT ") , StringPredicates.startsWith("ALTER SEQUENCE SYSTEM_LOBS") ), getRevengPatterns(), null ); setStartQuote(QUOTE); setEndQuote(QUOTE); }
.contains("FOREIGN KEY")); MutableList<String> fkStatements = splitStatements.getSelected(); final Pattern triggerPattern = Pattern.compile("(?i).*create.*trigger\\s+(\\w+)\r?\n.*", Pattern.DOTALL);
public Db2lookReveng() { super( new Db2DbPlatform(), new MultiLineStringSplitter("~", false), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("CLP file was created using DB2LOOK") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("SET CURRENT SCHEMA") , StringPredicates.startsWith("SET CURRENT PATH") , StringPredicates.startsWith("COMMIT WORK") , StringPredicates.startsWith("CONNECT RESET") , StringPredicates.startsWith("TERMINATE") , StringPredicates.startsWith("SET NLS_STRING_UNITS = 'SYSTEM'") ), getRevengPatterns(), null ); setStartQuote("\""); setEndQuote("\""); }
@SuppressWarnings("WeakerAccess") public ReladomoDdlReveng(DbPlatform dbPlatform) { super(dbPlatform, new MultiLineStringSplitter(getSplitterToken(dbPlatform), false), Lists.immutable.<Predicate<String>>of( StringPredicates.startsWith("if exists") ), getRevengPatterns(), null); }
OracleReveng() { super( new OracleDbPlatform(), new MultiLineStringSplitter("~", true), Lists.immutable.<Predicate<String>>of( StringPredicates.contains("CLP file was created using DB2LOOK") , StringPredicates.startsWith("CREATE SCHEMA") , StringPredicates.startsWith("SET CURRENT SCHEMA") , StringPredicates.startsWith("SET CURRENT PATH") , StringPredicates.startsWith("COMMIT WORK") , StringPredicates.startsWith("CONNECT RESET") , StringPredicates.startsWith("TERMINATE") , StringPredicates.startsWith("SET NLS_STRING_UNITS = 'SYSTEM'") ), getRevengPatterns(), null ); setStartQuote(QUOTE); setEndQuote(QUOTE); }