45. FAQ - Etendre PostgreSQL

Contenu de cette section

45.1 J'ai écrit une fonction définie par l'utilisateur et quand je la fait tourner sous psql, j'ai un plantage avec vidage mémoire.

Ce problème peut provenir d'un certains nombre de causes. Tout d'abord, essayez de tester votre fonction dans un programme de test indépendant. Assurez-vous également que vous n'êtes pas en train d'envoyer des NOTICES elog quand le frontal attend des données, comme dans les fonctions type_in() or type_out()

45.2 J'ai des messages du type "NOTICE-PortalHeapMemoryFree- 0x402251d0 not in alloc set"!

Vous êtes en train de libérer (pfree) quelque chose qui n'a pas été alloué (palloc). Quand vous écrivez des fonctions définies par l'utilisateur, n'incluez pas le fichier "libpq-fe.h". Si vous faites cela, va entraîner que votre palloc soit un malloc à la place d'un free. Puis, quand la tâche de fond libère (pfrees) la mémoire, vous recevez le message NOTICE.

45.3 J'ai écrit quelques nouveaux types et quelques fonctions astucieux pour PostgreSQL.

S'il vous plaît, partagez-les avec les autre utilisateurs de PostgreSQL. Envoyez vos extensions dans la liste de diffusion, et elles finiront peut-être dans le sous-répertoire contrib/.

45.4 Comment dois-je écrire une fonction C qui retourne un tuple?

Cela nécessite beaucoup de génie, tellement que les auteurs n'ont jamais essayer, bien que, en principe, cela soit possible. Une réponse brève sera ... vous ne pouvez pas. Cette possibilité est envisagée dans le future.

---------------------------------------------------------------------------


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre