1 package org.opendaylight.controller.md.sal.dom.xsql;
3 import java.io.DataInputStream;
4 import java.io.DataOutputStream;
5 import java.io.FileOutputStream;
6 import java.io.InputStream;
7 import java.io.ObjectInputStream;
8 import java.io.ObjectOutputStream;
9 import java.io.Serializable;
10 import java.lang.reflect.InvocationHandler;
11 import java.lang.reflect.Method;
12 import java.lang.reflect.ParameterizedType;
13 import java.lang.reflect.Proxy;
14 import java.lang.reflect.Type;
15 import java.sql.Connection;
16 import java.sql.DatabaseMetaData;
17 import java.sql.ResultSet;
18 import java.sql.RowIdLifetime;
19 import java.sql.SQLException;
20 import java.util.ArrayList;
21 import java.util.HashMap;
22 import java.util.HashSet;
23 import java.util.List;
27 public class XSQLBluePrint implements DatabaseMetaData, Serializable {
29 private static final long serialVersionUID = 1L;
31 public static final String CACHE_FILE_NAME = "./BluePrintCache.dat";
33 private Map<String, XSQLBluePrintNode> tableNameToBluePrint = new HashMap<String, XSQLBluePrintNode>();
34 private Map<String, Map<String, XSQLBluePrintNode>> odlNameToBluePrint = new HashMap<String, Map<String, XSQLBluePrintNode>>();
36 private boolean cacheLoadedSuccessfuly = false;
37 private DatabaseMetaData myProxy = null;
39 public static final String replaceAll(String source, String toReplace,
41 int index = source.indexOf(toReplace);
43 StringBuffer result = new StringBuffer();
45 result.append(source.substring(index2, index));
46 result.append(withThis);
47 index2 = index + toReplace.length();
48 index = source.indexOf(toReplace, index2);
50 if (index2 < source.length()) {
51 result.append(source.substring(index2));
53 return result.toString();
56 public XSQLBluePrint() {
59 public static void save(XSQLBluePrint bp) {
60 ObjectOutputStream out = null;
62 out = new ObjectOutputStream(new DataOutputStream(
63 new FileOutputStream(CACHE_FILE_NAME)));
65 } catch (Exception err) {
66 err.printStackTrace();
70 } catch (Exception err) {
75 public static XSQLBluePrint load(InputStream ins) {
76 ObjectInputStream in = null;
78 in = new ObjectInputStream(new DataInputStream(ins));
79 return (XSQLBluePrint) in.readObject();
80 } catch (Exception err) {
81 err.printStackTrace();
85 } catch (Exception err) {
91 private class NQLBluePrintProxy implements InvocationHandler {
92 public Object invoke(Object proxy, Method method, Object[] args)
94 System.out.println("Method " + method);
95 return method.invoke(XSQLBluePrint.this, args);
99 public DatabaseMetaData getProxy() {
100 if (myProxy == null) {
102 myProxy = (DatabaseMetaData) Proxy.newProxyInstance(getClass()
104 new Class[] { DatabaseMetaData.class },
105 new NQLBluePrintProxy());
106 } catch (Exception err) {
107 err.printStackTrace();
113 public XSQLBluePrintNode[] getBluePrintNodeByODLTableName(
114 String odlTableName) {
115 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint
120 return map.values().toArray(new XSQLBluePrintNode[map.size()]);
123 public XSQLBluePrintNode getBluePrintNodeByTableName(String tableName) {
124 if (tableName.indexOf(".") != -1) {
125 tableName = tableName.substring(tableName.lastIndexOf(".") + 1);
128 XSQLBluePrintNode node = tableNameToBluePrint.get(tableName);
134 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
135 if (n.getBluePrintNodeName().endsWith(tableName)) {
140 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
141 if (n.getBluePrintNodeName().toLowerCase()
142 .endsWith(tableName.toLowerCase())) {
147 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
148 if (n.getBluePrintNodeName().toLowerCase()
149 .equals(tableName.toLowerCase())) {
154 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
155 if (n.getBluePrintNodeName().toLowerCase()
156 .indexOf(tableName.toLowerCase()) != -1) {
163 public boolean isCacheLoaded() {
164 return cacheLoadedSuccessfuly;
167 private static Map<Class<?>, Set<Class<?>>> superClassMap = new HashMap<>();
169 public static Set<Class<?>> getInheritance(Class<?> myObjectClass,
170 Class<?> returnType) {
172 if (returnType != null && myObjectClass.equals(returnType)) {
173 return new HashSet<>();
175 Set<Class<?>> result = superClassMap.get(myObjectClass);
176 if (result != null) {
179 result = new HashSet<>();
180 superClassMap.put(myObjectClass, result);
181 if (returnType != null) {
182 if (!returnType.equals(myObjectClass)) {
183 Class<?> mySuperClass = myObjectClass.getSuperclass();
184 while (mySuperClass != null) {
185 result.add(mySuperClass);
186 mySuperClass = mySuperClass.getSuperclass();
188 result.addAll(collectInterfaces(myObjectClass));
194 public static Set<Class<?>> collectInterfaces(Class<?> cls) {
195 Set<Class<?>> result = new HashSet<>();
196 Class<?> myInterfaces[] = cls.getInterfaces();
197 if (myInterfaces != null) {
198 for (Class<?> in : myInterfaces) {
200 result.addAll(collectInterfaces(in));
206 public void addToBluePrintCache(XSQLBluePrintNode blNode) {
207 this.tableNameToBluePrint.put(blNode.getBluePrintNodeName(), blNode);
208 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint.get(blNode
211 map = new HashMap<String, XSQLBluePrintNode>();
212 this.odlNameToBluePrint.put(blNode.getODLTableName(), map);
214 map.put(blNode.getBluePrintNodeName(), blNode);
217 public Class<?> getGenericType(ParameterizedType type) {
218 Type[] typeArguments = type.getActualTypeArguments();
219 for (Type typeArgument : typeArguments) {
220 if (typeArgument instanceof ParameterizedType) {
221 ParameterizedType pType = (ParameterizedType) typeArgument;
222 return (Class<?>) pType.getRawType();
223 } else if (typeArgument instanceof Class) {
224 return (Class<?>) typeArgument;
230 public Class<?> getMethodReturnTypeFromGeneric(Method m) {
231 Type rType = m.getGenericReturnType();
232 if (rType instanceof ParameterizedType) {
233 return getGenericType((ParameterizedType) rType);
238 public List<String> getAllTableNames() {
239 List<String> names = new ArrayList<String>();
240 for (XSQLBluePrintNode n : this.tableNameToBluePrint.values()) {
241 if (!n.isModule() && !n.getColumns().isEmpty()) {
242 names.add(n.getBluePrintNodeName());
249 public List<String> getInterfaceNames(XSQLBluePrintNode node) {
250 Set<XSQLBluePrintNode> children = node.getChildren();
251 List<String> names = new ArrayList<String>();
252 for (XSQLBluePrintNode n : children) {
253 if (!n.isModule() && !n.getColumns().isEmpty()) {
254 names.add(n.toString());
256 names.addAll(getInterfaceNames(n));
262 public boolean allProceduresAreCallable() throws SQLException {
267 public boolean allTablesAreSelectable() throws SQLException {
272 public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
273 // TODO Auto-generated method stub
278 public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
279 // TODO Auto-generated method stub
284 public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
285 // TODO Auto-generated method stub
290 public boolean deletesAreDetected(int type) throws SQLException {
291 // TODO Auto-generated method stub
296 public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
297 // TODO Auto-generated method stub
302 public ResultSet getAttributes(String catalog, String schemaPattern,
303 String typeNamePattern, String attributeNamePattern)
304 throws SQLException {
305 // TODO Auto-generated method stub
310 public ResultSet getBestRowIdentifier(String catalog, String schema,
311 String table, int scope, boolean nullable) throws SQLException {
312 // TODO Auto-generated method stub
317 public ResultSet getCatalogs() throws SQLException {
318 // TODO Auto-generated method stub
323 public String getCatalogSeparator() throws SQLException {
324 // TODO Auto-generated method stub
329 public String getCatalogTerm() throws SQLException {
330 // TODO Auto-generated method stub
335 public ResultSet getClientInfoProperties() throws SQLException {
336 // TODO Auto-generated method stub
341 public ResultSet getColumnPrivileges(String catalog, String schema,
342 String table, String columnNamePattern) throws SQLException {
343 // TODO Auto-generated method stub
348 public ResultSet getColumns(String catalog, String schemaPattern,
349 String tableNamePattern, String columnNamePattern)
350 throws SQLException {
351 // TODO Auto-generated method stub
356 public Connection getConnection() throws SQLException {
357 // TODO Auto-generated method stub
362 public ResultSet getCrossReference(String parentCatalog,
363 String parentSchema, String parentTable, String foreignCatalog,
364 String foreignSchema, String foreignTable) throws SQLException {
365 // TODO Auto-generated method stub
370 public int getDatabaseMajorVersion() throws SQLException {
375 public int getDatabaseMinorVersion() throws SQLException {
376 // TODO Auto-generated method stub
381 public String getDatabaseProductName() throws SQLException {
382 return "OpenDayLight";
386 public String getDatabaseProductVersion() throws SQLException {
391 public int getDefaultTransactionIsolation() throws SQLException {
392 // TODO Auto-generated method stub
397 public int getDriverMajorVersion() {
398 // TODO Auto-generated method stub
403 public int getDriverMinorVersion() {
404 // TODO Auto-generated method stub
409 public String getDriverName() throws SQLException {
410 // TODO Auto-generated method stub
415 public String getDriverVersion() throws SQLException {
416 // TODO Auto-generated method stub
421 public ResultSet getExportedKeys(String catalog, String schema, String table)
422 throws SQLException {
423 // TODO Auto-generated method stub
428 public String getExtraNameCharacters() throws SQLException {
429 // TODO Auto-generated method stub
434 public ResultSet getFunctionColumns(String catalog, String schemaPattern,
435 String functionNamePattern, String columnNamePattern)
436 throws SQLException {
437 // TODO Auto-generated method stub
442 public ResultSet getFunctions(String catalog, String schemaPattern,
443 String functionNamePattern) throws SQLException {
444 // TODO Auto-generated method stub
449 public String getIdentifierQuoteString() throws SQLException {
450 // TODO Auto-generated method stub
455 public ResultSet getImportedKeys(String catalog, String schema, String table)
456 throws SQLException {
457 // TODO Auto-generated method stub
462 public ResultSet getIndexInfo(String catalog, String schema, String table,
463 boolean unique, boolean approximate) throws SQLException {
464 // TODO Auto-generated method stub
469 public int getJDBCMajorVersion() throws SQLException {
470 // TODO Auto-generated method stub
475 public int getJDBCMinorVersion() throws SQLException {
476 // TODO Auto-generated method stub
481 public int getMaxBinaryLiteralLength() throws SQLException {
482 // TODO Auto-generated method stub
487 public int getMaxCatalogNameLength() throws SQLException {
488 // TODO Auto-generated method stub
493 public int getMaxCharLiteralLength() throws SQLException {
494 // TODO Auto-generated method stub
499 public int getMaxColumnNameLength() throws SQLException {
500 // TODO Auto-generated method stub
505 public int getMaxColumnsInGroupBy() throws SQLException {
506 // TODO Auto-generated method stub
511 public int getMaxColumnsInIndex() throws SQLException {
512 // TODO Auto-generated method stub
517 public int getMaxColumnsInOrderBy() throws SQLException {
518 // TODO Auto-generated method stub
523 public int getMaxColumnsInSelect() throws SQLException {
524 // TODO Auto-generated method stub
529 public int getMaxColumnsInTable() throws SQLException {
530 // TODO Auto-generated method stub
535 public int getMaxConnections() throws SQLException {
536 // TODO Auto-generated method stub
541 public int getMaxCursorNameLength() throws SQLException {
542 // TODO Auto-generated method stub
547 public int getMaxIndexLength() throws SQLException {
548 // TODO Auto-generated method stub
553 public int getMaxProcedureNameLength() throws SQLException {
554 // TODO Auto-generated method stub
559 public int getMaxRowSize() throws SQLException {
560 // TODO Auto-generated method stub
565 public int getMaxSchemaNameLength() throws SQLException {
566 // TODO Auto-generated method stub
571 public int getMaxStatementLength() throws SQLException {
572 // TODO Auto-generated method stub
577 public int getMaxStatements() throws SQLException {
578 // TODO Auto-generated method stub
583 public int getMaxTableNameLength() throws SQLException {
584 // TODO Auto-generated method stub
589 public int getMaxTablesInSelect() throws SQLException {
590 // TODO Auto-generated method stub
595 public int getMaxUserNameLength() throws SQLException {
596 // TODO Auto-generated method stub
601 public String getNumericFunctions() throws SQLException {
602 // TODO Auto-generated method stub
607 public ResultSet getPrimaryKeys(String catalog, String schema, String table)
608 throws SQLException {
609 // TODO Auto-generated method stub
614 public ResultSet getProcedureColumns(String catalog, String schemaPattern,
615 String procedureNamePattern, String columnNamePattern)
616 throws SQLException {
617 // TODO Auto-generated method stub
622 public ResultSet getProcedures(String catalog, String schemaPattern,
623 String procedureNamePattern) throws SQLException {
624 // TODO Auto-generated method stub
629 public String getProcedureTerm() throws SQLException {
630 // TODO Auto-generated method stub
635 public int getResultSetHoldability() throws SQLException {
636 // TODO Auto-generated method stub
641 public RowIdLifetime getRowIdLifetime() throws SQLException {
642 // TODO Auto-generated method stub
647 public ResultSet getSchemas() throws SQLException {
648 // TODO Auto-generated method stub
653 public ResultSet getSchemas(String catalog, String schemaPattern)
654 throws SQLException {
655 // TODO Auto-generated method stub
660 public String getSchemaTerm() throws SQLException {
661 // TODO Auto-generated method stub
666 public String getSearchStringEscape() throws SQLException {
667 // TODO Auto-generated method stub
672 public String getSQLKeywords() throws SQLException {
673 // TODO Auto-generated method stub
678 public int getSQLStateType() throws SQLException {
679 // TODO Auto-generated method stub
684 public String getStringFunctions() throws SQLException {
685 // TODO Auto-generated method stub
690 public ResultSet getSuperTables(String catalog, String schemaPattern,
691 String tableNamePattern) throws SQLException {
692 // TODO Auto-generated method stub
697 public ResultSet getSuperTypes(String catalog, String schemaPattern,
698 String typeNamePattern) throws SQLException {
699 // TODO Auto-generated method stub
704 public String getSystemFunctions() throws SQLException {
705 // TODO Auto-generated method stub
710 public ResultSet getTablePrivileges(String catalog, String schemaPattern,
711 String tableNamePattern) throws SQLException {
712 // TODO Auto-generated method stub
717 public ResultSet getTables(String catalog, String schemaPattern,
718 String tableNamePattern, String[] types) throws SQLException {
719 return new TablesResultSet(this);
723 public ResultSet getTableTypes() throws SQLException {
724 // TODO Auto-generated method stub
729 public String getTimeDateFunctions() throws SQLException {
730 // TODO Auto-generated method stub
735 public ResultSet getTypeInfo() throws SQLException {
736 // TODO Auto-generated method stub
741 public ResultSet getUDTs(String catalog, String schemaPattern,
742 String typeNamePattern, int[] types) throws SQLException {
743 // TODO Auto-generated method stub
748 public String getURL() throws SQLException {
749 // TODO Auto-generated method stub
754 public String getUserName() throws SQLException {
755 // TODO Auto-generated method stub
760 public ResultSet getVersionColumns(String catalog, String schema,
761 String table) throws SQLException {
762 // TODO Auto-generated method stub
767 public boolean insertsAreDetected(int type) throws SQLException {
768 // TODO Auto-generated method stub
773 public boolean isCatalogAtStart() throws SQLException {
774 // TODO Auto-generated method stub
779 public boolean isReadOnly() throws SQLException {
780 // TODO Auto-generated method stub
785 public boolean locatorsUpdateCopy() throws SQLException {
786 // TODO Auto-generated method stub
791 public boolean nullPlusNonNullIsNull() throws SQLException {
792 // TODO Auto-generated method stub
797 public boolean nullsAreSortedAtEnd() throws SQLException {
798 // TODO Auto-generated method stub
803 public boolean nullsAreSortedAtStart() throws SQLException {
804 // TODO Auto-generated method stub
809 public boolean nullsAreSortedHigh() throws SQLException {
810 // TODO Auto-generated method stub
815 public boolean nullsAreSortedLow() throws SQLException {
816 // TODO Auto-generated method stub
821 public boolean othersDeletesAreVisible(int type) throws SQLException {
822 // TODO Auto-generated method stub
827 public boolean othersInsertsAreVisible(int type) throws SQLException {
828 // TODO Auto-generated method stub
833 public boolean othersUpdatesAreVisible(int type) throws SQLException {
834 // TODO Auto-generated method stub
839 public boolean ownDeletesAreVisible(int type) throws SQLException {
840 // TODO Auto-generated method stub
845 public boolean ownInsertsAreVisible(int type) throws SQLException {
846 // TODO Auto-generated method stub
851 public boolean ownUpdatesAreVisible(int type) throws SQLException {
852 // TODO Auto-generated method stub
857 public boolean storesLowerCaseIdentifiers() throws SQLException {
858 // TODO Auto-generated method stub
863 public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
864 // TODO Auto-generated method stub
869 public boolean storesMixedCaseIdentifiers() throws SQLException {
870 // TODO Auto-generated method stub
875 public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
876 // TODO Auto-generated method stub
881 public boolean storesUpperCaseIdentifiers() throws SQLException {
882 // TODO Auto-generated method stub
887 public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
888 // TODO Auto-generated method stub
893 public boolean supportsAlterTableWithAddColumn() throws SQLException {
894 // TODO Auto-generated method stub
899 public boolean supportsAlterTableWithDropColumn() throws SQLException {
900 // TODO Auto-generated method stub
905 public boolean supportsANSI92EntryLevelSQL() throws SQLException {
906 // TODO Auto-generated method stub
911 public boolean supportsANSI92FullSQL() throws SQLException {
912 // TODO Auto-generated method stub
917 public boolean supportsANSI92IntermediateSQL() throws SQLException {
918 // TODO Auto-generated method stub
923 public boolean supportsBatchUpdates() throws SQLException {
924 // TODO Auto-generated method stub
929 public boolean supportsCatalogsInDataManipulation() throws SQLException {
930 // TODO Auto-generated method stub
935 public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
936 // TODO Auto-generated method stub
941 public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
942 // TODO Auto-generated method stub
947 public boolean supportsCatalogsInProcedureCalls() throws SQLException {
948 // TODO Auto-generated method stub
953 public boolean supportsCatalogsInTableDefinitions() throws SQLException {
954 // TODO Auto-generated method stub
959 public boolean supportsColumnAliasing() throws SQLException {
960 // TODO Auto-generated method stub
965 public boolean supportsConvert() throws SQLException {
966 // TODO Auto-generated method stub
971 public boolean supportsConvert(int fromType, int toType)
972 throws SQLException {
973 // TODO Auto-generated method stub
978 public boolean supportsCoreSQLGrammar() throws SQLException {
979 // TODO Auto-generated method stub
984 public boolean supportsCorrelatedSubqueries() throws SQLException {
985 // TODO Auto-generated method stub
990 public boolean supportsDataDefinitionAndDataManipulationTransactions()
991 throws SQLException {
992 // TODO Auto-generated method stub
997 public boolean supportsDataManipulationTransactionsOnly()
998 throws SQLException {
999 // TODO Auto-generated method stub
1004 public boolean supportsDifferentTableCorrelationNames() throws SQLException {
1005 // TODO Auto-generated method stub
1010 public boolean supportsExpressionsInOrderBy() throws SQLException {
1011 // TODO Auto-generated method stub
1016 public boolean supportsExtendedSQLGrammar() throws SQLException {
1017 // TODO Auto-generated method stub
1022 public boolean supportsFullOuterJoins() throws SQLException {
1023 // TODO Auto-generated method stub
1028 public boolean supportsGetGeneratedKeys() throws SQLException {
1029 // TODO Auto-generated method stub
1034 public boolean supportsGroupBy() throws SQLException {
1035 // TODO Auto-generated method stub
1040 public boolean supportsGroupByBeyondSelect() throws SQLException {
1041 // TODO Auto-generated method stub
1046 public boolean supportsGroupByUnrelated() throws SQLException {
1047 // TODO Auto-generated method stub
1052 public boolean supportsIntegrityEnhancementFacility() throws SQLException {
1053 // TODO Auto-generated method stub
1058 public boolean supportsLikeEscapeClause() throws SQLException {
1059 // TODO Auto-generated method stub
1064 public boolean supportsLimitedOuterJoins() throws SQLException {
1065 // TODO Auto-generated method stub
1070 public boolean supportsMinimumSQLGrammar() throws SQLException {
1071 // TODO Auto-generated method stub
1076 public boolean supportsMixedCaseIdentifiers() throws SQLException {
1077 // TODO Auto-generated method stub
1082 public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
1083 // TODO Auto-generated method stub
1088 public boolean supportsMultipleOpenResults() throws SQLException {
1089 // TODO Auto-generated method stub
1094 public boolean supportsMultipleResultSets() throws SQLException {
1095 // TODO Auto-generated method stub
1100 public boolean supportsMultipleTransactions() throws SQLException {
1101 // TODO Auto-generated method stub
1106 public boolean supportsNamedParameters() throws SQLException {
1107 // TODO Auto-generated method stub
1112 public boolean supportsNonNullableColumns() throws SQLException {
1113 // TODO Auto-generated method stub
1118 public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
1119 // TODO Auto-generated method stub
1124 public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
1125 // TODO Auto-generated method stub
1130 public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
1131 // TODO Auto-generated method stub
1136 public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
1137 // TODO Auto-generated method stub
1142 public boolean supportsOrderByUnrelated() throws SQLException {
1143 // TODO Auto-generated method stub
1148 public boolean supportsOuterJoins() throws SQLException {
1149 // TODO Auto-generated method stub
1154 public boolean supportsPositionedDelete() throws SQLException {
1155 // TODO Auto-generated method stub
1160 public boolean supportsPositionedUpdate() throws SQLException {
1161 // TODO Auto-generated method stub
1166 public boolean supportsResultSetConcurrency(int type, int concurrency)
1167 throws SQLException {
1168 // TODO Auto-generated method stub
1173 public boolean supportsResultSetHoldability(int holdability)
1174 throws SQLException {
1175 // TODO Auto-generated method stub
1180 public boolean supportsResultSetType(int type) throws SQLException {
1181 // TODO Auto-generated method stub
1186 public boolean supportsSavepoints() throws SQLException {
1187 // TODO Auto-generated method stub
1192 public boolean supportsSchemasInDataManipulation() throws SQLException {
1193 // TODO Auto-generated method stub
1198 public boolean supportsSchemasInIndexDefinitions() throws SQLException {
1199 // TODO Auto-generated method stub
1204 public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
1205 // TODO Auto-generated method stub
1210 public boolean supportsSchemasInProcedureCalls() throws SQLException {
1211 // TODO Auto-generated method stub
1216 public boolean supportsSchemasInTableDefinitions() throws SQLException {
1217 // TODO Auto-generated method stub
1222 public boolean supportsSelectForUpdate() throws SQLException {
1223 // TODO Auto-generated method stub
1228 public boolean supportsStatementPooling() throws SQLException {
1229 // TODO Auto-generated method stub
1234 public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
1235 // TODO Auto-generated method stub
1240 public boolean supportsStoredProcedures() throws SQLException {
1241 // TODO Auto-generated method stub
1246 public boolean supportsSubqueriesInComparisons() throws SQLException {
1247 // TODO Auto-generated method stub
1252 public boolean supportsSubqueriesInExists() throws SQLException {
1253 // TODO Auto-generated method stub
1258 public boolean supportsSubqueriesInIns() throws SQLException {
1259 // TODO Auto-generated method stub
1264 public boolean supportsSubqueriesInQuantifieds() throws SQLException {
1265 // TODO Auto-generated method stub
1270 public boolean supportsTableCorrelationNames() throws SQLException {
1271 // TODO Auto-generated method stub
1276 public boolean supportsTransactionIsolationLevel(int level)
1277 throws SQLException {
1278 // TODO Auto-generated method stub
1283 public boolean supportsTransactions() throws SQLException {
1284 // TODO Auto-generated method stub
1289 public boolean supportsUnion() throws SQLException {
1290 // TODO Auto-generated method stub
1295 public boolean supportsUnionAll() throws SQLException {
1296 // TODO Auto-generated method stub
1301 public boolean updatesAreDetected(int type) throws SQLException {
1302 // TODO Auto-generated method stub
1307 public boolean usesLocalFilePerTable() throws SQLException {
1308 // TODO Auto-generated method stub
1313 public boolean usesLocalFiles() throws SQLException {
1314 // TODO Auto-generated method stub
1319 public boolean isWrapperFor(Class<?> iface) throws SQLException {
1320 // TODO Auto-generated method stub
1325 public <T> T unwrap(Class<T> iface) throws SQLException {
1326 // TODO Auto-generated method stub
1331 public ResultSet getPseudoColumns(String catalog, String schemaPattern,
1332 String tableNamePattern, String columnNamePattern)
1333 throws SQLException {
1334 // TODO Auto-generated method stub
1339 public boolean generatedKeyAlwaysReturned() throws SQLException {
1340 // TODO Auto-generated method stub