Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : C et C++ » Fonction Postgres en C » 17/08/2010 15:05:23
Parfait ! j'ai résolu mon problème : voici la portion du code qui posait problème
newtuple=SPI_modifytuple(rel,rettuple,1,&ret,(Datum *)&serial_num,NULL);
a transformer en :
DatumBuffer = palloc(sizeof(Datum));
DatumBuffer = DirectFunctionCall1(textin,CStringGetDatum(serial_num));
newtuple=SPI_modifytuple(rel,rettuple,1,&ret,&DatumBuffer,NULL);
cependant, il y a beaucoup de warning a la compilation, mais, le tout marche donc : résolue.
Merci a tous!
Tartine
#2 Re : C et C++ » Fonction Postgres en C » 17/08/2010 09:30:10
Le pg_dump ne donne rien (cf post de 14:58:34 16 aout ) mais une requete de ce type :
SELECT country,octet_length(country),count(*) FROM http GROUP BY country, octet_length(country);
me donne des valeurs farfelues.
United States | 46 | 1
United States | 46 | 1
nited States | 41 | 1
nited States | 41 | 1
nited States | 41 | 1
nited States | 41 | 1
United States | 46 | 12
United States | 46 | 2
United States | 46 | 1
nited States | 41 | 2
nited States | 41 | 2
nited States | 41 | 1
nited States | 41 | 1
United States | 46 | 2
United States | 46 | 1
Donc, il semble qu'il y ai effectivement des problemes de caractères mais le pg_dump ne me sort rien.
est-il possible que ce sois le palloc de mon trigger qui ne fasse pas bien son travail ?
sachant que le strlen sur la string que je remplis me sort une valeur correct.
IRIS
#3 Re : C et C++ » Fonction Postgres en C » 16/08/2010 17:03:03
C'est intéressant : voici le résultat : on ne voit pas le deuxième chevron.
select count(*), '<' || country || '>' from http group by 2;
count | ?column?
-------+----------------
2 | <United States
1 | <United States
2 | <United States
1 | <United States
12 | <United States
1 | <United States
1 | <United States
A quoi cela pourrait il être dû ?
PS , les deux requetes marches
#4 Re : C et C++ » Fonction Postgres en C » 16/08/2010 14:58:34
J'ai effectué un pg_dump de ma base et hex-dumpé le tout : voici la partie intéressante.
Je n'ai pas trouvé de caractère caché dans mon dump.
Il semble que postgres fasse un comptage en fonction d'une autre colonne ( j'ai découvert cela en effectuant plusieurs fois la même requête).
D'autre part je n'ai pas tout a fait compris votre requête.
select count(*), '<' || country || '>' from http group by country;
IRIS
#5 Re : C et C++ » Fonction Postgres en C » 16/08/2010 12:27:54
comment verifer la présence de ces caracteres ?
est-ce qu'un petit script python qui select * from matable est suffisant, ou faut il aller plus loins ?
#6 C et C++ » Fonction Postgres en C » 16/08/2010 10:26:07
- iris
- Réponses : 10
Bonjour
Voici une fonction que j'ai creer :
c'est un trigger qui intervient Before Insert/update
Le trigger fonctionne ainsi que la fonction et l'insertion.
Le probleme survient quand je fais une requête de ce type :
select count(*),country from http group by country;
Le resultat est incorect ( du style : UK=12 FR=3 UK=2 UK=4 ) en gros : il ne regroupe pas (ne trie pas).
Voila, j'ai aussi testé avec du INT et ça marche tres bien ( comptage et regroupage).
Si quelqu'un a une idée
IRIS
#7 Re : Optimisation » [Triggers] Actions blonquantes » 03/03/2010 11:06:32
Voici un exemple :
Dans mon exemple, nous avons une table "toto" qui possède un trigger et sa procédure stockée (before insert).
Le scénario est le suivant: Deux INSERT sont réalisés sur la table "toto" qui déclanche au même moment le trigger (before insert).
Requete n*1
insert trigger procédure (insert dans la base)
[*]------->[*] ---------------------->[*]
requete n*2
insert trigger procédure (insert dans la base)
[*]------->[*] ------------------------->[*]
Legende:
[*] début d'une action
-----> temps
Voici mes questions:
- Comment se comporte les deux trigger ?
- Les trigger peuvent-ils fonctionner en concurance ?
- Ces deux requetes sont atomiques et la seconde sera bloquée le temps que la premiere aboutisse ?
Iris
#8 Optimisation » [Triggers] Actions blonquantes » 03/03/2010 10:04:37
- iris
- Réponses : 3
Bonjour
Dans une table quelconque qui possede un trigger avec sa procédure stockée associée. Comment sont gérées les concurences entre les triggers de celle-ci ?
Iris
#9 Général » Probleme d'encodage » 14/09/2009 13:01:13
- iris
- Réponses : 2
Bonjour,
Existe-t-il un type de colonne dans postgres qui est capable de gerer et d'enregistrer n'importe quelle string quel que sois l'encodage?
En effet, j'ai des données qui proviennes de plusieurs endroits/systèmes et certains ont un encodage "exotique" et je souhaiterai pouvoir tout rentrer tout dans la base.
Cordialement
--iris
#10 Re : Général » Changer le caractère de protection des chaines de caractère. » 11/09/2009 09:59:46
Merci beaucoup pour cette reponse, c'est exactement ce que je cherchais !
-iris
#11 Général » Changer le caractère de protection des chaines de caractère. » 07/09/2009 11:41:39
- iris
- Réponses : 2
Bonjour.
existe t il un moyen de changer le caractere de protection des string ( ici ' ) par un autre dans la config de postgres?
J'ai déja utilisé $$ mais cette chaine est trops recurente pour pouvoir faire mes insertions ici.
Cordialement
-Iris
Pages : 1