Event ID in double. Bug or feature?

On Reddit a discussion about renaming event ID shows it is possible to rename an event ID to an existing one, I’ve tried it in person editor and that works.

Is this something wanted or a check miss in event editor in person editor?

Can you do that in the main event list too?

I could NOT change an ID to an existing ID in any of the main list views. But I could change Events, Repository and Media records to an existing ID when editing from another record.

Open a Person edit window, could edit both Events and Media and change these to an existing ID.

Navigating through layers of windows to a Source record I could edit its Repository record to an existing ID.

And I just thought that each of these edits was editing a reference record and not an edit of the main record.

1 Like

I can see the value of being able to assign the same ID to 2 records to be useful in certain operations… like when renumbering the entire range or as an intermediary step during a merge. So long as there isn’t a duplicate of an internal handle, there wouldn’t be any confusion for the database engine. The IDs are just a convenience feature for users.

The only spots continuity of IDs would cause a definite problem would be in Custom Filters and Books. I’ve had a View set to a ID-based 2-stage custom filter and had problems when changing Trees.

There’s an option in the Note linking format to reference the Gramps IDs but there’s no interface to it. The interface always adds the internal Handle.

Charts & Reports (including the website generator) have options to display or name files based on ID.

It was helpful for me to reserve the 1st 100,000 person ID so that they can use meaningful Ahnentafel numbering for the nearest 15 generations of direct ancestors. It makes it easier to verify charts & reports are laid out as expected.

And I just did it on a Place record but only when I edited the next place record up in the hierarchy, a reference record and not a main record.

You can enter nearly everything into the ID field e.g. letters, numbers and even symbols. Gramps only checks for doubles when you create a new person and enter an ID.

Gramps is most of the time using handles to get objects from the database. The IDs are used by users to filter for objects, but I haven’t checked if a filter finding multiple objects the same ID returns all of them or just the first one.
If all are returned and only one is expected, it will cause an error. If only the first one is returned, there is no error, but you will get an object you do not expect.

I think the Check & Repair tool does check for duplicate IDs.


Duplicate IDs are a problem with GEDCOM, because they are used as handles there, which are called pointers in GEDCOM lingo. And as @Mattkmmr mentions, you can enter nearly everything, but the GEDCOM 5.5.1 standard seems to suggest that they must be alphanumerical. GEDCOM 7 is more explicit, and allows uppercase letters, digits, and underscore.

In practical situations, duplicate event or location pointers (IDs) are not a problem, because they aren’t exported to GEDCOM, but unique IDs are required for everything that can be exported as a top level object in GEDCOM, and that includes shared notes in GEDCOM 7.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.