text, varchar(n) and char(n) are all the same varlena in C — the difference lives entirely in the input function, which truncates, checks, or blank-pads at write time.
point, line, lseg, box, path, polygon and circle are the same 16-byte Point assembled differently — with a dummy int4 for alignment and a cached bounding box inside polygons.
Most PostgreSQL locks never touch the heavyweight lock table: weak relation locks live in a per-backend fast path, and the real lock table is split into sixteen …
jsonpath is a compiled value, not text: flex and bison parse it, a flatten pass links it with relative offsets, and you get back a normalized path instead of your input.