Search in sources :

Example 21 with ISqlRowMapper

use of org.jumpmind.db.sql.ISqlRowMapper in project symmetric-ds by JumpMind.

the class Db2zOsDdlReader method getTriggers.

public List<Trigger> getTriggers(final String catalog, final String schema, final String tableName) throws SqlException {
    List<Trigger> triggers = new ArrayList<Trigger>();
    log.debug("Reading triggers for: " + tableName);
    JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate();
    String sql = "SELECT * FROM SYSCAT.TRIGGERS " + "WHERE TABNAME=? and TABSCHEMA=?";
    triggers = sqlTemplate.query(sql, new ISqlRowMapper<Trigger>() {

        public Trigger mapRow(Row row) {
            Trigger trigger = new Trigger();
            trigger.setName(row.getString("TRIGNAME"));
            trigger.setSchemaName(row.getString("TRIGSCHEMA"));
            trigger.setTableName(row.getString("TABNAME"));
            trigger.setEnabled(true);
            trigger.setSource(row.getString("TEXT"));
            row.remove("TEXT");
            switch(row.getString("TRIGEVENT").charAt(0)) {
                case ('I'):
                    row.put("TRIGEVENT", "INSERT");
                    break;
                case ('U'):
                    row.put("TRIGEVENT", "UPDATE");
                    break;
                case ('D'):
                    row.put("TRIGEVENT", "DELETE");
            }
            trigger.setTriggerType(TriggerType.valueOf(row.getString("TRIGEVENT")));
            switch(row.getString("TRIGTIME").charAt(0)) {
                case ('A'):
                    row.put("TRIGTIME", "AFTER");
                    break;
                case ('B'):
                    row.put("TRIGTIME", "BEFORE");
                    break;
                case ('I'):
                    row.put("TRIGTIME", "INSTEAD OF");
            }
            trigger.setMetaData(row);
            return trigger;
        }
    }, tableName, schema);
    return triggers;
}
Also used : JdbcSqlTemplate(org.jumpmind.db.sql.JdbcSqlTemplate) Trigger(org.jumpmind.db.model.Trigger) ArrayList(java.util.ArrayList) Row(org.jumpmind.db.sql.Row) ISqlRowMapper(org.jumpmind.db.sql.ISqlRowMapper)

Example 22 with ISqlRowMapper

use of org.jumpmind.db.sql.ISqlRowMapper in project symmetric-ds by JumpMind.

the class Db2As400DdlReader method getTriggers.

public List<Trigger> getTriggers(final String catalog, final String schema, final String tableName) throws SqlException {
    List<Trigger> triggers = new ArrayList<Trigger>();
    log.debug("Reading triggers for: " + tableName);
    JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate();
    String sql = "SELECT " + "TRIGGER_NAME, " + "TRIGGER_SCHEMA, " + "EVENT_OBJECT_TABLE as TABLE_NAME, " + "ACTION_TIMING as TRIGGER_TIME, " + "EVENT_MANIPULATION as TRIGGER_TYPE, " + "CREATED, " + "ENABLED " + "FROM QSYS2.SYSTRIGGERS " + "WHERE EVENT_OBJECT_TABLE=? and EVENT_OBJECT_SCHEMA=?";
    triggers = sqlTemplate.query(sql, new ISqlRowMapper<Trigger>() {

        public Trigger mapRow(Row row) {
            Trigger trigger = new Trigger();
            trigger.setName(row.getString("TRIGGER_NAME"));
            trigger.setSchemaName(row.getString("TRIGGER_SCHEMA"));
            trigger.setTableName(row.getString("TABLE_NAME"));
            trigger.setEnabled(row.getString("ENABLED").equals("Y"));
            trigger.setTriggerType(TriggerType.valueOf(row.getString("TRIGGER_TYPE")));
            trigger.setMetaData(row);
            return trigger;
        }
    }, tableName, schema);
    return triggers;
}
Also used : JdbcSqlTemplate(org.jumpmind.db.sql.JdbcSqlTemplate) Trigger(org.jumpmind.db.model.Trigger) ArrayList(java.util.ArrayList) Row(org.jumpmind.db.sql.Row) ISqlRowMapper(org.jumpmind.db.sql.ISqlRowMapper)

Example 23 with ISqlRowMapper

