1. The problem

Incorrect use of the term key was noted by a reviewer of the ticket:

The current implementation of the code is referring to columns representing so-called "object identifiers" as the keys rather than the columns. Examples:

Error rendering macro 'code': Invalid value specified for parameter 'com.atlassian.confluence.ext.code.render.InvalidValueException'
// File: core/modules/replica/ConfigDatabase.h

/**
 * Class DatabaseInfo encapsulates various parameters describing databases.
 */
class DatabaseInfo {
public:
    ...
    std::map<std::string,               // The table name (partitioned tables only!).
        std::string> directorTableKey;  // The name of the table's key representing object identifiers.
                                        // NOTES: (1) In the "dependent" tables the key represents the FK
                                        // associated with the corresponding PK of the "director" table.
                                        // (2) The key is allowed to be empty for the "dependent" tables
                                        // that don't have any objectId-based association with
                                        // the "director" table.

The very same problem exists in many other locations, including in the schema of the JSON configurations required by the REST server of the Master Replication Controller.

  • No labels