PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 04/06/2014 19:47:38

Jolie
Membre

Comprendre une fonction

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

#2 05/06/2014 16:43:59

gleu
Administrateur

Re : Comprendre une fonction

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

#3 05/06/2014 20:54:00

Jolie
Membre

Re : Comprendre une fonction

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

#4 05/06/2014 23:36:17

gleu
Administrateur

Re : Comprendre une fonction

Ç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

Pied de page des forums