Skip to content

Commit

Permalink
Mise à jour en version 9.4.2
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed May 26, 2015
1 parent 96f77d7 commit 5e5c543
Show file tree
Hide file tree
Showing 19 changed files with 3,607 additions and 104 deletions.
2 changes: 1 addition & 1 deletion postgresql/charset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -731,7 +731,7 @@ by pg_wchar_table.mblen function for each encoding.
<entry>Standard national</entry>
<entry>Chinois</entry>
<entry>Non</entry>
<entry>1-2</entry>
<entry>1-4</entry>
<entry></entry>
</row>
<row>
Expand Down
10 changes: 8 additions & 2 deletions postgresql/citext.xml
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,17 @@
</para>

<para>
De la même façon, toutes les fonctions ci-dessous font une comparaison insensible à la casse
si leurs arguments sont de type <type>citext</type>&nbsp;:
De la même façon, toutes les fonctions ci-dessous font une comparaison
insensible à la casse si leurs arguments sont de type
<type>citext</type>&nbsp;:
</para>

<itemizedlist>
<listitem>
<para>
<function>regexp_matches()</function>
</para>
</listitem>
<listitem>
<para>
<function>regexp_replace()</function>
Expand Down
118 changes: 76 additions & 42 deletions postgresql/client-auth.xml
Original file line number Diff line number Diff line change
Expand Up @@ -228,12 +228,14 @@ hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable>
</para>

