My apologies. I missed that it had been reported. Thanks.
I have the same problem. Set Relationship simply doesn’t work. Does anyone in the RM staff track the discussions in this community? It would be useful for RM to acknowledge problems such as this one, and to give us an idea of the priority that is given to a fix.
I think you’ve replied on at least 3 separate posts now. It makes it hard to keep discussions together. If you have an example of Set Relationships not working then open a support ticket. Tell us who the start person is for set relationships and then which individuals to look at.
I have been able to identify one specific and repeatable problem in my database at least.
- An uncle by marriage showed as an uncle in RM9. I think an uncle by marriage should show as a spouse of an aunt in RM10. Instead, an uncle by marriage is now blank in RM10. This is a first generation uncle, not a third great granduncle or anything like that.
- An aunt by marriage showed as an aunt in RM9. I think an aunt by marriage should show as a spouse of an uncle in RM10. Instead, an aunt by marriage is now blank in RM10. This is a first generation aunt, not a third great grandaunt or anything like that.
I have 8550 people in my database who are the spouse of a relative. Of those 8550, there are 60 whose relationship field is blank rather than being “spouse of”. There seems to be no pattern as to who the 60 people are, except that if I keep running Set Relationships, it’s always the same 60. They are spouses of all kinds cousins - spouses of fourth cousins three times removed, spouses of second cousins once removed, etc.
Given how persistent this problem is, I suspect that the developers could find examples in their own databases by running a pretty simple SQLite script. Just run through the FamilyTable of your own database looking for cases where the Father is a relative and the Mother’s relationship is blank or vice versa. It has to be more than just that the father’s relationship is non-blank and the Mother’s relationship is blank or vice versa. The condition has to be a relative, not just a non-blank condition because a non-blank condition could be a “spouse of” condition.
I’ve been meaning to compare the two subsets of my database in which 1 of 6 ‘spouse of’ aunt|uncle did not get reported as an aunt. The GEDCOM export-import restored the relationship but the drag’n’drop did not. Could there be something subtle or some detritus preserved by the new NON GEDCOM drag’n’drop process that stimulates the fault? The comparison is complicated because drag’n’drop assigns new RINs. I will have to cross-reference the NameTables.
Or better still, cross reference by PersonTable.UniqueID.
I almost have a query done to identify all the incorrect relationships, and to identify the incorrect relationships in such a way that it doesn’t depend in a database already having color codes for the "spouse of " situation as my database already does. The query is slightly trickier than expected, but not that much trickier.
Of course identifying them doesn’t tell us how they got that way. It just identifies them. But the fact that I can Set Relationships over and over again and get the exact same people with the same incorrect relationships each time is a hopeful sign that that the problem can be solved fairly quickly. It certainly doesn’t seem random.
UniqueID escaped my memory but will check if preserved in GEDCOM when RM-specific features are excluded in the export.
In 2016, I published a script for a kinship list that included spouses of all blood relatives. I don’t recall if that was in response to an enhancement request to demonstrate its feasibility. Maybe it’s of some use to you but I suspect you’ve already been down your own road that way. Relationships #relationships – SQLite Tools for RootsMagic
I have completed an SQLite script that identifies individuals in my database who are the spouse of a relative but who are not marked as a spouse of a relative by the new feature in RM10’s Set Relationship tool that identifies spouses of relatives. In my database of 41163 people, my script identifies 57 people who were failed to be marked as a spouse of a relative. This new script relies only on RM10’s own relationship flags and does not rely on any color coding of relationships that I did in RM9 and which have been inherited into RM10.
So far, I see no pattern in the individuals who were missed or any other rhyme or reason for them being missed. There are so relatively few of them that it’s hard to identify them manually. My suspicion is that an RM10 database of any reasonable size is likely to have a few individuals who are failed to be marked as a spouse of a relative - a few but very, very few. I have been suspicious of situations where a relative with several spouses are married to people who also have several spouses. But my database has people who were missed who only had one spouse and who were married to someone who only had one spouse.
I think my script is pretty complete and accurate, but I reserve the right to further fine tune it if I find any issues with it. For whatever it’s worth, the relationship codes in RM10’s database for “Spouse Of” people are identical to the code for the relative. The only difference is that there is a flag field which is turned on for the “Spouse Of” person which is not turned on for the relative.
/*
_bad_set_relationships.sql 7/10/2024 Jerry Bryan
Identifies individuals in an RM10 database who have a missing
"Spouse Of" relationship after running the Set Relationships
tool. The identification of "Spouse Of" reationships such as
"Spouse Of Second Cousin Three Times Removed" is a new feature
in RM10. But there is an apparent bug where the tool misses a
few people. As of yet, no pattern has been identified as to which
people are missed. This script only identifies the people who have
been missed and doesn't fix them.
*/
SELECT F.FatherID, F.MotherID,
Father.Relate1 AS F_Relate1, Father.Relate2 AS F_Relate2, Father.Flags AS F_Flags,
Mother.Relate1 AS M_Relate1, Mother.Relate2 AS M_Relate2, Mother.Flags AS M_Flags
FROM FamilyTable AS F
JOIN PersonTable AS Father ON Father.PersonID = F.FatherID
JOIN PersonTable AS Mother ON Mother.PersonID = F.MotherID
WHERE
(
( ( (F_Relate1 | F_Relate2) != 0) AND ((M_Relate1 | M_Relate2) = 0) )
OR
( ( (F_Relate1 | F_Relate2) = 0) AND ((M_Relate1 | M_Relate2) != 0) )
)
AND
NOT ( (F_Flags | M_Flags) != 0)
I have not tried comparing the (RM) kinship report to the results of the persontable (relate1 & relate2 values) that might be a worthwhile excercise
I have seen that script before – and probably better than m y version
nice script – thanks for sharing
ok…
1st ran script based on relationships set from my Son-in-law POV – that returned no Results (which is what I was expecting)
2nd ran from my daughter POV after setting relationships – list had 62 (out of 23K database)
Partial screen clip below
Your results are exactly what I would expect. That’s why I think the RM folks can replicate the problem in their own databases without needing input from user databases. They can use my script or they can write their own. I’m still looking for patterns on the few people that get missed. I still don’t see the pattern.
As simple as it really is after you understand it, the Boolean logic required for this query drove me crazy for a long time because everything seemed sort of backwards. But that last bit can obviously be improved as follows. It doesn’t need the double negative.
( (F_Flags | M_Flags) = 0)
The original formulation was to find the relationships that were correct and eliminate them because we only want to show the incorrect relationships. So we want to find the correct relationships that already show “Spouse of”, meaning that their Flags were not equal 0. Then the query needs to the eliminate them with the NOT at the front of the Flags test. But the NOT and the not equal 0 is a double negative that can and should be eliminated.
I will dig into more on that set of people to see why as time permits). My daughter definitely has double relationships to to people who married in – not sure if that is a factor. Agreed that this does not seem “random” just the root cause(s) have not yet been identified. I will first take the output of 62 people can compare to the kinship report - however I suspected that may not be enough so I have any another idea that may show some hints
in my 78 person test database with the unreported aunt|‘spouse of uncle’, your script using either constraint returns nothing. So it would seem that there are more missing ‘spouse of’ relatives than your script identifies. My KinshipList.sql script correctly identifies her as “spouse of uncle”.
BTW, even with all export options turned off, RM 10 export-import preserves the RM UniqueID as does the RM 10 drag’n’drop.
However, drag’n’drop renumbers RINs as was the case in previous versions that used a background GEDCOM export-import. For my explicit export-import, I had used the option to preserve record numbers and note that the people are ordered differently between the two resulting databases. Makes me wonder if the underlying trigger of the ‘spouse of’ errors may be the order in which people are represented in the PersonTable.
I would expect my script to return nothing in a database with 78 people. The people who are missed as spouses by RM’s Set Relationship tool are rare enough that there seems to need to be a fairly large database to see the problem and for my script to see the problem.
Are you saying that you have a spouse of an an uncle who is blank or are you saying you have a spouse of an uncle who is reported as an aunt? My script does not report the spouse of an uncle who is marked as an aunt. It only reports the spouse of an uncle who is blank.
I would much rather that the spouse of an uncle be reported as spouse of an uncle than as being reported as an aunt. But right now, I’m only worried about the blank ones.
I have never used drag n drop - so that should not be issue for me . Here is an example of a close relative with Set Relationship set failure
spouse of aunt is missing and should be expected
moving to sibling in same family group – the set relationships has both spouses as expected
@rzamor1 look above example
Drag’n’drop of the common ‘ancestor’ and his descendants and their spouses to a new database resulted in the former, as was the case for the originating, larger database. Your script does not report that omission. My old script correctly states “spouse of uncle”.
Export from that originating database and import of that gedcom file into a new one resulted in the latter.
Sounds like there is something I need to fix in my script. Let’s move the conversation to your SQLite site.