use of org.jumpmind.db.sql.ISqlRowMapper in project symmetric-ds by JumpMind.

the class HsqlDbDdlReader method getTriggers.

@Override
public List<Trigger> getTriggers(final String catalog, final String schema, final String tableName) throws SqlException {
    List<Trigger> triggers = new ArrayList<Trigger>();
    log.debug("Reading triggers for: " + tableName);
    JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate();
    String sql = "SELECT * FROM INFORMATION_SCHEMA.TRIGGERS " + "WHERE TABLE_NAME=? and TRIGGER_SCHEMA=? and TRIGGER_CATALOG=? ;";
    triggers = sqlTemplate.query(sql, new ISqlRowMapper<Trigger>() {

        public Trigger mapRow(Row row) {
            Trigger trigger = new Trigger();
            trigger.setName(row.getString("TRIGGER_NAME"));
            trigger.setCatalogName(row.getString("TRIGGER_CATALOG"));
            trigger.setSchemaName(row.getString("TRIGGER_SCHEMA"));
            trigger.setTableName(row.getString("TABLE_NAME"));
            trigger.setEnabled(true);
            trigger.setSource(row.getString("SQL"));
            row.remove("SQL");
            String triggerType = row.getString("TRIGGER_TYPE");
            if (triggerType.equals("DELETE") || triggerType.equals("INSERT") || triggerType.equals("UPDATE")) {
                trigger.setTriggerType(TriggerType.valueOf(triggerType));
            }
            trigger.setMetaData(row);
            return trigger;
        }
    }, tableName, schema, catalog);
    return triggers;
}
Also used : JdbcSqlTemplate(org.jumpmind.db.sql.JdbcSqlTemplate) Trigger(org.jumpmind.db.model.Trigger) ArrayList(java.util.ArrayList) Row(org.jumpmind.db.sql.Row) ISqlRowMapper(org.jumpmind.db.sql.ISqlRowMapper)

Example 24 with ISqlRowMapper

use of org.jumpmind.db.sql.ISqlRowMapper in project symmetric-ds by JumpMind.

the class InterbaseDdlReader method getTriggers.

@Override
public List<Trigger> getTriggers(final String catalog, final String schema, final String tableName) throws SqlException {
    List<Trigger> triggers = new ArrayList<Trigger>();
    log.debug("Reading triggers for: " + tableName);
    JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate();
    String sql = "select " + "TRIG.RDB$TRIGGER_NAME as TRIGGER_NAME, " + "TRIG.RDB$RELATION_NAME as TABLE_NAME, " + "TYPES1.RDB$TYPE_NAME as TRIGGER_TYPE, " + "TRIG.RDB$TRIGGER_SEQUENCE as TRIGGER_SEQUENCE, " + "TRIG.RDB$TRIGGER_BLR as TRIGGER_BLR, " + "TRIG.RDB$DESCRIPTION as DESCRIPTION, " + "TRIG.RDB$TRIGGER_INACTIVE as TRIGGER_INACTIVE, " + "TYPES2.RDB$TYPE_NAME as SYSTEM_FLAG, " + "TRIG.RDB$FLAGS as FLAGS, " + "TRIG.RDB$VALID_BLR as VALID_BLR, " + "TRIG.RDB$DEBUG_INFO as DEBUG_INFO," + "TRIG.RDB$TRIGGER_SOURCE as TRIGGER_SOURCE " + "from RDB$TRIGGERS as TRIG " + "inner join RDB$TYPES as TYPES1 " + "on TYPES1.RDB$FIELD_NAME = 'RDB$TRIGGER_TYPE' " + "and TYPES1.RDB$TYPE = TRIG.RDB$TRIGGER_TYPE " + "inner join RDB$TYPES as TYPES2 " + "on TYPES2.RDB$FIELD_NAME = 'RDB$SYSTEM_FLAG' " + "and TYPES2.RDB$TYPE = TRIG.RDB$SYSTEM_FLAG " + "where RDB$RELATION_NAME = ? ;";
    triggers = sqlTemplate.query(sql, new ISqlRowMapper<Trigger>() {

        public Trigger mapRow(Row row) {
            Trigger trigger = new Trigger();
            trigger.setName(row.getString("TRIGGER_NAME"));
            trigger.setTableName(row.getString("TABLE_NAME"));
            trigger.setEnabled(true);
            trigger.setSource(row.getString("TRIGGER_SOURCE"));
            row.remove("TRIGGER_SOURCE");
            String triggerType = row.getString("TRIGGER_TYPE");
            if (triggerType.contains("STORE"))
                trigger.setTriggerType(TriggerType.INSERT);
            else if (triggerType.contains("ERASE"))
                trigger.setTriggerType(TriggerType.DELETE);
            else if (triggerType.contains("MODIFY"))
                trigger.setTriggerType(TriggerType.UPDATE);
            trigger.setMetaData(row);
            return trigger;
        }
    }, tableName);
    return triggers;
}
Also used : JdbcSqlTemplate(org.jumpmind.db.sql.JdbcSqlTemplate) Trigger(org.jumpmind.db.model.Trigger) ArrayList(java.util.ArrayList) Row(org.jumpmind.db.sql.Row) ISqlRowMapper(org.jumpmind.db.sql.ISqlRowMapper)

Example 25 with ISqlRowMapper

use of org.jumpmind.db.sql.ISqlRowMapper in project symmetric-ds by JumpMind.

the class SqlAnywhereDdlReader method getTriggers.

@Override
public List<Trigger> getTriggers(final String catalog, final String schema, final String tableName) throws SqlException {
    List<Trigger> triggers = new ArrayList<Trigger>();
    log.debug("Reading triggers for: " + tableName);
    JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate();
    String sql = "SELECT " + "trigname AS trigger_name, " + "owner, " + "tname AS table_name, " + "event AS trigger_type, " + "trigtime AS trigger_time, " + "trigdefn " + "FROM SYS.SYSTRIGGERS " + "WHERE tname=? and owner=? ;";
    triggers = sqlTemplate.query(sql, new ISqlRowMapper<Trigger>() {

        public Trigger mapRow(Row row) {
            Trigger trigger = new Trigger();
            trigger.setName(row.getString("trigger_name"));
            trigger.setSchemaName(row.getString("owner"));
            trigger.setTableName(row.getString("table_name"));
            trigger.setEnabled(true);
            trigger.setSource(row.getString("trigdefn"));
            row.remove("trigdefn");
            String triggerType = row.getString("trigger_type");
            if (triggerType.equals("DELETE") || triggerType.equals("INSERT") || triggerType.equals("UPDATE")) {
                trigger.setTriggerType(TriggerType.valueOf(triggerType));
            }
            trigger.setMetaData(row);
            return trigger;
        }
    }, tableName, schema);
    return triggers;
}
Also used : JdbcSqlTemplate(org.jumpmind.db.sql.JdbcSqlTemplate) Trigger(org.jumpmind.db.model.Trigger) ArrayList(java.util.ArrayList) Row(org.jumpmind.db.sql.Row) ISqlRowMapper(org.jumpmind.db.sql.ISqlRowMapper)

Aggregations

ISqlRowMapper (org.jumpmind.db.sql.ISqlRowMapper)29 ArrayList (java.util.ArrayList)27 Row (org.jumpmind.db.sql.Row)23 Trigger (org.jumpmind.db.model.Trigger)18 JdbcSqlTemplate (org.jumpmind.db.sql.JdbcSqlTemplate)18 DataGap (org.jumpmind.symmetric.model.DataGap)6 Test (org.junit.Test)6 HashMap (java.util.HashMap)2 List (java.util.List)2 ISqlTemplate (org.jumpmind.db.sql.ISqlTemplate)2 Date (java.util.Date)1 DatabaseInfo (org.jumpmind.db.platform.DatabaseInfo)1 IDatabasePlatform (org.jumpmind.db.platform.IDatabasePlatform)1 IExtensionPoint (org.jumpmind.extension.IExtensionPoint)1 INodeGroupExtensionPoint (org.jumpmind.symmetric.ext.INodeGroupExtensionPoint)1 CsvData (org.jumpmind.symmetric.io.data.CsvData)1 Grouplet (org.jumpmind.symmetric.model.Grouplet)1 GroupletLink (org.jumpmind.symmetric.model.GroupletLink)1 NodeChannel (org.jumpmind.symmetric.model.NodeChannel)1 TriggerRouterGrouplet (org.jumpmind.symmetric.model.TriggerRouterGrouplet)1