endterm="sql-delete-title"> or
endterm="sql-truncate-title">.
A tablespace can only be dropped by its owner or a superuser.
The tablespace must be empty of all database objects before it can be
- dropped. It is possible that objects in other databases may still reside
+ dropped. It is possible that objects in other databases might still reside
in the tablespace even if no objects in the current database are using
the tablespace.
-C mode
- Set a compatibility mode. mode may
+ Set a compatibility mode. mode can
be INFORMIX or
INFORMIX_SE .
distribution of the data in the table has changed significantly
since the last time ANALYZE was run), the
estimated costs are unlikely to conform to the real properties of
- the query, and consequently an inferior query plan may be chosen.
+ the query, and consequently an inferior query plan might be chosen.
Of course, the specific numbers shown here depend on the actual
contents of the tables involved. Also note that the numbers, and
- even the selected query strategy, may vary between
+ even the selected query strategy, might vary between
PostgreSQL releases due to planner
improvements. In addition, the ANALYZE command
uses random sampling to estimate data statistics; therefore, it is
The key word PUBLIC indicates that the
- privileges are to be granted to all roles, including those that may
- be created later. PUBLIC may be thought of as an
+ privileges are to be granted to all roles, including those that might
+ be created later. PUBLIC can be thought of as an
implicitly defined group that always includes all roles.
Any particular role will have the sum
of privileges granted directly to it, privileges granted to any role it
If WITH GRANT OPTION is specified, the recipient
- of the privilege may in turn grant it to others. Without a grant
+ of the privilege can in turn grant it to others. Without a grant
option, the recipient cannot do that. Grant options cannot be granted
to PUBLIC .
- Depending on the type of object, the initial default privileges may
+ Depending on the type of object, the initial default privileges might
include granting some privileges to PUBLIC .
The default is no public access for tables, schemas, and tablespaces;
CONNECT> privilege and TEMP> table creation privilege
for databases;
EXECUTE> privilege for functions; and
USAGE> privilege for languages.
- The object owner may of course revoke these privileges. (For maximum
+ The object owner can of course revoke these privileges. (For maximum
security, issue the REVOKE> in the same transaction that
creates the object; then there is no window in which another user
- may use the object.)
+ can use the object.)
- If WITH ADMIN OPTION is specified, the member may
+ If WITH ADMIN OPTION is specified, the member can
in turn grant membership in the role to others, and revoke membership
in the role as well. Without the admin option, ordinary users cannot do
that. However,
If the Access privileges> column is empty for a given object,
it means the object has default privileges (that is, its privileges column
is null). Default privileges always include all privileges for the owner,
-and may include some privileges for PUBLIC> depending on the
+and can include some privileges for PUBLIC> depending on the
object type, as explained above. The first GRANT> or
REVOKE> on an object
will instantiate the default privileges (producing, for example,
initdb must be run as the user that will own the
server process, because the server needs to have access to the
files and directories that initdb creates.
- Since the server may not be run as root, you must not run
+ Since the server can not be run as root, you must not run
initdb as root either. (It will in fact refuse
to do so.)
By default, when initdb
determines that an error prevented it from completely creating the database
- cluster, it removes any files it may have created before discovering
+ cluster, it removes any files it might have created before discovering
that it can't finish the job. This option inhibits tidying-up and is
thus useful for debugging.
Specifies the directory where the database cluster is to be
- stored; may be overridden using the -D option.
+ stored; can be overridden using the -D option.
- The target column names may be listed in any order. If no list of
+ The target column names can be listed in any order. If no list of
column names is given at all, the default is all the columns of the
table in their declared order; or the first N> column
names, if there are only N> columns supplied by the
An expression to be computed and returned by the INSERT>
- command after each row is inserted. The expression may use any
+ command after each row is inserted. The expression can use any
column names of the table .
Write *> to return all columns of the inserted row(s).
The script makes assumptions about the output format of the
ipcs
- utility which may not be true across different operating systems.
- Therefore, it may not work on your particular OS. It's wise to
+ utility which might not be true across different operating systems.
+ Therefore, it might not work on your particular OS. It's wise to
look at the script before trying it.
The file name is specified in the same way as for shared library
names in ; in particular, one
- may rely on a search path and automatic addition of the system's standard
+ can rely on a search path and automatic addition of the system's standard
shared library file name extension. See for
more information on this topic.
- Non-superusers may only apply LOAD> to library files
+ Non-superusers can only apply LOAD> to library files
located in $libdir/plugins/> — the specified
filename must begin
with exactly that string. (It is the database administrator's
NOTIFY behaves like Unix signals in one important
respect: if the same notification name is signaled multiple times in quick
- succession, recipients may get only one notification event for several executions
+ succession, recipients might get only one notification event for several executions
of NOTIFY . So it is a bad idea to depend on the number
of notifications received. Instead, use NOTIFY to wake up
applications that need to pay attention to something, and use a database
-
+
Print the location of dynamically loadable modules, or where
the server would search for them. (Other
- architecture-dependent data files may also be installed in this
+ architecture-dependent data files might also be installed in this
directory.)
- This utility may only be run by the user who initialized the cluster because
+ This utility can only be run by the user who initialized the cluster because
it requires read access to the data directory.
You can specify the data directory on the command line, or use
the environment variable PGDATA>.
Specifies the shutdown mode. mode
- may be smart , fast , or
+ can be smart , fast , or
immediate , or the first letter of one of
these three.
Notes
- Waiting for complete start is not a well-defined operation and may
+ Waiting for complete start is not a well-defined operation and might
fail if access control is set up so that a local client cannot
connect without manual interaction (e.g., password authentication). For
additional connection variables, see ,
This option is only meaningful for the plain-text format. For
- the archive formats, you may specify the option when you
+ the archive formats, you can specify the option when you
call pg_restore .
This option is only meaningful for the plain-text format. For
- the archive formats, you may specify the option when you
+ the archive formats, you can specify the option when you
call pg_restore .
This option is only meaningful for the plain-text format. For
- the archive formats, you may specify the option when you
+ the archive formats, you can specify the option when you
call pg_restore .
an error in reloading a row causes only that row to be lost rather
than the entire table contents.
Note that
- the restore may fail altogether if you have rearranged column order.
+ the restore might fail altogether if you have rearranged column order.
The -D option is safe against column order changes,
though even slower.
When
-n> is specified, pg_dump
makes no attempt to dump any other database objects that the selected
- schema(s) may depend upon. Therefore, there is no guarantee
+ schema(s) might depend upon. Therefore, there is no guarantee
that the results of a specific-schema dump can be successfully
restored by themselves into a clean database.
This option is only meaningful for the plain-text format. For
- the archive formats, you may specify the option when you
+ the archive formats, you can specify the option when you
call pg_restore .
When
-t> is specified, pg_dump
makes no attempt to dump any other database objects that the selected
- table(s) may depend upon. Therefore, there is no guarantee
+ table(s) might depend upon. Therefore, there is no guarantee
that the results of a specific-table dump can be successfully
restored by themselves into a clean database.
This option is only meaningful for the plain-text format. For
- the archive formats, you may specify the option when you
+ the archive formats, you can specify the option when you
call pg_restore .
Output SQL-standard SET SESSION AUTHORIZATION> commands
instead of ALTER OWNER> commands to determine object
ownership. This makes the dump more standards compatible, but
- depending on the history of the objects in the dump, may not restore
+ depending on the history of the objects in the dump, might not restore
properly. Also, a dump using SET SESSION AUTHORIZATION>
will certainly require superuser privileges to restore correctly,
whereas ALTER OWNER> requires lesser privileges.
pg_dump emits commands to disable
triggers on user tables before inserting the data and commands
to re-enable them after the data has been inserted. If the
- restore is stopped in the middle, the system catalogs may be
+ restore is stopped in the middle, the system catalogs might be
left in the wrong state.
than COPY ). This will make restoration very slow;
it is mainly useful for making dumps that can be loaded into
non-
PostgreSQL databases. Note that
- the restore may fail altogether if you have rearranged column order.
+ the restore might fail altogether if you have rearranged column order.
The -D option is safer, though even slower.
Output SQL-standard SET SESSION AUTHORIZATION> commands
instead of ALTER OWNER> commands to determine object
ownership. This makes the dump more standards compatible, but
- depending on the history of the objects in the dump, may not restore
+ depending on the history of the objects in the dump, might not restore
properly.
After running this command, it should be possible to start the server,
- but bear in mind that the database may contain inconsistent data due to
+ but bear in mind that the database might contain inconsistent data due to
partially-committed transactions. You should immediately dump your data,
run initdb>, and reload. After reload, check for
inconsistencies and repair as needed.
valid data for pg_control>, you can force it to proceed anyway
by specifying the -f> (force) switch. In this case plausible
values will be substituted for the missing data. Most of the fields can be
- expected to match, but manual assistance may be needed for the next OID,
+ expected to match, but manual assistance might be needed for the next OID,
next transaction ID and epoch, next multitransaction ID and offset,
WAL starting address, and database locale fields.
The first six of these can be set using the switches discussed below.
epoch, next multitransaction ID, next multitransaction offset, and WAL
starting address values to be set manually. These are only needed when
pg_resetxlog is unable to determine appropriate values
- by reading pg_control>. Safe values may be determined as
+ by reading pg_control>. Safe values can be determined as
follows:
A safe value for the next transaction ID (-x>)
- may be determined by looking for the numerically largest
+ can be determined by looking for the numerically largest
file name in the directory pg_clog> under the data directory,
adding one,
and then multiplying by 1048576. Note that the file names are in
A safe value for the next multitransaction ID (-m>)
- may be determined by looking for the numerically largest
+ can be determined by looking for the numerically largest
file name in the directory pg_multixact/offsets> under the
data directory, adding one, and then multiplying by 65536. As above,
the file names are in hexadecimal, so the easiest way to do this is to
A safe value for the next multitransaction offset (-O>)
- may be determined by looking for the numerically largest
+ can be determined by looking for the numerically largest
file name in the directory pg_multixact/members> under the
data directory, adding one, and then multiplying by 65536. As above,
the file names are in hexadecimal, so the easiest way to do this is to
The -n> (no operation) switch instructs
pg_resetxlog to print the values reconstructed from
pg_control> and then exit without modifying anything.
- This is mainly a debugging tool, but may be useful as a sanity check
+ This is mainly a debugging tool, but can be useful as a sanity check
before allowing pg_resetxlog to proceed for real.
This command must not be used when the server is
running. pg_resetxlog will refuse to start up if
it finds a server lock file in the data directory. If the
- server crashed then a lock file may have been left
+ server crashed then a lock file might have been left
behind; in that case you can remove the lock file to allow
pg_resetxlog to run. But before you do
so, make doubly certain that there is no server process still alive.
-
+
Restore elements in
list-file only, and in the
- order they appear in the file. Lines can be moved and may also
+ order they appear in the file. Lines can be moved and can also
be commented out by placing a ; at the
start of the line. (See below for examples.)
Output SQL-standard SET SESSION AUTHORIZATION> commands
instead of ALTER OWNER> commands to determine object
ownership. This makes the dump more standards compatible, but
- depending on the history of the objects in the dump, may not restore
+ depending on the history of the objects in the dump, might not restore
properly.
By default, table data is restored even if the creation command
for the table failed (e.g., because it already exists).
With this option, data for such a table is skipped.
- This behavior is useful when the target database may already
- contain the desired table contents. For example,
+ This behavior is useful if the target database already
+ contains the desired table contents. For example,
auxiliary tables for
PostgreSQL> extensions
- such as
PostGIS> may already be loaded in
+ such as
PostGIS> might already be loaded in
the target database; specifying this option prevents duplicate
or obsolete data from being loaded into them.
pg_restore emits commands
to disable triggers on user tables before inserting the data then emits commands to
re-enable them after the data has been inserted. If the restore is stopped in the
- middle, the system catalogs may be left in the wrong state.
+ middle, the system catalogs might be left in the wrong state.
Semi-internal Options
- There are several other options that may be specified, used
+ There are several other options that can be specified, used
mainly for debugging purposes and in some cases to assist with
recovery of severely damaged databases. There should be no reason
to use them in a production database setup. These are listed
here only for the use by
PostgreSQL
- system developers. Furthermore, any of these options may
- disappear or change in a future release without notice.
+ system developers. Furthermore, these options might
+ change or be removed in a future release without notice.
- Default character encoding used by clients. (The clients may
+ Default character encoding used by clients. (The clients can
override this individually.) This value can also be set in the
configuration file.
A failure message mentioning semget> or
shmget> probably indicates you need to configure your
kernel to provide adequate shared memory and semaphores. For more
- discussion see . You may be able
+ discussion see . You might be able
to postpone reconfiguring your kernel by decreasing
linkend="guc-shared-buffers"> to reduce the shared memory
consumption of
PostgreSQL>, and/or by reducing
depending on your system. If you are certain that no conflicting
- server is running, you may remove the lock file mentioned in the
+ server is running, you can remove the lock file mentioned in the
message and try again.
- A failure message indicating inability to bind to a port may
+ A failure message indicating inability to bind to a port might
indicate that that port is already in use by some
- non-
PostgreSQL process. You m
ay also
+ non-
PostgreSQL process. You m
ight also
get this error if you terminate postgres
and immediately restart it using the same port; in this case, you
must simply wait a few seconds until the operating system closes
- the port before trying again. Finally, you may get this error if
+ the port before trying again. Finally, you might get this error if
you specify a port number that your operating system considers to
be reserved. For example, many versions of Unix consider port
numbers under 1024 to be trusted
and only permit
postgres server. Doing so will prevent
postgres from freeing the system
resources (e.g., shared memory and semaphores) that it holds before
- terminating. This may cause problems for starting a fresh
+ terminating. This might cause problems for starting a fresh
postgres run.
constant values in a statement to make guesses about the likely
result of executing the statement. Since this data is unavailable
when planning prepared statements with parameters, the chosen plan
- may be suboptimal. To examine the query plan
+ might be suboptimal. To examine the query plan
PostgreSQL has chosen for a prepared
statement, use
endterm="sql-explain-title">.
- At the prompt, the user
may type in
SQL commands.
+ At the prompt, the user
can type in
SQL commands.
Ordinarily, input lines are sent to the server when a
command-terminating semicolon is reached. An end of line does not
terminate a command. Thus commands can be spread over several lines for
- To include whitespace into an argument you may quote it with a
+ To include whitespace into an argument you can quote it with a
single quote. To include a single quote into such an argument,
use two single quotes. Anything contained in single quotes is
furthermore subject to C-like substitutions for
This operation is not as efficient as the
SQL
COPY command because all data must pass
through the client/server connection. For large
- amounts of data the
SQL command m
ay be preferable.
+ amounts of data the
SQL command m
ight be preferable.
If you use the \o command to redirect your
- query output you may wish to use \qecho
+ query output you might wish to use \qecho
instead of this command.
tuples_only (or t )
- Toggles between tuples only and full display. Full display may
- show extra information such as column headers, titles, and
+ Toggles between tuples only and full display. Full display
+ shows extra information such as column headers, titles, and
various footers. In tuples only mode, only actual table data
is shown.
The autocommit-on mode is
PostgreSQL>'s traditional
behavior, but autocommit-off is closer to the SQL spec. If you
- prefer autocommit-off, you may wish to set it in the system-wide
+ prefer autocommit-off, you might wish to set it in the system-wide
psqlrc file or your
~/.psqlrc file.
limited amount of memory is used, regardless of the size of
the result set. Settings of 100 to 1000 are commonly used
when enabling this feature.
- Keep in mind that when using this feature, a query may
+ Keep in mind that when using this feature, a query might
fail after having already displayed some rows.
- Since colons may legally appear in SQL commands, the following rule
+ Since colons can legally appear in SQL commands, the following rule
applies: the character sequence
:name
is not changed unless name> is the name
of a variable that is currently set. In any case you can escape
%[ ... %]
- Prompts may contain terminal control characters which, for
+ Prompts can contain terminal control characters which, for
example, change the color, background, or style of the prompt
text, or change the title of the terminal window. In order for
the line editing features of
Readline to work properly, these
non-printing control characters must be designated as invisible
by surrounding them with %[ and
- %] . Multiple pairs of these may occur within
+ %] . Multiple pairs of these can occur within
the prompt. For example,
testdb=> \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# '
An index has become corrupted, and no longer contains valid
data. Although in theory this should never happen, in
- practice indexes may become corrupted due to software bugs or
+ practice indexes can become corrupted due to software bugs or
hardware failures. REINDEX provides a
recovery method.
The name of the specific index, table, or database to be
- reindexed. Index and table names may be schema-qualified.
+ reindexed. Index and table names can be schema-qualified.
Presently, REINDEX DATABASE> and REINDEX SYSTEM>
can only reindex the current database, so their parameter must match
the current database's name.
Things are more difficult if you need to recover from corruption of
an index on a system table. In this case it's important for the
system to not have used any of the suspect indexes itself.
- (Indeed, in this sort of scenario you may find that server
+ (Indeed, in this sort of scenario you might find that server
processes are crashing immediately at start-up, due to reliance on
the corrupted indexes.) To recover safely, the server must be started
with the -P option, which prevents it from using
libpq>-based clients, it is possible to set
the PGOPTIONS environment variable to -P>
before starting the client. Note that while this method does not
- require locking out other clients, it may still be wise to prevent
+ require locking out other clients, it might still be wise to prevent
other users from connecting to the damaged database until repairs
have been completed.
exclusive lock on the parent table, blocking both writes and reads. The
subsequent CREATE INDEX> locks out writes but not reads; since
the index is not there, no read will attempt to use it, meaning that there
- will be no blocking but reads may be forced into expensive sequential
+ will be no blocking but reads might be forced into expensive sequential
scans. Another important point is that the drop/create approach
invalidates any cached query plans that use the index, while
REINDEX> does not.
effects of commands executed after the savepoint was established.
(To do that, see
endterm="sql-rollback-to-title">.) Destroying a savepoint when
- it is no longer needed may allow the system to reclaim some resources
+ it is no longer needed allows the system to reclaim some resources
earlier than transaction end.
will fail. This recursive revocation only affects privileges that
were granted through a chain of users that is traceable to the user
that is the subject of this REVOKE command.
- Thus, the affected users may effectively keep the privilege if it
+ Thus, the affected users might effectively keep the privilege if it
was also granted through other users.
command, the command is performed as though it were issued by the
owner of the affected object. Since all privileges ultimately come
from the object owner (possibly indirectly via chains of grant options),
- it is possible for a superuser to revoke all privileges, but this may
+ it is possible for a superuser to revoke all privileges, but this might
require use of CASCADE as stated above.
indirectly via more than one role membership path, it is unspecified
which containing role will be used to perform the command. In such cases
it is best practice to use SET ROLE> to become the specific
- role you want to do the REVOKE> as. Failure to do so may
+ role you want to do the REVOKE> as. Failure to do so might
lead to revoking privileges other than the ones you intended, or not
revoking anything at all.
result sets, but any function can be used.) This acts as
though its output were created as a temporary table for the
duration of this single SELECT command. An
- alias may also be used. If an alias is written, a column alias
+ alias can also be used. If an alias is written, a column alias
list can also be written to provide substitute names for one
or more attributes of the function's composite return type. If
the function has been defined as returning the record>
USING (
class="parameter">join_column [, ...]).
See below for the meaning. For CROSS JOIN ,
- none of these clauses may appear.
+ none of these clauses can appear.
- Currently, FOR UPDATE> and FOR SHARE> may not be
+ Currently, FOR UPDATE> and FOR SHARE> can not be
specified either for a UNION> result or for any input of a
UNION>.
- Currently, FOR UPDATE> and FOR SHARE> may not be
+ Currently, FOR UPDATE> and FOR SHARE> can not be
specified either for an INTERSECT> result or for any input of
an INTERSECT>.
- Currently, FOR UPDATE> and FOR SHARE> may not be
+ Currently, FOR UPDATE> and FOR SHARE> can not be
specified either for an EXCEPT> result or for any input of
an EXCEPT>.
A limitation of this feature is that an ORDER BY>
clause applying to the result of a UNION>,
- INTERSECT>, or EXCEPT> clause may only
+ INTERSECT>, or EXCEPT> clause can only
specify an output column name or number, not an expression.
- Optionally one may add the key word ASC> (ascending) or
+ Optionally one can add the key word ASC> (ascending) or
DESC> (descending) after any expression in the
ORDER BY> clause. If not specified, ASC> is
assumed by default. Alternatively, a specific ordering operator
- name may be specified in the USING> clause.
+ name can be specified in the USING> clause.
An ordering operator must be a less-than or greater-than
member of some btree operator family.
ASC> is usually equivalent to USING <> and
When using LIMIT>, it is a good idea to use an
ORDER BY> clause that constrains the result rows into a
unique order. Otherwise you will get an unpredictable subset of
- the query's rows — you may be asking for the tenth through
+ the query's rows — you might be asking for the tenth through
twentieth rows, but tenth through twentieth in what ordering? You
don't know what ordering unless you specify ORDER BY>.
Namespace Available to GROUP BY and ORDER BY
- In the SQL-92 standard, an ORDER BY clause may
+ In the SQL-92 standard, an ORDER BY clause can
only use result column names or numbers, while a GROUP
- BY clause may only use expressions based on input column
+ BY clause can only use expressions based on input column
names.
PostgreSQL extends each of
these clauses to allow the other choice as well (but it uses the
standard's interpretation if there is ambiguity).
This command sets the current user
identifier of the current SQL-session context to be
- class="parameter">rolename. The role name may be
+ class="parameter">rolename. The role name can be
written as either an identifier or a string literal.
After SET ROLE>, permissions checking for SQL commands
is carried out as though the named role were the one that had logged
The NONE> and RESET> forms reset the current
user identifier to be the current session user identifier.
- These forms may be executed by any user.
+ These forms can be executed by any user.
-
+
SET SESSION AUTHORIZATION
This command sets the session user identifier and the current user
identifier of the current SQL-session context to be
- class="parameter">username. The user name may be
+ class="parameter">username. The user name can be
written as either an identifier or a string literal. Using this
command, it is possible, for example, to temporarily become an
unprivileged user and later switch back to being a superuser.
The session user identifier is initially set to be the (possibly
authenticated) user name provided by the client. The current user
identifier is normally equal to the session user identifier, but
- may change temporarily in the context of setuid
+ might change temporarily in the context of setuid
functions and similar mechanisms; it can also be changed by
.
The current user identifier is relevant for permission checking.
- The session user identifier may be changed only if the initial session
+ The session user identifier can be changed only if the initial session
user (the authenticated user ) had the
superuser privilege. Otherwise, the command is accepted only if it
specifies the authenticated user name.
The DEFAULT> and RESET> forms reset the session
and current user identifiers to be the originally authenticated user
- name. These forms may be executed by any user.
+ name. These forms can be executed by any user.
issuing a COMMIT after each command that does not
follow START TRANSACTION> (or BEGIN ),
and it is therefore often called autocommit>.
- Other relational database systems may offer an autocommit feature
+ Other relational database systems might offer an autocommit feature
as a convenience.
Notes
- Only the owner of a table may TRUNCATE> it.
+ Only the owner of a table can TRUNCATE> it.
Notes
- You may unlisten something you were not listening for; no warning or error
+ You can unlisten something you were not listening for; no warning or error
will appear.
expression
- An expression to assign to the column. The expression may use the
+ An expression to assign to the column. The expression can use the
old values of this and other columns in the table.
An expression to be computed and returned by the UPDATE>
- command after each row is updated. The expression may use any
+ command after each row is updated. The expression can use any
column names of the table
or table(s) listed in FROM>.
Write *> to return all columns.
FULL
- Selects full
vacuum, which may reclaim more
+ Selects full
vacuum, which can reclaim more
space, but takes much longer and exclusively locks the table.
We recommend that active production databases be
vacuumed frequently (at least nightly), in order to
remove dead rows. After adding or deleting a large number
- of rows, it may be a good idea to issue a VACUUM
+ of rows, it might be a good idea to issue a VACUUM
ANALYZE command for the affected table. This will update the
system catalogs with
the results of all recent changes, and allow the
The FULL option is not recommended for routine use,
- but may be useful in special cases. An example is when you have deleted
+ but might be useful in special cases. An example is when you have deleted
most of the rows in a table and would like the table to physically shrink
to occupy less disk space. VACUUM FULL will usually
shrink the table more than a plain VACUUM would.
VACUUM causes a substantial increase in I/O traffic,
- which can cause poor performance for other active sessions. Therefore,
+ which might cause poor performance for other active sessions. Therefore,
it is sometimes advisable to use the cost-based vacuum delay feature.
See for details.
Clean or analyze table only.
- Column names may be specified only in conjunction with
+ Column names can be specified only in conjunction with
the --analyze option.
An expression or integer constant indicating how to sort the result
- rows. This expression may refer to the columns of the
+ rows. This expression can refer to the columns of the
VALUES> result as column1>, column2>,
etc. For more details see
.
VALUES> lists with very large numbers of rows should be avoided,
- as you may encounter out-of-memory failures or poor performance.
+ as you might encounter out-of-memory failures or poor performance.
VALUES> appearing within INSERT> is a special case
(because the desired column types are known from the INSERT>'s
target table, and need not be inferred by scanning the VALUES>
When VALUES> is used in INSERT>, the values are all
automatically coerced to the data type of the corresponding destination
- column. When it's used in other contexts, it may be necessary to specify
+ column. When it's used in other contexts, it might be necessary to specify
the correct data type. If the entries are all quoted literal constants,
coercing the first is sufficient to determine the assumed type for all: