Skip to content

Commit

Permalink
optimize sql
Browse files Browse the repository at this point in the history
  • Loading branch information
stevenwinship committed Oct 3, 2024
1 parent 66c112d commit e51cf6c
Showing 1 changed file with 10 additions and 14 deletions.
24 changes: 10 additions & 14 deletions src/main/java/edu/harvard/iq/dataverse/PermissionServiceBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,37 +106,33 @@ public class PermissionServiceBean {
")\n" +
"\n" +
"SELECT * FROM DATAVERSE WHERE id IN (\n" +
" SELECT definitionpoint_id \n" +
" SELECT definitionpoint_id\n" +
" FROM roleassignment\n" +
" WHERE roleassignment.assigneeidentifier IN (\n" +
" SELECT CONCAT('&explicit/', explicitgroup.groupalias) as assignee\n" +
" FROM explicitgroup\n" +
" WHERE explicitgroup.id IN (\n" +
" (\n" +
" SELECT explicitgroup.id id\n" +
" FROM explicitgroup \n" +
" WHERE explicitgroup.id IN (SELECT id FROM grouplist)\n" +
" FROM explicitgroup\n" +
" WHERE EXISTS (SELECT id FROM grouplist WHERE id = explicitgroup.id)\n" +
" ) UNION (\n" +
" SELECT explicitgroup_explicitgroup.containedexplicitgroups_id id\n" +
" FROM explicitgroup_explicitgroup\n" +
" WHERE explicitgroup_explicitgroup.explicitgroup_id IN (SELECT id FROM grouplist)\n" +
" AND \n" +
" (SELECT count(*)\n" +
" FROM dataverserole\n" +
" WHERE dataverserole.id = roleassignment.role_id and (dataverserole.permissionbits & @PERMISSIONBIT !=0)) > 0\n" +
" WHERE EXISTS (SELECT id FROM grouplist WHERE id = explicitgroup_explicitgroup.explicitgroup_id)\n" +
" AND EXISTS (SELECT id FROM dataverserole\n" +
" WHERE dataverserole.id = roleassignment.role_id and (dataverserole.permissionbits & @PERMISSIONBIT !=0))\n" +
" )\n" +
" )\n" +
" ) UNION (\n" +
" SELECT definitionpoint_id \n" +
" SELECT definitionpoint_id\n" +
" FROM roleassignment\n" +
" WHERE roleassignment.assigneeidentifier = (\n" +
" SELECT CONCAT('@', authenticateduser.useridentifier)\n" +
" FROM authenticateduser \n" +
" FROM authenticateduser\n" +
" WHERE authenticateduser.id = @USERID)\n" +
" AND \n" +
" (SELECT count(*)\n" +
" FROM dataverserole\n" +
" WHERE dataverserole.id = roleassignment.role_id and (dataverserole.permissionbits & @PERMISSIONBIT !=0)) > 0\n" +
" AND EXISTS (SELECT id FROM dataverserole\n" +
" WHERE dataverserole.id = roleassignment.role_id and (dataverserole.permissionbits & @PERMISSIONBIT !=0))\n" +
" )\n" +
")";
/**
Expand Down

0 comments on commit e51cf6c

Please sign in to comment.