You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Similar to #501 and #502, DeleteBuilder should also support DeleteAuthorizer It will require adding a couple more stages to the delete pipeline (MAP_CHANGES, AUTHORIZE_CHANGES).
Challenge: currently we allow bulk delete of all rows without bringing objects in memory. We will need to integrate it with DeleteAuthorizer somehow.
Usage example
This is per-request API. Same can be applied per Agrest stack using similar AgEntityOverlay methods.
Previously Agrest allowed for a special case of a "full table delete" to be processed in the database (via delete from table), without bringing the objects to the app memory. From now on "full table delete" is processed the same way as other delete cases - by selecting and analyzing the objects first. If your code uses "full table delete" on very large tables, this operation may become noticeably slower and may even fail due to insufficient memory. If you need such deletes (and willing to ignore the authorizers), you may bypass Agrest, and do a delete via Cayenne directly (or use the new stage API per #506)
The text was updated successfully, but these errors were encountered:
Similar to #501 and #502,
DeleteBuilder
should also supportDeleteAuthorizer
It will require adding a couple more stages to the delete pipeline (MAP_CHANGES, AUTHORIZE_CHANGES).Challenge: currently we allow bulk delete of all rows without bringing objects in memory. We will need to integrate it with
DeleteAuthorizer
somehow.Usage example
This is per-request API. Same can be applied per Agrest stack using similar AgEntityOverlay methods.
Upgrade notes
Previously Agrest allowed for a special case of a "full table delete" to be processed in the database (via
delete from table
), without bringing the objects to the app memory. From now on "full table delete" is processed the same way as other delete cases - by selecting and analyzing the objects first. If your code uses "full table delete" on very large tables, this operation may become noticeably slower and may even fail due to insufficient memory. If you need such deletes (and willing to ignore the authorizers), you may bypass Agrest, and do a delete via Cayenne directly (or use the new stage API per #506)The text was updated successfully, but these errors were encountered: