Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Voilà je suis débutante et j'essaie de comprendre la fonction suivante :
create or replace function mystere(integer) returns integer as
$$
declare
prj integer;
prjp integer;
begin
select projectid,projectparentid into prj,prjp from project where projectid=$1;
if prj is null then return NULL;
end if;
if prjp is null then return prj;
end if;
return find_main_project(prjp);
end ;
$$
language 'plpgsql' ;
Je veux comprendre précisément le but de cette fonction, et le rôle des lignes de code qui la compose. Afin de lui donner un meilleur nom que "mystère".
Merci d'avance
Hors ligne
Difficile à dire sans connaître le contexte. À priori la fonction semble renvoyer l'identifiant de projet père (principal ?) pour un projet donné.
Guillaume.
Hors ligne
Enfaite la fonction est reliée à l'extrait du script de création d'une base de données suivant :
CREATE TABLE PROJECT
(
PROJECTID serial NOT NULL ,
PROJECTNAME varchar(128) NOT NULL ,
PROJECTENDDATE date NULL ,
PROJECTPARENTID int4 NULL
, CONSTRAINT PK_PROJECT PRIMARY KEY (PROJECTID)
);
ALTER TABLE PROJECT ADD
CONSTRAINT FK_PROJECT_PROJECT
FOREIGN KEY (PROJECTPARENTID)
REFERENCES PROJECT (PROJECTID);
Peut-être est-ce plus claire ainsi ?
Hors ligne
Ça ne fait que confirmer ce que j'ai dit plus haut, à savoir que la fonction semble rechercher le projet parent le plus éloigné d'un projet donné. Cela étant dit, il vaudrait mieux poser la question à celui qui a écrit cette fonction et qui connaît le contexte de cette application.
Guillaume.
Hors ligne
Pages : 1