1SELECT uri_escape('foobar');
2 uri_escape
3------------
4 foobar
5(1 row)
6
7SELECT uri_escape(':/?#[]@!$&''()*+,;=');
8                       uri_escape
9--------------------------------------------------------
10 %3A%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D
11(1 row)
12
13SELECT uri_escape('foo bar');
14 uri_escape
15------------
16 foo%20bar
17(1 row)
18
19SELECT uri_escape('foo bar', space_to_plus := false);
20 uri_escape
21------------
22 foo%20bar
23(1 row)
24
25SELECT uri_escape('foo bar', space_to_plus := true);
26 uri_escape
27------------
28 foo+bar
29(1 row)
30
31SELECT uri_escape(E'foo\nbar');
32 uri_escape
33------------
34 foo%0Abar
35(1 row)
36
37SELECT uri_escape(E'foo\nbar', normalize_breaks := false);
38 uri_escape
39------------
40 foo%0Abar
41(1 row)
42
43SELECT uri_escape(E'foo\nbar', normalize_breaks := true);
44  uri_escape
45--------------
46 foo%0D%0Abar
47(1 row)
48
49SELECT uri_unescape('foobar');
50 uri_unescape
51--------------
52 foobar
53(1 row)
54
55SELECT uri_unescape('%3A%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D');
56    uri_unescape
57--------------------
58 :/?#[]@!$&'()*+,;=
59(1 row)
60
61SELECT uri_unescape('foo+bar');
62 uri_unescape
63--------------
64 foo+bar
65(1 row)
66
67SELECT uri_unescape('foo+bar', plus_to_space := false);
68 uri_unescape
69--------------
70 foo+bar
71(1 row)
72
73SELECT uri_unescape('foo+bar', plus_to_space := true);
74 uri_unescape
75--------------
76 foo bar
77(1 row)
78
79SELECT uri_unescape('foo%0D%0Abar');
80 uri_unescape
81--------------
82 foo         +
83 bar
84(1 row)
85
86SELECT uri_unescape('foo%0D%0Abar', break_conversion := false);
87 uri_unescape
88--------------
89 foo         +
90 bar
91(1 row)
92
93SELECT uri_unescape('foo%0D%0Abar', break_conversion := true);
94 uri_unescape
95--------------
96 foo\r       +
97 bar
98(1 row)
99
100