@Override public List<GenericSequence> loadSequences( @NotNull DBRProgressMonitor monitor, @NotNull GenericStructContainer container) throws DBException { try (JDBCSession session = DBUtils.openMetaSession(monitor, container.getDataSource(), "Read sequences")) { try (JDBCPreparedStatement dbStat = session.prepareStatement("SELECT * FROM INFORMATION_SCHEMA.SEQUENCES")) { List<GenericSequence> result = new ArrayList<>(); try (JDBCResultSet dbResult = dbStat.executeQuery()) { while (dbResult.next()) { String name = JDBCUtils.safeGetString(dbResult, "SEQUENCE_NAME"); if (name == null) { continue; } String description = JDBCUtils.safeGetString(dbResult, "REMARKS"); GenericSequence sequence = new GenericSequence( container, name, description, JDBCUtils.safeGetLong(dbResult, "CURRENT_VALUE"), JDBCUtils.safeGetLong(dbResult, "MIN_VALUE"), JDBCUtils.safeGetLong(dbResult, "MAX_VALUE"), JDBCUtils.safeGetLong(dbResult, "INCREMENT")); result.add(sequence); } } return result; } } catch (SQLException e) { throw new DBException(e, container.getDataSource()); } }
private void loadInfo(JDBCResultSet dbResult) throws SQLException { this.oid = JDBCUtils.safeGetLong(dbResult, "oid"); this.name = JDBCUtils.safeGetString(dbResult, "datname"); this.ownerId = JDBCUtils.safeGetLong(dbResult, "datdba"); this.encodingId = JDBCUtils.safeGetLong(dbResult, "encoding"); this.collate = JDBCUtils.safeGetString(dbResult, "datcollate"); this.ctype = JDBCUtils.safeGetString(dbResult, "datctype"); this.isTemplate = JDBCUtils.safeGetBoolean(dbResult, "datistemplate"); this.allowConnect = JDBCUtils.safeGetBoolean(dbResult, "datallowconn"); this.connectionLimit = JDBCUtils.safeGetInt(dbResult, "datconnlimit"); this.tablespaceId = JDBCUtils.safeGetLong(dbResult, "dattablespace"); }
// ----------------- // Constructors // ----------------- public DB2Index( DBRProgressMonitor monitor, DB2Schema schema, DB2TableBase table, ResultSet dbResult) { super(schema, table, JDBCUtils.safeGetStringTrimmed(dbResult, "INDNAME"), null, true); DB2DataSource db2DataSource = (DB2DataSource) schema.getDataSource(); this.uniqueRule = CommonUtils.valueOf(DB2UniqueRule.class, JDBCUtils.safeGetString(dbResult, "UNIQUERULE")); this.colCount = JDBCUtils.safeGetInteger(dbResult, "COLCOUNT"); this.uniqueColCount = JDBCUtils.safeGetInteger(dbResult, "UNIQUE_COLCOUNT"); this.pctFree = JDBCUtils.safeGetInteger(dbResult, "PCTFREE"); this.indexId = JDBCUtils.safeGetInteger(dbResult, "IID"); this.minPctUsed = JDBCUtils.safeGetInteger(dbResult, "MINPCTUSED"); this.reverseScans = JDBCUtils.safeGetBoolean(dbResult, "REVERSE_SCANS", DB2YesNo.Y.name()); this.tablespaceId = JDBCUtils.safeGetInteger(dbResult, "TBSPACEID"); this.pageSplit = CommonUtils.valueOf( DB2IndexPageSplit.class, JDBCUtils.safeGetStringTrimmed(dbResult, "PAGESPLIT")); this.remarks = JDBCUtils.safeGetString(dbResult, "REMARKS"); this.createTime = JDBCUtils.safeGetTimestamp(dbResult, "CREATE_TIME"); this.madeUnique = JDBCUtils.safeGetBoolean(dbResult, "MADE_UNIQUE"); this.statsTime = JDBCUtils.safeGetTimestamp(dbResult, "STATS_TIME"); this.fullKeycard = JDBCUtils.safeGetLong(dbResult, "FULLKEYCARD"); this.firstKeycard = JDBCUtils.safeGetLong(dbResult, "FIRSTKEYCARD"); this.first2Keycard = JDBCUtils.safeGetLong(dbResult, "FIRST2KEYCARD"); this.first3Keycard = JDBCUtils.safeGetLong(dbResult, "FIRST3KEYCARD"); this.first4Keycard = JDBCUtils.safeGetLong(dbResult, "FIRST4KEYCARD"); this.clusterRatio = JDBCUtils.safeGetInteger(dbResult, "CLUSTERRATIO"); if (db2DataSource.isAtLeastV9_5()) { this.compression = JDBCUtils.safeGetBoolean(dbResult, "COMPRESSION", DB2YesNo.Y.name()); } // DF: Could have been done in constructor. More "readable" to do it here this.db2IndexType = CommonUtils.valueOf( DB2IndexType.class, JDBCUtils.safeGetStringTrimmed(dbResult, "INDEXTYPE")); this.indexType = db2IndexType.getDBSIndexType(); }
// ----------------------- // Constructors // ----------------------- public DB2Sequence(DB2Schema schema, ResultSet dbResult) { super(schema, JDBCUtils.safeGetString(dbResult, "SEQNAME"), true); DB2DataSource db2DataSource = schema.getDataSource(); this.owner = JDBCUtils.safeGetString(dbResult, "OWNER"); this.seqId = JDBCUtils.safeGetInteger(dbResult, "SEQID"); this.seqType = CommonUtils.valueOf(DB2SequenceType.class, JDBCUtils.safeGetString(dbResult, "SEQTYPE")); this.incrementBy = JDBCUtils.safeGetLong(dbResult, "INCREMENT"); this.start = JDBCUtils.safeGetLong(dbResult, "START"); this.maxValue = JDBCUtils.safeGetLong(dbResult, "MAXVALUE"); this.minValue = JDBCUtils.safeGetLong(dbResult, "MINVALUE"); this.nextCacheFirstValue = JDBCUtils.safeGetLong(dbResult, "NEXTCACHEFIRSTVALUE"); this.cycle = JDBCUtils.safeGetBoolean(dbResult, "CYCLE", DB2YesNo.Y.name()); this.cache = JDBCUtils.safeGetInteger(dbResult, "CACHE"); this.order = JDBCUtils.safeGetBoolean(dbResult, "ORDER", DB2YesNo.Y.name()); this.dataTypeId = JDBCUtils.safeGetInteger(dbResult, "DATATYPEID"); this.sourceTypeId = JDBCUtils.safeGetInteger(dbResult, "SOURCETYPEID"); this.createTime = JDBCUtils.safeGetTimestamp(dbResult, "CREATE_TIME"); this.alterTime = JDBCUtils.safeGetTimestamp(dbResult, "ALTER_TIME"); this.precision = DB2SequencePrecision.getFromDataType(JDBCUtils.safeGetInteger(dbResult, "PRECISION")); this.origin = CommonUtils.valueOf(DB2OwnerType.class, JDBCUtils.safeGetString(dbResult, "ORIGIN")); this.remarks = JDBCUtils.safeGetString(dbResult, "REMARKS"); if (db2DataSource.isAtLeastV9_5()) { this.ownerType = CommonUtils.valueOf(DB2OwnerType.class, JDBCUtils.safeGetString(dbResult, "OWNERTYPE")); } if (db2DataSource.isAtLeastV9_7()) { this.baseSchema = JDBCUtils.safeGetStringTrimmed(dbResult, "BASE_SEQSCHEMA"); this.baseSequence = JDBCUtils.safeGetString(dbResult, "BASE_SEQNAME"); } }