2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.dom.xsql;
10 import java.io.DataInputStream;
11 import java.io.DataOutputStream;
12 import java.io.FileOutputStream;
13 import java.io.InputStream;
14 import java.io.ObjectInputStream;
15 import java.io.ObjectOutputStream;
16 import java.io.Serializable;
17 import java.lang.reflect.InvocationHandler;
18 import java.lang.reflect.Method;
19 import java.lang.reflect.ParameterizedType;
20 import java.lang.reflect.Proxy;
21 import java.lang.reflect.Type;
22 import java.sql.Connection;
23 import java.sql.DatabaseMetaData;
24 import java.sql.ResultSet;
25 import java.sql.RowIdLifetime;
26 import java.sql.SQLException;
27 import java.util.ArrayList;
28 import java.util.HashMap;
29 import java.util.HashSet;
30 import java.util.List;
34 * @author Sharon Aicler(saichler@gmail.com)
37 * To be removed in Nitrogen
40 public class XSQLBluePrint implements DatabaseMetaData, Serializable {
42 private static final long serialVersionUID = 1L;
44 public static final String CACHE_FILE_NAME = "./BluePrintCache.dat";
46 private Map<String, XSQLBluePrintNode> tableNameToBluePrint = new HashMap<>();
47 private Map<String, Map<String, XSQLBluePrintNode>> odlNameToBluePrint = new HashMap<>();
49 private boolean cacheLoadedSuccessfuly = false;
50 private DatabaseMetaData myProxy = null;
52 public static final String replaceAll(String source, String toReplace,
54 int index = source.indexOf(toReplace);
56 StringBuffer result = new StringBuffer();
58 result.append(source.substring(index2, index));
59 result.append(withThis);
60 index2 = index + toReplace.length();
61 index = source.indexOf(toReplace, index2);
63 if (index2 < source.length()) {
64 result.append(source.substring(index2));
66 return result.toString();
69 public XSQLBluePrint() {
72 public static void save(XSQLBluePrint bp) {
73 ObjectOutputStream out = null;
75 out = new ObjectOutputStream(new DataOutputStream(
76 new FileOutputStream(CACHE_FILE_NAME)));
78 } catch (Exception err) {
79 err.printStackTrace();
83 } catch (Exception err) {
88 public static XSQLBluePrint load(InputStream ins) {
89 ObjectInputStream in = null;
91 in = new ObjectInputStream(new DataInputStream(ins));
92 return (XSQLBluePrint) in.readObject();
93 } catch (Exception err) {
94 err.printStackTrace();
98 } catch (Exception err) {
104 private class NQLBluePrintProxy implements InvocationHandler {
105 public Object invoke(Object proxy, Method method, Object[] args)
107 System.out.println("Method " + method);
108 return method.invoke(XSQLBluePrint.this, args);
112 public DatabaseMetaData getProxy() {
113 if (myProxy == null) {
115 myProxy = (DatabaseMetaData) Proxy.newProxyInstance(getClass()
117 new Class[] { DatabaseMetaData.class },
118 new NQLBluePrintProxy());
119 } catch (Exception err) {
120 err.printStackTrace();
126 public XSQLBluePrintNode[] getBluePrintNodeByODLTableName(
127 String odlTableName) {
128 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint
133 return map.values().toArray(new XSQLBluePrintNode[map.size()]);
136 public XSQLBluePrintNode getBluePrintNodeByTableName(String tableName) {
137 if (tableName.indexOf(".") != -1) {
138 tableName = tableName.substring(tableName.lastIndexOf(".") + 1);
141 XSQLBluePrintNode node = tableNameToBluePrint.get(tableName);
147 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
148 if (n.getBluePrintNodeName().endsWith(tableName)) {
153 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
154 if (n.getBluePrintNodeName().toLowerCase()
155 .endsWith(tableName.toLowerCase())) {
160 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
161 if (n.getBluePrintNodeName().toLowerCase()
162 .equals(tableName.toLowerCase())) {
167 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
168 if (n.getBluePrintNodeName().toLowerCase()
169 .indexOf(tableName.toLowerCase()) != -1) {
176 public boolean isCacheLoaded() {
177 return cacheLoadedSuccessfuly;
180 private static Map<Class<?>, Set<Class<?>>> superClassMap = new HashMap<>();
182 public static Set<Class<?>> getInheritance(Class<?> myObjectClass,
183 Class<?> returnType) {
185 if (returnType != null && myObjectClass.equals(returnType)) {
186 return new HashSet<>();
188 Set<Class<?>> result = superClassMap.get(myObjectClass);
189 if (result != null) {
192 result = new HashSet<>();
193 superClassMap.put(myObjectClass, result);
194 if (returnType != null) {
195 if (!returnType.equals(myObjectClass)) {
196 Class<?> mySuperClass = myObjectClass.getSuperclass();
197 while (mySuperClass != null) {
198 result.add(mySuperClass);
199 mySuperClass = mySuperClass.getSuperclass();
201 result.addAll(collectInterfaces(myObjectClass));
207 public static Set<Class<?>> collectInterfaces(Class<?> cls) {
208 Set<Class<?>> result = new HashSet<>();
209 Class<?> myInterfaces[] = cls.getInterfaces();
210 if (myInterfaces != null) {
211 for (Class<?> in : myInterfaces) {
213 result.addAll(collectInterfaces(in));
219 public XSQLBluePrintNode addToBluePrintCache(XSQLBluePrintNode blNode,XSQLBluePrintNode parent) {
220 XSQLBluePrintNode existingNode = this.tableNameToBluePrint.get(blNode.getBluePrintNodeName());
221 if(existingNode!=null){
222 existingNode.mergeAugmentation(blNode);
225 this.tableNameToBluePrint.put(blNode.getBluePrintNodeName(), blNode);
226 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint.get(blNode.getODLTableName());
228 map = new HashMap<>();
229 this.odlNameToBluePrint.put(blNode.getODLTableName(), map);
231 map.put(blNode.getBluePrintNodeName(), blNode);
233 parent.addChild(blNode);
238 public Class<?> getGenericType(ParameterizedType type) {
239 Type[] typeArguments = type.getActualTypeArguments();
240 for (Type typeArgument : typeArguments) {
241 if (typeArgument instanceof ParameterizedType) {
242 ParameterizedType pType = (ParameterizedType) typeArgument;
243 return (Class<?>) pType.getRawType();
244 } else if (typeArgument instanceof Class) {
245 return (Class<?>) typeArgument;
251 public Class<?> getMethodReturnTypeFromGeneric(Method m) {
252 Type rType = m.getGenericReturnType();
253 if (rType instanceof ParameterizedType) {
254 return getGenericType((ParameterizedType) rType);
259 public List<String> getAllTableNames() {
260 List<String> names = new ArrayList<>();
261 for (XSQLBluePrintNode n : this.tableNameToBluePrint.values()) {
262 if (!n.isModule() && !n.getColumns().isEmpty()) {
263 names.add(n.getBluePrintNodeName());
270 public List<String> getInterfaceNames(XSQLBluePrintNode node) {
271 Set<XSQLBluePrintNode> children = node.getChildren();
272 List<String> names = new ArrayList<>();
273 for (XSQLBluePrintNode n : children) {
274 if (!n.isModule() && !n.getColumns().isEmpty()) {
275 names.add(n.toString());
277 names.addAll(getInterfaceNames(n));
283 public boolean allProceduresAreCallable() throws SQLException {
288 public boolean allTablesAreSelectable() throws SQLException {
293 public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
294 // TODO Auto-generated method stub
299 public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
300 // TODO Auto-generated method stub
305 public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
306 // TODO Auto-generated method stub
311 public boolean deletesAreDetected(int type) throws SQLException {
312 // TODO Auto-generated method stub
317 public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
318 // TODO Auto-generated method stub
323 public ResultSet getAttributes(String catalog, String schemaPattern,
324 String typeNamePattern, String attributeNamePattern)
325 throws SQLException {
326 // TODO Auto-generated method stub
331 public ResultSet getBestRowIdentifier(String catalog, String schema,
332 String table, int scope, boolean nullable) throws SQLException {
333 // TODO Auto-generated method stub
338 public ResultSet getCatalogs() throws SQLException {
339 // TODO Auto-generated method stub
344 public String getCatalogSeparator() throws SQLException {
345 // TODO Auto-generated method stub
350 public String getCatalogTerm() throws SQLException {
351 // TODO Auto-generated method stub
356 public ResultSet getClientInfoProperties() throws SQLException {
357 // TODO Auto-generated method stub
362 public ResultSet getColumnPrivileges(String catalog, String schema,
363 String table, String columnNamePattern) throws SQLException {
364 // TODO Auto-generated method stub
369 public ResultSet getColumns(String catalog, String schemaPattern,
370 String tableNamePattern, String columnNamePattern)
371 throws SQLException {
372 // TODO Auto-generated method stub
377 public Connection getConnection() throws SQLException {
378 // TODO Auto-generated method stub
383 public ResultSet getCrossReference(String parentCatalog,
384 String parentSchema, String parentTable, String foreignCatalog,
385 String foreignSchema, String foreignTable) throws SQLException {
386 // TODO Auto-generated method stub
391 public int getDatabaseMajorVersion() throws SQLException {
396 public int getDatabaseMinorVersion() throws SQLException {
397 // TODO Auto-generated method stub
402 public String getDatabaseProductName() throws SQLException {
403 return "OpenDayLight";
407 public String getDatabaseProductVersion() throws SQLException {
412 public int getDefaultTransactionIsolation() throws SQLException {
413 // TODO Auto-generated method stub
418 public int getDriverMajorVersion() {
419 // TODO Auto-generated method stub
424 public int getDriverMinorVersion() {
425 // TODO Auto-generated method stub
430 public String getDriverName() throws SQLException {
431 // TODO Auto-generated method stub
436 public String getDriverVersion() throws SQLException {
437 // TODO Auto-generated method stub
442 public ResultSet getExportedKeys(String catalog, String schema, String table)
443 throws SQLException {
444 // TODO Auto-generated method stub
449 public String getExtraNameCharacters() throws SQLException {
450 // TODO Auto-generated method stub
455 public ResultSet getFunctionColumns(String catalog, String schemaPattern,
456 String functionNamePattern, String columnNamePattern)
457 throws SQLException {
458 // TODO Auto-generated method stub
463 public ResultSet getFunctions(String catalog, String schemaPattern,
464 String functionNamePattern) throws SQLException {
465 // TODO Auto-generated method stub
470 public String getIdentifierQuoteString() throws SQLException {
471 // TODO Auto-generated method stub
476 public ResultSet getImportedKeys(String catalog, String schema, String table)
477 throws SQLException {
478 // TODO Auto-generated method stub
483 public ResultSet getIndexInfo(String catalog, String schema, String table,
484 boolean unique, boolean approximate) throws SQLException {
485 // TODO Auto-generated method stub
490 public int getJDBCMajorVersion() throws SQLException {
491 // TODO Auto-generated method stub
496 public int getJDBCMinorVersion() throws SQLException {
497 // TODO Auto-generated method stub
502 public int getMaxBinaryLiteralLength() throws SQLException {
503 // TODO Auto-generated method stub
508 public int getMaxCatalogNameLength() throws SQLException {
509 // TODO Auto-generated method stub
514 public int getMaxCharLiteralLength() throws SQLException {
515 // TODO Auto-generated method stub
520 public int getMaxColumnNameLength() throws SQLException {
521 // TODO Auto-generated method stub
526 public int getMaxColumnsInGroupBy() throws SQLException {
527 // TODO Auto-generated method stub
532 public int getMaxColumnsInIndex() throws SQLException {
533 // TODO Auto-generated method stub
538 public int getMaxColumnsInOrderBy() throws SQLException {
539 // TODO Auto-generated method stub
544 public int getMaxColumnsInSelect() throws SQLException {
545 // TODO Auto-generated method stub
550 public int getMaxColumnsInTable() throws SQLException {
551 // TODO Auto-generated method stub
556 public int getMaxConnections() throws SQLException {
557 // TODO Auto-generated method stub
562 public int getMaxCursorNameLength() throws SQLException {
563 // TODO Auto-generated method stub
568 public int getMaxIndexLength() throws SQLException {
569 // TODO Auto-generated method stub
574 public int getMaxProcedureNameLength() throws SQLException {
575 // TODO Auto-generated method stub
580 public int getMaxRowSize() throws SQLException {
581 // TODO Auto-generated method stub
586 public int getMaxSchemaNameLength() throws SQLException {
587 // TODO Auto-generated method stub
592 public int getMaxStatementLength() throws SQLException {
593 // TODO Auto-generated method stub
598 public int getMaxStatements() throws SQLException {
599 // TODO Auto-generated method stub
604 public int getMaxTableNameLength() throws SQLException {
605 // TODO Auto-generated method stub
610 public int getMaxTablesInSelect() throws SQLException {
611 // TODO Auto-generated method stub
616 public int getMaxUserNameLength() throws SQLException {
617 // TODO Auto-generated method stub
622 public String getNumericFunctions() throws SQLException {
623 // TODO Auto-generated method stub
628 public ResultSet getPrimaryKeys(String catalog, String schema, String table)
629 throws SQLException {
630 // TODO Auto-generated method stub
635 public ResultSet getProcedureColumns(String catalog, String schemaPattern,
636 String procedureNamePattern, String columnNamePattern)
637 throws SQLException {
638 // TODO Auto-generated method stub
643 public ResultSet getProcedures(String catalog, String schemaPattern,
644 String procedureNamePattern) throws SQLException {
645 // TODO Auto-generated method stub
650 public String getProcedureTerm() throws SQLException {
651 // TODO Auto-generated method stub
656 public int getResultSetHoldability() throws SQLException {
657 // TODO Auto-generated method stub
662 public RowIdLifetime getRowIdLifetime() throws SQLException {
663 // TODO Auto-generated method stub
668 public ResultSet getSchemas() throws SQLException {
669 // TODO Auto-generated method stub
674 public ResultSet getSchemas(String catalog, String schemaPattern)
675 throws SQLException {
676 // TODO Auto-generated method stub
681 public String getSchemaTerm() throws SQLException {
682 // TODO Auto-generated method stub
687 public String getSearchStringEscape() throws SQLException {
688 // TODO Auto-generated method stub
693 public String getSQLKeywords() throws SQLException {
694 // TODO Auto-generated method stub
699 public int getSQLStateType() throws SQLException {
700 // TODO Auto-generated method stub
705 public String getStringFunctions() throws SQLException {
706 // TODO Auto-generated method stub
711 public ResultSet getSuperTables(String catalog, String schemaPattern,
712 String tableNamePattern) throws SQLException {
713 // TODO Auto-generated method stub
718 public ResultSet getSuperTypes(String catalog, String schemaPattern,
719 String typeNamePattern) throws SQLException {
720 // TODO Auto-generated method stub
725 public String getSystemFunctions() throws SQLException {
726 // TODO Auto-generated method stub
731 public ResultSet getTablePrivileges(String catalog, String schemaPattern,
732 String tableNamePattern) throws SQLException {
733 // TODO Auto-generated method stub
738 public ResultSet getTables(String catalog, String schemaPattern,
739 String tableNamePattern, String[] types) throws SQLException {
740 return new TablesResultSet(this);
744 public ResultSet getTableTypes() throws SQLException {
745 // TODO Auto-generated method stub
750 public String getTimeDateFunctions() throws SQLException {
751 // TODO Auto-generated method stub
756 public ResultSet getTypeInfo() throws SQLException {
757 // TODO Auto-generated method stub
762 public ResultSet getUDTs(String catalog, String schemaPattern,
763 String typeNamePattern, int[] types) throws SQLException {
764 // TODO Auto-generated method stub
769 public String getURL() throws SQLException {
770 // TODO Auto-generated method stub
775 public String getUserName() throws SQLException {
776 // TODO Auto-generated method stub
781 public ResultSet getVersionColumns(String catalog, String schema,
782 String table) throws SQLException {
783 // TODO Auto-generated method stub
788 public boolean insertsAreDetected(int type) throws SQLException {
789 // TODO Auto-generated method stub
794 public boolean isCatalogAtStart() throws SQLException {
795 // TODO Auto-generated method stub
800 public boolean isReadOnly() throws SQLException {
801 // TODO Auto-generated method stub
806 public boolean locatorsUpdateCopy() throws SQLException {
807 // TODO Auto-generated method stub
812 public boolean nullPlusNonNullIsNull() throws SQLException {
813 // TODO Auto-generated method stub
818 public boolean nullsAreSortedAtEnd() throws SQLException {
819 // TODO Auto-generated method stub
824 public boolean nullsAreSortedAtStart() throws SQLException {
825 // TODO Auto-generated method stub
830 public boolean nullsAreSortedHigh() throws SQLException {
831 // TODO Auto-generated method stub
836 public boolean nullsAreSortedLow() throws SQLException {
837 // TODO Auto-generated method stub
842 public boolean othersDeletesAreVisible(int type) throws SQLException {
843 // TODO Auto-generated method stub
848 public boolean othersInsertsAreVisible(int type) throws SQLException {
849 // TODO Auto-generated method stub
854 public boolean othersUpdatesAreVisible(int type) throws SQLException {
855 // TODO Auto-generated method stub
860 public boolean ownDeletesAreVisible(int type) throws SQLException {
861 // TODO Auto-generated method stub
866 public boolean ownInsertsAreVisible(int type) throws SQLException {
867 // TODO Auto-generated method stub
872 public boolean ownUpdatesAreVisible(int type) throws SQLException {
873 // TODO Auto-generated method stub
878 public boolean storesLowerCaseIdentifiers() throws SQLException {
879 // TODO Auto-generated method stub
884 public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
885 // TODO Auto-generated method stub
890 public boolean storesMixedCaseIdentifiers() throws SQLException {
891 // TODO Auto-generated method stub
896 public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
897 // TODO Auto-generated method stub
902 public boolean storesUpperCaseIdentifiers() throws SQLException {
903 // TODO Auto-generated method stub
908 public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
909 // TODO Auto-generated method stub
914 public boolean supportsAlterTableWithAddColumn() throws SQLException {
915 // TODO Auto-generated method stub
920 public boolean supportsAlterTableWithDropColumn() throws SQLException {
921 // TODO Auto-generated method stub
926 public boolean supportsANSI92EntryLevelSQL() throws SQLException {
927 // TODO Auto-generated method stub
932 public boolean supportsANSI92FullSQL() throws SQLException {
933 // TODO Auto-generated method stub
938 public boolean supportsANSI92IntermediateSQL() throws SQLException {
939 // TODO Auto-generated method stub
944 public boolean supportsBatchUpdates() throws SQLException {
945 // TODO Auto-generated method stub
950 public boolean supportsCatalogsInDataManipulation() throws SQLException {
951 // TODO Auto-generated method stub
956 public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
957 // TODO Auto-generated method stub
962 public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
963 // TODO Auto-generated method stub
968 public boolean supportsCatalogsInProcedureCalls() throws SQLException {
969 // TODO Auto-generated method stub
974 public boolean supportsCatalogsInTableDefinitions() throws SQLException {
975 // TODO Auto-generated method stub
980 public boolean supportsColumnAliasing() throws SQLException {
981 // TODO Auto-generated method stub
986 public boolean supportsConvert() throws SQLException {
987 // TODO Auto-generated method stub
992 public boolean supportsConvert(int fromType, int toType)
993 throws SQLException {
994 // TODO Auto-generated method stub
999 public boolean supportsCoreSQLGrammar() throws SQLException {
1000 // TODO Auto-generated method stub
1005 public boolean supportsCorrelatedSubqueries() throws SQLException {
1006 // TODO Auto-generated method stub
1011 public boolean supportsDataDefinitionAndDataManipulationTransactions()
1012 throws SQLException {
1013 // TODO Auto-generated method stub
1018 public boolean supportsDataManipulationTransactionsOnly()
1019 throws SQLException {
1020 // TODO Auto-generated method stub
1025 public boolean supportsDifferentTableCorrelationNames() throws SQLException {
1026 // TODO Auto-generated method stub
1031 public boolean supportsExpressionsInOrderBy() throws SQLException {
1032 // TODO Auto-generated method stub
1037 public boolean supportsExtendedSQLGrammar() throws SQLException {
1038 // TODO Auto-generated method stub
1043 public boolean supportsFullOuterJoins() throws SQLException {
1044 // TODO Auto-generated method stub
1049 public boolean supportsGetGeneratedKeys() throws SQLException {
1050 // TODO Auto-generated method stub
1055 public boolean supportsGroupBy() throws SQLException {
1056 // TODO Auto-generated method stub
1061 public boolean supportsGroupByBeyondSelect() throws SQLException {
1062 // TODO Auto-generated method stub
1067 public boolean supportsGroupByUnrelated() throws SQLException {
1068 // TODO Auto-generated method stub
1073 public boolean supportsIntegrityEnhancementFacility() throws SQLException {
1074 // TODO Auto-generated method stub
1079 public boolean supportsLikeEscapeClause() throws SQLException {
1080 // TODO Auto-generated method stub
1085 public boolean supportsLimitedOuterJoins() throws SQLException {
1086 // TODO Auto-generated method stub
1091 public boolean supportsMinimumSQLGrammar() throws SQLException {
1092 // TODO Auto-generated method stub
1097 public boolean supportsMixedCaseIdentifiers() throws SQLException {
1098 // TODO Auto-generated method stub
1103 public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
1104 // TODO Auto-generated method stub
1109 public boolean supportsMultipleOpenResults() throws SQLException {
1110 // TODO Auto-generated method stub
1115 public boolean supportsMultipleResultSets() throws SQLException {
1116 // TODO Auto-generated method stub
1121 public boolean supportsMultipleTransactions() throws SQLException {
1122 // TODO Auto-generated method stub
1127 public boolean supportsNamedParameters() throws SQLException {
1128 // TODO Auto-generated method stub
1133 public boolean supportsNonNullableColumns() throws SQLException {
1134 // TODO Auto-generated method stub
1139 public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
1140 // TODO Auto-generated method stub
1145 public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
1146 // TODO Auto-generated method stub
1151 public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
1152 // TODO Auto-generated method stub
1157 public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
1158 // TODO Auto-generated method stub
1163 public boolean supportsOrderByUnrelated() throws SQLException {
1164 // TODO Auto-generated method stub
1169 public boolean supportsOuterJoins() throws SQLException {
1170 // TODO Auto-generated method stub
1175 public boolean supportsPositionedDelete() throws SQLException {
1176 // TODO Auto-generated method stub
1181 public boolean supportsPositionedUpdate() throws SQLException {
1182 // TODO Auto-generated method stub
1187 public boolean supportsResultSetConcurrency(int type, int concurrency)
1188 throws SQLException {
1189 // TODO Auto-generated method stub
1194 public boolean supportsResultSetHoldability(int holdability)
1195 throws SQLException {
1196 // TODO Auto-generated method stub
1201 public boolean supportsResultSetType(int type) throws SQLException {
1202 // TODO Auto-generated method stub
1207 public boolean supportsSavepoints() throws SQLException {
1208 // TODO Auto-generated method stub
1213 public boolean supportsSchemasInDataManipulation() throws SQLException {
1214 // TODO Auto-generated method stub
1219 public boolean supportsSchemasInIndexDefinitions() throws SQLException {
1220 // TODO Auto-generated method stub
1225 public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
1226 // TODO Auto-generated method stub
1231 public boolean supportsSchemasInProcedureCalls() throws SQLException {
1232 // TODO Auto-generated method stub
1237 public boolean supportsSchemasInTableDefinitions() throws SQLException {
1238 // TODO Auto-generated method stub
1243 public boolean supportsSelectForUpdate() throws SQLException {
1244 // TODO Auto-generated method stub
1249 public boolean supportsStatementPooling() throws SQLException {
1250 // TODO Auto-generated method stub
1255 public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
1256 // TODO Auto-generated method stub
1261 public boolean supportsStoredProcedures() throws SQLException {
1262 // TODO Auto-generated method stub
1267 public boolean supportsSubqueriesInComparisons() throws SQLException {
1268 // TODO Auto-generated method stub
1273 public boolean supportsSubqueriesInExists() throws SQLException {
1274 // TODO Auto-generated method stub
1279 public boolean supportsSubqueriesInIns() throws SQLException {
1280 // TODO Auto-generated method stub
1285 public boolean supportsSubqueriesInQuantifieds() throws SQLException {
1286 // TODO Auto-generated method stub
1291 public boolean supportsTableCorrelationNames() throws SQLException {
1292 // TODO Auto-generated method stub
1297 public boolean supportsTransactionIsolationLevel(int level)
1298 throws SQLException {
1299 // TODO Auto-generated method stub
1304 public boolean supportsTransactions() throws SQLException {
1305 // TODO Auto-generated method stub
1310 public boolean supportsUnion() throws SQLException {
1311 // TODO Auto-generated method stub
1316 public boolean supportsUnionAll() throws SQLException {
1317 // TODO Auto-generated method stub
1322 public boolean updatesAreDetected(int type) throws SQLException {
1323 // TODO Auto-generated method stub
1328 public boolean usesLocalFilePerTable() throws SQLException {
1329 // TODO Auto-generated method stub
1334 public boolean usesLocalFiles() throws SQLException {
1335 // TODO Auto-generated method stub
1340 public boolean isWrapperFor(Class<?> iface) throws SQLException {
1341 // TODO Auto-generated method stub
1346 public <T> T unwrap(Class<T> iface) throws SQLException {
1347 // TODO Auto-generated method stub
1352 public ResultSet getPseudoColumns(String catalog, String schemaPattern,
1353 String tableNamePattern, String columnNamePattern)
1354 throws SQLException {
1355 // TODO Auto-generated method stub
1360 public boolean generatedKeyAlwaysReturned() throws SQLException {
1361 // TODO Auto-generated method stub