in src/main/java/software/amazon/documentdb/jdbc/DocumentDbDatabaseMetaDataResultSets.java [1509:1756]
static ImmutableList<JdbcColumnMetaData> buildImportedKeysColumnMetaData(
final String schemaName) {
if (importedKeysColumnMetaData == null) {
// 1. PKTABLE_CAT String => primary key table catalog being imported (may be null)
// 2. PKTABLE_SCHEM String => primary key table schema being imported (may be null)
// 3. PKTABLE_NAME String => primary key table name being imported
// 4. PKCOLUMN_NAME String => primary key column name being imported
// 5. FKTABLE_CAT String => foreign key table catalog (may be null)
// 6. FKTABLE_SCHEM String => foreign key table schema (may be null)
// 7. FKTABLE_NAME String => foreign key table name
// 8. FKCOLUMN_NAME String => foreign key column name
// 9. KEY_SEQ short => sequence number within a foreign key
// (a value of 1 represents the first column of the foreign key, a value of 2
// would represent the second column within the foreign key).
// 10. UPDATE_RULE short => What happens to a foreign key when the primary key is updated:
// importedNoAction - do not allow update of primary key if it has been imported
// importedKeyCascade - change imported key to agree with primary key update
// importedKeySetNull - change imported key to NULL if its primary key has been updated
// importedKeySetDefault - change imported key to default values if its primary key has been updated
// importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x compatibility)
// 11. DELETE_RULE short => What happens to the foreign key when primary is deleted.
// importedKeyNoAction - do not allow delete of primary key if it has been imported
// importedKeyCascade - delete rows that import a deleted key
// importedKeySetNull - change imported key to NULL if its primary key has been deleted
// importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x compatibility)
// importedKeySetDefault - change imported key to default if its primary key has been deleted
// 12. FK_NAME String => foreign key name (may be null)
// 13. PK_NAME String => primary key name (may be null)
// 14. DEFERRABILITY short => can the evaluation of foreign key constraints be deferred until commit
// importedKeyInitiallyDeferred - see SQL92 for definition
// importedKeyInitiallyImmediate - see SQL92 for definition
// importedKeyNotDeferrable - see SQL92 for definition
int ordinal = 0;
importedKeysColumnMetaData = ImmutableList.<JdbcColumnMetaData>builder()
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNullable, //nullable,
false, //signed,
64, //displaySize,
"PKTABLE_CAT", //label,
"PKTABLE_CAT", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNullable, //nullable,
false, //signed,
64, //displaySize,
"PKTABLE_SCHEM", //label,
"PKTABLE_SCHEM", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
false, //signed,
120, //displaySize,
"PKTABLE_NAME", //label,
"PKTABLE_NAME", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
false, //signed,
255, //displaySize,
"PKCOLUMN_NAME", //label,
"PKCOLUMN_NAME", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNullable, //nullable,
false, //signed,
64, //displaySize,
"FKTABLE_CAT", //label,
"FKTABLE_CAT", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNullable, //nullable,
false, //signed,
64, //displaySize,
"FKTABLE_SCHEM", //label,
"FKTABLE_SCHEM", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
false, //signed,
120, //displaySize,
"FKTABLE_NAME", //label,
"FKTABLE_NAME", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
true, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
false, //signed,
255, //displaySize,
"FKCOLUMN_NAME", //label,
"FKCOLUMN_NAME", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
false, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
true, //signed,
12, //displaySize,
"KEY_SEQ", //label,
"KEY_SEQ", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.SMALLINT, //type.id,
JdbcType.SMALLINT.name(), //type.name,
short.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
false, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
true, //signed,
12, //displaySize,
"UPDATE_RULE", //label,
"UPDATE_RULE", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.SMALLINT, //type.id,
JdbcType.SMALLINT.name(), //type.name,
short.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
false, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
true, //signed,
12, //displaySize,
"DELETE_RULE", //label,
"DELETE_RULE", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.SMALLINT, //type.id,
JdbcType.SMALLINT.name(), //type.name,
short.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
false, //caseSensitive,
ResultSetMetaData.columnNullable, //nullable,
false, //signed,
64, //displaySize,
"FK_NAME", //label,
"FK_NAME", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal++,
false, //caseSensitive,
ResultSetMetaData.columnNullable, //nullable,
false, //signed,
64, //displaySize,
"PK_NAME", //label,
"PK_NAME", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.VARCHAR, //type.id,
JdbcType.VARCHAR.name(), //type.name,
String.class.getName()) //columnClassName
)
.add(new JdbcColumnMetaData(
ordinal, // not incremented
false, //caseSensitive,
ResultSetMetaData.columnNoNulls, //nullable,
true, //signed,
12, //displaySize,
"DEFERRABILITY", //label,
"DEFERRABILITY", //columnName,
schemaName, //schemaName,
0, //precision,
0, //scale,
Types.SMALLINT, //type.id,
JdbcType.SMALLINT.name(), //type.name,
short.class.getName()) //columnClassName
)
.build();
}
return importedKeysColumnMetaData;
}