functions in <xref linkend="functions-admin-genfile-table"/>, which
provide read-only access.)
Only files within the database cluster directory can be accessed, unless the
- user is a superuser or given privileges of one of the pg_read_server_files,
+ user is a superuser or given privileges of one of the pg_read_server_files,
or pg_write_server_files roles, as appropriate for the function, but either a
relative or absolute path is allowable.
</para>
void (*rm_decode) (struct LogicalDecodingContext *ctx,
struct XLogRecordBuffer *buf);
} RmgrData;
-</programlisting>
+</programlisting>
</para>
<para>
Then, register your new resource
during <productname>PostgreSQL</productname> startup.
</para>
<note>
- <para>
+ <para>
The extension must remain in shared_preload_libraries as long as any
custom WAL records may exist in the system. Otherwise
<productname>PostgreSQL</productname> will not be able to apply or decode
<title>Notes</title>
<para>
Alternatively, you can construct <acronym>JSON</acronym> values simply
- using <productname>PostgreSQL</productname>-specific casts to
+ using <productname>PostgreSQL</productname>-specific casts to
<type>json</type> and <type>jsonb</type> types.
</para>
</sect5>
SELECT
JSON_QUERY(js, '$.favorites[*].kind' ERROR ON ERROR)
FROM my_films;
-ERROR: more than one SQL/JSON item
+ERROR: more than one SQL/JSON item
</screen>
<para>
<synopsis>
<replaceable class="parameter">expression</replaceable>
- IS <optional> NOT </optional> JSON
+ IS <optional> NOT </optional> JSON
<optional> { VALUE | SCALAR | ARRAY | OBJECT } </optional>
<optional> { WITH | WITHOUT } UNIQUE <optional> KEYS </optional> </optional>
</synopsis>
</para>
<screen>
SELECT
- js,
- js IS JSON "is json",
+ js,
+ js IS JSON "is json",
js IS NOT JSON "is not json",
js IS JSON SCALAR "is scalar",
js IS JSON OBJECT "is object",
js IS JSON ARRAY "is array"
-FROM
+FROM
(VALUES ('123'), ('"abc"'), ('{"a": "b"}'), ('[1,2]'), ('abc')) foo(js);
- js | is json | is not json | is scalar | is object | is array
+ js | is json | is not json | is scalar | is object | is array
------------+---------+-------------+-----------+-----------|-------------
123 | t | f | t | f | f
"abc" | t | f | t | f | f
<listitem>
<para>
- Use <literal>CROSS JOIN</literal>, so that the output includes
+ Use <literal>CROSS JOIN</literal>, so that the output includes
a row for every possible combination of rows from the left-hand
and the right-hand columns.
</para>
some JSON data about the films and create a view that
distributes the film genre, title, and director between separate columns:
<screen>
-SELECT jt.* FROM
+SELECT jt.* FROM
my_films,
JSON_TABLE ( js, '$.favorites[*]' COLUMNS (
id FOR ORDINALITY,
<title>Notes</title>
<para>
Alternatively, you can construct <acronym>JSON</acronym> values simply
- using <productname>PostgreSQL</productname>-specific casts to
+ using <productname>PostgreSQL</productname>-specific casts to
<type>json</type> and <type>jsonb</type> types.
</para>
</sect5>
rollforward will take considerably longer, so that technique only
offers a solution for disaster recovery, not high availability.
A standby server can also be used for read-only queries, in which case
- it is called a <firstterm>hot standby</firstterm> server. See
+ it is called a <firstterm>hot standby</firstterm> server. See
<xref linkend="hot-standby"/> for more information.
</para>
<acronym>TLS</acronym> protocol. <acronym>SSL</acronym> protocols are the
precursors to <acronym>TLS</acronym> protocols, and the term
<acronym>SSL</acronym> is still used for encrypted connections even though
- <acronym>SSL</acronym> protocols are no longer supported.
+ <acronym>SSL</acronym> protocols are no longer supported.
<acronym>SSL</acronym> is used interchangeably with <acronym>TLS</acronym>
in <productname>PostgreSQL</productname>.