Rust AppView - highly experimental!
at experiments 1.3 kB view raw
1-- Insert/update feedgen with CTE to resolve actor_id 2-- Self-contained schema: No records table, metadata embedded directly 3-- Parameters: $1=actor_id, $2=rkey, $3=cid, $4=service_actor_id, $5=content_mode, $6=name, 4-- $7=description, $8=description_facets, $9=avatar_cid, $10=created_at 5INSERT INTO feedgens ( 6 actor_id, rkey, cid, created_at, owner_actor_id, service_actor_id, content_mode, name, 7 description, description_facets, avatar_cid, accepts_interactions 8) 9SELECT 10 $1, -- actor_id (provided by caller) 11 $2, -- rkey (TEXT, provided by caller) 12 $3::bytea, -- cid (embedded) 13 $10, -- created_at (embedded) 14 $1, -- owner_actor_id (same as actor_id for feed generators) 15 $4, -- service_actor_id (passed as parameter, already ensured in executor) 16 $5::text::content_mode, 17 $6, -- name 18 $7, -- description 19 $8, -- description_facets 20 $9, -- avatar_cid 21 true -- Default accepts_interactions to true 22ON CONFLICT (actor_id, rkey) DO UPDATE SET 23 cid=EXCLUDED.cid, 24 service_actor_id=EXCLUDED.service_actor_id, 25 content_mode=EXCLUDED.content_mode, 26 name=EXCLUDED.name, 27 description=EXCLUDED.description, 28 description_facets=EXCLUDED.description_facets, 29 avatar_cid=EXCLUDED.avatar_cid, 30 status='complete'::feedgen_status 31RETURNING XMAX::text::int 32