-INSERT INTO groupmembers (uid,gid) (SELECT $1,gid FROM groups
- WHERE flag = ANY($2) AND gid NOT IN (SELECT gid FROM groupmembers WHERE uid = $1))
+INSERT INTO groupmembers (uid,gid)
+ (SELECT $1,gid FROM unnest($2::text[]) gid WHERE
+ gid NOT IN (SELECT gid FROM groupmembers WHERE uid = $1)
+ AND gid IN (SELECT gid FROM groups))