Bonjour,

J'ai créé le type suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
CREATE TYPE proeco AS (
	nom text,
	prenom text,
	matricule int4,
	hash text);
Ensuite je crée la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
DROP FUNCTION test();
CREATE  FUNCTION test() RETURNS SETOF proeco AS $$
rv = plpy.execute("SELECT nom,prenom,matricule,hash FROM users")
d  = rv.nrows();
if d > 1:
	return rv[0:5]
 
nom = "toto";
prenom = "toto";
matricule = 123;
hash = "hash";
 
return (nom,prenom,matricule,hash)
 
$$ LANGUAGE plpythonu;
Cela fonctionne sans souci, mais lorsque c'est vide, j'ai l"erreur suivante, pourtant il me semble être cohérent par rapport à la doc.

voici le message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Query execution failed
 
Motif:
SQL Error [22P02]: ERROR: malformed record literal: "toto"
  Détail : Missing left parenthesis.
  Où : while creating return value
PL/Python function "test"
Merci de votre aide.