1 21 22 package org.apache.derbyTesting.functionTests.util; 23 24 import org.apache.derby.iapi.error.StandardException; 25 import org.apache.derby.iapi.error.PublicAPI; 26 27 import org.apache.derby.iapi.sql.conn.LanguageConnectionContext; 28 import org.apache.derby.iapi.sql.conn.ConnectionUtil; 29 30 import org.apache.derby.iapi.db.PropertyInfo; 31 import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor; 32 import org.apache.derby.iapi.sql.dictionary.DataDictionaryContext; 33 import org.apache.derby.iapi.sql.dictionary.DataDictionary; 34 import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor; 35 import org.apache.derby.iapi.sql.dictionary.TableDescriptor; 36 37 import org.apache.derby.iapi.store.access.ConglomerateController; 38 import org.apache.derby.iapi.store.access.TransactionController; 39 40 import java.util.Properties ; 41 42 46 public class TestPropertyInfo 47 { 48 49 60 public static String getAllTableProperties(String schemaName, String tableName) 61 throws java.sql.SQLException 62 { 63 Properties p = TestPropertyInfo.getConglomerateProperties( schemaName, tableName, false ); 64 if (p == null) 65 return null; 66 67 return org.apache.derbyTesting.functionTests.util.PropertyUtil.sortProperties(p); 68 } 69 70 81 public static String getTableProperty(String schemaName, String tableName, 82 String key) throws java.sql.SQLException 83 { 84 return TestPropertyInfo.getConglomerateProperties( schemaName, tableName, false ).getProperty(key); 85 } 86 87 97 public static String getAllIndexProperties(String schemaName, String indexName) 98 throws java.sql.SQLException 99 { 100 Properties p = TestPropertyInfo.getConglomerateProperties( schemaName, indexName, true ); 101 102 if (p == null) 103 return null; 104 105 return org.apache.derbyTesting.functionTests.util.PropertyUtil.sortProperties(p); 106 } 107 108 113 public static Properties filter(Properties p, String filterMe) 114 { 115 p.remove(filterMe); 116 return p; 117 } 118 119 private static Properties getConglomerateProperties( String schemaName, String conglomerateName, boolean isIndex ) 120 throws java.sql.SQLException 121 { 122 ConglomerateController cc; 123 ConglomerateDescriptor cd; 124 DataDictionary dd; 125 Properties properties; 126 SchemaDescriptor sd; 127 TableDescriptor td; 128 TransactionController tc; 129 long conglomerateNumber; 130 131 LanguageConnectionContext lcc = ConnectionUtil.getCurrentLCC(); 133 134 tc = lcc.getTransactionExecute(); 136 137 try { 138 139 dd = lcc.getDataDictionary(); 141 142 143 sd = dd.getSchemaDescriptor(schemaName, tc, true); 145 if ( !isIndex) 146 { 147 td = dd.getTableDescriptor(conglomerateName, sd); 149 150 if ((td == null) || td.getTableType() == TableDescriptor.VIEW_TYPE) { return new Properties (); } 152 153 conglomerateNumber = td.getHeapConglomerateId(); 154 } 155 else 156 { 157 cd = dd.getConglomerateDescriptor(conglomerateName, sd, false); 159 160 if (cd == null) { return new Properties (); } 162 163 conglomerateNumber = cd.getConglomerateNumber(); 164 } 165 166 cc = tc.openConglomerate( 167 conglomerateNumber, 168 false, 169 0, 170 TransactionController.MODE_RECORD, 171 TransactionController.ISOLATION_SERIALIZABLE); 172 173 properties = cc.getInternalTablePropertySet( new Properties () ); 174 175 cc.close(); 176 177 } catch (StandardException se) { 178 throw PublicAPI.wrapStandardException(se); 179 } 180 181 return properties; 182 } 183 } 184 | Popular Tags |