Re: Gestion des adresses URL avec parse_url

From: Samuel ROZE <samuel(dot)roze(at)gmail(dot)com>
To: Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Gestion des adresses URL avec parse_url
Date: 2009-10-28 15:04:27
Message-ID: 1256742267.22624.16.camel@samuel-laptop
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Le lundi 26 octobre 2009 à 10:58 +0100, Dimitri Fontaine a écrit :
> Samuel ROZE <samuel(dot)roze(at)gmail(dot)com> writes:
> > Surtout, n'hésitez pas à m'expliquer un peu plus le système de gestion
> > des types à longueur variable ou à m'indiquer des urls l'expliquant
>
> Il faut avoir une structure de données contigue en mémoire, pas de
> pointeurs vers « ailleurs ». Typiquement au lieu de stocker deux char*
> on va stocker un seul char[] et deux entiers, les longueurs des chaînes
> à extraire dans la zone mémoire de taille variable.
>
> Ensuite il faut faire un peu de présentation pour que PostgreSQL sache
> travailler avec les données, c'est le make_varlena() de prefix.c. Quoi
> faire exactement dépend de la version de PG:
> #define PREFIX_SET_VARSIZE(p, s) (VARATT_SIZEP(p) = s)
> #define PREFIX_SET_VARSIZE(p, s) (SET_VARSIZE(p, s))
>

En gros, le char[] de ma structure "url" contient tout le contenu de mes
différents pointeurs actuels ? J'y ajoutes 7 entiers qui correspondront
à la taille de leur valeur ?

Ainsi, j'ai quelque chose comme ça:

struct {
char[1] data;
int scheme;
int user;
int pass;
...
} urltype;

Le char[1] contiendra toutes les données, "scheme" contiendra "4" si il
est égal à "http" par exemple, "user" 6 si user est "samuel" et "pass" 0
si pass est nul ?

Ainsi, data est : "httpsamuel"
Si j'ai bien compris... ? En gros, la valeur réelle du nom d'utilisateur
est contenu entre l'index "(int) scheme + 1" et "(int) scheme + (int)
user" ?

> >> De plus je me permets de rejoindre la positions d'autres intervenants,
> >> utiliser une librairie de parsing d'URI existante me semble un meilleur
> >> choix. Il reste à intégrer cela à PostgreSQL, attention aux soucis de
> >> licence.
> >
> > Comme je l'ai dit dans un mail précédent, je n'aimes pas trop ne pas
> > maitriser le code... :/
>
> Pourquoi utiliser PostgreSQL plutôt que de réécrire ton propre SGBD, tu
> maîtriserais certainement alors mieux le code du stockage de tes URLs,
> et ne butterait pas sur la bonne représentation des varlena dans PG...
>

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Dimitri Fontaine 2009-10-28 15:11:08 Re: Gestion des adresses URL avec parse_url
Previous Message damien clochard 2009-10-27 10:59:21 Re: PG Day Europe 2009 : Derniers jours pour s'inscrire en ligne