Avatar billede Droa Seniormester
15. januar 2019 - 09:54 Der er 3 kommentarer og
1 løsning

pgSQL send og recv funktioner

Hej Eksperter

Jeg sidder og kigger på pgsql og dens funktioner, jeg er meget nysgerrig i dens in/out send/recv funktioner i hvordan de fungere.

f.eks så in funktion konventere fra en cstring (c char-array pointer) til en varchar type (Datum).

mens en out funktion skulle det modsatte.

send og recv konventere så imellem binary og varchar (datum).


så min teori skulle så være man kunne skrive.


select varcharrecv(varcharsend('test'));


og få en tabel med en celle der har værdien "test".

jeg får istedet


ERROR:  function varcharrecv(bytea) does not exist
LINE 1: select varcharrecv(varcharsend('test'));
              ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


jeg ville høre om jeg har misforstået ideen med funktionerne?
Avatar billede arne_v Ekspert
15. januar 2019 - 14:11 #1
Hvad er det du forsoeger at lave?

Jeg har laese 60 sekunder omkring send/recv og saa vidt jeg kan se er det en feature for user defined types der tillader en at skrive custom C code til at haandtere binaer ekstern skrivning og laesning.
Avatar billede Droa Seniormester
15. januar 2019 - 14:32 #2
det er også det samme jeg har kunne se det blev brugt til, men siden de har lavet det tilgængeligt i deres SQL-Syntax havde jeg også håbet de kunne bruges der.

Jeg kan dog se at Send laver et datum (intern data), mens Recv kræver en ekstern data (som byte[]) så selvom man kan bruge f.eks boolrecv i SQL syntaxet, ville man aldrig kunne bruge den, da alle data som man skriver er set som Datums, selv hvis man skriver '\x00' eller '\x01'.

jeg skulle ikke bruge dem til noget, jeg prøvede bare og finde ud af hvorfor de er tilgængelige i SQL syntaxet, da de ikke ser ud til og skulle bruges der.
Avatar billede arne_v Ekspert
26. januar 2019 - 03:56 #3
Saa vidt jeg kan se saa defineres de i SQL, men implementeres i C og kaldes implicit af databasen i nogle tilfaelde.
Avatar billede Droa Seniormester
31. januar 2019 - 12:24 #4
ja okay, det er der nok en grund til, men troede bare hvis en funktion kunne kaldes igennem SQL at de så også kunne bruges i den relation, det kan de måske også i specielle tilfælde, men godt og vide man ikke skal bruge dem :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester