1 package org.opendaylight.controller.md.sal.dom.xsql;
3 import java.lang.reflect.InvocationHandler;
4 import java.lang.reflect.Method;
5 import java.lang.reflect.ParameterizedType;
6 import java.lang.reflect.Proxy;
7 import java.lang.reflect.Type;
8 import java.sql.Connection;
9 import java.sql.DatabaseMetaData;
10 import java.sql.ResultSet;
11 import java.sql.RowIdLifetime;
12 import java.sql.SQLException;
13 import java.util.ArrayList;
14 import java.util.HashMap;
15 import java.util.HashSet;
16 import java.util.List;
20 public class XSQLBluePrint implements DatabaseMetaData {
22 public static final String CACHE_FILE_NAME = "BluePrintCache.dat";
24 private Map<String, XSQLBluePrintNode> tableNameToBluePrint = new HashMap<String, XSQLBluePrintNode>();
25 private Map<String, Map<String,XSQLBluePrintNode>> odlNameToBluePrint = new HashMap<String, Map<String,XSQLBluePrintNode>>();
27 private boolean cacheLoadedSuccessfuly = false;
28 private DatabaseMetaData myProxy = null;
30 public static final String replaceAll(String source, String toReplace,
32 int index = source.indexOf(toReplace);
34 StringBuffer result = new StringBuffer();
36 result.append(source.substring(index2, index));
37 result.append(withThis);
38 index2 = index + toReplace.length();
39 index = source.indexOf(toReplace, index2);
41 if (index2 < source.length()) {
42 result.append(source.substring(index2));
44 return result.toString();
47 public XSQLBluePrint() {
50 private class NQLBluePrintProxy implements InvocationHandler {
51 public Object invoke(Object proxy, Method method, Object[] args)
53 System.out.println("Method " + method);
54 return method.invoke(XSQLBluePrint.this, args);
58 public DatabaseMetaData getProxy() {
59 if (myProxy == null) {
61 myProxy = (DatabaseMetaData) Proxy
62 .newProxyInstance(getClass().getClassLoader(),
63 new Class[] {DatabaseMetaData.class},
64 new NQLBluePrintProxy());
65 } catch (Exception err) {
66 err.printStackTrace();
73 public void loadBluePrintCache(String hostName) {
75 ObjectInputStream in = new ObjectInputStream(
76 new FileInputStream(hostName + "-" + CACHE_FILE_NAME));
77 cache = (Map) in.readObject();
79 cacheLoadedSuccessfuly = true;
80 } catch (Exception err) {
81 //err.printStackTrace();
85 public XSQLBluePrintNode[] getBluePrintNodeByODLTableName(String odlTableName) {
86 Map<String,XSQLBluePrintNode> map = this.odlNameToBluePrint.get(odlTableName);
87 if(map==null) return null;
88 return map.values().toArray(new XSQLBluePrintNode[map.size()]);
91 public XSQLBluePrintNode getBluePrintNodeByTableName(String tableName) {
92 if (tableName.indexOf(".") != -1) {
93 tableName = tableName.substring(tableName.lastIndexOf(".") + 1);
96 XSQLBluePrintNode node = tableNameToBluePrint.get(tableName);
102 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
103 if (n.getBluePrintNodeName().endsWith(tableName)) {
108 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
109 if (n.getBluePrintNodeName().toLowerCase().endsWith(tableName.toLowerCase())) {
114 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
115 if (n.getBluePrintNodeName().toLowerCase().equals(tableName.toLowerCase())) {
120 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
121 if (n.getBluePrintNodeName().toLowerCase().indexOf(tableName.toLowerCase())!= -1) {
129 public boolean isCacheLoaded() {
130 return cacheLoadedSuccessfuly;
133 private static Map<Class, Set<Class>> superClassMap = new HashMap<Class, Set<Class>>();
135 public static Set<Class> getInheritance(Class myObjectClass,
138 if (returnType != null && myObjectClass.equals(returnType)) {
139 return new HashSet<Class>();
141 Set<Class> result = superClassMap.get(myObjectClass);
142 if (result != null) {
145 result = new HashSet<Class>();
146 superClassMap.put(myObjectClass, result);
147 if (returnType != null) {
148 if (!returnType.equals(myObjectClass)) {
149 Class mySuperClass = myObjectClass.getSuperclass();
150 while (mySuperClass != null) {
151 result.add(mySuperClass);
152 mySuperClass = mySuperClass.getSuperclass();
154 result.addAll(collectInterfaces(myObjectClass));
160 public static Set<Class> collectInterfaces(Class cls) {
161 Set<Class> result = new HashSet();
162 Class myInterfaces[] = cls.getInterfaces();
163 if (myInterfaces != null) {
164 for (Class in : myInterfaces) {
166 result.addAll(collectInterfaces(in));
172 public void addToBluePrintCache(XSQLBluePrintNode blNode) {
173 this.tableNameToBluePrint.put(blNode.getBluePrintNodeName(), blNode);
174 Map<String,XSQLBluePrintNode> map = this.odlNameToBluePrint.get(blNode.getODLTableName());
176 map = new HashMap<String,XSQLBluePrintNode>();
177 this.odlNameToBluePrint.put(blNode.getODLTableName(),map);
179 map.put(blNode.getBluePrintNodeName(), blNode);
182 public Class getGenericType(ParameterizedType type) {
183 Type[] typeArguments = type.getActualTypeArguments();
184 for (Type typeArgument : typeArguments) {
185 if (typeArgument instanceof ParameterizedType) {
186 ParameterizedType pType = (ParameterizedType) typeArgument;
187 return (Class) pType.getRawType();
188 } else if (typeArgument instanceof Class) {
189 return (Class) typeArgument;
195 public Class getMethodReturnTypeFromGeneric(Method m) {
196 Type rType = m.getGenericReturnType();
197 if (rType instanceof ParameterizedType) {
198 return getGenericType((ParameterizedType) rType);
203 public List<String> getAllTableNames() {
204 List<String> names = new ArrayList<String>();
205 for (XSQLBluePrintNode n : this.tableNameToBluePrint.values()) {
206 if (!n.isModule() && !n.getColumns().isEmpty()) {
207 names.add(n.getBluePrintNodeName());
214 public List<String> getInterfaceNames(XSQLBluePrintNode node) {
215 Set<XSQLBluePrintNode> children = node.getChildren();
216 List<String> names = new ArrayList<String>();
217 for (XSQLBluePrintNode n : children) {
218 if (!n.isModule() && !n.getColumns().isEmpty()) {
219 names.add(n.toString());
221 names.addAll(getInterfaceNames(n));
227 public boolean allProceduresAreCallable() throws SQLException {
232 public boolean allTablesAreSelectable() throws SQLException {
237 public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
238 // TODO Auto-generated method stub
243 public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
244 // TODO Auto-generated method stub
249 public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
250 // TODO Auto-generated method stub
255 public boolean deletesAreDetected(int type) throws SQLException {
256 // TODO Auto-generated method stub
261 public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
262 // TODO Auto-generated method stub
267 public ResultSet getAttributes(String catalog, String schemaPattern,
268 String typeNamePattern, String attributeNamePattern)
269 throws SQLException {
270 // TODO Auto-generated method stub
275 public ResultSet getBestRowIdentifier(String catalog, String schema,
276 String table, int scope, boolean nullable) throws SQLException {
277 // TODO Auto-generated method stub
282 public ResultSet getCatalogs() throws SQLException {
283 // TODO Auto-generated method stub
288 public String getCatalogSeparator() throws SQLException {
289 // TODO Auto-generated method stub
294 public String getCatalogTerm() throws SQLException {
295 // TODO Auto-generated method stub
300 public ResultSet getClientInfoProperties() throws SQLException {
301 // TODO Auto-generated method stub
306 public ResultSet getColumnPrivileges(String catalog, String schema,
307 String table, String columnNamePattern) throws SQLException {
308 // TODO Auto-generated method stub
313 public ResultSet getColumns(String catalog, String schemaPattern,
314 String tableNamePattern, String columnNamePattern)
315 throws SQLException {
316 // TODO Auto-generated method stub
321 public Connection getConnection() throws SQLException {
322 // TODO Auto-generated method stub
327 public ResultSet getCrossReference(String parentCatalog,
328 String parentSchema, String parentTable, String foreignCatalog,
329 String foreignSchema, String foreignTable) throws SQLException {
330 // TODO Auto-generated method stub
335 public int getDatabaseMajorVersion() throws SQLException {
340 public int getDatabaseMinorVersion() throws SQLException {
341 // TODO Auto-generated method stub
346 public String getDatabaseProductName() throws SQLException {
347 return "VNE Query Language";
351 public String getDatabaseProductVersion() throws SQLException {
356 public int getDefaultTransactionIsolation() throws SQLException {
357 // TODO Auto-generated method stub
362 public int getDriverMajorVersion() {
363 // TODO Auto-generated method stub
368 public int getDriverMinorVersion() {
369 // TODO Auto-generated method stub
374 public String getDriverName() throws SQLException {
375 // TODO Auto-generated method stub
380 public String getDriverVersion() throws SQLException {
381 // TODO Auto-generated method stub
386 public ResultSet getExportedKeys(String catalog, String schema,
388 throws SQLException {
389 // TODO Auto-generated method stub
394 public String getExtraNameCharacters() throws SQLException {
395 // TODO Auto-generated method stub
400 public ResultSet getFunctionColumns(String catalog, String schemaPattern,
401 String functionNamePattern, String columnNamePattern)
402 throws SQLException {
403 // TODO Auto-generated method stub
408 public ResultSet getFunctions(String catalog, String schemaPattern,
409 String functionNamePattern) throws SQLException {
410 // TODO Auto-generated method stub
415 public String getIdentifierQuoteString() throws SQLException {
416 // TODO Auto-generated method stub
421 public ResultSet getImportedKeys(String catalog, String schema,
423 throws SQLException {
424 // TODO Auto-generated method stub
429 public ResultSet getIndexInfo(String catalog, String schema, String table,
430 boolean unique, boolean approximate) throws SQLException {
431 // TODO Auto-generated method stub
436 public int getJDBCMajorVersion() throws SQLException {
437 // TODO Auto-generated method stub
442 public int getJDBCMinorVersion() throws SQLException {
443 // TODO Auto-generated method stub
448 public int getMaxBinaryLiteralLength() throws SQLException {
449 // TODO Auto-generated method stub
454 public int getMaxCatalogNameLength() throws SQLException {
455 // TODO Auto-generated method stub
460 public int getMaxCharLiteralLength() throws SQLException {
461 // TODO Auto-generated method stub
466 public int getMaxColumnNameLength() throws SQLException {
467 // TODO Auto-generated method stub
472 public int getMaxColumnsInGroupBy() throws SQLException {
473 // TODO Auto-generated method stub
478 public int getMaxColumnsInIndex() throws SQLException {
479 // TODO Auto-generated method stub
484 public int getMaxColumnsInOrderBy() throws SQLException {
485 // TODO Auto-generated method stub
490 public int getMaxColumnsInSelect() throws SQLException {
491 // TODO Auto-generated method stub
496 public int getMaxColumnsInTable() throws SQLException {
497 // TODO Auto-generated method stub
502 public int getMaxConnections() throws SQLException {
503 // TODO Auto-generated method stub
508 public int getMaxCursorNameLength() throws SQLException {
509 // TODO Auto-generated method stub
514 public int getMaxIndexLength() throws SQLException {
515 // TODO Auto-generated method stub
520 public int getMaxProcedureNameLength() throws SQLException {
521 // TODO Auto-generated method stub
526 public int getMaxRowSize() throws SQLException {
527 // TODO Auto-generated method stub
532 public int getMaxSchemaNameLength() throws SQLException {
533 // TODO Auto-generated method stub
538 public int getMaxStatementLength() throws SQLException {
539 // TODO Auto-generated method stub
544 public int getMaxStatements() throws SQLException {
545 // TODO Auto-generated method stub
550 public int getMaxTableNameLength() throws SQLException {
551 // TODO Auto-generated method stub
556 public int getMaxTablesInSelect() throws SQLException {
557 // TODO Auto-generated method stub
562 public int getMaxUserNameLength() throws SQLException {
563 // TODO Auto-generated method stub
568 public String getNumericFunctions() throws SQLException {
569 // TODO Auto-generated method stub
574 public ResultSet getPrimaryKeys(String catalog, String schema, String table)
575 throws SQLException {
576 // TODO Auto-generated method stub
581 public ResultSet getProcedureColumns(String catalog, String schemaPattern,
582 String procedureNamePattern, String columnNamePattern)
583 throws SQLException {
584 // TODO Auto-generated method stub
589 public ResultSet getProcedures(String catalog, String schemaPattern,
590 String procedureNamePattern) throws SQLException {
591 // TODO Auto-generated method stub
596 public String getProcedureTerm() throws SQLException {
597 // TODO Auto-generated method stub
602 public int getResultSetHoldability() throws SQLException {
603 // TODO Auto-generated method stub
608 public RowIdLifetime getRowIdLifetime() throws SQLException {
609 // TODO Auto-generated method stub
614 public ResultSet getSchemas() throws SQLException {
615 // TODO Auto-generated method stub
620 public ResultSet getSchemas(String catalog, String schemaPattern)
621 throws SQLException {
622 // TODO Auto-generated method stub
627 public String getSchemaTerm() throws SQLException {
628 // TODO Auto-generated method stub
633 public String getSearchStringEscape() throws SQLException {
634 // TODO Auto-generated method stub
639 public String getSQLKeywords() throws SQLException {
640 // TODO Auto-generated method stub
645 public int getSQLStateType() throws SQLException {
646 // TODO Auto-generated method stub
651 public String getStringFunctions() throws SQLException {
652 // TODO Auto-generated method stub
657 public ResultSet getSuperTables(String catalog, String schemaPattern,
658 String tableNamePattern) throws SQLException {
659 // TODO Auto-generated method stub
664 public ResultSet getSuperTypes(String catalog, String schemaPattern,
665 String typeNamePattern) throws SQLException {
666 // TODO Auto-generated method stub
671 public String getSystemFunctions() throws SQLException {
672 // TODO Auto-generated method stub
677 public ResultSet getTablePrivileges(String catalog, String schemaPattern,
678 String tableNamePattern) throws SQLException {
679 // TODO Auto-generated method stub
684 public ResultSet getTables(String catalog, String schemaPattern,
685 String tableNamePattern, String[] types) throws SQLException {
686 return new TablesResultSet(this);
690 public ResultSet getTableTypes() throws SQLException {
691 // TODO Auto-generated method stub
696 public String getTimeDateFunctions() throws SQLException {
697 // TODO Auto-generated method stub
702 public ResultSet getTypeInfo() throws SQLException {
703 // TODO Auto-generated method stub
708 public ResultSet getUDTs(String catalog, String schemaPattern,
709 String typeNamePattern, int[] types) throws SQLException {
710 // TODO Auto-generated method stub
715 public String getURL() throws SQLException {
716 // TODO Auto-generated method stub
721 public String getUserName() throws SQLException {
722 // TODO Auto-generated method stub
727 public ResultSet getVersionColumns(String catalog, String schema,
728 String table) throws SQLException {
729 // TODO Auto-generated method stub
734 public boolean insertsAreDetected(int type) throws SQLException {
735 // TODO Auto-generated method stub
740 public boolean isCatalogAtStart() throws SQLException {
741 // TODO Auto-generated method stub
746 public boolean isReadOnly() throws SQLException {
747 // TODO Auto-generated method stub
752 public boolean locatorsUpdateCopy() throws SQLException {
753 // TODO Auto-generated method stub
758 public boolean nullPlusNonNullIsNull() throws SQLException {
759 // TODO Auto-generated method stub
764 public boolean nullsAreSortedAtEnd() throws SQLException {
765 // TODO Auto-generated method stub
770 public boolean nullsAreSortedAtStart() throws SQLException {
771 // TODO Auto-generated method stub
776 public boolean nullsAreSortedHigh() throws SQLException {
777 // TODO Auto-generated method stub
782 public boolean nullsAreSortedLow() throws SQLException {
783 // TODO Auto-generated method stub
788 public boolean othersDeletesAreVisible(int type) throws SQLException {
789 // TODO Auto-generated method stub
794 public boolean othersInsertsAreVisible(int type) throws SQLException {
795 // TODO Auto-generated method stub
800 public boolean othersUpdatesAreVisible(int type) throws SQLException {
801 // TODO Auto-generated method stub
806 public boolean ownDeletesAreVisible(int type) throws SQLException {
807 // TODO Auto-generated method stub
812 public boolean ownInsertsAreVisible(int type) throws SQLException {
813 // TODO Auto-generated method stub
818 public boolean ownUpdatesAreVisible(int type) throws SQLException {
819 // TODO Auto-generated method stub
824 public boolean storesLowerCaseIdentifiers() throws SQLException {
825 // TODO Auto-generated method stub
830 public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
831 // TODO Auto-generated method stub
836 public boolean storesMixedCaseIdentifiers() throws SQLException {
837 // TODO Auto-generated method stub
842 public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
843 // TODO Auto-generated method stub
848 public boolean storesUpperCaseIdentifiers() throws SQLException {
849 // TODO Auto-generated method stub
854 public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
855 // TODO Auto-generated method stub
860 public boolean supportsAlterTableWithAddColumn() throws SQLException {
861 // TODO Auto-generated method stub
866 public boolean supportsAlterTableWithDropColumn() throws SQLException {
867 // TODO Auto-generated method stub
872 public boolean supportsANSI92EntryLevelSQL() throws SQLException {
873 // TODO Auto-generated method stub
878 public boolean supportsANSI92FullSQL() throws SQLException {
879 // TODO Auto-generated method stub
884 public boolean supportsANSI92IntermediateSQL() throws SQLException {
885 // TODO Auto-generated method stub
890 public boolean supportsBatchUpdates() throws SQLException {
891 // TODO Auto-generated method stub
896 public boolean supportsCatalogsInDataManipulation() throws SQLException {
897 // TODO Auto-generated method stub
902 public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
903 // TODO Auto-generated method stub
908 public boolean supportsCatalogsInPrivilegeDefinitions()
909 throws SQLException {
910 // TODO Auto-generated method stub
915 public boolean supportsCatalogsInProcedureCalls() throws SQLException {
916 // TODO Auto-generated method stub
921 public boolean supportsCatalogsInTableDefinitions() throws SQLException {
922 // TODO Auto-generated method stub
927 public boolean supportsColumnAliasing() throws SQLException {
928 // TODO Auto-generated method stub
933 public boolean supportsConvert() throws SQLException {
934 // TODO Auto-generated method stub
939 public boolean supportsConvert(int fromType, int toType)
940 throws SQLException {
941 // TODO Auto-generated method stub
946 public boolean supportsCoreSQLGrammar() throws SQLException {
947 // TODO Auto-generated method stub
952 public boolean supportsCorrelatedSubqueries() throws SQLException {
953 // TODO Auto-generated method stub
958 public boolean supportsDataDefinitionAndDataManipulationTransactions()
959 throws SQLException {
960 // TODO Auto-generated method stub
965 public boolean supportsDataManipulationTransactionsOnly()
966 throws SQLException {
967 // TODO Auto-generated method stub
972 public boolean supportsDifferentTableCorrelationNames()
973 throws SQLException {
974 // TODO Auto-generated method stub
979 public boolean supportsExpressionsInOrderBy() throws SQLException {
980 // TODO Auto-generated method stub
985 public boolean supportsExtendedSQLGrammar() throws SQLException {
986 // TODO Auto-generated method stub
991 public boolean supportsFullOuterJoins() throws SQLException {
992 // TODO Auto-generated method stub
997 public boolean supportsGetGeneratedKeys() throws SQLException {
998 // TODO Auto-generated method stub
1003 public boolean supportsGroupBy() throws SQLException {
1004 // TODO Auto-generated method stub
1009 public boolean supportsGroupByBeyondSelect() throws SQLException {
1010 // TODO Auto-generated method stub
1015 public boolean supportsGroupByUnrelated() throws SQLException {
1016 // TODO Auto-generated method stub
1021 public boolean supportsIntegrityEnhancementFacility() throws SQLException {
1022 // TODO Auto-generated method stub
1027 public boolean supportsLikeEscapeClause() throws SQLException {
1028 // TODO Auto-generated method stub
1033 public boolean supportsLimitedOuterJoins() throws SQLException {
1034 // TODO Auto-generated method stub
1039 public boolean supportsMinimumSQLGrammar() throws SQLException {
1040 // TODO Auto-generated method stub
1045 public boolean supportsMixedCaseIdentifiers() throws SQLException {
1046 // TODO Auto-generated method stub
1051 public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
1052 // TODO Auto-generated method stub
1057 public boolean supportsMultipleOpenResults() throws SQLException {
1058 // TODO Auto-generated method stub
1063 public boolean supportsMultipleResultSets() throws SQLException {
1064 // TODO Auto-generated method stub
1069 public boolean supportsMultipleTransactions() throws SQLException {
1070 // TODO Auto-generated method stub
1075 public boolean supportsNamedParameters() throws SQLException {
1076 // TODO Auto-generated method stub
1081 public boolean supportsNonNullableColumns() throws SQLException {
1082 // TODO Auto-generated method stub
1087 public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
1088 // TODO Auto-generated method stub
1093 public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
1094 // TODO Auto-generated method stub
1099 public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
1100 // TODO Auto-generated method stub
1105 public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
1106 // TODO Auto-generated method stub
1111 public boolean supportsOrderByUnrelated() throws SQLException {
1112 // TODO Auto-generated method stub
1117 public boolean supportsOuterJoins() throws SQLException {
1118 // TODO Auto-generated method stub
1123 public boolean supportsPositionedDelete() throws SQLException {
1124 // TODO Auto-generated method stub
1129 public boolean supportsPositionedUpdate() throws SQLException {
1130 // TODO Auto-generated method stub
1135 public boolean supportsResultSetConcurrency(int type, int concurrency)
1136 throws SQLException {
1137 // TODO Auto-generated method stub
1142 public boolean supportsResultSetHoldability(int holdability)
1143 throws SQLException {
1144 // TODO Auto-generated method stub
1149 public boolean supportsResultSetType(int type) throws SQLException {
1150 // TODO Auto-generated method stub
1155 public boolean supportsSavepoints() throws SQLException {
1156 // TODO Auto-generated method stub
1161 public boolean supportsSchemasInDataManipulation() throws SQLException {
1162 // TODO Auto-generated method stub
1167 public boolean supportsSchemasInIndexDefinitions() throws SQLException {
1168 // TODO Auto-generated method stub
1173 public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
1174 // TODO Auto-generated method stub
1179 public boolean supportsSchemasInProcedureCalls() throws SQLException {
1180 // TODO Auto-generated method stub
1185 public boolean supportsSchemasInTableDefinitions() throws SQLException {
1186 // TODO Auto-generated method stub
1191 public boolean supportsSelectForUpdate() throws SQLException {
1192 // TODO Auto-generated method stub
1197 public boolean supportsStatementPooling() throws SQLException {
1198 // TODO Auto-generated method stub
1203 public boolean supportsStoredFunctionsUsingCallSyntax()
1204 throws SQLException {
1205 // TODO Auto-generated method stub
1210 public boolean supportsStoredProcedures() throws SQLException {
1211 // TODO Auto-generated method stub
1216 public boolean supportsSubqueriesInComparisons() throws SQLException {
1217 // TODO Auto-generated method stub
1222 public boolean supportsSubqueriesInExists() throws SQLException {
1223 // TODO Auto-generated method stub
1228 public boolean supportsSubqueriesInIns() throws SQLException {
1229 // TODO Auto-generated method stub
1234 public boolean supportsSubqueriesInQuantifieds() throws SQLException {
1235 // TODO Auto-generated method stub
1240 public boolean supportsTableCorrelationNames() throws SQLException {
1241 // TODO Auto-generated method stub
1246 public boolean supportsTransactionIsolationLevel(int level)
1247 throws SQLException {
1248 // TODO Auto-generated method stub
1253 public boolean supportsTransactions() throws SQLException {
1254 // TODO Auto-generated method stub
1259 public boolean supportsUnion() throws SQLException {
1260 // TODO Auto-generated method stub
1265 public boolean supportsUnionAll() throws SQLException {
1266 // TODO Auto-generated method stub
1271 public boolean updatesAreDetected(int type) throws SQLException {
1272 // TODO Auto-generated method stub
1277 public boolean usesLocalFilePerTable() throws SQLException {
1278 // TODO Auto-generated method stub
1283 public boolean usesLocalFiles() throws SQLException {
1284 // TODO Auto-generated method stub
1289 public boolean isWrapperFor(Class<?> iface) throws SQLException {
1290 // TODO Auto-generated method stub
1295 public <T> T unwrap(Class<T> iface) throws SQLException {
1296 // TODO Auto-generated method stub
1301 public ResultSet getPseudoColumns(String catalog, String schemaPattern,
1302 String tableNamePattern, String columnNamePattern)
1303 throws SQLException {
1304 // TODO Auto-generated method stub
1309 public boolean generatedKeyAlwaysReturned() throws SQLException {
1310 // TODO Auto-generated method stub