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)
36 public class XSQLBluePrint implements DatabaseMetaData, Serializable {
38 private static final long serialVersionUID = 1L;
40 public static final String CACHE_FILE_NAME = "./BluePrintCache.dat";
42 private Map<String, XSQLBluePrintNode> tableNameToBluePrint = new HashMap<>();
43 private Map<String, Map<String, XSQLBluePrintNode>> odlNameToBluePrint = new HashMap<>();
45 private boolean cacheLoadedSuccessfuly = false;
46 private DatabaseMetaData myProxy = null;
48 public static final String replaceAll(String source, String toReplace,
50 int index = source.indexOf(toReplace);
52 StringBuffer result = new StringBuffer();
54 result.append(source.substring(index2, index));
55 result.append(withThis);
56 index2 = index + toReplace.length();
57 index = source.indexOf(toReplace, index2);
59 if (index2 < source.length()) {
60 result.append(source.substring(index2));
62 return result.toString();
65 public XSQLBluePrint() {
68 public static void save(XSQLBluePrint bp) {
69 ObjectOutputStream out = null;
71 out = new ObjectOutputStream(new DataOutputStream(
72 new FileOutputStream(CACHE_FILE_NAME)));
74 } catch (Exception err) {
75 err.printStackTrace();
79 } catch (Exception err) {
84 public static XSQLBluePrint load(InputStream ins) {
85 ObjectInputStream in = null;
87 in = new ObjectInputStream(new DataInputStream(ins));
88 return (XSQLBluePrint) in.readObject();
89 } catch (Exception err) {
90 err.printStackTrace();
94 } catch (Exception err) {
100 private class NQLBluePrintProxy implements InvocationHandler {
101 public Object invoke(Object proxy, Method method, Object[] args)
103 System.out.println("Method " + method);
104 return method.invoke(XSQLBluePrint.this, args);
108 public DatabaseMetaData getProxy() {
109 if (myProxy == null) {
111 myProxy = (DatabaseMetaData) Proxy.newProxyInstance(getClass()
113 new Class[] { DatabaseMetaData.class },
114 new NQLBluePrintProxy());
115 } catch (Exception err) {
116 err.printStackTrace();
122 public XSQLBluePrintNode[] getBluePrintNodeByODLTableName(
123 String odlTableName) {
124 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint
129 return map.values().toArray(new XSQLBluePrintNode[map.size()]);
132 public XSQLBluePrintNode getBluePrintNodeByTableName(String tableName) {
133 if (tableName.indexOf(".") != -1) {
134 tableName = tableName.substring(tableName.lastIndexOf(".") + 1);
137 XSQLBluePrintNode node = tableNameToBluePrint.get(tableName);
143 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
144 if (n.getBluePrintNodeName().endsWith(tableName)) {
149 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
150 if (n.getBluePrintNodeName().toLowerCase()
151 .endsWith(tableName.toLowerCase())) {
156 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
157 if (n.getBluePrintNodeName().toLowerCase()
158 .equals(tableName.toLowerCase())) {
163 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
164 if (n.getBluePrintNodeName().toLowerCase()
165 .indexOf(tableName.toLowerCase()) != -1) {
172 public boolean isCacheLoaded() {
173 return cacheLoadedSuccessfuly;
176 private static Map<Class<?>, Set<Class<?>>> superClassMap = new HashMap<>();
178 public static Set<Class<?>> getInheritance(Class<?> myObjectClass,
179 Class<?> returnType) {
181 if (returnType != null && myObjectClass.equals(returnType)) {
182 return new HashSet<>();
184 Set<Class<?>> result = superClassMap.get(myObjectClass);
185 if (result != null) {
188 result = new HashSet<>();
189 superClassMap.put(myObjectClass, result);
190 if (returnType != null) {
191 if (!returnType.equals(myObjectClass)) {
192 Class<?> mySuperClass = myObjectClass.getSuperclass();
193 while (mySuperClass != null) {
194 result.add(mySuperClass);
195 mySuperClass = mySuperClass.getSuperclass();
197 result.addAll(collectInterfaces(myObjectClass));
203 public static Set<Class<?>> collectInterfaces(Class<?> cls) {
204 Set<Class<?>> result = new HashSet<>();
205 Class<?> myInterfaces[] = cls.getInterfaces();
206 if (myInterfaces != null) {
207 for (Class<?> in : myInterfaces) {
209 result.addAll(collectInterfaces(in));
215 public XSQLBluePrintNode addToBluePrintCache(XSQLBluePrintNode blNode,XSQLBluePrintNode parent) {
216 XSQLBluePrintNode existingNode = this.tableNameToBluePrint.get(blNode.getBluePrintNodeName());
217 if(existingNode!=null){
218 existingNode.mergeAugmentation(blNode);
221 this.tableNameToBluePrint.put(blNode.getBluePrintNodeName(), blNode);
222 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint.get(blNode.getODLTableName());
224 map = new HashMap<>();
225 this.odlNameToBluePrint.put(blNode.getODLTableName(), map);
227 map.put(blNode.getBluePrintNodeName(), blNode);
229 parent.addChild(blNode);
234 public Class<?> getGenericType(ParameterizedType type) {
235 Type[] typeArguments = type.getActualTypeArguments();
236 for (Type typeArgument : typeArguments) {
237 if (typeArgument instanceof ParameterizedType) {
238 ParameterizedType pType = (ParameterizedType) typeArgument;
239 return (Class<?>) pType.getRawType();
240 } else if (typeArgument instanceof Class) {
241 return (Class<?>) typeArgument;
247 public Class<?> getMethodReturnTypeFromGeneric(Method m) {
248 Type rType = m.getGenericReturnType();
249 if (rType instanceof ParameterizedType) {
250 return getGenericType((ParameterizedType) rType);
255 public List<String> getAllTableNames() {
256 List<String> names = new ArrayList<>();
257 for (XSQLBluePrintNode n : this.tableNameToBluePrint.values()) {
258 if (!n.isModule() && !n.getColumns().isEmpty()) {
259 names.add(n.getBluePrintNodeName());
266 public List<String> getInterfaceNames(XSQLBluePrintNode node) {
267 Set<XSQLBluePrintNode> children = node.getChildren();
268 List<String> names = new ArrayList<>();
269 for (XSQLBluePrintNode n : children) {
270 if (!n.isModule() && !n.getColumns().isEmpty()) {
271 names.add(n.toString());
273 names.addAll(getInterfaceNames(n));
279 public boolean allProceduresAreCallable() throws SQLException {
284 public boolean allTablesAreSelectable() throws SQLException {
289 public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
290 // TODO Auto-generated method stub
295 public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
296 // TODO Auto-generated method stub
301 public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
302 // TODO Auto-generated method stub
307 public boolean deletesAreDetected(int type) throws SQLException {
308 // TODO Auto-generated method stub
313 public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
314 // TODO Auto-generated method stub
319 public ResultSet getAttributes(String catalog, String schemaPattern,
320 String typeNamePattern, String attributeNamePattern)
321 throws SQLException {
322 // TODO Auto-generated method stub
327 public ResultSet getBestRowIdentifier(String catalog, String schema,
328 String table, int scope, boolean nullable) throws SQLException {
329 // TODO Auto-generated method stub
334 public ResultSet getCatalogs() throws SQLException {
335 // TODO Auto-generated method stub
340 public String getCatalogSeparator() throws SQLException {
341 // TODO Auto-generated method stub
346 public String getCatalogTerm() throws SQLException {
347 // TODO Auto-generated method stub
352 public ResultSet getClientInfoProperties() throws SQLException {
353 // TODO Auto-generated method stub
358 public ResultSet getColumnPrivileges(String catalog, String schema,
359 String table, String columnNamePattern) throws SQLException {
360 // TODO Auto-generated method stub
365 public ResultSet getColumns(String catalog, String schemaPattern,
366 String tableNamePattern, String columnNamePattern)
367 throws SQLException {
368 // TODO Auto-generated method stub
373 public Connection getConnection() throws SQLException {
374 // TODO Auto-generated method stub
379 public ResultSet getCrossReference(String parentCatalog,
380 String parentSchema, String parentTable, String foreignCatalog,
381 String foreignSchema, String foreignTable) throws SQLException {
382 // TODO Auto-generated method stub
387 public int getDatabaseMajorVersion() throws SQLException {
392 public int getDatabaseMinorVersion() throws SQLException {
393 // TODO Auto-generated method stub
398 public String getDatabaseProductName() throws SQLException {
399 return "OpenDayLight";
403 public String getDatabaseProductVersion() throws SQLException {
408 public int getDefaultTransactionIsolation() throws SQLException {
409 // TODO Auto-generated method stub
414 public int getDriverMajorVersion() {
415 // TODO Auto-generated method stub
420 public int getDriverMinorVersion() {
421 // TODO Auto-generated method stub
426 public String getDriverName() throws SQLException {
427 // TODO Auto-generated method stub
432 public String getDriverVersion() throws SQLException {
433 // TODO Auto-generated method stub
438 public ResultSet getExportedKeys(String catalog, String schema, String table)
439 throws SQLException {
440 // TODO Auto-generated method stub
445 public String getExtraNameCharacters() throws SQLException {
446 // TODO Auto-generated method stub
451 public ResultSet getFunctionColumns(String catalog, String schemaPattern,
452 String functionNamePattern, String columnNamePattern)
453 throws SQLException {
454 // TODO Auto-generated method stub
459 public ResultSet getFunctions(String catalog, String schemaPattern,
460 String functionNamePattern) throws SQLException {
461 // TODO Auto-generated method stub
466 public String getIdentifierQuoteString() throws SQLException {
467 // TODO Auto-generated method stub
472 public ResultSet getImportedKeys(String catalog, String schema, String table)
473 throws SQLException {
474 // TODO Auto-generated method stub
479 public ResultSet getIndexInfo(String catalog, String schema, String table,
480 boolean unique, boolean approximate) throws SQLException {
481 // TODO Auto-generated method stub
486 public int getJDBCMajorVersion() throws SQLException {
487 // TODO Auto-generated method stub
492 public int getJDBCMinorVersion() throws SQLException {
493 // TODO Auto-generated method stub
498 public int getMaxBinaryLiteralLength() throws SQLException {
499 // TODO Auto-generated method stub
504 public int getMaxCatalogNameLength() throws SQLException {
505 // TODO Auto-generated method stub
510 public int getMaxCharLiteralLength() throws SQLException {
511 // TODO Auto-generated method stub
516 public int getMaxColumnNameLength() throws SQLException {
517 // TODO Auto-generated method stub
522 public int getMaxColumnsInGroupBy() throws SQLException {
523 // TODO Auto-generated method stub
528 public int getMaxColumnsInIndex() throws SQLException {
529 // TODO Auto-generated method stub
534 public int getMaxColumnsInOrderBy() throws SQLException {
535 // TODO Auto-generated method stub
540 public int getMaxColumnsInSelect() throws SQLException {
541 // TODO Auto-generated method stub
546 public int getMaxColumnsInTable() throws SQLException {
547 // TODO Auto-generated method stub
552 public int getMaxConnections() throws SQLException {
553 // TODO Auto-generated method stub
558 public int getMaxCursorNameLength() throws SQLException {
559 // TODO Auto-generated method stub
564 public int getMaxIndexLength() throws SQLException {
565 // TODO Auto-generated method stub
570 public int getMaxProcedureNameLength() throws SQLException {
571 // TODO Auto-generated method stub
576 public int getMaxRowSize() throws SQLException {
577 // TODO Auto-generated method stub
582 public int getMaxSchemaNameLength() throws SQLException {
583 // TODO Auto-generated method stub
588 public int getMaxStatementLength() throws SQLException {
589 // TODO Auto-generated method stub
594 public int getMaxStatements() throws SQLException {
595 // TODO Auto-generated method stub
600 public int getMaxTableNameLength() throws SQLException {
601 // TODO Auto-generated method stub
606 public int getMaxTablesInSelect() throws SQLException {
607 // TODO Auto-generated method stub
612 public int getMaxUserNameLength() throws SQLException {
613 // TODO Auto-generated method stub
618 public String getNumericFunctions() throws SQLException {
619 // TODO Auto-generated method stub
624 public ResultSet getPrimaryKeys(String catalog, String schema, String table)
625 throws SQLException {
626 // TODO Auto-generated method stub
631 public ResultSet getProcedureColumns(String catalog, String schemaPattern,
632 String procedureNamePattern, String columnNamePattern)
633 throws SQLException {
634 // TODO Auto-generated method stub
639 public ResultSet getProcedures(String catalog, String schemaPattern,
640 String procedureNamePattern) throws SQLException {
641 // TODO Auto-generated method stub
646 public String getProcedureTerm() throws SQLException {
647 // TODO Auto-generated method stub
652 public int getResultSetHoldability() throws SQLException {
653 // TODO Auto-generated method stub
658 public RowIdLifetime getRowIdLifetime() throws SQLException {
659 // TODO Auto-generated method stub
664 public ResultSet getSchemas() throws SQLException {
665 // TODO Auto-generated method stub
670 public ResultSet getSchemas(String catalog, String schemaPattern)
671 throws SQLException {
672 // TODO Auto-generated method stub
677 public String getSchemaTerm() throws SQLException {
678 // TODO Auto-generated method stub
683 public String getSearchStringEscape() throws SQLException {
684 // TODO Auto-generated method stub
689 public String getSQLKeywords() throws SQLException {
690 // TODO Auto-generated method stub
695 public int getSQLStateType() throws SQLException {
696 // TODO Auto-generated method stub
701 public String getStringFunctions() throws SQLException {
702 // TODO Auto-generated method stub
707 public ResultSet getSuperTables(String catalog, String schemaPattern,
708 String tableNamePattern) throws SQLException {
709 // TODO Auto-generated method stub
714 public ResultSet getSuperTypes(String catalog, String schemaPattern,
715 String typeNamePattern) throws SQLException {
716 // TODO Auto-generated method stub
721 public String getSystemFunctions() throws SQLException {
722 // TODO Auto-generated method stub
727 public ResultSet getTablePrivileges(String catalog, String schemaPattern,
728 String tableNamePattern) throws SQLException {
729 // TODO Auto-generated method stub
734 public ResultSet getTables(String catalog, String schemaPattern,
735 String tableNamePattern, String[] types) throws SQLException {
736 return new TablesResultSet(this);
740 public ResultSet getTableTypes() throws SQLException {
741 // TODO Auto-generated method stub
746 public String getTimeDateFunctions() throws SQLException {
747 // TODO Auto-generated method stub
752 public ResultSet getTypeInfo() throws SQLException {
753 // TODO Auto-generated method stub
758 public ResultSet getUDTs(String catalog, String schemaPattern,
759 String typeNamePattern, int[] types) throws SQLException {
760 // TODO Auto-generated method stub
765 public String getURL() throws SQLException {
766 // TODO Auto-generated method stub
771 public String getUserName() throws SQLException {
772 // TODO Auto-generated method stub
777 public ResultSet getVersionColumns(String catalog, String schema,
778 String table) throws SQLException {
779 // TODO Auto-generated method stub
784 public boolean insertsAreDetected(int type) throws SQLException {
785 // TODO Auto-generated method stub
790 public boolean isCatalogAtStart() throws SQLException {
791 // TODO Auto-generated method stub
796 public boolean isReadOnly() throws SQLException {
797 // TODO Auto-generated method stub
802 public boolean locatorsUpdateCopy() throws SQLException {
803 // TODO Auto-generated method stub
808 public boolean nullPlusNonNullIsNull() throws SQLException {
809 // TODO Auto-generated method stub
814 public boolean nullsAreSortedAtEnd() throws SQLException {
815 // TODO Auto-generated method stub
820 public boolean nullsAreSortedAtStart() throws SQLException {
821 // TODO Auto-generated method stub
826 public boolean nullsAreSortedHigh() throws SQLException {
827 // TODO Auto-generated method stub
832 public boolean nullsAreSortedLow() throws SQLException {
833 // TODO Auto-generated method stub
838 public boolean othersDeletesAreVisible(int type) throws SQLException {
839 // TODO Auto-generated method stub
844 public boolean othersInsertsAreVisible(int type) throws SQLException {
845 // TODO Auto-generated method stub
850 public boolean othersUpdatesAreVisible(int type) throws SQLException {
851 // TODO Auto-generated method stub
856 public boolean ownDeletesAreVisible(int type) throws SQLException {
857 // TODO Auto-generated method stub
862 public boolean ownInsertsAreVisible(int type) throws SQLException {
863 // TODO Auto-generated method stub
868 public boolean ownUpdatesAreVisible(int type) throws SQLException {
869 // TODO Auto-generated method stub
874 public boolean storesLowerCaseIdentifiers() throws SQLException {
875 // TODO Auto-generated method stub
880 public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
881 // TODO Auto-generated method stub
886 public boolean storesMixedCaseIdentifiers() throws SQLException {
887 // TODO Auto-generated method stub
892 public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
893 // TODO Auto-generated method stub
898 public boolean storesUpperCaseIdentifiers() throws SQLException {
899 // TODO Auto-generated method stub
904 public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
905 // TODO Auto-generated method stub
910 public boolean supportsAlterTableWithAddColumn() throws SQLException {
911 // TODO Auto-generated method stub
916 public boolean supportsAlterTableWithDropColumn() throws SQLException {
917 // TODO Auto-generated method stub
922 public boolean supportsANSI92EntryLevelSQL() throws SQLException {
923 // TODO Auto-generated method stub
928 public boolean supportsANSI92FullSQL() throws SQLException {
929 // TODO Auto-generated method stub
934 public boolean supportsANSI92IntermediateSQL() throws SQLException {
935 // TODO Auto-generated method stub
940 public boolean supportsBatchUpdates() throws SQLException {
941 // TODO Auto-generated method stub
946 public boolean supportsCatalogsInDataManipulation() throws SQLException {
947 // TODO Auto-generated method stub
952 public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
953 // TODO Auto-generated method stub
958 public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
959 // TODO Auto-generated method stub
964 public boolean supportsCatalogsInProcedureCalls() throws SQLException {
965 // TODO Auto-generated method stub
970 public boolean supportsCatalogsInTableDefinitions() throws SQLException {
971 // TODO Auto-generated method stub
976 public boolean supportsColumnAliasing() throws SQLException {
977 // TODO Auto-generated method stub
982 public boolean supportsConvert() throws SQLException {
983 // TODO Auto-generated method stub
988 public boolean supportsConvert(int fromType, int toType)
989 throws SQLException {
990 // TODO Auto-generated method stub
995 public boolean supportsCoreSQLGrammar() throws SQLException {
996 // TODO Auto-generated method stub
1001 public boolean supportsCorrelatedSubqueries() throws SQLException {
1002 // TODO Auto-generated method stub
1007 public boolean supportsDataDefinitionAndDataManipulationTransactions()
1008 throws SQLException {
1009 // TODO Auto-generated method stub
1014 public boolean supportsDataManipulationTransactionsOnly()
1015 throws SQLException {
1016 // TODO Auto-generated method stub
1021 public boolean supportsDifferentTableCorrelationNames() throws SQLException {
1022 // TODO Auto-generated method stub
1027 public boolean supportsExpressionsInOrderBy() throws SQLException {
1028 // TODO Auto-generated method stub
1033 public boolean supportsExtendedSQLGrammar() throws SQLException {
1034 // TODO Auto-generated method stub
1039 public boolean supportsFullOuterJoins() throws SQLException {
1040 // TODO Auto-generated method stub
1045 public boolean supportsGetGeneratedKeys() throws SQLException {
1046 // TODO Auto-generated method stub
1051 public boolean supportsGroupBy() throws SQLException {
1052 // TODO Auto-generated method stub
1057 public boolean supportsGroupByBeyondSelect() throws SQLException {
1058 // TODO Auto-generated method stub
1063 public boolean supportsGroupByUnrelated() throws SQLException {
1064 // TODO Auto-generated method stub
1069 public boolean supportsIntegrityEnhancementFacility() throws SQLException {
1070 // TODO Auto-generated method stub
1075 public boolean supportsLikeEscapeClause() throws SQLException {
1076 // TODO Auto-generated method stub
1081 public boolean supportsLimitedOuterJoins() throws SQLException {
1082 // TODO Auto-generated method stub
1087 public boolean supportsMinimumSQLGrammar() throws SQLException {
1088 // TODO Auto-generated method stub
1093 public boolean supportsMixedCaseIdentifiers() throws SQLException {
1094 // TODO Auto-generated method stub
1099 public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
1100 // TODO Auto-generated method stub
1105 public boolean supportsMultipleOpenResults() throws SQLException {
1106 // TODO Auto-generated method stub
1111 public boolean supportsMultipleResultSets() throws SQLException {
1112 // TODO Auto-generated method stub
1117 public boolean supportsMultipleTransactions() throws SQLException {
1118 // TODO Auto-generated method stub
1123 public boolean supportsNamedParameters() throws SQLException {
1124 // TODO Auto-generated method stub
1129 public boolean supportsNonNullableColumns() throws SQLException {
1130 // TODO Auto-generated method stub
1135 public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
1136 // TODO Auto-generated method stub
1141 public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
1142 // TODO Auto-generated method stub
1147 public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
1148 // TODO Auto-generated method stub
1153 public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
1154 // TODO Auto-generated method stub
1159 public boolean supportsOrderByUnrelated() throws SQLException {
1160 // TODO Auto-generated method stub
1165 public boolean supportsOuterJoins() throws SQLException {
1166 // TODO Auto-generated method stub
1171 public boolean supportsPositionedDelete() throws SQLException {
1172 // TODO Auto-generated method stub
1177 public boolean supportsPositionedUpdate() throws SQLException {
1178 // TODO Auto-generated method stub
1183 public boolean supportsResultSetConcurrency(int type, int concurrency)
1184 throws SQLException {
1185 // TODO Auto-generated method stub
1190 public boolean supportsResultSetHoldability(int holdability)
1191 throws SQLException {
1192 // TODO Auto-generated method stub
1197 public boolean supportsResultSetType(int type) throws SQLException {
1198 // TODO Auto-generated method stub
1203 public boolean supportsSavepoints() throws SQLException {
1204 // TODO Auto-generated method stub
1209 public boolean supportsSchemasInDataManipulation() throws SQLException {
1210 // TODO Auto-generated method stub
1215 public boolean supportsSchemasInIndexDefinitions() throws SQLException {
1216 // TODO Auto-generated method stub
1221 public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
1222 // TODO Auto-generated method stub
1227 public boolean supportsSchemasInProcedureCalls() throws SQLException {
1228 // TODO Auto-generated method stub
1233 public boolean supportsSchemasInTableDefinitions() throws SQLException {
1234 // TODO Auto-generated method stub
1239 public boolean supportsSelectForUpdate() throws SQLException {
1240 // TODO Auto-generated method stub
1245 public boolean supportsStatementPooling() throws SQLException {
1246 // TODO Auto-generated method stub
1251 public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
1252 // TODO Auto-generated method stub
1257 public boolean supportsStoredProcedures() throws SQLException {
1258 // TODO Auto-generated method stub
1263 public boolean supportsSubqueriesInComparisons() throws SQLException {
1264 // TODO Auto-generated method stub
1269 public boolean supportsSubqueriesInExists() throws SQLException {
1270 // TODO Auto-generated method stub
1275 public boolean supportsSubqueriesInIns() throws SQLException {
1276 // TODO Auto-generated method stub
1281 public boolean supportsSubqueriesInQuantifieds() throws SQLException {
1282 // TODO Auto-generated method stub
1287 public boolean supportsTableCorrelationNames() throws SQLException {
1288 // TODO Auto-generated method stub
1293 public boolean supportsTransactionIsolationLevel(int level)
1294 throws SQLException {
1295 // TODO Auto-generated method stub
1300 public boolean supportsTransactions() throws SQLException {
1301 // TODO Auto-generated method stub
1306 public boolean supportsUnion() throws SQLException {
1307 // TODO Auto-generated method stub
1312 public boolean supportsUnionAll() throws SQLException {
1313 // TODO Auto-generated method stub
1318 public boolean updatesAreDetected(int type) throws SQLException {
1319 // TODO Auto-generated method stub
1324 public boolean usesLocalFilePerTable() throws SQLException {
1325 // TODO Auto-generated method stub
1330 public boolean usesLocalFiles() throws SQLException {
1331 // TODO Auto-generated method stub
1336 public boolean isWrapperFor(Class<?> iface) throws SQLException {
1337 // TODO Auto-generated method stub
1342 public <T> T unwrap(Class<T> iface) throws SQLException {
1343 // TODO Auto-generated method stub
1348 public ResultSet getPseudoColumns(String catalog, String schemaPattern,
1349 String tableNamePattern, String columnNamePattern)
1350 throws SQLException {
1351 // TODO Auto-generated method stub
1356 public boolean generatedKeyAlwaysReturned() throws SQLException {
1357 // TODO Auto-generated method stub