1 21 22 package org.apache.derbyTesting.functionTests.tests.jdbcapi; 23 24 import java.sql.Connection ; 25 import java.sql.DriverManager ; 26 import java.sql.DatabaseMetaData ; 27 import java.sql.ResultSetMetaData ; 28 import java.sql.Statement ; 29 import java.sql.CallableStatement ; 30 import java.sql.ResultSet ; 31 import java.sql.SQLException ; 32 import java.sql.Types ; 33 import java.sql.Timestamp ; 34 import java.sql.Time ; 35 import java.sql.Date ; 36 import java.math.BigDecimal ; 37 38 import java.util.Properties ; 39 40 import org.apache.derby.tools.ij; 41 42 50 51 public class metadata extends metadata_test { 52 53 public metadata() { 54 } 55 56 61 public metadata(String [] args) { 62 63 try { 64 65 ij.getPropertyArg(args); 66 con = ij.startJBMS(); 67 s = con.createStatement(); 68 69 } catch (SQLException e) { 70 dumpSQLExceptions(e); 71 } 72 catch (Throwable e) { 73 System.out.println("FAIL -- unexpected exception:"); 74 e.printStackTrace(System.out); 75 } 76 77 } 78 79 84 public static void main(String [] args) throws Exception { 85 86 new metadata(args).runTest(); 87 88 } 89 90 94 protected ResultSet getMetaDataRS(DatabaseMetaData dmd, int procId, 95 String [] sArgs, String [] argArray, int [] iArgs, boolean [] bArgs) 96 throws SQLException 97 { 98 99 switch (procId) { 100 101 case GET_PROCEDURES: 102 return dmd.getProcedures(sArgs[0], sArgs[1], sArgs[2]); 103 104 case GET_PROCEDURE_COLUMNS: 105 return dmd.getProcedureColumns(sArgs[0], sArgs[1], sArgs[2], sArgs[3]); 106 107 case GET_TABLES: 108 return dmd.getTables(sArgs[0], sArgs[1], sArgs[2], argArray); 109 110 case GET_COLUMNS: 111 return dmd.getColumns(sArgs[0], sArgs[1], sArgs[2], sArgs[3]); 112 113 case GET_COLUMN_PRIVILEGES: 114 return dmd.getColumnPrivileges(sArgs[0], sArgs[1], sArgs[2], sArgs[3]); 115 116 case GET_TABLE_PRIVILEGES: 117 return dmd.getTablePrivileges(sArgs[0], sArgs[1], sArgs[2]); 118 119 case GET_BEST_ROW_IDENTIFIER: 120 return dmd.getBestRowIdentifier(sArgs[0], sArgs[1], sArgs[2], 121 iArgs[0], bArgs[0]); 122 123 case GET_VERSION_COLUMNS: 124 return dmd.getVersionColumns(sArgs[0], sArgs[1], sArgs[2]); 125 126 case GET_PRIMARY_KEYS: 127 return dmd.getPrimaryKeys(sArgs[0], sArgs[1], sArgs[2]); 128 129 case GET_IMPORTED_KEYS: 130 return dmd.getImportedKeys(sArgs[0], sArgs[1], sArgs[2]); 131 132 case GET_EXPORTED_KEYS: 133 return dmd.getExportedKeys(sArgs[0], sArgs[1], sArgs[2]); 134 135 case GET_CROSS_REFERENCE: 136 return dmd.getCrossReference(sArgs[0], sArgs[1], sArgs[2], 137 sArgs[3], sArgs[4], sArgs[5]); 138 139 case GET_TYPE_INFO: 140 return dmd.getTypeInfo(); 141 142 case GET_INDEX_INFO: 143 return dmd.getIndexInfo(sArgs[0], sArgs[1], sArgs[2], 144 bArgs[0], bArgs[1]); 145 146 default: 147 149 System.out.println("*** UNEXPECTED PROCEDURE ID ENCOUNTERED: " + procId + "."); 150 return null; 151 } 152 153 } 154 155 protected void dumpRS(int procId, ResultSet s) throws SQLException { 156 157 ResultSetMetaData rsmd = s.getMetaData (); 158 159 int numCols = rsmd.getColumnCount (); 161 String [] headers = new String [numCols]; 162 if (numCols <= 0) { 163 System.out.println("(no columns!)"); 164 return; 165 } 166 167 for (int i=1; i<=numCols; i++) { 170 if (i > 1) System.out.print(","); 171 headers[i-1] = rsmd.getColumnLabel(i); 172 System.out.print(headers[i-1]); 173 System.out.print("[" + rsmd.getColumnTypeName(i) + "]"); 174 175 } 176 System.out.println(); 177 178 StringBuffer errorColumns; 180 while (s.next()) { 181 errorColumns = new StringBuffer (); 184 String value; 185 for (int i=1; i<=numCols; i++) { 186 if (i > 1) System.out.print(","); 187 value = s.getString(i); 188 if (headers[i-1].equals("DATA_TYPE")) 189 { 190 if (((org.apache.derbyTesting.functionTests.util.TestUtil.getJDBCMajorVersion(s.getStatement().getConnection()) >= 3) && 191 (Integer.valueOf(value).intValue() == 16)) || 192 (Integer.valueOf(value).intValue() == -7)) 193 System.out.print("**BOOLEAN_TYPE for VM**"); 194 else 195 System.out.print(value); 196 } 197 else 198 System.out.print(value); 199 200 } 201 System.out.println(); 202 } 203 s.close(); 204 } 205 206 208 public static byte[] getpc(String a, BigDecimal b, short c, byte d, short e, int f, long g, float h, double i, byte[] j, Date k, Time l, Timestamp T) 209 { 210 return j; 211 } 212 213 215 public static void getpc(int a, long[] b) 216 { 217 } 218 219 222 private static void getpc(int a, long b) 223 { 224 } 225 226 public void getpc(String a, String b) { 230 } 231 232 public static void getpc4a() { 235 } 236 237 public static int getpc4b() { 240 return 4; 241 } 242 243 public static void isro() throws SQLException { 245 DriverManager.getConnection("jdbc:default:connection").getMetaData().isReadOnly(); 246 } 247 248 } 249 250 | Popular Tags |