callAllId (procedure)
- Type: PROCEDURE
- Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
No parameters.
Body
Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDUREcallAllId'.
Narrative
Business context: Rebuilds the materialised sAllId path column for every node in gdsmodule (the BACK navigation/module tree). The tree's parent-child links live in sParentId; sAllId caches the full ancestor chain (-grandparent-parent-self) so descendant-of queries become a LIKE match instead of a recursive CTE. Run after any module reparent / insert to keep the cache consistent.
What it does: opens a cursor over gdsmodule ordered by iOrder. For each row: if it has a parent, reads the parent's own parent; writes sAllId = '-grandparent-parent-self' when both exist, '-parent-self' when only the parent exists, or '-self' when the row is a root. Three-level only — deeper trees would be truncated (matches xly's two-real-levels-plus-leaf module layout).
Invocation: called by GdsmoduleServiceImpl.updateGdsmodule() after editing a module record (xlyManage), and by LicenseServiceImpl.updateAllId() (license-bootstrap path that reseeds the tree). No form-master / gdsmodule-hook binding — strictly a Java-triggered maintenance routine. Sibling procs callAllIdbVisible, callAllIdChid, callAllIdChidVisible are variants over the same sAllId/visibility/children-id pattern.