25 lines
1.2 KiB
MySQL
25 lines
1.2 KiB
MySQL
|
|
-- Splitter round_participant sitt gjeste-navn i for-/etternavn (2026-08-03).
|
||
|
|
-- guest_name beholdes UENDRET som en auto-synkronisert, lagret "fullt navn"-
|
||
|
|
-- kolonne (samme mønster som app_user.display_name synkes fra first_name/
|
||
|
|
-- last_name) -- unngår å måtte røre de ti+ eksisterende SELECT-stedene som
|
||
|
|
-- allerede leser rp.guest_name direkte. guest_first_name/guest_last_name er
|
||
|
|
-- den nye kilden til sannhet ved REDIGERING; guest_name er fortsatt det som
|
||
|
|
-- faktisk VISES.
|
||
|
|
ALTER TABLE round_participant ADD COLUMN guest_first_name text;
|
||
|
|
ALTER TABLE round_participant ADD COLUMN guest_last_name text;
|
||
|
|
|
||
|
|
-- Backfill: første ord = fornavn, resten = etternavn (samme heuristikk som
|
||
|
|
-- frontend bruker ved autofyll fra søkefeltet -- se new-round.tsx sin
|
||
|
|
-- initials()/fullName()-familie for presedens på "første ord vs. resten").
|
||
|
|
UPDATE round_participant
|
||
|
|
SET guest_first_name = CASE
|
||
|
|
WHEN position(' ' IN guest_name) > 0 THEN split_part(guest_name, ' ', 1)
|
||
|
|
ELSE guest_name
|
||
|
|
END,
|
||
|
|
guest_last_name = CASE
|
||
|
|
WHEN position(' ' IN guest_name) > 0
|
||
|
|
THEN NULLIF(trim(substring(guest_name FROM position(' ' IN guest_name) + 1)), '')
|
||
|
|
ELSE NULL
|
||
|
|
END
|
||
|
|
WHERE guest_name IS NOT NULL;
|