<para>
Les adresses IP doivent être écrites sous la notation décimale standard avec
une longueur de masque <acronym>CIDR</acronym>. La longueur du masque indique le nombre de
bits forts pour lesquels une correspondance doit être trouvée avec l'adresse
IP du client. Les bits de droite doivent valoir zéro dans l'adresse IP
indiquée. Il ne doit y avoir aucune espace entre l'adresse IP, le
<literal>/</literal> et la longueur du masque CIDR.
Une plage d'adresses IP est spécifiée en utilisant la notation
numérique standard (adresse de début de plage, suivi d'un slash
(<literal>/</literal>) et suivi de la longueur du masque
<acronym>CIDR</acronym>. La longueur du masque indique le nombre de
bits forts pour lesquels une correspondance doit être trouvée avec
l'adresse IP du client. Les bits de droite doivent valoir zéro dans
l'adresse IP indiquée. Il ne doit y avoir aucune espace entre l'adresse
IP, le <literal>/</literal> et la longueur du masque CIDR.
</para>

<para>
Expand All @@ -244,35 +246,39 @@ hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable>
</para>

<para>
Une adresse CIDR (<replaceable>CIDR-address</replaceable>) est typiquement
Une plage d'adresses IPv4 spécifiée au format CIDR est typiquement
<literal>172.20.143.89/32</literal> pour un hôte seul,
<literal>172.20.143.0/24</literal> pour un petit réseau ou
<literal>10.6.0.0/16</literal> pour un réseau plus grand.
<literal>0.0.0.0/0</literal> représente toutes les adresses IPv4, et
<literal>::/0</literal> représente l'ensemble des adresses IPv6.
Pour n'indiquer qu'un seul hôte, on utilise un masque de 32 pour IPv4 ou 128 pour
IPv6. Dans une adresse réseau, ne pas oublier les zéros terminaux.
<literal>10.6.0.0/16</literal> pour un réseau plus grand. Une plage
d'adresses IPv6 spécifiée au format CIDR est par exemple
<literal>::1/128</literal> pour un hôte seul (dans ce cas la boucle
locale IPv6) ou <literal>fe80::7a31:c1ff:0000:0000/96</literal> pour un
petit réseau. <literal>0.0.0.0/0</literal> représente toutes les adresses
IPv4, et <literal>::0/0</literal> représente l'ensemble des adresses
IPv6. Pour n'indiquer qu'un seul hôte, on utilise une longueur de masque
de 32 pour IPv4 ou 128 pour IPv6. Dans une adresse réseau, ne pas oublier
les zéros terminaux.
</para>

<para>
Une adresse IP indiquée au format IPv4 coïncide avec les connexions IPv6
d'adresse correspondante. Par exemple, <literal>127.0.0.1</literal> correspond
à l'adresse IPv6 <literal>::ffff:127.0.0.1</literal>. Une entrée donnée au
format IPv6 correspond uniquement aux connexions IPv6 même si l'adresse
représentée est dans le domaine IPv4-vers-IPv6. Les adresses au
format IPv6 sont rejetées si la bibliothèque système C ne supporte pas
les adresses IPv6.
Une entrée donnée dans le format IPv4 correspondra seulement aux
connexions IPv4, et une entrée donnée dans le format IPv6 correspondra
seulement aux connexions IPv6, même si l'adresse représentée est dans
la plage IPv4-in-IPv6. Notez que les entrées au format IPv6 seront
rejetées si la bibliothèque C du système n'a pas de support des adresses
IPv6.
</para>

<para>
La valeur <literal>all</literal> permet de cibler n'importe quelle adresse IP cliente,
<literal>samehost</literal> n'importe quelle adresse IP du serveur ou <literal>samenet</literal> pour
toute adresse IP faisant partie du même sous-réseau que le serveur.
La valeur <literal>all</literal> permet de cibler n'importe quelle
adresse IP cliente, <literal>samehost</literal> n'importe quelle adresse
IP du serveur ou <literal>samenet</literal> pour toute adresse IP
faisant partie du même sous-réseau que le serveur.
</para>

<para>
Si un nom d'hôte est renseigné (dans les faits tout ce qui ne correspond pas
à une adresse ou une plage d'adresses IP, ni à un mot clé, sera traité
à une plage d'adresse ou une plage d'adresses IP, ni à un mot clé, sera traité
comme un nom d'hôte), ce nom est comparé au résultat d'une
résolution de nom inverse de l'adresse IP du client (ou une recherche
DNS inverse si un DNS est utilisé). Les comparaisons de noms d'hôtes
Expand Down Expand Up @@ -353,7 +359,8 @@ hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable>
<listitem>
<para>
Ces champs peuvent être utilisés comme alternative à la notation
<replaceable>CIDR-address</replaceable>. Au lieu de spécifier la longueur
<replaceable>adresse IP</replaceable><literal>/</literal><replaceable>longueur
masque</replaceable>. Au lieu de spécifier la longueur
du masque, le masque réel est indiquée dans une colonne distincte. Par
exemple, <literal>255.0.0.0</literal> représente une longueur de masque CIDR
IPv4 de 8, et <literal>255.255.255.255</literal> représente une longueur de
Expand Down Expand Up @@ -1033,11 +1040,17 @@ omicron bryanh guest1
<term><literal>include_realm</literal></term>
<listitem>
<para>
Si configuré à 1, le nom du domaine provenant du
principal de l'utilisateur authentifié est inclus dans le nom de
l'utilisateur système qui est passé au système de correspondance
d'utilisateur (<xref linkend="auth-username-maps"/>). Ceci est utile
pour gérer des utilisateurs provenant de plusieurs domaines.
Si configuré à 1, le nom du domaine provenant du principal de
l'utilisateur authentifié est inclus dans le nom de l'utilisateur
système qui est passé au système de correspondance d'utilisateur (<xref
linkend="auth-username-maps"/>). Cela correspond à la configuration
recommandée. Dans le cas contraire, il est impossible de différencier
les utilisateurs de même nom mais de royaume différent. La valeur par
défaut de ce paramètre est 0 (ceci signifiant qu'il ne faut pas inclure
le royaume dans le nom d'utilisateur système) mais peut être changé en
1 dans une prochaine version de <productname>PostgreSQL</productname>.
Les utilisateurs peuvent le configurer explicitement pour éviter tout
problème lors d'une mise à jour.
</para>
</listitem>
</varlistentry>
Expand All @@ -1046,14 +1059,18 @@ omicron bryanh guest1
<term><literal>map</literal></term>
<listitem>
<para>
Permet la mise en correspondance entre les noms système et base de données.
Voir <xref linkend="auth-username-maps"/> pour plus de détails. Pour
un principal Kerberos <literal>username/hostbased@EXAMPLE.COM</literal>,
le nom d'utilisateur utilisé pour la correspondance est
<literal>nomutilisateur/hote</literal> si
<literal>include_realm</literal> est désactivé, et
<literal>username/hostbased@EXAMPLE.COM</literal> si
<literal>include_realm</literal> est activé.
Permet la mise en correspondance entre les noms système et base de
données. Voir <xref linkend="auth-username-maps"/> pour plus de détails.
Pour un principal GSSAPI/Kerberos, tel que
<literal>username@EXAMPLE.COM</literal> (ou, moins communément,
<literal>username/hostbased@EXAMPLE.COM</literal>), le nom d'utilisateur
par défaut utilisé pour la correspondance est
<literal>username</literal> (ou <literal>username/hostbased</literal>,
respectivement), sauf si <literal>include_realm</literal> a été configuré
à 1 (comme recommandé, voir ci-dessus), auquel cas
<literal>username@EXAMPLE.COM</literal> (ou
<literal>username/hostbased@EXAMPLE.COM</literal>) est vu comme le
nom d'utilisateur système lors de la correspondance.
</para>
</listitem>
</varlistentry>
Expand Down Expand Up @@ -1114,8 +1131,15 @@ omicron bryanh guest1
Si configuré à 1, le nom du domaine provenant du
principal de l'utilisateur authentifié est inclus dans le nom de
l'utilisateur système qui est passé au système de correspondance
d'utilisateur (<xref linkend="auth-username-maps"/>). Ceci est utile
pour gérer des utilisateurs provenant de plusieurs domaines.
d'utilisateur (<xref linkend="auth-username-maps"/>). Cela correspond
à la configuration recommandée. Dans le cas contraire, il est impossible
de différencier les utilisateurs de même nom mais de royaume différent.
La valeur par défaut de ce paramètre est 0 (ceci signifiant qu'il ne
faut pas inclure le royaume dans le nom d'utilisateur système) mais
peut être changé en 1 dans une prochaine version de
<productname>PostgreSQL</productname>. Les utilisateurs peuvent le
configurer explicitement pour éviter tout problème lors d'une mise à
jour.
</para>
</listitem>
</varlistentry>
Expand All @@ -1124,8 +1148,18 @@ omicron bryanh guest1
<term><literal>map</literal></term>
<listitem>
<para>
Permet la mise en correspondance entre les noms système et base de données.
Voir <xref linkend="auth-username-maps"/> pour plus de détails.
Permet la mise en correspondance entre les noms système et base de
données. Voir <xref linkend="auth-username-maps"/> pour plus de détails.
Pour un principal GSSAPI/Kerberos, tel que
<literal>username@EXAMPLE.COM</literal> (ou, moins communément,
<literal>username/hostbased@EXAMPLE.COM</literal>), le nom d'utilisateur
par défaut utilisé pour la correspondance est
<literal>username</literal> (ou <literal>username/hostbased</literal>,
respectivement), sauf si <literal>include_realm</literal> a été configuré
à 1 (comme recommandé, voir ci-dessus), auquel cas
<literal>username@EXAMPLE.COM</literal> (ou
<literal>username/hostbased@EXAMPLE.COM</literal>) est vu comme le
nom d'utilisateur système lors de la correspondance.
</para>
</listitem>
</varlistentry>
Expand Down
13 changes: 8 additions & 5 deletions postgresql/ecpg.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1373,11 +1373,14 @@ EXEC SQL END DECLARE SECTION;
<title>Tableaux</title>

<para>
Les tableaux au niveau SQL ne sont pas supportés directement dans
ECPG. Il n'est pas possible de mettre simplement en correspondance
un tableau SQL avec une variable hôte de type tableau.
Cela entraînera un comportement indéfini. Quelques contournements
existent, toutefois.
Les tableaux SQL multi-dimensionnels ne sont pas directement supportés
dans ECPG. Les tableaux SQL à une dimension peuvent être placés dans des
variables hôtes de type tableau C et vice-versa. Néanmoins, lors de la
création d'une instruction, ecpg ne connaît pas le type des colonnes, donc
il ne peut pas vérifier si un tableau C est à placer dans un tableau SQL
correspondant. Lors du traitement de la sortie d'une requête SQL, ecpg
a suffisamment d'informations et, de ce fait, vérifie si les deux sont
des tableaux.
</para>

<para>
Expand Down
12 changes: 12 additions & 0 deletions postgresql/extend.xml
Original file line number Diff line number Diff line change
Expand Up @@ -718,6 +718,18 @@ SELECT pg_catalog.pg_extension_config_dump('my_config', 'WHERE NOT standard_entr
une table est de la dissocier de l'extension avec la commande
<command>ALTER EXTENSION ... DROP TABLE</command>.
</para>

<para>
Notez que les relations de clés étrangères entre ces tables dicteront
l'ordre dans lequel les tables seront sauvegardées par pg_dump. Plus
spécifiquement, pg_dump tentera de sauvegarder en premier la table
référencé, puis la table référante. Comme les relations de clés étrangères
sont configurées lors du CREATE EXTENSION (avant que les données ne soient
chargées dans les tables), les dépendances circulaires ne sont pas gérées.
Quand des dépendances circulaires existent, les données seront toujours
sauvegardées mais ne seront pas restaurables directement. Une intervention
de l'utilisateur sera nécessaire.
</para>
</sect2>

<sect2>
Expand Down
59 changes: 37 additions & 22 deletions postgresql/libpq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4021,10 +4021,17 @@ typedef struct
<para>
Après avoir envoyé une commande ou des données dans une connexion non bloquante,
appelez <function>PQflush</function>. S'il renvoie 1, attendez que la socket
soit disponible en écriture et appelez-la de nouveau&nbsp;; répétez cela jusqu'à
ce qu'il renvoie 0. Une fois que <function>PQflush</function> renvoie 0,
attendez que la socket soit disponible en lecture puis lisez la réponse comme
décrit ci-dessus.
devienne prête en lecture ou en écriture. Si elle est prête en écriture,
appelez de nouveau <function>PQflush</function>. Si elle est prête en lecture,
appelez <function>PQconsumeInput</function>, puis appelez
<function>PQflush</function>. Répétez jusqu'à ce que
<function>PQflush</function> renvoie 0. (Il est nécessaire de vérifier si elle
est prête en lecture, et de vidanger l'entrée avec
<function>PQconsumeInput</function> car le serveur peut bloquer en essayant
d'envoyer des données, par exemple des messages NOTICE, et ne va pas lire nos
données tant que nous n'avons pas lu les siennes.) Une fois que
<function>PQflush</function> renvoie 0, attendez que la socket soit disponible
en lecture puis lisez la réponse comme décrit ci-dessus.
</para>

</sect1>
Expand Down Expand Up @@ -4299,26 +4306,34 @@ typedef struct

<para>
L'argument <parameter>fnid</parameter> est l'OID de la fonction à exécuter.
<parameter>args</parameter> et <parameter>nargs</parameter> définissent les paramètres à
passer à la fonction&nbsp;; ils doivent correspondre à la liste d'arguments
déclarés de la fonction. Quand le champ <parameter>isint</parameter> d'une structure est
vrai, la valeur de <parameter>u.integer</parameter> est envoyée au serveur en tant
qu'entier de la longueur indiquée (qui doit être 1, 2 ou 4 octets)&nbsp;; les
bons échanges d'octets se passent. Quand <parameter>isint</parameter> est faux, le
nombre d'octets indiqué sur <parameter>*u.ptr</parameter> est envoyé au
<parameter>args</parameter> et <parameter>nargs</parameter> définissent les
paramètres à passer à la fonction&nbsp;; ils doivent correspondre à la liste
d'arguments déclarés de la fonction. Quand le champ
<parameter>isint</parameter> d'une structure est vrai, la valeur de
<parameter>u.integer</parameter> est envoyée au serveur en tant qu'entier de
la longueur indiquée (qui doit être 2 ou 4 octets)&nbsp;; les bons échanges
d'octets se passent. Quand <parameter>isint</parameter> est faux, le nombre
d'octets indiqué sur <parameter>*u.ptr</parameter> est envoyé au
traitement&nbsp;; les données doivent être dans le format attendu par le
serveur pour la transmission binaire du type de données de l'argument de la
fonction. <parameter>result_buf</parameter> est le tampon dans lequel placer le
code de retour. L'appelant doit avoir alloué suffisamment d'espace pour stocker
le code de retour (il n'y a pas de vérification&nbsp;!). La longueur actuelle
du résultat sera renvoyé dans l'entier pointé par
<parameter>result_len</parameter>. Si un résultat sur un entier de 1, 2 ou
4 octets est attendu, initialisez <parameter>result_is_int</parameter> à 1,
sinon initialisez-le à 0. Initialiser <parameter>result_is_int</parameter> à 1
fait que <application>libpq</application> échange les octets de la valeur si nécessaire,
fonction. (La déclaration de <parameter>u.ptr</parameter> en tant que type
<type>int *</type> est historique&nbsp;; il serait préférable de la considérer
comme un <type>void *</type>.) <parameter>result_buf</parameter> pointe vers
le tampon dans lequel placer le code de retour de la fonction. L'appelant doit
avoir alloué suffisamment d'espace pour stocker le code de retour (il n'y a
pas de vérification&nbsp;!). La longueur actuelle du résultat en octet sera
renvoyé dans l'entier pointé par <parameter>result_len</parameter>. Si un
résultat sur un entier de 2 ou 4 octets est attendu, initialisez
<parameter>result_is_int</parameter> à 1, sinon initialisez-le à 0.
Initialiser <parameter>result_is_int</parameter> à 1 fait que
<application>libpq</application> échange les octets de la valeur si nécessaire,
de façon à ce que la bonne valeur <type>int</type> soit délivrée pour la
machine cliente. Quand <parameter>result_is_int</parameter> vaut 0, la chaîne d'octets
au format binaire envoyée par le serveur est renvoyée non modifiée.
machine cliente&nbsp;; notez qu'un entier sur quatre octets est fourni dans
<parameter>*result_buf</parameter> pour la taille du résultat autorisé. Quand
<parameter>result_is_int</parameter> vaut 0, la chaîne d'octets au format
binaire envoyée par le serveur est renvoyée non modifiée. (Dans ce cas, il est
préférable de considérer <parameter>result_buf</parameter> comme étant du type
<type>void *</type>.)
</para>

<para>
Expand Down Expand Up @@ -5173,7 +5188,7 @@ typedef struct

<para>
La raison principale pour séparer cette fonction de
<function>PQmakeEmptyPGResult</function> est qu'il est souvent approprié
<function>PQmakeEmptyPGresult</function> est qu'il est souvent approprié
de créer un <structname>PGresult</structname> et de le remplir avec des
données avant d'appeler les procédures d'événement.
</para>
Expand Down

0 comments on commit 5e5c543

Please sign in to comment.