1 package com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors; 2 3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*; 4 import com.daffodilwoods.daffodildb.server.serversystem.*; 5 import com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.constraintsystem.*; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.listenerevents.*; 8 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 9 import com.daffodilwoods.database.general.*; 10 import com.daffodilwoods.database.resource.*; 11 12 public class KeyColumnUsageDescriptor extends Descriptor { 13 14 public String constraint_catalog; 15 public String constraint_schema; 16 public String constraint_name; 17 18 public String table_catalog; 19 public String table_schema; 20 public String table_name; 21 22 public String column_name; 23 public int ordinal_position; 24 public TableConstraintDescriptor tableConstraintDescriptor; 25 26 public KeyColumnUsageDescriptor() throws DException { 27 } 28 29 private void loadDataFromRecord(Object [] columnValues) throws DException { 30 constraint_catalog = (String ) columnValues[SystemTablesFields.key_column_usage_constraint_catalog]; 31 constraint_schema = (String ) columnValues[SystemTablesFields.key_column_usage_constraint_schema]; 32 constraint_name = (String ) columnValues[SystemTablesFields.key_column_usage_constraint_name]; 33 table_catalog = (String ) columnValues[SystemTablesFields.key_column_usage_table_catalog]; 34 table_schema = (String ) columnValues[SystemTablesFields.key_column_usage_table_schema]; 35 table_name = (String ) columnValues[SystemTablesFields.key_column_usage_table_name]; 36 column_name = (String ) columnValues[SystemTablesFields.key_column_usage_column_name]; 37 ordinal_position = columnValues[SystemTablesFields.key_column_usage_ordinal_position].hashCode(); 38 } 39 40 public void loadDataFromRecord(_SelectIterator iter) throws DException { 41 loadDataFromRecord( (Object []) iter.getObject()); 42 } 43 44 public void save(_ServerSession serverSession) throws com.daffodilwoods.database.resource.DException { 45 Object [] columnValues = new Object [] {constraint_catalog, constraint_schema, 46 constraint_name, table_catalog, table_schema, table_name, 47 column_name, new Integer (ordinal_position)}; 48 try { 49 SqlSchemaConstants.insert(serverSession, 50 SqlSchemaConstants.key_column_usage_TableName, null, columnValues); 51 } catch (PrimaryConstraintException de) { 52 DException tde = new DException("DSE1147", new Object [] {column_name, getName()}); 53 throw tde; 54 } catch (SizeMisMatchException de) { 55 if (de.getDseCode().equals("DSE773")) { 56 DException tde = new DException("DSE8103", null); 57 throw tde; 58 } 59 } catch (DException de) { 60 if (de.getDseCode().equals("DSE1255")) { 61 DException tde = new DException("DSE1147", new Object [] {column_name, getName()}); 62 throw tde; 63 } 64 if (de.getDseCode().equals("DSE773")) { 65 DException tde = new DException("DSE8103", null); 66 throw tde; 67 } 68 throw de; 69 } 70 71 } 72 73 public void delete(_ServerSession serverSession) throws com.daffodilwoods.database.resource.DException { 74 booleanvalueexpression condition = ( (DataDictionary) serverSession.getDataDictionary()).getPreparedStatementGetter().getKeyColumnUsageTableCondition(); 75 super.delete(serverSession, SqlSchemaConstants.key_column_usage_TableName, condition, new Object [] {constraint_catalog, constraint_schema, constraint_name, column_name}); 76 } 77 78 private String getName() { 79 return new StringBuffer ().append(constraint_catalog).append(".").append(constraint_schema).append(".").append(constraint_name).toString(); 80 } 81 82 public String toString() { 83 return "ColumnName " + column_name + " ConstraintName " + constraint_name + " TableName " + table_name + " @" + hashCode(); 84 } 85 86 87 public void load(_ServerSession parm1) throws com.daffodilwoods.database.resource.DException { 88 89 throw new java.lang.UnsupportedOperationException ("Method load() not yet implemented."); 90 } 91 92 public int getDescriptorType() { 93 return KEY_COLUMN_USAGE_DESCRIPTOR; 94 } 95 } 96 | Popular Tags |