mirror of
https://github.com/postgres/postgres.git
synced 2025-07-22 00:01:40 -04:00
Compare commits
6 Commits
82063edd4a
...
f646ac6725
Author | SHA1 | Date | |
---|---|---|---|
|
f646ac6725 | ||
|
1e774846b8 | ||
|
7f85099f4b | ||
|
d5b1045e67 | ||
|
9d4ea0bb3f | ||
|
8cb1d99f23 |
@ -213,6 +213,12 @@ createdb -O <replaceable>rolename</replaceable> <replaceable>dbname</replaceable
|
||||
action being taken when those databases are created.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, <command>CREATE DATABASE</command> does not copy database-level
|
||||
<command>GRANT</command> permissions attached to the source database.
|
||||
The new database has default database-level permissions.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There is a second standard system database named
|
||||
<literal>template0</literal>.<indexterm><primary>template0</primary></indexterm> This
|
||||
|
@ -213,9 +213,10 @@ if docs_dep.found()
|
||||
|
||||
install_doc_man = custom_target('install-man',
|
||||
output: 'install-man',
|
||||
input: man,
|
||||
command: [
|
||||
python, install_files, '--prefix', dir_prefix,
|
||||
'--install-dirs', dir_man, man],
|
||||
'--install-dirs', dir_man, '@INPUT@'],
|
||||
build_always_stale: true, build_by_default: false,
|
||||
)
|
||||
alias_target('install-doc-man', install_doc_man)
|
||||
|
@ -137,7 +137,11 @@ REVOKE [ GRANT OPTION FOR ]
|
||||
<listitem>
|
||||
<para>
|
||||
The name of an existing role of which the current role is a member.
|
||||
If <literal>FOR ROLE</literal> is omitted, the current role is assumed.
|
||||
Default access privileges are not inherited, so member roles
|
||||
must use <command>SET ROLE</command> to access these privileges,
|
||||
or <command>ALTER DEFAULT PRIVILEGES</command> must be run for
|
||||
each member role. If <literal>FOR ROLE</literal> is omitted,
|
||||
the current role is assumed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -59,15 +59,16 @@ CREATE [ OR REPLACE ] RULE <replaceable class="parameter">name</replaceable> AS
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Presently, <literal>ON SELECT</literal> rules must be unconditional
|
||||
<literal>INSTEAD</literal> rules and must have actions that consist
|
||||
of a single <command>SELECT</command> command. Thus, an
|
||||
<literal>ON SELECT</literal> rule effectively turns the table into
|
||||
a view, whose visible contents are the rows returned by the rule's
|
||||
<command>SELECT</command> command rather than whatever had been
|
||||
stored in the table (if anything). It is considered better style
|
||||
to write a <command>CREATE VIEW</command> command than to create a
|
||||
real table and define an <literal>ON SELECT</literal> rule for it.
|
||||
Presently, <literal>ON SELECT</literal> rules can only be attached
|
||||
to views. Such a rule must be named <literal>"_RETURN"</literal>,
|
||||
must be an unconditional <literal>INSTEAD</literal> rule, and must have
|
||||
an action that consists of a single <command>SELECT</command> command.
|
||||
This command defines the visible contents of the view. (The view
|
||||
itself is basically a dummy table with no storage.) It's best to
|
||||
regard such a rule as an implementation detail. While a view can be
|
||||
redefined via <literal>CREATE OR REPLACE RULE "_RETURN" AS
|
||||
...</literal>, it's better style to use <literal>CREATE OR REPLACE
|
||||
VIEW</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1119,6 +1119,10 @@ INSERT INTO tbl1 VALUES ($1, $2) \bind 'first value' 'second value' \g
|
||||
destination, because all data must pass through the client/server
|
||||
connection. For large amounts of data the <acronym>SQL</acronym>
|
||||
command might be preferable.
|
||||
Also, because of this pass-through method, <literal>\copy
|
||||
... from</literal> in <acronym>CSV</acronym> mode will erroneously
|
||||
treat a <literal>\.</literal> data value alone on a line as an
|
||||
end-of-input marker.
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -627,6 +627,7 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary, PGresult **res)
|
||||
* This code erroneously assumes '\.' on a line alone
|
||||
* inside a quoted CSV string terminates the \copy.
|
||||
* https://www.postgresql.org/message-id/E1TdNVQ-0001ju-GO@wrigleys.postgresql.org
|
||||
* https://www.postgresql.org/message-id/bfcd57e4-8f23-4c3e-a5db-2571d09208e2@beta.fastmail.com
|
||||
*/
|
||||
if ((linelen == 3 && memcmp(fgresult, "\\.\n", 3) == 0) ||
|
||||
(linelen == 4 && memcmp(fgresult, "\\.\r\n", 4) == 0))
|
||||
|
Loading…
x
Reference in New Issue
Block a user