Patent ID: 7533087

Claim:
A method of directing a data processing system to execute a query against a data object, the query having a union all operator and having a set of data modifying operators, the set of data modifying operators being associated with the union all operator, the union all operator referencing the data object, the method comprising: determining whether a data modification operation is being requested by the query; if no data modification operation is being requested, terminating operations of said method; if the data modification operation is being requested, determining whether the data modification operation operates upon a data object involving one of an Updateable union all operator, Deleteable union all operator and Insertable union all operator; if it is determined that said data modification operation does not operate upon the data object involving said one of the Updateable union all operator, Deleteable union all operator, and Insertable union all operator, terminating operations of said method; if it is determined that the data modification operation operates upon the data object involving said one of the Updateable union all operator, Deleteable union all operator, and Insertable union all operator: preventing the union all operator from being applied to the data object; and applying the set of data modifying operators against the data object, wherein the applying comprises: analyzing every selected update operator and every selected delete operator to determine if the source for the selected update operator and the selected delete operator comes from the data objects referenced by the UNION ALL operator, wherein the analyzing comprises: comparing an identifier added to each source row to ensure that each data object referenced by the union all operator only contains a single identifier; and comparing a condition in a selected data modifying operator with the identifier for all rows from particular data modifying operators referenced by the union all operator to ensure that only a single data object is the source for the selected data modifying operator.