src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataInformationSchema.java [490:511]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (table == null) {
            throw SQLError.createSQLException(Messages.getString("DatabaseMetaData.2"), MysqlErrorNumbers.SQLSTATE_CONNJ_ILLEGAL_ARGUMENT,
                    getExceptionInterceptor());
        }

        final String dbFromTerm = chooseDatabaseTerm(catalog, schema);
        final String dbFilter = normalizeIdentifierQuoting(dbFromTerm);
        final String tableFilter = normalizeIdentifierQuoting(table);

        StringBuilder query = new StringBuilder("SELECT DISTINCT");
        query.append(chooseBasedOnDatabaseTerm(() -> " A.REFERENCED_TABLE_SCHEMA AS PKTABLE_CAT, NULL AS PKTABLE_SCHEM,",
                () -> " A.CONSTRAINT_CATALOG AS PKTABLE_CAT, A.REFERENCED_TABLE_SCHEMA AS PKTABLE_SCHEM,"));                // PKTABLE_CAT, PKTABLE_SCHEM
        query.append(" A.REFERENCED_TABLE_NAME AS PKTABLE_NAME,");                                                          // PKTABLE_NAME
        query.append(" A.REFERENCED_COLUMN_NAME AS PKCOLUMN_NAME,");                                                        // PKCOLUMN_NAME
        query.append(chooseBasedOnDatabaseTerm(() -> " A.TABLE_SCHEMA AS FKTABLE_CAT, NULL AS FKTABLE_SCHEM,",
                () -> " A.TABLE_CATALOG AS FKTABLE_CAT, A.TABLE_SCHEMA AS FKTABLE_SCHEM,"));                                // FKTABLE_CAT, FKTABLE_SCHEM
        query.append(" A.TABLE_NAME AS FKTABLE_NAME,");                                                                     // FKTABLE_NAME
        query.append(" A.COLUMN_NAME AS FKCOLUMN_NAME,");                                                                   // FKCOLUMN_NAME
        query.append(" A.ORDINAL_POSITION AS KEY_SEQ,");                                                                    // KEY_SEQ
        appendUpdateRuleClause(query).append(" AS UPDATE_RULE,");                                                           // UPDATE_RULE
        appendDeleteRuleClause(query).append(" AS DELETE_RULE,");                                                           // DELETE_RULE
        query.append(" A.CONSTRAINT_NAME AS FK_NAME,");                                                                     // FK_NAME
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataInformationSchema.java [653:674]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (table == null) {
            throw SQLError.createSQLException(Messages.getString("DatabaseMetaData.2"), MysqlErrorNumbers.SQLSTATE_CONNJ_ILLEGAL_ARGUMENT,
                    getExceptionInterceptor());
        }

        final String dbFromTerm = chooseDatabaseTerm(catalog, schema);
        final String dbFilter = normalizeIdentifierQuoting(dbFromTerm);
        final String tableFilter = normalizeIdentifierQuoting(table);

        StringBuilder query = new StringBuilder("SELECT DISTINCT");
        query.append(chooseBasedOnDatabaseTerm(() -> " A.REFERENCED_TABLE_SCHEMA AS PKTABLE_CAT, NULL AS PKTABLE_SCHEM,",
                () -> " A.CONSTRAINT_CATALOG AS PKTABLE_CAT, A.REFERENCED_TABLE_SCHEMA AS PKTABLE_SCHEM,"));                // PKTABLE_CAT, PKTABLE_SCHEM
        query.append(" A.REFERENCED_TABLE_NAME AS PKTABLE_NAME,");                                                          // PKTABLE_NAME
        query.append(" A.REFERENCED_COLUMN_NAME AS PKCOLUMN_NAME,");                                                        // PKCOLUMN_NAME
        query.append(chooseBasedOnDatabaseTerm(() -> " A.TABLE_SCHEMA AS FKTABLE_CAT, NULL AS FKTABLE_SCHEM,",
                () -> " A.TABLE_CATALOG AS FKTABLE_CAT, A.TABLE_SCHEMA AS FKTABLE_SCHEM,"));                                // FKTABLE_CAT, FKTABLE_SCHEM
        query.append(" A.TABLE_NAME AS FKTABLE_NAME,");                                                                     // FKTABLE_NAME
        query.append(" A.COLUMN_NAME AS FKCOLUMN_NAME,");                                                                   // FKCOLUMN_NAME
        query.append(" A.ORDINAL_POSITION AS KEY_SEQ,");                                                                    // KEY_SEQ
        appendUpdateRuleClause(query).append(" AS UPDATE_RULE,");                                                           // UPDATE_RULE
        appendDeleteRuleClause(query).append(" AS DELETE_RULE,");                                                           // DELETE_RULE
        query.append(" A.CONSTRAINT_NAME AS FK_NAME,");                                                                     // FK_NAME
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



