PostgreSQL andmebaasis on loodud tabel järgmise lausega

CREATE TABLE Isik (
isikukood d_eesti_isikukood,
kasutajanimi d_kasutajanimi,
e_mail d_e_mail,
eesnimi d_isiku_nime_osa,
perenimi d_isiku_nime_osa,
parool d_parool,
elukoht d_elukoht,
CONSTRAINT Isik_isikukood_on_unikaalne UNIQUE(isikukood),
CONSTRAINT Isik_e_mail_on_unikaalne UNIQUE(e_mail),
CONSTRAINT Isik_kasutajanimi_on_unikaalne UNIQUE(kasutajanimi),
CONSTRAINT Kas_isik_eesnimi_voi_perenimi_voi_molemad_maaratud CHECK((eesnimi IS NOT NULL) OR (perenimi IS NOT NULL))
) WITH (fillfactor=90);

CREATE TABLE Yliopilane (
matrikli_nr d_matrikli_nr,
yliopilase_seisundi_liik_R_id SMALLINT NOT NULL DEFAULT 1,
pilt BYTEA,
CONSTRAINT Matrikli_nr_on_primaarvoti PRIMARY KEY (matrikli_nr),
CONSTRAINT Yliopilane_isikukood_on_unikaalne UNIQUE(isikukood),
CONSTRAINT Yliopilane_e_mail_on_unikaalne UNIQUE(e_mail),
CONSTRAINT Yliopilane_kasutajanimi_on_unikaalne UNIQUE(kasutajanimi),
CONSTRAINT Yliopilane_on_mingis_seisundis FOREIGN KEY (yliopilase_seisundi_liik_R_id) REFERENCES Yliopilase_seisundi_liik_R(yliopilase_seisundi_liik_R_id) ON UPDATE CASCADE
) INHERITS (Isik) WITH (fillfactor=90);

CREATE TABLE Vastuvotuaeg (
vastuvott_id INTEGER NOT NULL,
alguse_kellaaeg TIME NOT NULL,
CONSTRAINT Vastuvott_id_alguse_kellaaeg_kombinatsioon_on_primaarvoti PRIMARY KEY
(vastuvott_id, alguse_kellaaeg),
CONSTRAINT Vastuvotuaeg_on_seotud_vastuvotuga FOREIGN KEY (vastuvott_id)
REFERENCES Vastuvott (vastuvott_id) ON DELETE CASCADE
);

CREATE TABLE Vastuvotule_tulek (
vastuvott_id INTEGER NOT NULL,
alguse_kellaaeg TIME NOT NULL,
matrikli_nr d_matrikli_nr,
kommentaar d_kirjeldus,
CONSTRAINT Vastuvott_id_algus_kellaaeg_kombinatsioon_on_tuleku_primaarvoti PRIMARY KEY (vastuvott_id, alguse_kellaaeg),
CONSTRAINT Vastuvotule_tulek_on_seotud_vastuvotuga FOREIGN KEY (vastuvott_id, alguse_kellaaeg) REFERENCES Vastuvotuaeg (vastuvott_id, alguse_kellaaeg) ON DELETE CASCADE,
CONSTRAINT Vastuvotule_tulek_on_seotud_yliopilasega FOREIGN KEY (matrikli_nr) REFERENCES Yliopilane (matrikli_nr) ON UPDATE CASCADE
) WITH (fillfactor=90);

Tabelite põhjal on vaja täita operatsioon 7.5.

OP7.5 Registreeri vastuvõtule tulek (
	p_kommentaar,
	vastuvõtuaja identifikaator, 
	p_tulija_kasutajanimi
)
Eeltingimused:
Vastuvõtuaeg eksemplar va (millel on vastuvõtuaja identifikaator) on registreeritud.
Üliõpilane eksemplar ü (millel on kasutajanimi=p_tulija_kasutajanimi) on registreeritud.
va-ga ei ole seotud ühtegi vastuvõtule tulekut.
Järeltingimused:
Vastuvõtule_tulek eksemplar vt on registreeritud
vt.kommentaar:= p_kommentaar.
vt ja va seos on registreeritud.
vt ja ü seos on registreeritud.
Kasutus kasutusjuhtude poolt: Registreeri vastuvõtule tulek

Palun loo PostgreSQL funktsioon, mis realiseerib selle andmebaasi põhjal selle operatsiooni.
Palun kasuta CREATE OR REPLACE lauset. 
Funktsiooni nimi peab olema tuletatud selle inimesele mõeldud nimest.
Funktsiooni nimi peab algama eesliitega f_
Funktsioon peab olema SQL kirjutatud SQL keeles, mitte PL/pgSQL keeles. 
Funktsioonis ei saa kasutada IF lauseid ja muutujaid. 
Funktsioon peab kasutama SQL-standardis kirjeldatud kehandit, st see peab olema BEGIN ATOMIC ja END vahel, mitte $$ või ' vahel. 
Funktsioon peab õnnestumise korral tagastama väärtuse. 
Tegemist peab olema SECURITY DEFINER funktsiooniga, mis on kirjutatud turvalisel (safe) viisil nii, et pg_temp skeem on otsingutees viimasel kohal.
Tabelid on public skeemis.
Palun loo ka funktsiooni kirjeldav kommentaar COMMENT lausena, kus on kindlasti operatsiooni identifikaatorid.
Kommentaaris tuleb muuhulgas öelda, et funktsioon on tehisintellekti genereeritud.
Palun loo ka lause, millega antakse funktsiooni käivitamise õigus kasutajale yliopilane_vastuvotud
Palun loo ka funktsiooni kustutamise lause.
