SPI_modifytuple — crée une ligne en remplaçant les champs sélectionnés d'une ligne donnée
HeapTuple SPI_modifytuple(Relationrel
, HeapTuplerow
,ncols
,colnum
, Datum *values
, const char *nulls
)
SPI_modifytuple
crée une nouvelle ligne en
retirant les nouvelles valeurs pour les colonnes sélectionnées et en copiant
les colonnes de la ligne d'origine à d'autres positions. La ligne d'entrée
n'est pas modifiée.
La nouvelle ligne est retournée dans le contexte de l'exécuteur supérieur.
Cette fonction ne peut être utilisée que pendant une connexion SPI.
Sinon, elle renvoie NULL et affecte SPI_ERROR_UNCONNECTED
à
SPI_result
.
Relation rel
Utilisé seulement en tant que source du descripteur de ligne pour la ligne (passez une relation plutôt qu'un descripteur de ligne est une erreur).
HeapTuple row
rangée à modifier
int ncols
nombre de numéros de colonnes à changer
int * colnum
tableau de longueur ncols
, contenant les numéros
de colonnes à modifier (le numéro des colonnes commence à 1)
Datum * values
tableau de longueur ncols
, contenant les nouvelles
valeurs pour les colonnes spécifiées
const char * nulls
tableau de longueur ncols
, décrivant les nouvelles
valeurs NULL
Si nulls
vaut NULL
, alors
SPI_modifytuple
suppose qu'aucune valeur
n'est NULL. Dans le cas contraire, chaque entrée du tableau
nulls
doit valoir ' '
si
la nouvelle valeur correspondante est non NULL et 'n'
si la nouvelle valeur correspondante est NULL (dans ce dernier cas, la
valeur réelle de l'entrée values
correspondante
n'a pas d'importance). Notez que nulls
n'est pas
une chaîne de texte. C'est un tableau et, de ce fait, il n'a pas besoin
d'un caractère de fin '\0'
.
nouvelle ligne avec modifications, allouée dans le contexte de mémoire
courant, ou NULL
en cas d'erreur (voir
SPI_result
pour une indication de l'erreur)
En cas d'erreur, SPI_result
est positionnée comme
suit :
SPI_ERROR_ARGUMENT
si colnum
contient un numéro de colonne invalide
(0 ou moins, ou plus que le nombre de colonnes dans row
)
row
)
SPI_ERROR_NOATTRIBUTE
si nocolonne
contient un numéro de colonne invalide
(inférieur ou égal à 0 ou supérieur au numéro de colonne dans
row
)
SPI_ERROR_UNCONNECTED
si SPI n'est pas actif