title: MacOS CoreData Fault Delete propagation prefetch fail
body: <p>Two entities in a one to many relationship are deleted. Saving the context after the master entity is deleted causes a CoreData fault.</p>
  <blockquote>
  <p>2020-05-13 11:55:48.460486-0400 TestCoreData[1325:99076] [error] fault: Delete propagation prefetching failed with exception: unimplemented SQL generation for predicate : (#in IN $destinations)</p>
  <p>CoreData: fault: Delete propagation prefetching failed with exception: unimplemented SQL generation for predicate : (#in IN $destinations)</p>
  </blockquote>
  <p>Both relationships are optional with a Nullify delete rule. It appears as though CoreData is generating bad SQL.</p>
  <p><a href="https://i.stack.imgur.com/nEmnV.png" rel="nofollow noreferrer">Archive Entity</a></p>
  <p><a href="https://i.stack.imgur.com/P1QtD.png" rel="nofollow noreferrer">Media Entity</a></p>
  <p>Sample code to create the error:</p>
  <pre><code>- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
  NSError *error;
  Archive *anArchive = [NSEntityDescription insertNewObjectForEntityForName:@&quot;Archive&quot; inManagedObjectContext:self.managedObjectContext];
    anArchive.archiveID = @&quot;archive&quot;;
    Media *theMedia = [NSEntityDescription insertNewObjectForEntityForName:@&quot;Media&quot; inManagedObjectContext:self.managedObjectContext];
  theMedia.mediaID = @&quot;media&quot;;
  theMedia.in = anArchive;
  [self.managedObjectContext save:&amp;error];
  [self.managedObjectContext deleteObject:theMedia];
  if (![self.managedObjectContext save:&amp;error]) NSLog(@&quot;error %@&quot;,error.localizedDescription);
  [self.managedObjectContext deleteObject:anArchive];
  if (![self.managedObjectContext save:&amp;error]) NSLog(@&quot;error %@&quot;,error.localizedDescription);
  }
  </code></pre>