Public Member Functions | |
VirtualDatabaseDynamicMetaData (VirtualDatabase database) | |
java.sql.ResultSet | getPrimaryKeys (String catalog, String schema, String table) |
DriverResultSet | getColumns (String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) |
Object | getSchemas () |
DriverResultSet | getTables (String catalog, String schemaPattern, String tableNamePattern, String[] types) |
DriverResultSet | getProcedures (String catalog, String schemaPattern, String procedureNamePattern) |
DriverResultSet | getCatalogs (ArrayList list) |
DriverResultSet | getTableTypes () |
DriverResultSet | getTablePrivileges (String catalog, String schemaPattern, String tableNamePattern) |
DriverResultSet | getProcedureColumns (String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) |
Static Public Attributes | |
final int | NULL_VALUE = -999 |
Definition at line 51 of file VirtualDatabaseDynamicMetaData.java.
|
Reference the database for this metadata. Do not fetch any data at this time
Definition at line 69 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getVirtualDatabaseName(), and org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.logger. 00070 { 00071 this.vdbName = database.getVirtualDatabaseName(); 00072 requestManager = database.getRequestManager(); 00073 if (requestManager == null) 00074 throw new RuntimeException( 00075 "Null request manager in VirtualDatabaseMetaData"); 00076 00077 this.logger = Trace 00078 .getLogger("org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread." 00079 + vdbName + ".metadata"); 00080 }
|
|
get list of Catalogs (database)
Definition at line 328 of file VirtualDatabaseDynamicMetaData.java. 00329 { 00330 int size = list.size(); 00331 ArrayList data = new ArrayList(size); 00332 for (int i = 0; i < size; i++) 00333 { 00334 Object[] row = new Object[1]; 00335 row[0] = (String) list.get(i); 00336 data.add(row); 00337 } 00338 DriverResultSet rs = new DriverResultSet(getCatalogsFields, data); 00339 return rs; 00340 }
|
|
Definition at line 156 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTables(), and org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getType(). 00158 { 00159 if (logger.isDebugEnabled()) 00160 logger.debug("Getting columns for " + vdbName); 00161 DatabaseSchema dbs = this.getDatabaseSchema(); 00162 if (dbs == null) 00163 return null; 00164 00165 if (tableNamePattern == null) 00166 tableNamePattern = "%"; // if null is passed then select 00167 // all tables 00168 00169 if (columnNamePattern == null) 00170 columnNamePattern = "%"; // if null is passed then 00171 00172 // Build the ResultSet 00173 ArrayList tables = dbs.getTables(); 00174 int size = tables.size(); 00175 ArrayList data = new ArrayList(); 00176 00177 for (int i = 0; i < size; i++) 00178 { 00179 DatabaseTable t = (DatabaseTable) tables.get(i); 00180 00181 if (tableNamePattern.equals("%") || tableNamePattern.equals(t.getName())) 00182 { 00183 if (logger.isDebugEnabled()) 00184 logger.debug("Found table " + t.getName()); 00185 ArrayList columns = t.getColumns(); 00186 for (int j = 0; j < columns.size(); j++) 00187 { 00188 DatabaseColumn c = (DatabaseColumn) columns.get(j); 00189 if (columnNamePattern.equals("%") 00190 || columnNamePattern.equals(c.getName())) 00191 { 00192 if (logger.isDebugEnabled()) 00193 logger.debug("Found column " + c.getName()); 00194 Object[] row = new Object[18]; 00195 row[0] = vdbName; // TABLE_CAT 00196 row[1] = null; // TABLE_SCHEM 00197 row[2] = t.getName(); // TABLE_NAME 00198 row[3] = c.getName(); // COLUMN_NAME 00199 row[4] = new Integer(c.getType()); // DATA_TYPE 00200 row[5] = null; // TYPE_NAME 00201 row[6] = null; // COLUMN_SIZE 00202 row[7] = null; // BUFFER_LENGTH 00203 row[8] = null; // DECIMAL_DIGITS 00204 row[9] = null; // NUM_PREC_RADIX 00205 row[10] = null; // NULLABLE 00206 row[11] = null; // REMARKS 00207 row[12] = null; // COLUMN_DEF 00208 row[13] = null; // SQL_DATA_TYPE 00209 row[14] = null; // SQL_DATETIME_SUB 00210 row[15] = null; // CHAR_OCTET_LENGTH 00211 row[16] = null; // ORDINAL_POSITION 00212 row[17] = ""; // IS_NULLABLE 00213 data.add(row); 00214 } 00215 } 00216 } 00217 } 00218 DriverResultSet rs = new DriverResultSet(getColumnsFields, data); 00219 return rs; 00220 }
|
|
Gets a description of a table's primary key columns. They are ordered by COLUMN_NAME.
Definition at line 101 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTables(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getType(), and org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.isUnique. 00103 { 00104 if (logger.isDebugEnabled()) 00105 logger.debug("Getting getPrimaryKeys for " + vdbName); 00106 DatabaseSchema dbs = this.getDatabaseSchema(); 00107 if (dbs == null) 00108 return null; 00109 00110 if (table == null) 00111 table = "%"; // if null is passed then 00112 // select all tables 00113 00114 // Build the ResultSet 00115 ArrayList tables = dbs.getTables(); 00116 int size = tables.size(); 00117 ArrayList data = new ArrayList(); 00118 00119 for (int i = 0; i < size; i++) 00120 { 00121 DatabaseTable t = (DatabaseTable) tables.get(i); 00122 if (table.equals("%") || table.equals(t.getName())) 00123 { 00124 ArrayList columns = t.getColumns(); 00125 for (int j = 0; j < columns.size(); j++) 00126 { 00127 DatabaseColumn c = (DatabaseColumn) columns.get(j); 00128 if (c.isUnique()) 00129 { 00130 if (logger.isDebugEnabled()) 00131 logger.debug("Found primary key" + c.getName()); 00132 Object[] row = new Object[6]; 00133 row[0] = vdbName; // TABLE_CAT 00134 row[1] = null; // TABLE_SCHEM 00135 row[2] = t.getName(); // TABLE_NAME 00136 row[3] = c.getName(); // COLUMN_NAME 00137 row[4] = new Integer(c.getType()); // KEY_SEQ 00138 row[5] = c.getName(); // PK_NAME 00139 data.add(row); 00140 } 00141 else 00142 { 00143 if (logger.isDebugEnabled()) 00144 logger.debug("Key " + c.getName() + " is not unique"); 00145 } 00146 } 00147 } 00148 } 00149 DriverResultSet rs = new DriverResultSet(getPrimaryKeysFields, data); 00150 return rs; 00151 }
|
|
Definition at line 411 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getColumnType(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getDataType(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getLength(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getNullable(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getParameters(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getPrecision(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedures(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getRadix(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getRemarks(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getScale(), and org.objectweb.cjdbc.common.sql.schema.DatabaseProcedureParameter.getTypeName(). 00414 { 00415 DatabaseSchema dbs = this.getDatabaseSchema(); 00416 if (dbs == null) 00417 return null; 00418 00419 if (procedureNamePattern == null) 00420 procedureNamePattern = "%"; 00421 00422 if (columnNamePattern == null) 00423 columnNamePattern = "%"; 00424 00425 //Build the ResultSet 00426 ArrayList procedures = dbs.getProcedures(); 00427 int size = procedures.size(); 00428 ArrayList data = new ArrayList(); 00429 for (int i = 0; i < size; i++) 00430 { 00431 DatabaseProcedure t = (DatabaseProcedure) procedures.get(i); 00432 if (procedureNamePattern.equals("%") 00433 || procedureNamePattern.equals(t.getName())) 00434 { 00435 if (logger.isDebugEnabled()) 00436 logger.debug("Found matching procedure " + t.getName()); 00437 00438 ArrayList params = t.getParameters(); 00439 int sizep = params.size(); 00440 DatabaseProcedureParameter param; 00441 for (int k = 0; k < sizep; k++) 00442 { 00443 param = (DatabaseProcedureParameter) params.get(k); 00444 if (columnNamePattern.equals("%") 00445 || columnNamePattern.equals(t.getName())) 00446 { 00447 if (logger.isDebugEnabled()) 00448 logger.debug("Found matching procedure parameter" 00449 + param.getName()); 00450 00451 Object[] row = new Object[13]; 00452 row[0] = vdbName; // PROCEDURE_CAT 00453 row[1] = null; // PROCEDURE_SCHEM 00454 row[2] = t.getName(); // PROCEDURE_NAME 00455 row[3] = param.getName(); // COLUMN_NAME 00456 row[4] = new Integer(param.getColumnType()); // COLUMN_TYPE 00457 row[5] = new Integer(param.getDataType()); // DATA_TYPE 00458 row[6] = param.getTypeName(); // TYPE_NAME 00459 row[7] = new Float(param.getPrecision()); // PRECISION 00460 row[8] = new Integer(param.getLength()); // LENGTH 00461 row[9] = new Integer(param.getScale()); // SCALE 00462 row[10] = new Integer(param.getRadix()); // RADIX 00463 row[11] = new Integer(param.getNullable()); // NULLABLE 00464 row[12] = param.getRemarks(); 00465 00466 data.add(row); 00467 } 00468 } 00469 } 00470 } 00471 DriverResultSet rs = new DriverResultSet(getProcedureColumnsFields, data); 00472 return rs; 00473 }
|
|
Definition at line 283 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedures(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getProcedureType(), and org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getRemarks(). 00285 { 00286 DatabaseSchema dbs = this.getDatabaseSchema(); 00287 if (dbs == null) 00288 return null; 00289 00290 if (procedureNamePattern == null) 00291 procedureNamePattern = "%"; // if null is passed then 00292 // select all procedures 00293 00294 // Build the ResultSet 00295 ArrayList procedures = dbs.getProcedures(); 00296 int size = procedures.size(); 00297 ArrayList data = new ArrayList(); 00298 for (int i = 0; i < size; i++) 00299 { 00300 DatabaseProcedure t = (DatabaseProcedure) procedures.get(i); 00301 if (procedureNamePattern.equals("%") 00302 || procedureNamePattern.equals(t.getName())) 00303 { 00304 if (logger.isDebugEnabled()) 00305 logger.debug("Found procedure " + t.getName()); 00306 Object[] row = new Object[8]; 00307 row[0] = vdbName; // PROCEDURE_CAT 00308 row[1] = null; // PROCEDURE_SCHEM 00309 row[2] = t.getName(); // PROCEDURE_NAME 00310 row[3] = null; // reserved for future use 00311 row[4] = null; // reserved for future use 00312 row[5] = null; // reserved for future use 00313 row[6] = t.getRemarks(); // REMARKS 00314 row[7] = new Integer(t.getProcedureType()); // PROCEDURE_TYPE 00315 data.add(row); 00316 } 00317 } 00318 DriverResultSet rs = new DriverResultSet(getProceduresFields, data); 00319 return rs; 00320 }
|
|
Definition at line 228 of file VirtualDatabaseDynamicMetaData.java. 00229 { 00230 ArrayList data = new ArrayList(); 00231 DriverResultSet rs = new DriverResultSet(getSchemasFields, data); 00232 return rs; 00233 }
|
|
Definition at line 358 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.common.users.AbstractDatabaseUser.getLogin(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTables(), and org.objectweb.cjdbc.controller.authentication.AuthenticationManager.getVirtualLogins(). 00360 { 00361 AuthenticationManager manager = requestManager.getVirtualDatabase() 00362 .getAuthenticationManager(); 00363 DatabaseSchema dbs = this.getDatabaseSchema(); 00364 if (dbs == null) 00365 return null; 00366 00367 if (tableNamePattern == null) 00368 // if null is passed then select all tables 00369 tableNamePattern = "%"; 00370 00371 ArrayList tables = dbs.getTables(); 00372 int size = tables.size(); 00373 ArrayList data = new ArrayList(); 00374 00375 ArrayList virtualLogins = manager.getVirtualLogins(); 00376 int vsize = virtualLogins.size(); 00377 VirtualDatabaseUser vu; 00378 00379 for (int i = 0; i < size; i++) 00380 { 00381 DatabaseTable t = (DatabaseTable) tables.get(i); 00382 if (tableNamePattern.equals("%") || tableNamePattern.equals(t.getName())) 00383 { 00384 for (int j = 0; j < vsize; j++) 00385 { 00386 vu = (VirtualDatabaseUser) virtualLogins.get(0); 00387 00388 if (logger.isDebugEnabled()) 00389 logger.debug("Found privilege for user:" + vu.getLogin() 00390 + " on table:" + t.getName()); 00391 Object[] row = new Object[7]; 00392 row[0] = vdbName; // table cat 00393 row[1] = null; // table schema 00394 row[2] = t.getName(); // table name 00395 row[3] = null; // grantor 00396 row[4] = vu.getLogin(); // grantee 00397 row[5] = "UPDATE"; // privilege 00398 row[6] = "NO"; //IS_GRANTABLE 00399 data.add(row); 00400 } 00401 } 00402 } 00403 00404 DriverResultSet rs = new DriverResultSet(getTablePrivilegesFields, data); 00405 return rs; 00406 }
|
|
Definition at line 239 of file VirtualDatabaseDynamicMetaData.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTables(). 00241 { 00242 DatabaseSchema dbs = this.getDatabaseSchema(); 00243 if (dbs == null) 00244 return null; 00245 00246 if (tableNamePattern == null) 00247 // if null is passed then select all tables 00248 tableNamePattern = "%"; 00249 00250 // Build the ResultSet 00251 ArrayList tables = dbs.getTables(); 00252 int size = tables.size(); 00253 ArrayList data = new ArrayList(); 00254 for (int i = 0; i < size; i++) 00255 { 00256 DatabaseTable t = (DatabaseTable) tables.get(i); 00257 if (tableNamePattern.equals("%") 00258 || t.getName().indexOf(tableNamePattern) != -1) 00259 { 00260 if (logger.isDebugEnabled()) 00261 logger.debug("Found table " + t.getName()); 00262 Object[] row = new Object[10]; 00263 row[0] = vdbName; // TABLE_CAT 00264 row[1] = null; // TABLE_SCHEM 00265 row[2] = t.getName(); // TABLE_NAME 00266 row[3] = "TABLE"; // TABLE_TYPE 00267 row[4] = null; // REMARKS 00268 row[5] = null; // TYPE_CAT 00269 row[6] = null; // TYPE_SCHEM 00270 row[7] = null; // TYPE_NAME 00271 row[8] = null; // SELF_REFERENCING_COL_NAME 00272 row[9] = "SYSTEM"; // REF_GENERATION 00273 data.add(row); 00274 } 00275 } 00276 DriverResultSet rs = new DriverResultSet(getTablesFields, data); 00277 return rs; 00278 }
|
|
Definition at line 345 of file VirtualDatabaseDynamicMetaData.java. 00346 { 00347 ArrayList list = new ArrayList(1); 00348 Object[] row = new Object[1]; 00349 row[0] = "TABLE"; 00350 list.add(row); 00351 DriverResultSet rs = new DriverResultSet(getTableTypesFields, list); 00352 return rs; 00353 }
|
|
Detect a null valu for int Definition at line 55 of file VirtualDatabaseDynamicMetaData.java. |