16 package com.omnisci.jdbc;
18 import com.omnisci.thrift.server.TColumn;
19 import com.omnisci.thrift.server.TColumnData;
20 import com.omnisci.thrift.server.TColumnType;
21 import com.omnisci.thrift.server.TDBInfo;
22 import com.omnisci.thrift.server.TDBObject;
23 import com.omnisci.thrift.server.TDBObjectType;
24 import com.omnisci.thrift.server.TDatumType;
25 import com.omnisci.thrift.server.TEncodingType;
26 import com.omnisci.thrift.server.TQueryResult;
27 import com.omnisci.thrift.server.TRowSet;
28 import com.omnisci.thrift.server.TTableDetails;
29 import com.omnisci.thrift.server.TTablePermissions;
30 import com.omnisci.thrift.server.TTypeInfo;
32 import org.apache.thrift.TException;
33 import org.slf4j.Logger;
34 import org.slf4j.LoggerFactory;
36 import java.sql.Connection;
37 import java.sql.DatabaseMetaData;
38 import java.sql.ResultSet;
39 import java.sql.RowIdLifetime;
40 import java.sql.SQLException;
48 final static Logger
MAPDLOGGER = LoggerFactory.getLogger(OmniSciDatabaseMetaData.class);
56 this.con = connection;
60 }
catch (TException ex) {
61 throw new SQLException(
"Failed to get DB version " + ex.toString());
63 String vers[] = databaseVersion.split(
"\\.");
67 }
catch (NumberFormatException ex) {
68 throw new SQLException(
69 "Non-numeric version returned from OmniSci server: " + ex.getMessage());
75 MAPDLOGGER.debug(
"Entered");
81 MAPDLOGGER.debug(
"Entered");
86 public String
getURL() throws SQLException {
87 MAPDLOGGER.debug(
"Entered");
93 MAPDLOGGER.debug(
"Entered");
99 MAPDLOGGER.debug(
"Entered");
105 MAPDLOGGER.debug(
"Entered");
111 MAPDLOGGER.debug(
"Entered");
117 MAPDLOGGER.debug(
"Entered");
123 MAPDLOGGER.debug(
"Entered");
129 MAPDLOGGER.debug(
"Entered");
135 throws SQLException {
136 MAPDLOGGER.debug(
"Entered");
137 return this.databaseVersion;
142 MAPDLOGGER.debug(
"Entered");
143 return "OmniSciDB JDBC Driver";
148 MAPDLOGGER.debug(
"Entered");
164 MAPDLOGGER.debug(
"Entered");
170 MAPDLOGGER.debug(
"Entered");
176 MAPDLOGGER.debug(
"Entered");
182 MAPDLOGGER.debug(
"Entered");
188 MAPDLOGGER.debug(
"Entered");
194 MAPDLOGGER.debug(
"Entered");
200 MAPDLOGGER.debug(
"Entered");
206 MAPDLOGGER.debug(
"Entered");
212 MAPDLOGGER.debug(
"Entered");
218 MAPDLOGGER.debug(
"Entered");
224 MAPDLOGGER.debug(
"Entered");
230 MAPDLOGGER.debug(
"Entered");
236 MAPDLOGGER.debug(
"Entered");
237 return "ACOS(float), ACOS(number), ASIN, ATAN2, CEIL, COS, COT, DEGREES, EXP, FLOOR, LN, LOG, PI(), POWER, SQRT"
238 +
", RADIANS, ROUND, SIN, TAN, ATAN, ABS, MOD SIGN, TRUNCATE";
243 MAPDLOGGER.debug(
"Entered");
244 return "CHAR_LENGTH, CHAR, KEY_FOR_STRING";
249 MAPDLOGGER.debug(
"Entered");
255 MAPDLOGGER.debug(
"Entered");
257 return "DATE_TRUNC, NOW, EXTRACT";
262 MAPDLOGGER.debug(
"Entered");
268 MAPDLOGGER.debug(
"Entered");
274 MAPDLOGGER.debug(
"Entered");
280 MAPDLOGGER.debug(
"Entered");
286 MAPDLOGGER.debug(
"Entered");
292 MAPDLOGGER.debug(
"Entered");
298 MAPDLOGGER.debug(
"Entered");
304 MAPDLOGGER.debug(
"Entered");
310 MAPDLOGGER.debug(
"Entered");
316 MAPDLOGGER.debug(
"Entered");
322 MAPDLOGGER.debug(
"Entered");
328 MAPDLOGGER.debug(
"Entered");
334 MAPDLOGGER.debug(
"Entered");
340 MAPDLOGGER.debug(
"Entered");
346 MAPDLOGGER.debug(
"Entered");
352 MAPDLOGGER.debug(
"Entered");
358 MAPDLOGGER.debug(
"Entered");
364 MAPDLOGGER.debug(
"Entered");
370 MAPDLOGGER.debug(
"Entered");
376 MAPDLOGGER.debug(
"Entered");
382 MAPDLOGGER.debug(
"Entered");
388 MAPDLOGGER.debug(
"Entered");
394 MAPDLOGGER.debug(
"Entered");
400 MAPDLOGGER.debug(
"Entered");
406 MAPDLOGGER.debug(
"Entered");
412 MAPDLOGGER.debug(
"Entered");
418 MAPDLOGGER.debug(
"Entered");
424 MAPDLOGGER.debug(
"Entered");
430 MAPDLOGGER.debug(
"Entered");
436 MAPDLOGGER.debug(
"Entered");
442 MAPDLOGGER.debug(
"Entered");
448 MAPDLOGGER.debug(
"Entered");
454 MAPDLOGGER.debug(
"Entered");
460 MAPDLOGGER.debug(
"Entered");
466 MAPDLOGGER.debug(
"Entered");
472 MAPDLOGGER.debug(
"Entered");
478 MAPDLOGGER.debug(
"Entered");
484 MAPDLOGGER.debug(
"Entered");
490 MAPDLOGGER.debug(
"Entered");
496 MAPDLOGGER.debug(
"Entered");
502 MAPDLOGGER.debug(
"Entered");
508 MAPDLOGGER.debug(
"Entered");
514 MAPDLOGGER.debug(
"Entered");
520 MAPDLOGGER.debug(
"Entered");
526 MAPDLOGGER.debug(
"Entered");
532 MAPDLOGGER.debug(
"Entered");
538 MAPDLOGGER.debug(
"Entered");
544 MAPDLOGGER.debug(
"Entered");
550 MAPDLOGGER.debug(
"Entered");
556 MAPDLOGGER.debug(
"Entered");
562 MAPDLOGGER.debug(
"Entered");
568 MAPDLOGGER.debug(
"Entered");
574 MAPDLOGGER.debug(
"Entered");
580 MAPDLOGGER.debug(
"Entered");
586 MAPDLOGGER.debug(
"Entered");
592 MAPDLOGGER.debug(
"Entered");
598 MAPDLOGGER.debug(
"Entered");
604 MAPDLOGGER.debug(
"Entered");
610 MAPDLOGGER.debug(
"Entered");
616 MAPDLOGGER.debug(
"Entered");
622 MAPDLOGGER.debug(
"Entered");
628 MAPDLOGGER.debug(
"Entered");
634 MAPDLOGGER.debug(
"Entered");
640 MAPDLOGGER.debug(
"Entered");
646 MAPDLOGGER.debug(
"Entered");
652 MAPDLOGGER.debug(
"Entered");
658 MAPDLOGGER.debug(
"Entered");
664 MAPDLOGGER.debug(
"Entered");
670 MAPDLOGGER.debug(
"Entered");
676 MAPDLOGGER.debug(
"Entered");
682 MAPDLOGGER.debug(
"Entered");
688 MAPDLOGGER.debug(
"Entered");
694 MAPDLOGGER.debug(
"Entered");
700 MAPDLOGGER.debug(
"Entered");
706 MAPDLOGGER.debug(
"Entered");
712 MAPDLOGGER.debug(
"Entered");
718 MAPDLOGGER.debug(
"Entered");
724 MAPDLOGGER.debug(
"Entered");
730 MAPDLOGGER.debug(
"Entered");
736 MAPDLOGGER.debug(
"Entered");
742 MAPDLOGGER.debug(
"Entered");
743 return Connection.TRANSACTION_NONE;
748 MAPDLOGGER.debug(
"Entered");
754 MAPDLOGGER.debug(
"Entered");
760 throws SQLException {
761 MAPDLOGGER.debug(
"Entered");
767 MAPDLOGGER.debug(
"Entered");
773 MAPDLOGGER.debug(
"Entered");
779 MAPDLOGGER.debug(
"Entered");
785 String catalog, String schemaPattern, String procedureNamePattern)
786 throws SQLException {
787 MAPDLOGGER.debug(
"Entered");
798 String schemaPattern,
799 String procedureNamePattern,
800 String columnNamePattern)
throws SQLException {
801 MAPDLOGGER.debug(
"Entered");
802 throw new UnsupportedOperationException(
"Not supported yet,"
803 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
804 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
805 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
817 TColumnType ct =
new TColumnType();
818 ct.col_name = colName;
819 ct.col_type = colType;
820 ct.is_reserved_keyword = irk;
821 ct.is_system =
false;
822 ct.is_physical =
false;
857 String catalog, String schemaPattern, String tableNamePattern, String[] types)
858 throws SQLException {
859 MAPDLOGGER.debug(
"Entered");
863 tables = con.client.get_tables(con.session);
864 }
catch (TException ex) {
865 throw new SQLException(
"get_tables failed " + ex.toString());
870 views = con.client.get_views(con.session);
871 }
catch (TException ex) {
872 throw new SQLException(
"get_views failed " + ex.toString());
876 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
888 Map<String, ArrayList<String>> dataMap =
new HashMap(columns.length);
889 Map<String, ArrayList<Boolean>> nullMap =
new HashMap(columns.length);
893 List<TColumnType> rowDesc =
new ArrayList(columns.length);
894 for (TColumnType col : columns) {
896 dataMap.put(col.col_name,
new ArrayList());
897 nullMap.put(col.col_name,
new ArrayList());
899 if (schemaPattern == null
900 || schemaPattern.toLowerCase().equals(con.getCatalog().toLowerCase())) {
902 for (String x : tables) {
903 dataMap.get(
"TABLE_NAME").
add(x);
904 nullMap.get(
"TABLE_NAME").
add(
false);
905 nullMap.get(
"TABLE_SCHEM").
add(
true);
906 nullMap.get(
"TABLE_CAT").
add(
true);
907 if (views.contains(x) ==
true) {
908 dataMap.get(
"TABLE_TYPE").
add(
"VIEW");
910 dataMap.get(
"TABLE_TYPE").
add(
"TABLE");
912 nullMap.get(
"TABLE_TYPE").
add(
false);
913 nullMap.get(
"REMARKS").
add(
true);
914 nullMap.get(
"TYPE_CAT").
add(
true);
915 nullMap.get(
"TYPE_SCHEM").
add(
true);
916 nullMap.get(
"TYPE_NAME").
add(
true);
917 nullMap.get(
"SELF_REFERENCING_COL_NAME").
add(
true);
918 nullMap.get(
"REF_GENERATION").
add(
true);
921 List<TColumn> columnsList =
new ArrayList(columns.length);
923 for (TColumnType col : columns) {
926 columnsList.add(schemaCol);
930 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
932 TQueryResult
result =
new TQueryResult(
933 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
941 TColumnData colData =
new TColumnData();
942 colData.setStr_col((List<String>) data);
944 TColumn col =
new TColumn(colData, nullsList);
950 MAPDLOGGER.debug(
"Entered");
952 List<TDBInfo> databases = null;
955 databases = con.client.get_databases(con.session);
956 }
catch (TException ex) {
957 throw new SQLException(
"get_database failed " + ex.toString());
963 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
964 TColumnType columns[] = {
createTColumnType(
"TABLE_SCHEM",
new TTypeInfo(strTTI)),
967 List<TColumnType> rowDesc =
new ArrayList();
968 for (TColumnType col : columns) {
973 List<String> schemaList =
new ArrayList();
974 List<Boolean> nullList =
new ArrayList();
975 List<Boolean> catalogNullList =
new ArrayList();
977 for (TDBInfo x : databases) {
978 schemaList.add(x.db_name);
980 catalogNullList.add(
true);
983 TColumnData colData =
new TColumnData();
984 colData.setStr_col(schemaList);
986 TColumn schemaCol =
new TColumn(colData, nullList);
987 TColumn catalogCol =
new TColumn(null, catalogNullList);
989 List<TColumn> columnsList =
new ArrayList();
990 columnsList.add(schemaCol);
991 columnsList.add(catalogCol);
994 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
996 TQueryResult
result =
new TQueryResult(
997 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
1005 MAPDLOGGER.debug(
"Entered");
1011 MAPDLOGGER.debug(
"Entered");
1014 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1015 TColumnType columns[] = {
createTColumnType(
"TABLE_TYPE",
new TTypeInfo(strTTI))};
1017 Map<String, OmniSciData> dataMap =
new HashMap(columns.length);
1021 List<TColumnType> rowDesc =
new ArrayList(columns.length);
1022 for (TColumnType col : columns) {
1024 dataMap.put(col.col_name,
new OmniSciData(col.col_type.type));
1028 dataMap.get(
"TABLE_TYPE").
add(
"TABLE");
1029 dataMap.get(
"TABLE_TYPE").
add(
"VIEW");
1031 List<TColumn> columnsList =
new ArrayList(columns.length);
1033 for (TColumnType col : columns) {
1034 TColumn schemaCol = dataMap.get(col.col_name).getTColumn();
1035 columnsList.add(schemaCol);
1039 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
1041 TQueryResult
result =
new TQueryResult(
1042 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
1108 String schemaPattern,
1109 String tableNamePattern,
1110 String columnNamePattern)
throws SQLException {
1111 MAPDLOGGER.debug(
"Entered");
1112 MAPDLOGGER.debug(
"TablePattern " + tableNamePattern +
" columnNamePattern "
1113 + columnNamePattern);
1114 String modifiedTablePattern = tableNamePattern.replaceAll(
"%",
".*");
1115 String modifiedColumnPattern =
1116 (columnNamePattern == null) ? null : columnNamePattern.replaceAll(
"%",
".*");
1118 MAPDLOGGER.debug(
"TablePattern " + tableNamePattern +
" modifiedColumnPattern "
1119 + modifiedColumnPattern);
1123 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1125 new TTypeInfo(TDatumType.INT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1126 TTypeInfo smallIntTTI =
1127 new TTypeInfo(TDatumType.SMALLINT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1153 Map<String, OmniSciData> dataMap =
new HashMap(columns.length);
1157 List<TColumnType> rowDesc =
new ArrayList(columns.length);
1158 for (TColumnType col : columns) {
1160 dataMap.put(col.col_name,
new OmniSciData(col.col_type.type));
1166 tables = con.client.get_tables(con.session);
1168 for (String tableName : tables) {
1170 if (tableNamePattern == null || tableNamePattern.equals(tableName)) {
1172 TTableDetails tableDetails =
1173 con.client.get_table_details(con.session, tableName);
1177 for (TColumnType value : tableDetails.row_desc) {
1179 if (columnNamePattern == null
1180 || value.col_name.matches(modifiedColumnPattern)) {
1181 dataMap.get(
"TABLE_CAT").setNull(
true);
1182 dataMap.get(
"TABLE_SCHEM").setNull(
true);
1183 dataMap.get(
"TABLE_NAME").
add(tableName);
1184 dataMap.get(
"COLUMN_NAME").
add(value.col_name);
1186 dataMap.get(
"TYPE_NAME")
1187 .
add((value.col_type.type.name()
1188 + (value.col_type.is_array ?
"[]" :
"")));
1189 if (value.col_type.type == TDatumType.DECIMAL) {
1190 dataMap.get(
"COLUMN_SIZE").
add(value.col_type.precision);
1192 dataMap.get(
"COLUMN_SIZE").
add(100);
1194 dataMap.get(
"BUFFER_LENGTH").setNull(
true);
1195 if (value.col_type.type == TDatumType.DECIMAL) {
1196 dataMap.get(
"DECIMAL_DIGITS").
add(value.col_type.scale);
1198 dataMap.get(
"DECIMAL_DIGITS").setNull(
true);
1200 dataMap.get(
"NUM_PREC_RADIX").
add(10);
1201 dataMap.get(
"NULLABLE")
1202 .
add(value.col_type.nullable ? DatabaseMetaData.columnNullable
1203 : DatabaseMetaData.columnNoNulls);
1204 dataMap.get(
"REMARKS").
add(
" ");
1205 dataMap.get(
"COLUMN_DEF").setNull(
true);
1206 dataMap.get(
"SQL_DATA_TYPE").
add(0);
1207 dataMap.get(
"SQL_DATETIME_SUB").setNull(
true);
1208 dataMap.get(
"CHAR_OCTET_LENGTH").
add(0);
1209 dataMap.get(
"ORDINAL_POSITION").
add(ordinal);
1210 dataMap.get(
"IS_NULLABLE").
add(value.col_type.nullable ?
"YES" :
"NO");
1211 dataMap.get(
"SCOPE_CATALOG").setNull(
true);
1212 dataMap.get(
"SCOPE_SCHEMA").setNull(
true);
1213 dataMap.get(
"SCOPE_TABLE").setNull(
true);
1214 dataMap.get(
"SOURCE_DATA_TYPE")
1216 dataMap.get(
"IS_AUTOINCREMENT").
add(
"NO");
1217 dataMap.get(
"IS_GENERATEDCOLUMN").
add(
"NO");
1222 }
catch (TException ex) {
1223 throw new SQLException(
"get_tables failed " + ex.toString());
1226 List<TColumn> columnsList =
new ArrayList(columns.length);
1228 for (TColumnType col : columns) {
1229 TColumn schemaCol = dataMap.get(col.col_name).getTColumn();
1231 columnsList.add(schemaCol);
1235 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
1237 TQueryResult
result =
new TQueryResult(
1238 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
1246 String catalog, String schema, String
table, String columnNamePattern)
1247 throws SQLException {
1248 MAPDLOGGER.debug(
"Entered");
1249 throw new UnsupportedOperationException(
"Not supported yet,"
1250 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1251 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1252 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1261 throws SQLException {
1262 Map<String, OmniSciData> dataMap =
new HashMap(columns.length);
1263 List<TColumnType> rowDesc =
new ArrayList(columns.length);
1264 for (TColumnType col : columns) {
1266 dataMap.put(col.col_name,
new OmniSciData(col.col_type.type));
1268 List<TColumn> columnsList =
new ArrayList(columns.length);
1269 for (TColumnType col : columns) {
1270 TColumn schemaCol = dataMap.get(col.col_name).getTColumn();
1271 columnsList.add(schemaCol);
1273 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
1274 TQueryResult
result =
new TQueryResult(
1275 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
1281 List<String>
tables, Map<String, OmniSciData> dataMap, String tableNamePattern)
1284 if (tableNamePattern != null && !
table.matches(tableNamePattern)) {
1287 List<TDBObject> db_objects = con.client.get_db_object_privs(
1291 for (TDBObject db_object : db_objects) {
1294 if (db_object.objectName.equalsIgnoreCase(
"super")) {
1295 db_object.objectName =
table;
1298 if (!db_object.objectName.equalsIgnoreCase(table)) {
1304 TTablePermissions tt =
new TTablePermissions(db_object.privs.get(0),
1305 db_object.privs.get(1),
1306 db_object.privs.get(2),
1307 db_object.privs.get(3),
1308 db_object.privs.get(4),
1309 db_object.privs.get(5),
1310 db_object.privs.get(6),
1311 db_object.privs.get(7));
1314 for (TTablePermissions._Fields
field = tt.fieldForId(ordinal);
field != null;
1315 field = tt.fieldForId(++ordinal)) {
1316 Boolean x = (Boolean) tt.getFieldValue(
field);
1322 dataMap.get(
"PRIVILEGE")
1323 .
add(
field.getFieldName().toUpperCase().replace(
"_",
""));
1324 dataMap.get(
"TABLE_CAT").setNull(
true);
1325 dataMap.get(
"TABLE_SCHEM").setNull(
true);
1326 dataMap.get(
"TABLE_NAME").
add(db_object.objectName);
1327 dataMap.get(
"GRANTOR").setNull(
true);
1328 dataMap.get(
"GRANTEE").
add(db_object.grantee);
1329 dataMap.get(
"IS_GRANTABLE").
add(
"NO");
1337 String catalog, String schemaPattern, String tableNamePattern)
1338 throws SQLException {
1339 MAPDLOGGER.debug(
"Entered");
1341 String modifiedTablePattern =
1342 (tableNamePattern == null) ? null : tableNamePattern.replaceAll(
"%",
".*");
1344 MAPDLOGGER.debug(
"TablePattern " + tableNamePattern +
" modifiedTableNamePattern "
1345 + modifiedTablePattern);
1348 final TTypeInfo strTTI =
1349 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1352 Map<String, OmniSciData> dataMap =
new HashMap() {
1366 List<String>
tables = con.client.get_tables(con.session);
1368 }
catch (TException ex) {
1369 throw new SQLException(
"get_privileges failed " + ex.toString());
1376 List<TColumnType> rowDesc =
new ArrayList(dataMap.size());
1377 List<TColumn> columnsList =
new ArrayList(dataMap.size());
1379 for (Map.Entry<String,
OmniSciData> pair : dataMap.entrySet()) {
1380 columnsList.add(pair.getValue().getTColumn());
1385 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
1387 TQueryResult
result =
new TQueryResult(
1388 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
1396 String catalog, String schema, String
table,
int scope,
boolean nullable)
1397 throws SQLException {
1398 MAPDLOGGER.debug(
"Entered");
1399 throw new UnsupportedOperationException(
"Not supported yet,"
1400 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1401 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1402 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1407 throws SQLException {
1408 MAPDLOGGER.debug(
"Entered");
1409 throw new UnsupportedOperationException(
"Not supported yet,"
1410 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1411 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1412 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1417 throws SQLException {
1418 MAPDLOGGER.debug(
"Entered");
1421 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1423 new TTypeInfo(TDatumType.INT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1424 TTypeInfo smallIntTTI =
1425 new TTypeInfo(TDatumType.SMALLINT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1438 throws SQLException {
1439 MAPDLOGGER.debug(
"Entered");
1442 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1444 new TTypeInfo(TDatumType.INT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1445 TTypeInfo smallIntTTI =
1446 new TTypeInfo(TDatumType.SMALLINT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1447 TColumnType columns[] = {
createTColumnType(
"PKTABLE_CAT",
new TTypeInfo(strTTI)),
1467 throws SQLException {
1468 MAPDLOGGER.debug(
"Entered");
1471 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1473 new TTypeInfo(TDatumType.INT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1474 TTypeInfo smallIntTTI =
1475 new TTypeInfo(TDatumType.SMALLINT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1476 TColumnType columns[] = {
createTColumnType(
"FKTABLE_CAT",
new TTypeInfo(strTTI)),
1496 String parentSchema,
1498 String foreignCatalog,
1499 String foreignSchema,
1500 String foreignTable)
throws SQLException {
1501 MAPDLOGGER.debug(
"Entered");
1502 throw new UnsupportedOperationException(
"Not supported yet,"
1503 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1504 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1505 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1561 MAPDLOGGER.debug(
"Entered");
1565 new TTypeInfo(TDatumType.STR, TEncodingType.NONE,
false,
false, 0, 0, 0);
1567 new TTypeInfo(TDatumType.INT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1568 TTypeInfo smallIntTTI =
1569 new TTypeInfo(TDatumType.SMALLINT, TEncodingType.NONE,
false,
false, 0, 0, 0);
1571 new TTypeInfo(TDatumType.BOOL, TEncodingType.NONE,
false,
false, 0, 0, 0);
1591 Map<String, OmniSciData> dataMap =
new HashMap(columns.length);
1595 List<TColumnType> rowDesc =
new ArrayList(columns.length);
1596 for (TColumnType col : columns) {
1598 dataMap.put(col.col_name,
new OmniSciData(col.col_type.type));
1602 dataMap.get(
"TYPE_NAME").setNull(
true);
1603 dataMap.get(
"DATA_TYPE").setNull(
true);
1604 dataMap.get(
"PRECISION").setNull(
true);
1605 dataMap.get(
"LITERAL_PREFIX").setNull(
true);
1607 dataMap.get(
"LITERAL_SUFFIX").setNull(
true);
1609 dataMap.get(
"CREATE_PARAMS")
1612 dataMap.get(
"NULLABLE").setNull(
true);
1616 dataMap.get(
"CASE_SENSITIVE").setNull(
true);
1617 dataMap.get(
"SEARCHABLE")
1623 dataMap.get(
"UNSIGNED_ATTRIBUTE").setNull(
true);
1624 dataMap.get(
"FIXED_PREC_SCALE").setNull(
true);
1625 dataMap.get(
"AUTO_INCREMENT")
1627 dataMap.get(
"LOCAL_TYPE_NAME")
1629 dataMap.get(
"MINIMUM_SCALE").setNull(
true);
1630 dataMap.get(
"MAXIMUM_SCALE").setNull(
true);
1631 dataMap.get(
"SQL_DATA_TYPE").setNull(
true);
1632 dataMap.get(
"SQL_DATETIME_SUB").setNull(
true);
1633 dataMap.get(
"NUM_PREC_RADIX").setNull(
true);
1635 List<TColumn> columnsList =
new ArrayList(columns.length);
1637 for (TColumnType col : columns) {
1638 TColumn schemaCol = dataMap.get(col.col_name).getTColumn();
1640 columnsList.add(schemaCol);
1644 TRowSet rowSet =
new TRowSet(rowDesc, null, columnsList,
true);
1646 TQueryResult
result =
new TQueryResult(
1647 rowSet, 0, 0, null, null,
true, com.omnisci.thrift.server.TQueryType.UNKNOWN);
1658 boolean approximate)
throws SQLException {
1659 MAPDLOGGER.debug(
"Entered");
1665 MAPDLOGGER.debug(
"Entered");
1671 throws SQLException {
1672 MAPDLOGGER.debug(
"Entered");
1678 MAPDLOGGER.debug(
"Entered");
1684 MAPDLOGGER.debug(
"Entered");
1690 MAPDLOGGER.debug(
"Entered");
1696 MAPDLOGGER.debug(
"Entered");
1702 MAPDLOGGER.debug(
"Entered");
1708 MAPDLOGGER.debug(
"Entered");
1714 MAPDLOGGER.debug(
"Entered");
1720 MAPDLOGGER.debug(
"Entered");
1726 MAPDLOGGER.debug(
"Entered");
1732 MAPDLOGGER.debug(
"Entered");
1738 String catalog, String schemaPattern, String typeNamePattern,
int[] types)
1739 throws SQLException {
1740 MAPDLOGGER.debug(
"Entered");
1741 throw new UnsupportedOperationException(
"Not supported yet,"
1742 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1743 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1744 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1749 MAPDLOGGER.debug(
"Entered");
1755 MAPDLOGGER.debug(
"Entered");
1761 MAPDLOGGER.debug(
"Entered");
1767 MAPDLOGGER.debug(
"Entered");
1773 MAPDLOGGER.debug(
"Entered");
1779 String catalog, String schemaPattern, String typeNamePattern)
1780 throws SQLException {
1781 MAPDLOGGER.debug(
"Entered");
1782 throw new UnsupportedOperationException(
"Not supported yet,"
1783 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1784 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1785 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1790 String catalog, String schemaPattern, String tableNamePattern)
1791 throws SQLException {
1792 MAPDLOGGER.debug(
"Entered");
1793 throw new UnsupportedOperationException(
"Not supported yet,"
1794 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1795 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1796 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1801 String schemaPattern,
1802 String typeNamePattern,
1803 String attributeNamePattern)
throws SQLException {
1804 MAPDLOGGER.debug(
"Entered");
1805 throw new UnsupportedOperationException(
"Not supported yet,"
1806 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1807 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1808 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1813 MAPDLOGGER.debug(
"Entered");
1819 MAPDLOGGER.debug(
"Entered");
1820 return ResultSet.CLOSE_CURSORS_AT_COMMIT;
1825 MAPDLOGGER.debug(
"Entered");
1826 return this.databaseMajorVersion;
1831 MAPDLOGGER.debug(
"Entered");
1832 return this.databaseMinorVersion;
1837 MAPDLOGGER.debug(
"Entered");
1843 MAPDLOGGER.debug(
"Entered");
1849 MAPDLOGGER.debug(
"Entered");
1855 MAPDLOGGER.debug(
"Entered");
1861 MAPDLOGGER.debug(
"Entered");
1867 MAPDLOGGER.debug(
"Entered");
1868 return RowIdLifetime.ROWID_VALID_OTHER;
1872 public ResultSet
getSchemas(String catalog, String schemaPattern)
throws SQLException {
1873 MAPDLOGGER.debug(
"Entered");
1879 MAPDLOGGER.debug(
"Entered");
1885 MAPDLOGGER.debug(
"Entered");
1891 MAPDLOGGER.debug(
"Entered");
1892 throw new UnsupportedOperationException(
"Not supported yet,"
1893 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1894 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1895 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1900 String catalog, String schemaPattern, String functionNamePattern)
1901 throws SQLException {
1902 MAPDLOGGER.debug(
"Entered");
1903 throw new UnsupportedOperationException(
"Not supported yet,"
1904 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1905 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1906 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1911 String schemaPattern,
1912 String functionNamePattern,
1913 String columnNamePattern)
throws SQLException {
1914 MAPDLOGGER.debug(
"Entered");
1915 throw new UnsupportedOperationException(
"Not supported yet,"
1916 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1917 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1918 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1923 String schemaPattern,
1924 String tableNamePattern,
1925 String columnNamePattern)
throws SQLException {
1926 MAPDLOGGER.debug(
"Entered");
1927 throw new UnsupportedOperationException(
"Not supported yet,"
1928 +
" line:" +
new Throwable().getStackTrace()[0].getLineNumber()
1929 +
" class:" +
new Throwable().getStackTrace()[0].getClassName()
1930 +
" method:" +
new Throwable().getStackTrace()[0].getMethodName());
1935 MAPDLOGGER.debug(
"Entered");
1940 public <T>
T unwrap(Class<T> iface)
throws SQLException {
1941 MAPDLOGGER.debug(
"Entered");
1947 MAPDLOGGER.debug(
"Entered");
static String DriverVersion
const rapidjson::Value & field(const rapidjson::Value &obj, const char field[]) noexcept
static int toJava(TDatumType type)
static int DriverMajorVersion
static int DriverMinorVersion