Skip to content

Commit

Permalink
Mise à jour en version 9.4.20
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Nov 9, 2018
1 parent f61753b commit 8bd7386
Show file tree
Hide file tree
Showing 22 changed files with 1,230 additions and 169 deletions.
24 changes: 1 addition & 23 deletions postgresql/array.xml
Original file line number Diff line number Diff line change
Expand Up @@ -698,8 +698,7 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2
guillemets doubles, antislashs ou espace (en début comme en fin) doivent
avoir des guillemets doubles. Les chaînes vides et les chaînes <literal>NULL</literal>
doivent aussi être entre guillemets. Pour placer un guillemet double ou un antislash
dans une valeur d'élément d'un tableau, on utilise la syntaxe d'échappement des
chaînes en le précédant d'un antislash.
dans une valeur d'élément d'un tableau, faites le précéder d'un antislash.
Alternativement, il est possible de se passer de guillemets et d'utiliser l'échappement par
antislash pour protéger tous les caractères de données qui seraient autrement interprétés
en tant que caractères de syntaxe de tableau.
Expand All @@ -713,27 +712,6 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2
caractères autres que des espaces ne sont pas ignorées.
</para>

<note>
<para>
Tout ce qui est écrit dans une commande SQL est d'abord
interprété en tant que chaîne littérale puis en tant que tableau. Ceci
double le nombre d'antislash nécessaire. Par exemple, pour
insérer une valeur de tableau de type <type>text</type> contenant un antislash
et un guillemet double, il faut écrire&nbsp;:
<programlisting>INSERT ... VALUES (E'{"\\\\","\\""}');</programlisting>
Le processeur de la chaîne d'échappement supprime un niveau d'antislash, donc
l'analyseur de tableau reçoit <literal>{"\\","\""}</literal>.
En conséquence, les chaînes remplissant l'entrée du type de données
<type>text</type> deviennent respectivement <literal>\</literal> et <literal>"</literal>.
(Si la routine d'entrée du type de données utilisé
traite aussi les antislash de manière spéciale, <type>bytea</type> par
exemple, il peut être nécessaire d'avoir jusqu'à huit antislash dans la
commande pour en obtenir un dans l'élément stocké.)
Les guillemets dollar (voir <xref linkend="sql-syntax-dollar-quoting"/>)
peuvent être utilisés pour éviter de doubler les antislash.
</para>
</note>

<tip>
<para>
La syntaxe du constructeur <literal>ARRAY</literal> (voir <xref
Expand Down
15 changes: 13 additions & 2 deletions postgresql/charset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1184,6 +1184,13 @@ by pg_wchar_table.mblen function for each encoding.
<literal>UTF8</literal>
</entry>
</row>
<row>
<entry><literal>EUC_JIS_2004</literal></entry>
<entry><emphasis>EUC_JIS_2004</emphasis>,
<literal>SHIFT_JIS_2004</literal>,
<literal>UTF8</literal>
</entry>
</row>
<row>
<entry><literal>EUC_KR</literal></entry>
<entry><emphasis>EUC_KR</emphasis>,
Expand Down Expand Up @@ -1239,8 +1246,7 @@ by pg_wchar_table.mblen function for each encoding.
</row>
<row>
<entry><literal>JOHAB</literal></entry>
<entry><emphasis>JOHAB</emphasis>,
<literal>UTF8</literal>
<entry><emphasis>non supporté en tant qu'encodage de serveur</emphasis>
</entry>
</row>
<row>
Expand Down Expand Up @@ -1346,6 +1352,11 @@ by pg_wchar_table.mblen function for each encoding.
<entry><emphasis>non supporté comme encodage serveur</emphasis>
</entry>
</row>
<row>
<entry><literal>SHIFT_JIS_2004</literal></entry>
<entry><emphasis>non supporté comme encodage serveur</emphasis>
</entry>
</row>
<row>
<entry><literal>SQL_ASCII</literal></entry>
<entry><emphasis>tous (aucune conversion n'est réalisée)</emphasis>
Expand Down
3 changes: 2 additions & 1 deletion postgresql/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3501,7 +3501,8 @@ block : bloc vidé, dirty bloc : bloc à vider ?
de considérer à la fois les tampons partagés de
<productname>PostgreSQL</productname> et la portion de cache disque
du noyau utilisée pour les fichiers de données de
<productname>PostgreSQL</productname>. Il faut également tenir
<productname>PostgreSQL</productname>, bien que certaines données pourraient
être présentes aux deux endroits. Il faut également tenir
compte du nombre attendu de requêtes concurrentes sur des tables
différentes car elles partagent l'espace disponible. Ce paramètre n'a
pas d'inluence sur la taille de la mémoire partagée allouée par
Expand Down
73 changes: 43 additions & 30 deletions postgresql/datatype.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1317,7 +1317,7 @@ SELECT b, char_length(b) FROM test2;
se distinguent des chaînes de caractères de deux façons&nbsp;:
tout d'abord, les chaînes binaires permettent de stocker des octets de
valeurs zéro ainsi que les autres caractères <quote>non imprimables</quote>
(habituellement, les octets en dehors de l'échelle de 32 à
(habituellement, les octets en dehors de l'échelle décimale de 32 à
126). Les chaînes de caractères interdisent les octets de valeur zéro et
interdisent aussi toute valeur d'octet ou séquence d'octets invalide
selon l'encodage sélectionné pour la base
Expand All @@ -1330,10 +1330,10 @@ SELECT b, char_length(b) FROM test2;
</para>

<para>
Le type <type>bytea</type> supporte deux formats externes pour l'entrée et
la sortie&nbsp;: le format d'échappement (<quote>escape</quote>)
historique de <productname>PostgreSQL</productname> et le format
hexadécimal (<quote>hex</quote>). Les deux sont acceptés en entrée. Le
Le type <type>bytea</type> supporte deux formats en entrée et en
sortie&nbsp;: le format <quote>hex</quote> et le format
<quote>escape</quote> historique de <productname>PostgreSQL</productname>.
Les deux sont acceptés en entrée. Le
format de sortie dépend du paramètre de configuration <xref
linkend="guc-bytea-output"/>&nbsp;; ce dernier sélectionne par défaut le
format hexadécimal. (Notez que le format hexadécimal est disponible depuis
Expand Down Expand Up @@ -1371,7 +1371,7 @@ SELECT b, char_length(b) FROM test2;
<para>
Exemple&nbsp;:
<programlisting>
SELECT E'\\xDEADBEEF';
SELECT '\xDEADBEEF';
</programlisting>
</para>
</sect2>
Expand Down Expand Up @@ -1403,7 +1403,7 @@ SELECT E'\\xDEADBEEF';
octet, il suffit de le convertir dans sa valeur octale composée de trois
chiffres et de la faire précéder d'un antislash (ou de deux antislashs s'il
faut utiliser la syntaxe d'échappement de chaînes). L'antislash lui-même
(octet 92) peut alternativement être représenté par un double antislash.
(octet décimale 92) peut alternativement être représenté par un double antislash.
Le <xref linkend="datatype-binary-sqlesc"/>
affiche les caractères qui doivent être échappés et donne les séquences
d'échappement possibles.
Expand All @@ -1426,33 +1426,33 @@ SELECT E'\\xDEADBEEF';
<row>
<entry>0</entry>
<entry>octet zéro</entry>
<entry><literal>E'\\000'</literal></entry>
<entry><literal>SELECT E'\\000'::bytea;</literal></entry>
<entry><literal>\000</literal></entry>
<entry><literal>'\000'</literal></entry>
<entry><literal>SELECT '\000'::bytea;</literal></entry>
<entry><literal>\x00</literal></entry>
</row>

<row>
<entry>39</entry>
<entry>apostrophe</entry>
<entry><literal>''''</literal> or <literal>E'\\047'</literal></entry>
<entry><literal>SELECT E'\''::bytea;</literal></entry>
<entry><literal>'</literal></entry>
<entry><literal>''''</literal> ou <literal>'\047'</literal></entry>
<entry><literal>SELECT ''''::bytea;</literal></entry>
<entry><literal>\x27</literal></entry>
</row>

<row>
<entry>92</entry>
<entry>antislash</entry>
<entry><literal>E'\\\\'</literal> or <literal>E'\\134'</literal></entry>
<entry><literal>SELECT E'\\\\'::bytea;</literal></entry>
<entry><literal>\\</literal></entry>
<entry><literal>'\'</literal> ou <literal>'\\134'</literal></entry>
<entry><literal>SELECT '\\'::bytea;</literal></entry>
<entry><literal>\x5c</literal></entry>
</row>

<row>
<entry>de 0 à 31 et de 127 à 255</entry>
<entry>octets <quote>non affichables</quote></entry>
<entry><literal>E'\\<replaceable>xxx'</replaceable></literal> (octal value)</entry>
<entry><literal>SELECT E'\\001'::bytea;</literal></entry>
<entry><literal>\001</literal></entry>
<entry><literal>'\<replaceable>xxx'</replaceable></literal> (valeur octal)</entry>
<entry><literal>SELECT '\001'::bytea;</literal></entry>
<entry><literal>\x01</literal></entry>
</row>

</tbody>
Expand Down Expand Up @@ -1481,7 +1481,7 @@ SELECT E'\\xDEADBEEF';
comme le début d'une valeur octale sur trois caractères ou comme
l'échappement d'un autre antislash.
Par exemple, une chaîne littérale passée au serveur comme
<literal>E'\\001'</literal> devient <literal>\001</literal> après
<literal>'\001'</literal> devient <literal>\001</literal> après
être passée au travers de l'analyseur d'échappement de chaîne.
Le <literal>\001</literal> est envoyé à la fonction d'entrée de
<type>bytea</type>, qui le convertit en un octet simple ayant une valeur
Expand All @@ -1491,13 +1491,26 @@ SELECT E'\\xDEADBEEF';
</para>

<para>
Les octets de <type>bytea</type> sont également échappés en sortie. En général,
tout octet <quote>non imprimable</quote> est converti en son équivalent
octal sur trois caractères et précédé d'un antislash.
La plupart des caractères <quote>imprimables</quote> sont affichés
avec leur représentation standard dans le jeu de caractères du client.
Les octets de valeur décimale 92 (antislash) sont doublés. Les détails sont dans le
<xref linkend="datatype-binary-resesc"/>.
Les octets <type>Bytea</type> sont affichés dans le format
<literal>hex</literal> par défaut. Si vous modifiez <xref
linkend="guc-bytea-output"/> pour la valeur <literal>escape</literal>,
chaque octet <quote>non affichable</quote> est converti en une valeur
équivalente sur un octal à trois chiffres, tout en précédent cette valeur
d'un antislash. La plupart des octets <quote>affichables</quote> sont
affichées suivant leur représentation standard dans le jeu de caractères
du client, par exemple&nbsp;:

<programlisting>
SET bytea_output = 'escape';

SELECT 'abc \153\154\155 \052\251\124'::bytea;
bytea
----------------
abc klm *\251T
</programlisting>

Les octets de valeur décimale 92 (antislash) sont doublés. Les détails
sont dans le <xref linkend="datatype-binary-resesc"/>.
</para>

<table id="datatype-binary-resesc">
Expand All @@ -1519,23 +1532,23 @@ SELECT E'\\xDEADBEEF';
<entry>92</entry>
<entry>antislash</entry>
<entry><literal>\\</literal></entry>
<entry><literal>SELECT E'\\134'::bytea;</literal></entry>
<entry><literal>SELECT '\134'::bytea;</literal></entry>
<entry><literal>\\</literal></entry>
</row>

<row>
<entry>0 à 31 et 127 à 255</entry>
<entry>octets<quote>non affichables</quote></entry>
<entry><literal>\<replaceable>xxx</replaceable></literal> (valeur octale)</entry>
<entry><literal>SELECT E'\\001'::bytea;</literal></entry>
<entry><literal>SELECT '\001'::bytea;</literal></entry>
<entry><literal>\001</literal></entry>
</row>

<row>
<entry>32 à 126</entry>
<entry>octets <quote>affichables</quote></entry>
<entry>Représentation dans le jeu de caractères du client</entry>
<entry><literal>SELECT E'\\176'::bytea;</literal></entry>
<entry><literal>SELECT '\176'::bytea;</literal></entry>
<entry><literal>~</literal></entry>
</row>

Expand Down

0 comments on commit 8bd7386

Please sign in to comment.