public void refreshFromDB(String newName) { if (_mainObject.getName().equals(newName)) { if (_mainObject instanceof ICatalogObject) { if (_mainObject instanceof SybaseASABaseUserDefinedType) { Schema schema = ((UserDefinedType) _mainObject).getSchema(); // schema may lost if (schema == null) { _mainObject = null; return; } } ((ICatalogObject) _mainObject).refresh(); return; } } if (!isModelExist()) { _mainObject = null; return; } boolean isFound = false; if (_mainObject instanceof SybaseASABaseUserDefinedType) { Schema schema = ((SybaseASABaseUserDefinedType) _mainObject).getSchema(); // schema may lost if (schema != null) { // DSEUtil.refreshObjectBySchema(schema, _mainObject); EList udds = schema.getUserDefinedTypes(); for (Iterator iter = udds.iterator(); iter.hasNext(); ) { SybaseASABaseUserDefinedType asaUDD = (SybaseASABaseUserDefinedType) iter.next(); if (asaUDD.getName().equals(_mainObject.getName())) { _mainObject = asaUDD; isFound = true; break; } } if (!isFound) { for (Iterator iter = udds.iterator(); iter.hasNext(); ) { SybaseASABaseUserDefinedType asaUDD = (SybaseASABaseUserDefinedType) iter.next(); if (asaUDD.getName().equals(newName)) { _mainObject = asaUDD; isFound = true; break; } } } } } if (!isFound) { _mainObject = null; } }
public static void loadIdentitySpecifier( Connection connection, IdentitySpecifier identitySpecifier, Column column) throws SQLException { final Table table = column.getTable(); final Schema schema = table.getSchema(); final Database database = ModelHelper.getDatabase(schema); final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database); final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory(); String query = "Select INCREMENT,START,MAXVALUE,MINVALUE,CYCLE, CACHE " + //$NON-NLS-1$ " FROM SYSCAT.COLIDENTATTRIBUTES" + //$NON-NLS-1$ " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$ " AND TABNAME= '" + LUWUtil.getIdentifier(table.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$ " AND COLNAME ='" + LUWUtil.getIdentifier(column.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$ Statement s = connection.createStatement(); ResultSet r = s.executeQuery(query); try { while (r.next()) { DB2IdentitySpecifier identity = (DB2IdentitySpecifier) identitySpecifier; identity.setIncrement(r.getBigDecimal("INCREMENT").toBigInteger()); // $NON-NLS-1$ identity.setStartValue(r.getBigDecimal("START").toBigInteger()); // $NON-NLS-1$ identity.setMinimum(r.getBigDecimal("MINVALUE").toBigInteger()); // $NON-NLS-1$ identity.setMaximum(r.getBigDecimal("MAXVALUE").toBigInteger()); // $NON-NLS-1$ identity.setCache(r.getInt("CACHE")); // $NON-NLS-1$ if (r.getString("CYCLE").trim().equals("Y")) { // $NON-NLS-1$ //$NON-NLS-2$ identitySpecifier.setCycleOption(true); } else { identitySpecifier.setCycleOption(false); } } } catch (Exception e) { e.printStackTrace(); } r.close(); s.close(); }
public synchronized void loadGenerateExrepression() { if (this.generateExpressionLoaded) return; this.generateExpressionLoaded = true; if (!this.isGenerated) return; boolean deliver = this.eDeliver(); this.eSetDeliver(false); try { final Table table = this.getTable(); final Schema schema = table.getSchema(); final Database database = ModelHelper.getDatabase(schema); final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database); final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory(); Statement s = this.getConnection().createStatement(); ResultSet r = s.executeQuery( "SELECT TEXT FROM SYSCAT.COLUMNS" //$NON-NLS-1$ + " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) // $NON-NLS-1$ + "' AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) // $NON-NLS-1$ + "' AND COLNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$ while (r.next()) { String exprValue = r.getString("TEXT"); // $NON-NLS-1$ if (exprValue != null && exprValue.length() > 0) { ValueExpression expr = (ValueExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getValueExpressionDefault()); this.setGenerateExpression(expr); int pos = exprValue.indexOf("AS"); // $NON-NLS-1$ if (pos >= 0) { exprValue = exprValue.substring(pos + 2).trim(); } expr.setSQL(exprValue); } } r.close(); s.close(); } catch (Exception e) { e.printStackTrace(); } this.eSetDeliver(deliver); }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public Schema getSchema() { if (schema != null && schema.eIsProxy()) { InternalEObject oldSchema = (InternalEObject) schema; schema = (Schema) eResolveProxy(oldSchema); if (schema != oldSchema) { if (eNotificationRequired()) eNotify( new ENotificationImpl( this, Notification.RESOLVE, SQLTablesPackage.TABLE__SCHEMA, oldSchema, schema)); } } return schema; }
public void testGetSchemas() { // Legacy code Database contains Schemas directly, no catalog Database db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); Schema s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); Schema s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); db.getSchemas().add(s1); db.getSchemas().add(s2); EList ss = ModelUtil.getSchemas(db, null); assertTrue(ss.size() == 2); // Both Database.getSchemas and Catalog.getSchemas exist, return all db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); db.getSchemas().add(s1); db.getSchemas().add(s2); Catalog cat1 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat1.setName("cat1"); db.getCatalogs().add(cat1); cat1.getSchemas().add(s1); Catalog cat2 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat2.setName("cat2"); db.getCatalogs().add(cat2); cat2.getSchemas().add(s2); ss = ModelUtil.getSchemas(db, null); assertTrue(ss.size() == 2); // Both Database.getSchemas and Catalog.getSchemas exist, but only the latter is valid db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); Schema s3 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s3.setName(""); db.getSchemas().add(s3); cat1 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat1.setName("cat1"); db.getCatalogs().add(cat1); cat1.getSchemas().add(s1); cat2 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat2.setName("cat2"); db.getCatalogs().add(cat2); cat2.getSchemas().add(s2); ss = ModelUtil.getSchemas(db, null); assertTrue(ss.size() == 2); // No Database.getSchemas, use catalogName null to retrieve all schemas db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); cat1 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat1.setName("cat1"); db.getCatalogs().add(cat1); cat1.getSchemas().add(s1); cat2 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat2.setName("cat2"); db.getCatalogs().add(cat2); cat2.getSchemas().add(s2); ss = ModelUtil.getSchemas(db, null); assertTrue(ss.size() == 2); // No Database.getSchemas, catalog is a dummy node, use catalogName "" to retrieve all schemas db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); cat1 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat1.setName(""); db.getCatalogs().add(cat1); cat1.getSchemas().add(s1); cat1.getSchemas().add(s2); ss = ModelUtil.getSchemas(db, ""); assertTrue(ss.size() == 2); // No Database.getSchemas, use catalogName to retrieve all schemas for a specific catalog db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); cat1 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat1.setName("cat1"); db.getCatalogs().add(cat1); cat1.getSchemas().add(s1); cat2 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat2.setName("cat2"); db.getCatalogs().add(cat2); cat2.getSchemas().add(s2); ss = ModelUtil.getSchemas(db, "cat1"); assertTrue(ss.size() == 1); assertEquals(((Schema) ss.get(0)).getName(), "s1"); // No Database.getSchemas, and Database only has a dummy catalog, // use catalogName to retrieve all schemas for a specific catalog. // This is for backward compatibility db = SQLSchemaFactoryImpl.eINSTANCE.createDatabase(); db.setName("database"); s1 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s1.setName("s1"); s2 = SQLSchemaFactoryImpl.eINSTANCE.createSchema(); s2.setName("s2"); cat1 = SQLSchemaFactoryImpl.eINSTANCE.createCatalog(); cat1.setName(""); db.getCatalogs().add(cat1); cat1.getSchemas().add(s1); cat1.getSchemas().add(s2); ss = ModelUtil.getSchemas(db, "database"); assertTrue(ss.size() == 2); }