in iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBAbstractDatabaseMetadata.java [1898:2150]
public ResultSet getTypeInfo() throws SQLException {
Statement stmt = connection.createStatement();
Field[] fields = new Field[18];
fields[0] = new Field("", TYPE_NAME, "TEXT");
fields[1] = new Field("", DATA_TYPE, INT32);
fields[2] = new Field("", PRECISION, INT32);
fields[3] = new Field("", "LITERAL_PREFIX", "TEXT");
fields[4] = new Field("", "LITERAL_SUFFIX", "TEXT");
fields[5] = new Field("", "CREATE_PARAMS", "TEXT");
fields[6] = new Field("", NULLABLE, INT32);
fields[7] = new Field("", "CASE_SENSITIVE", BOOLEAN);
fields[8] = new Field("", "SEARCHABLE", "TEXT");
fields[9] = new Field("", "UNSIGNED_ATTRIBUTE", BOOLEAN);
fields[10] = new Field("", "FIXED_PREC_SCALE", BOOLEAN);
fields[11] = new Field("", "AUTO_INCREMENT", BOOLEAN);
fields[12] = new Field("", "LOCAL_TYPE_NAME", "TEXT");
fields[13] = new Field("", "MINIMUM_SCALE", INT32);
fields[14] = new Field("", "MAXIMUM_SCALE", INT32);
fields[15] = new Field("", SQL_DATA_TYPE, INT32);
fields[16] = new Field("", SQL_DATETIME_SUB, INT32);
fields[17] = new Field("", NUM_PREC_RADIX, INT32);
List<TSDataType> tsDataTypeList =
Arrays.asList(
TSDataType.TEXT,
TSDataType.INT32,
TSDataType.INT32,
TSDataType.TEXT,
TSDataType.TEXT,
TSDataType.TEXT,
TSDataType.INT32,
TSDataType.BOOLEAN,
TSDataType.TEXT,
TSDataType.BOOLEAN,
TSDataType.BOOLEAN,
TSDataType.BOOLEAN,
TSDataType.TEXT,
TSDataType.INT32,
TSDataType.INT32,
TSDataType.INT32,
TSDataType.INT32,
TSDataType.INT32);
List<Object> listValSub1 =
Arrays.asList(
INT32,
Types.INTEGER,
10,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub2 =
Arrays.asList(
INT64,
Types.BIGINT,
19,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub3 =
Arrays.asList(
BOOLEAN,
Types.BOOLEAN,
1,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub4 =
Arrays.asList(
FLOAT,
Types.FLOAT,
38,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub5 =
Arrays.asList(
DOUBLE,
Types.DOUBLE,
308,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub6 =
Arrays.asList(
"TEXT",
Types.LONGVARCHAR,
64,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub7 =
Arrays.asList(
STRING,
Types.VARCHAR,
64,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub8 =
Arrays.asList(
BLOB, Types.BLOB, 64, "", "", "", 1, true, "", false, true, false, "", 0, 10, 0, 0, 10);
List<Object> listValSub9 =
Arrays.asList(
TIMESTAMP,
Types.TIMESTAMP,
3,
"",
"",
"",
1,
true,
"",
false,
true,
false,
"",
0,
10,
0,
0,
10);
List<Object> listValSub10 =
Arrays.asList(
DATE, Types.DATE, 0, "", "", "", 1, true, "", false, true, false, "", 0, 10, 0, 0, 10);
List<List<Object>> valuesList =
Arrays.asList(
listValSub1,
listValSub2,
listValSub3,
listValSub4,
listValSub5,
listValSub6,
listValSub7,
listValSub8,
listValSub9,
listValSub10);
List<String> columnNameList = new ArrayList<>();
List<String> columnTypeList = new ArrayList<>();
Map<String, Integer> columnNameIndex = new HashMap<>();
for (int i = 0; i < fields.length; i++) {
columnNameList.add(fields[i].getName());
columnTypeList.add(fields[i].getSqlType());
columnNameIndex.put(fields[i].getName(), i);
}
ByteBuffer tsBlock = null;
try {
tsBlock = convertTsBlock(valuesList, tsDataTypeList);
} catch (IOException e) {
LOGGER.error(CONVERT_ERROR_MSG, e.getMessage());
} finally {
close(null, stmt);
}
return new IoTDBJDBCResultSet(
stmt,
columnNameList,
columnTypeList,
columnNameIndex,
true,
client,
null,
-1,
sessionId,
Collections.singletonList(tsBlock),
null,
(long) 60 * 1000,
false,
zoneId);
}