static ImmutableList buildImportedKeysColumnMetaData()

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;
    }