src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataMysqlSchema.java [1658:1687]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    int keySeq = 1;
                    Iterator<String> referencingColumns = foreignKey.referencingColumnsList.iterator();
                    Iterator<String> referencedColumns = foreignKey.referencedColumnsList.iterator();
                    while (referencingColumns.hasNext()) {
                        byte[][] row = new byte[14][];
                        row[0] = chooseBasedOnDatabaseTerm(() -> s2b(foreignKey.referencedDatabase), () -> s2b("def"));     // PKTABLE_CAT
                        row[1] = chooseBasedOnDatabaseTerm(() -> null, () -> s2b(foreignKey.referencedDatabase));           // PKTABLE_SCHEM
                        row[2] = s2b(foreignKey.referencedTable);                                                           // PKTABLE_NAME
                        row[3] = s2b(StringUtils.unquoteIdentifier(referencedColumns.next(), getQuoteId()));                // PKCOLUMN_NAME
                        row[4] = chooseBasedOnDatabaseTerm(() -> s2b(foreignKey.referencingDatabase), () -> s2b("def"));    // FKTABLE_CAT
                        row[5] = chooseBasedOnDatabaseTerm(() -> null, () -> s2b(foreignKey.referencingDatabase));          // FKTABLE_SCHEM
                        row[6] = s2b(foreignKey.referencingTable);                                                          // FKTABLE_NAME
                        row[7] = s2b(StringUtils.unquoteIdentifier(referencingColumns.next(), getQuoteId()));               // FKCOLUMN_NAME
                        row[8] = n2b(keySeq++);                                                                             // KEY_SEQ
                        row[9] = n2b(foreignKey.referentialActionOnUpdate);                                                 // UPDATE_RULE
                        row[10] = n2b(foreignKey.referentialActionOnDelete);                                                // DELETE_RULE
                        row[11] = s2b(foreignKey.constraintName);                                                           // FK_NAME
                        row[12] = null;                                                                                     // PK_NAME, not available
                        row[13] = n2b(importedKeyNotDeferrable);                                                            // DEFERRABILITY
                        rows.add(new ByteArrayRow(row, getExceptionInterceptor()));
                    }
                }
            }
        }

        return getResultSetFactory().createFromResultsetRows(ResultSet.CONCUR_READ_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE,
                new ResultsetRowsStatic(rows, new DefaultColumnDefinition(createForeignKeysFields())));
    }

    @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataMysqlSchema.java [1714:1743]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    int keySeq = 1;
                    Iterator<String> referencingColumns = foreignKey.referencingColumnsList.iterator();
                    Iterator<String> referencedColumns = foreignKey.referencedColumnsList.iterator();
                    while (referencingColumns.hasNext()) {
                        byte[][] row = new byte[14][];
                        row[0] = chooseBasedOnDatabaseTerm(() -> s2b(foreignKey.referencedDatabase), () -> s2b("def"));     // PKTABLE_CAT
                        row[1] = chooseBasedOnDatabaseTerm(() -> null, () -> s2b(foreignKey.referencedDatabase));           // PKTABLE_SCHEM
                        row[2] = s2b(foreignKey.referencedTable);                                                           // PKTABLE_NAME
                        row[3] = s2b(StringUtils.unquoteIdentifier(referencedColumns.next(), getQuoteId()));                // PKCOLUMN_NAME
                        row[4] = chooseBasedOnDatabaseTerm(() -> s2b(foreignKey.referencingDatabase), () -> s2b("def"));    // FKTABLE_CAT
                        row[5] = chooseBasedOnDatabaseTerm(() -> null, () -> s2b(foreignKey.referencingDatabase));          // FKTABLE_SCHEM
                        row[6] = s2b(foreignKey.referencingTable);                                                          // FKTABLE_NAME
                        row[7] = s2b(StringUtils.unquoteIdentifier(referencingColumns.next(), getQuoteId()));               // FKCOLUMN_NAME
                        row[8] = n2b(keySeq++);                                                                             // KEY_SEQ
                        row[9] = n2b(foreignKey.referentialActionOnUpdate);                                                 // UPDATE_RULE
                        row[10] = n2b(foreignKey.referentialActionOnDelete);                                                // DELETE_RULE
                        row[11] = s2b(foreignKey.constraintName);                                                           // FK_NAME
                        row[12] = null;                                                                                     // PK_NAME, not available
                        row[13] = n2b(importedKeyNotDeferrable);                                                            // DEFERRABILITY
                        rows.add(new ByteArrayRow(row, getExceptionInterceptor()));
                    }
                }
            }
        }

        return getResultSetFactory().createFromResultsetRows(ResultSet.CONCUR_READ_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE,
                new ResultsetRowsStatic(rows, new DefaultColumnDefinition(createForeignKeysFields())));
    }

    @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



