silverstripe/sapphire — pull request #502 by unclecheese (2012-06-04 15:29:03+00:00)
Title: If a DataObject has a many_many to a SiteTree subclass...

and that subclass has no database fields defined, and $this->name is "ID", this function will errantly return "SiteTreeSubClass.ID", which can never exist in a search query, since there is no such table as SiteTreeSubClass. The problem is that DataObject::hasOwnTableDatabaseField() is a little eager when passed an argument of "ID." It doesn't check to see if the object has its own table first.