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
119 return map.values().toArray(new XSQLBluePrintNode[map.size()]);
122 public XSQLBluePrintNode getBluePrintNodeByTableName(String tableName) {
123 if (tableName.indexOf(".") != -1) {
124 tableName = tableName.substring(tableName.lastIndexOf(".") + 1);
127 XSQLBluePrintNode node = tableNameToBluePrint.get(tableName);
133 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
134 if (n.getBluePrintNodeName().endsWith(tableName)) {
139 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
140 if (n.getBluePrintNodeName().toLowerCase()
141 .endsWith(tableName.toLowerCase())) {
146 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
147 if (n.getBluePrintNodeName().toLowerCase()
148 .equals(tableName.toLowerCase())) {
153 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
154 if (n.getBluePrintNodeName().toLowerCase()
155 .indexOf(tableName.toLowerCase()) != -1) {
162 public boolean isCacheLoaded() {
163 return cacheLoadedSuccessfuly;
166 private static Map<Class<?>, Set<Class<?>>> superClassMap = new HashMap<>();
168 public static Set<Class<?>> getInheritance(Class<?> myObjectClass,
169 Class<?> returnType) {
171 if (returnType != null && myObjectClass.equals(returnType)) {
172 return new HashSet<>();
174 Set<Class<?>> result = superClassMap.get(myObjectClass);
175 if (result != null) {
178 result = new HashSet<>();
179 superClassMap.put(myObjectClass, result);
180 if (returnType != null) {
181 if (!returnType.equals(myObjectClass)) {
182 Class<?> mySuperClass = myObjectClass.getSuperclass();
183 while (mySuperClass != null) {
184 result.add(mySuperClass);
185 mySuperClass = mySuperClass.getSuperclass();
187 result.addAll(collectInterfaces(myObjectClass));
193 public static Set<Class<?>> collectInterfaces(Class<?> cls) {
194 Set<Class<?>> result = new HashSet<>();
195 Class<?> myInterfaces[] = cls.getInterfaces();
196 if (myInterfaces != null) {
197 for (Class<?> in : myInterfaces) {
199 result.addAll(collectInterfaces(in));
205 public void addToBluePrintCache(XSQLBluePrintNode blNode) {
206 this.tableNameToBluePrint.put(blNode.getBluePrintNodeName(), blNode);
207 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint.get(blNode
210 map = new HashMap<String, XSQLBluePrintNode>();
211 this.odlNameToBluePrint.put(blNode.getODLTableName(), map);
213 map.put(blNode.getBluePrintNodeName(), blNode);
216 public Class<?> getGenericType(ParameterizedType type) {
217 Type[] typeArguments = type.getActualTypeArguments();
218 for (Type typeArgument : typeArguments) {
219 if (typeArgument instanceof ParameterizedType) {
220 ParameterizedType pType = (ParameterizedType) typeArgument;
221 return (Class<?>) pType.getRawType();
222 } else if (typeArgument instanceof Class) {
223 return (Class<?>) typeArgument;
229 public Class<?> getMethodReturnTypeFromGeneric(Method m) {
230 Type rType = m.getGenericReturnType();
231 if (rType instanceof ParameterizedType) {
232 return getGenericType((ParameterizedType) rType);
237 public List<String> getAllTableNames() {
238 List<String> names = new ArrayList<String>();
239 for (XSQLBluePrintNode n : this.tableNameToBluePrint.values()) {
240 if (!n.isModule() && !n.getColumns().isEmpty()) {
241 names.add(n.getBluePrintNodeName());
248 public List<String> getInterfaceNames(XSQLBluePrintNode node) {
249 Set<XSQLBluePrintNode> children = node.getChildren();
250 List<String> names = new ArrayList<String>();
251 for (XSQLBluePrintNode n : children) {
252 if (!n.isModule() && !n.getColumns().isEmpty()) {
253 names.add(n.toString());
255 names.addAll(getInterfaceNames(n));
261 public boolean allProceduresAreCallable() throws SQLException {
266 public boolean allTablesAreSelectable() throws SQLException {
271 public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
272 // TODO Auto-generated method stub
277 public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
278 // TODO Auto-generated method stub
283 public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
284 // TODO Auto-generated method stub
289 public boolean deletesAreDetected(int type) throws SQLException {
290 // TODO Auto-generated method stub
295 public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
296 // TODO Auto-generated method stub
301 public ResultSet getAttributes(String catalog, String schemaPattern,
302 String typeNamePattern, String attributeNamePattern)
303 throws SQLException {
304 // TODO Auto-generated method stub
309 public ResultSet getBestRowIdentifier(String catalog, String schema,
310 String table, int scope, boolean nullable) throws SQLException {
311 // TODO Auto-generated method stub
316 public ResultSet getCatalogs() throws SQLException {
317 // TODO Auto-generated method stub
322 public String getCatalogSeparator() throws SQLException {
323 // TODO Auto-generated method stub
328 public String getCatalogTerm() throws SQLException {
329 // TODO Auto-generated method stub
334 public ResultSet getClientInfoProperties() throws SQLException {
335 // TODO Auto-generated method stub
340 public ResultSet getColumnPrivileges(String catalog, String schema,
341 String table, String columnNamePattern) throws SQLException {
342 // TODO Auto-generated method stub
347 public ResultSet getColumns(String catalog, String schemaPattern,
348 String tableNamePattern, String columnNamePattern)
349 throws SQLException {
350 // TODO Auto-generated method stub
355 public Connection getConnection() throws SQLException {
356 // TODO Auto-generated method stub
361 public ResultSet getCrossReference(String parentCatalog,
362 String parentSchema, String parentTable, String foreignCatalog,
363 String foreignSchema, String foreignTable) throws SQLException {
364 // TODO Auto-generated method stub
369 public int getDatabaseMajorVersion() throws SQLException {
374 public int getDatabaseMinorVersion() throws SQLException {
375 // TODO Auto-generated method stub
380 public String getDatabaseProductName() throws SQLException {
381 return "OpenDayLight";
385 public String getDatabaseProductVersion() throws SQLException {
390 public int getDefaultTransactionIsolation() throws SQLException {
391 // TODO Auto-generated method stub
396 public int getDriverMajorVersion() {
397 // TODO Auto-generated method stub
402 public int getDriverMinorVersion() {
403 // TODO Auto-generated method stub
408 public String getDriverName() throws SQLException {
409 // TODO Auto-generated method stub
414 public String getDriverVersion() throws SQLException {
415 // TODO Auto-generated method stub
420 public ResultSet getExportedKeys(String catalog, String schema, String table)
421 throws SQLException {
422 // TODO Auto-generated method stub
427 public String getExtraNameCharacters() throws SQLException {
428 // TODO Auto-generated method stub
433 public ResultSet getFunctionColumns(String catalog, String schemaPattern,
434 String functionNamePattern, String columnNamePattern)
435 throws SQLException {
436 // TODO Auto-generated method stub
441 public ResultSet getFunctions(String catalog, String schemaPattern,
442 String functionNamePattern) throws SQLException {
443 // TODO Auto-generated method stub
448 public String getIdentifierQuoteString() throws SQLException {
449 // TODO Auto-generated method stub
454 public ResultSet getImportedKeys(String catalog, String schema, String table)
455 throws SQLException {
456 // TODO Auto-generated method stub
461 public ResultSet getIndexInfo(String catalog, String schema, String table,
462 boolean unique, boolean approximate) throws SQLException {
463 // TODO Auto-generated method stub
468 public int getJDBCMajorVersion() throws SQLException {
469 // TODO Auto-generated method stub
474 public int getJDBCMinorVersion() throws SQLException {
475 // TODO Auto-generated method stub
480 public int getMaxBinaryLiteralLength() throws SQLException {
481 // TODO Auto-generated method stub
486 public int getMaxCatalogNameLength() throws SQLException {
487 // TODO Auto-generated method stub
492 public int getMaxCharLiteralLength() throws SQLException {
493 // TODO Auto-generated method stub
498 public int getMaxColumnNameLength() throws SQLException {
499 // TODO Auto-generated method stub
504 public int getMaxColumnsInGroupBy() throws SQLException {
505 // TODO Auto-generated method stub
510 public int getMaxColumnsInIndex() throws SQLException {
511 // TODO Auto-generated method stub
516 public int getMaxColumnsInOrderBy() throws SQLException {
517 // TODO Auto-generated method stub
522 public int getMaxColumnsInSelect() throws SQLException {
523 // TODO Auto-generated method stub
528 public int getMaxColumnsInTable() throws SQLException {
529 // TODO Auto-generated method stub
534 public int getMaxConnections() throws SQLException {
535 // TODO Auto-generated method stub
540 public int getMaxCursorNameLength() throws SQLException {
541 // TODO Auto-generated method stub
546 public int getMaxIndexLength() throws SQLException {
547 // TODO Auto-generated method stub
552 public int getMaxProcedureNameLength() throws SQLException {
553 // TODO Auto-generated method stub
558 public int getMaxRowSize() throws SQLException {
559 // TODO Auto-generated method stub
564 public int getMaxSchemaNameLength() throws SQLException {
565 // TODO Auto-generated method stub
570 public int getMaxStatementLength() throws SQLException {
571 // TODO Auto-generated method stub
576 public int getMaxStatements() throws SQLException {
577 // TODO Auto-generated method stub
582 public int getMaxTableNameLength() throws SQLException {
583 // TODO Auto-generated method stub
588 public int getMaxTablesInSelect() throws SQLException {
589 // TODO Auto-generated method stub
594 public int getMaxUserNameLength() throws SQLException {
595 // TODO Auto-generated method stub
600 public String getNumericFunctions() throws SQLException {
601 // TODO Auto-generated method stub
606 public ResultSet getPrimaryKeys(String catalog, String schema, String table)
607 throws SQLException {
608 // TODO Auto-generated method stub
613 public ResultSet getProcedureColumns(String catalog, String schemaPattern,
614 String procedureNamePattern, String columnNamePattern)
615 throws SQLException {
616 // TODO Auto-generated method stub
621 public ResultSet getProcedures(String catalog, String schemaPattern,
622 String procedureNamePattern) throws SQLException {
623 // TODO Auto-generated method stub
628 public String getProcedureTerm() throws SQLException {
629 // TODO Auto-generated method stub
634 public int getResultSetHoldability() throws SQLException {
635 // TODO Auto-generated method stub
640 public RowIdLifetime getRowIdLifetime() throws SQLException {
641 // TODO Auto-generated method stub
646 public ResultSet getSchemas() throws SQLException {
647 // TODO Auto-generated method stub
652 public ResultSet getSchemas(String catalog, String schemaPattern)
653 throws SQLException {
654 // TODO Auto-generated method stub
659 public String getSchemaTerm() throws SQLException {
660 // TODO Auto-generated method stub
665 public String getSearchStringEscape() throws SQLException {
666 // TODO Auto-generated method stub
671 public String getSQLKeywords() throws SQLException {
672 // TODO Auto-generated method stub
677 public int getSQLStateType() throws SQLException {
678 // TODO Auto-generated method stub
683 public String getStringFunctions() throws SQLException {
684 // TODO Auto-generated method stub
689 public ResultSet getSuperTables(String catalog, String schemaPattern,
690 String tableNamePattern) throws SQLException {
691 // TODO Auto-generated method stub
696 public ResultSet getSuperTypes(String catalog, String schemaPattern,
697 String typeNamePattern) throws SQLException {
698 // TODO Auto-generated method stub
703 public String getSystemFunctions() throws SQLException {
704 // TODO Auto-generated method stub
709 public ResultSet getTablePrivileges(String catalog, String schemaPattern,
710 String tableNamePattern) throws SQLException {
711 // TODO Auto-generated method stub
716 public ResultSet getTables(String catalog, String schemaPattern,
717 String tableNamePattern, String[] types) throws SQLException {
718 return new TablesResultSet(this);
722 public ResultSet getTableTypes() throws SQLException {
723 // TODO Auto-generated method stub
728 public String getTimeDateFunctions() throws SQLException {
729 // TODO Auto-generated method stub
734 public ResultSet getTypeInfo() throws SQLException {
735 // TODO Auto-generated method stub
740 public ResultSet getUDTs(String catalog, String schemaPattern,
741 String typeNamePattern, int[] types) throws SQLException {
742 // TODO Auto-generated method stub
747 public String getURL() throws SQLException {
748 // TODO Auto-generated method stub
753 public String getUserName() throws SQLException {
754 // TODO Auto-generated method stub
759 public ResultSet getVersionColumns(String catalog, String schema,
760 String table) throws SQLException {
761 // TODO Auto-generated method stub
766 public boolean insertsAreDetected(int type) throws SQLException {
767 // TODO Auto-generated method stub
772 public boolean isCatalogAtStart() throws SQLException {
773 // TODO Auto-generated method stub
778 public boolean isReadOnly() throws SQLException {
779 // TODO Auto-generated method stub
784 public boolean locatorsUpdateCopy() throws SQLException {
785 // TODO Auto-generated method stub
790 public boolean nullPlusNonNullIsNull() throws SQLException {
791 // TODO Auto-generated method stub
796 public boolean nullsAreSortedAtEnd() throws SQLException {
797 // TODO Auto-generated method stub
802 public boolean nullsAreSortedAtStart() throws SQLException {
803 // TODO Auto-generated method stub
808 public boolean nullsAreSortedHigh() throws SQLException {
809 // TODO Auto-generated method stub
814 public boolean nullsAreSortedLow() throws SQLException {
815 // TODO Auto-generated method stub
820 public boolean othersDeletesAreVisible(int type) throws SQLException {
821 // TODO Auto-generated method stub
826 public boolean othersInsertsAreVisible(int type) throws SQLException {
827 // TODO Auto-generated method stub
832 public boolean othersUpdatesAreVisible(int type) throws SQLException {
833 // TODO Auto-generated method stub
838 public boolean ownDeletesAreVisible(int type) throws SQLException {
839 // TODO Auto-generated method stub
844 public boolean ownInsertsAreVisible(int type) throws SQLException {
845 // TODO Auto-generated method stub
850 public boolean ownUpdatesAreVisible(int type) throws SQLException {
851 // TODO Auto-generated method stub
856 public boolean storesLowerCaseIdentifiers() throws SQLException {
857 // TODO Auto-generated method stub
862 public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
863 // TODO Auto-generated method stub
868 public boolean storesMixedCaseIdentifiers() throws SQLException {
869 // TODO Auto-generated method stub
874 public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
875 // TODO Auto-generated method stub
880 public boolean storesUpperCaseIdentifiers() throws SQLException {
881 // TODO Auto-generated method stub
886 public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
887 // TODO Auto-generated method stub
892 public boolean supportsAlterTableWithAddColumn() throws SQLException {
893 // TODO Auto-generated method stub
898 public boolean supportsAlterTableWithDropColumn() throws SQLException {
899 // TODO Auto-generated method stub
904 public boolean supportsANSI92EntryLevelSQL() throws SQLException {
905 // TODO Auto-generated method stub
910 public boolean supportsANSI92FullSQL() throws SQLException {
911 // TODO Auto-generated method stub
916 public boolean supportsANSI92IntermediateSQL() throws SQLException {
917 // TODO Auto-generated method stub
922 public boolean supportsBatchUpdates() throws SQLException {
923 // TODO Auto-generated method stub
928 public boolean supportsCatalogsInDataManipulation() throws SQLException {
929 // TODO Auto-generated method stub
934 public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
935 // TODO Auto-generated method stub
940 public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
941 // TODO Auto-generated method stub
946 public boolean supportsCatalogsInProcedureCalls() throws SQLException {
947 // TODO Auto-generated method stub
952 public boolean supportsCatalogsInTableDefinitions() throws SQLException {
953 // TODO Auto-generated method stub
958 public boolean supportsColumnAliasing() throws SQLException {
959 // TODO Auto-generated method stub
964 public boolean supportsConvert() throws SQLException {
965 // TODO Auto-generated method stub
970 public boolean supportsConvert(int fromType, int toType)
971 throws SQLException {
972 // TODO Auto-generated method stub
977 public boolean supportsCoreSQLGrammar() throws SQLException {
978 // TODO Auto-generated method stub
983 public boolean supportsCorrelatedSubqueries() throws SQLException {
984 // TODO Auto-generated method stub
989 public boolean supportsDataDefinitionAndDataManipulationTransactions()
990 throws SQLException {
991 // TODO Auto-generated method stub
996 public boolean supportsDataManipulationTransactionsOnly()
997 throws SQLException {
998 // TODO Auto-generated method stub
1003 public boolean supportsDifferentTableCorrelationNames() throws SQLException {
1004 // TODO Auto-generated method stub
1009 public boolean supportsExpressionsInOrderBy() throws SQLException {
1010 // TODO Auto-generated method stub
1015 public boolean supportsExtendedSQLGrammar() throws SQLException {
1016 // TODO Auto-generated method stub
1021 public boolean supportsFullOuterJoins() throws SQLException {
1022 // TODO Auto-generated method stub
1027 public boolean supportsGetGeneratedKeys() throws SQLException {
1028 // TODO Auto-generated method stub
1033 public boolean supportsGroupBy() throws SQLException {
1034 // TODO Auto-generated method stub
1039 public boolean supportsGroupByBeyondSelect() throws SQLException {
1040 // TODO Auto-generated method stub
1045 public boolean supportsGroupByUnrelated() throws SQLException {
1046 // TODO Auto-generated method stub
1051 public boolean supportsIntegrityEnhancementFacility() throws SQLException {
1052 // TODO Auto-generated method stub
1057 public boolean supportsLikeEscapeClause() throws SQLException {
1058 // TODO Auto-generated method stub
1063 public boolean supportsLimitedOuterJoins() throws SQLException {
1064 // TODO Auto-generated method stub
1069 public boolean supportsMinimumSQLGrammar() throws SQLException {
1070 // TODO Auto-generated method stub
1075 public boolean supportsMixedCaseIdentifiers() throws SQLException {
1076 // TODO Auto-generated method stub
1081 public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
1082 // TODO Auto-generated method stub
1087 public boolean supportsMultipleOpenResults() throws SQLException {
1088 // TODO Auto-generated method stub
1093 public boolean supportsMultipleResultSets() throws SQLException {
1094 // TODO Auto-generated method stub
1099 public boolean supportsMultipleTransactions() throws SQLException {
1100 // TODO Auto-generated method stub
1105 public boolean supportsNamedParameters() throws SQLException {
1106 // TODO Auto-generated method stub
1111 public boolean supportsNonNullableColumns() throws SQLException {
1112 // TODO Auto-generated method stub
1117 public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
1118 // TODO Auto-generated method stub
1123 public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
1124 // TODO Auto-generated method stub
1129 public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
1130 // TODO Auto-generated method stub
1135 public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
1136 // TODO Auto-generated method stub
1141 public boolean supportsOrderByUnrelated() throws SQLException {
1142 // TODO Auto-generated method stub
1147 public boolean supportsOuterJoins() throws SQLException {
1148 // TODO Auto-generated method stub
1153 public boolean supportsPositionedDelete() throws SQLException {
1154 // TODO Auto-generated method stub
1159 public boolean supportsPositionedUpdate() throws SQLException {
1160 // TODO Auto-generated method stub
1165 public boolean supportsResultSetConcurrency(int type, int concurrency)
1166 throws SQLException {
1167 // TODO Auto-generated method stub
1172 public boolean supportsResultSetHoldability(int holdability)
1173 throws SQLException {
1174 // TODO Auto-generated method stub
1179 public boolean supportsResultSetType(int type) throws SQLException {
1180 // TODO Auto-generated method stub
1185 public boolean supportsSavepoints() throws SQLException {
1186 // TODO Auto-generated method stub
1191 public boolean supportsSchemasInDataManipulation() throws SQLException {
1192 // TODO Auto-generated method stub
1197 public boolean supportsSchemasInIndexDefinitions() throws SQLException {
1198 // TODO Auto-generated method stub
1203 public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
1204 // TODO Auto-generated method stub
1209 public boolean supportsSchemasInProcedureCalls() throws SQLException {
1210 // TODO Auto-generated method stub
1215 public boolean supportsSchemasInTableDefinitions() throws SQLException {
1216 // TODO Auto-generated method stub
1221 public boolean supportsSelectForUpdate() throws SQLException {
1222 // TODO Auto-generated method stub
1227 public boolean supportsStatementPooling() throws SQLException {
1228 // TODO Auto-generated method stub
1233 public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
1234 // TODO Auto-generated method stub
1239 public boolean supportsStoredProcedures() throws SQLException {
1240 // TODO Auto-generated method stub
1245 public boolean supportsSubqueriesInComparisons() throws SQLException {
1246 // TODO Auto-generated method stub
1251 public boolean supportsSubqueriesInExists() throws SQLException {
1252 // TODO Auto-generated method stub
1257 public boolean supportsSubqueriesInIns() throws SQLException {
1258 // TODO Auto-generated method stub
1263 public boolean supportsSubqueriesInQuantifieds() throws SQLException {
1264 // TODO Auto-generated method stub
1269 public boolean supportsTableCorrelationNames() throws SQLException {
1270 // TODO Auto-generated method stub
1275 public boolean supportsTransactionIsolationLevel(int level)
1276 throws SQLException {
1277 // TODO Auto-generated method stub
1282 public boolean supportsTransactions() throws SQLException {
1283 // TODO Auto-generated method stub
1288 public boolean supportsUnion() throws SQLException {
1289 // TODO Auto-generated method stub
1294 public boolean supportsUnionAll() throws SQLException {
1295 // TODO Auto-generated method stub
1300 public boolean updatesAreDetected(int type) throws SQLException {
1301 // TODO Auto-generated method stub
1306 public boolean usesLocalFilePerTable() throws SQLException {
1307 // TODO Auto-generated method stub
1312 public boolean usesLocalFiles() throws SQLException {
1313 // TODO Auto-generated method stub
1318 public boolean isWrapperFor(Class<?> iface) throws SQLException {
1319 // TODO Auto-generated method stub
1324 public <T> T unwrap(Class<T> iface) throws SQLException {
1325 // TODO Auto-generated method stub
1330 public ResultSet getPseudoColumns(String catalog, String schemaPattern,
1331 String tableNamePattern, String columnNamePattern)
1332 throws SQLException {
1333 // TODO Auto-generated method stub
1338 public boolean generatedKeyAlwaysReturned() throws SQLException {
1339 // TODO Auto-generated method stub