← Back to team overview

sslug-teknik team mailing list archive

Interne tabeller i Postgres

 

Hejsa,

Jeg har tidligere skrevet et indlæg i news:dk.edb.system.unix om nogen kunne hjælpe med følgende problem stilling:

[Kopi af indlæg]
Jeg er igang med at lave et program som skal bruge strukturen af hvordan en tabel er opbygget i postgres..

feks. en test tabel (mytabel)

id numeric(10)
text varchar(10)

nu er det sådan at jeg gerne vil kunne selecte typerne på attributterne men kan ikke lige gennemskue hvordan det hænger sammen .. indtil videre har jeg fundet ud af at en

select atttypmod,attname,relname,attrelid,atttypid from pg_class,pg_attribute where relname='mytabel' and relfilenode=attrelid;

giver følgende:
 atttypmod |     attname     |   relname    | attrelid | atttypid
-----------+-----------------+--------------+----------+----------
    655364 | id              | crm_activity |  1310044 |     1700  ic(10,0)
655364 | text | crm_activity | 1310044 | 1043 numeric(10,0)

men jeg kan ikke lige gennemskue hvordan man finder ud af at attribut navn er numeric og text er varchar .. nogen der kender til ligende projecter eller ved hvordan de interne tabeller hænger sammen ?
[/Kopi af indlæg]

Jeg har brugt weekenden til at kigge noget af sourcekoden igennem for at finde datatyperne og har fundet dem (I pg_type.h) men det er ikke særligt holdbart at cut`n`paste dem. For hvis udviklerne bag postgres beslutter sig at ændre typerne kræver det noget vedligeholdelse fra min side af ..

Det jeg ønsker er et select statement som virker på samme måde som en \d

Håber nogen kan hjælpe om ikke andet med ideer :)

/Kim



Follow ups