callAllId.md 1.47 KB

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.