diff --git a/doc/src/sgml/client-auth.sgml b/doc/src/sgml/client-auth.sgml index 951af49e9a..02f0489112 100644 --- a/doc/src/sgml/client-auth.sgml +++ b/doc/src/sgml/client-auth.sgml @@ -1462,7 +1462,7 @@ omicron bryanh guest1 Allows for mapping between system and database user names. See - for details. For a SSPI/Kerberos + for details. For an SSPI/Kerberos principal, such as username@EXAMPLE.COM (or, less commonly, username/hostbased@EXAMPLE.COM), the user name used for mapping is diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index d8c0fd3315..aa3e178240 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -51,7 +51,7 @@ In general, enclose the value in single quotes, doubling any single quotes within the value. Quotes can usually be omitted if the value is a simple number or identifier, however. - (Values that match a SQL keyword require quoting in some contexts.) + (Values that match an SQL keyword require quoting in some contexts.) @@ -222,7 +222,7 @@ shared_buffers = 128MB PostgreSQL provides three SQL commands to establish configuration defaults. The already-mentioned ALTER SYSTEM command - provides a SQL-accessible means of changing global defaults; it is + provides an SQL-accessible means of changing global defaults; it is functionally equivalent to editing postgresql.conf. In addition, there are two commands that allow setting of defaults on a per-database or per-role basis: @@ -9625,7 +9625,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' \'. However, use of \' creates security risks because in some client character set encodings, there are multibyte characters in which the last byte is numerically equivalent to ASCII - \. If client-side code does escaping incorrectly then a + \. If client-side code does escaping incorrectly then an SQL-injection attack is possible. This risk can be prevented by making the server reject queries in which a quote mark appears to be escaped by a backslash. diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index 0e8ef958a9..de561cded1 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -1538,7 +1538,7 @@ SELECT '\xDEADBEEF'; The reason that single quotes must be doubled, as shown in , is that this - is true for any string literal in a SQL command. The generic + is true for any string literal in an SQL command. The generic string-literal parser consumes the outermost single quotes and reduces any pair of single quotes to one data character. What the bytea input function sees is just one diff --git a/doc/src/sgml/dblink.sgml b/doc/src/sgml/dblink.sgml index bcf623117c..4ab38bcc99 100644 --- a/doc/src/sgml/dblink.sgml +++ b/doc/src/sgml/dblink.sgml @@ -1482,14 +1482,14 @@ dblink_get_result(text connname [, bool fail_on_error]) returns setof record Return Value - For an async query (that is, a SQL statement returning rows), + For an async query (that is, an SQL statement returning rows), the function returns the row(s) produced by the query. To use this function, you will need to specify the expected set of columns, as previously discussed for dblink. - For an async command (that is, a SQL statement not returning rows), + For an async command (that is, an SQL statement not returning rows), the function returns a single row with a single text column containing the command's status string. It is still necessary to specify that the result will have a single text column in the calling FROM @@ -1777,7 +1777,7 @@ dblink_build_sql_insert(text relname, dblink_build_sql_insert can be useful in doing selective replication of a local table to a remote database. It selects a row - from the local table based on primary key, and then builds a SQL + from the local table based on primary key, and then builds an SQL INSERT command that will duplicate that row, but with the primary key values replaced by the values in the last argument. (To make an exact copy of the row, just specify the same values for @@ -1909,7 +1909,7 @@ dblink_build_sql_delete(text relname, dblink_build_sql_delete can be useful in doing selective - replication of a local table to a remote database. It builds a SQL + replication of a local table to a remote database. It builds an SQL DELETE command that will delete the row with the given primary key values. @@ -2029,7 +2029,7 @@ dblink_build_sql_update(text relname, dblink_build_sql_update can be useful in doing selective replication of a local table to a remote database. It selects a row - from the local table based on primary key, and then builds a SQL + from the local table based on primary key, and then builds an SQL UPDATE command that will duplicate that row, but with the primary key values replaced by the values in the last argument. (To make an exact copy of the row, just specify the same values for diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 86c078e17d..9d5505cb84 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -354,13 +354,13 @@ current=testdb1 (should be testdb1) - The third option is to declare a SQL identifier linked to + The third option is to declare an SQL identifier linked to the connection, for example: EXEC SQL AT connection-name DECLARE statement-name STATEMENT; EXEC SQL PREPARE statement-name FROM :dyn-string; - Once you link a SQL identifier to a connection, you execute dynamic SQL + Once you link an SQL identifier to a connection, you execute dynamic SQL without an AT clause. Note that this option behaves like preprocessor directives, therefore the link is enabled only in the file. @@ -1542,7 +1542,7 @@ EXEC SQL END DECLARE SECTION; variables and vice-versa. However, when creating a statement ecpg does not know the types of the columns, so that it cannot check if a C array is input into a corresponding SQL-level array. When processing the - output of a SQL statement, ecpg has the necessary information and thus + output of an SQL statement, ecpg has the necessary information and thus checks if both are arrays. @@ -4348,7 +4348,7 @@ switch (v.sqltype) parameters to a prepared query are: Create a prepared query (prepared statement) - Declare a sqlda_t structure as an input SQLDA. + Declare an sqlda_t structure as an input SQLDA. Allocate memory area (as sqlda_t structure) for the input SQLDA. Set (copy) input values in the allocated memory. Open a cursor with specifying the input SQLDA. @@ -4630,7 +4630,7 @@ main(void) EXEC SQL PREPARE stmt1 FROM :query; EXEC SQL DECLARE cur1 CURSOR FOR stmt1; - /* Create a SQLDA structure for an input parameter */ + /* Create an SQLDA structure for an input parameter */ sqlda2 = (sqlda_t *)malloc(sizeof(sqlda_t) + sizeof(sqlvar_t)); memset(sqlda2, 0, sizeof(sqlda_t) + sizeof(sqlvar_t)); sqlda2->sqln = 2; /* a number of input variables */ @@ -6911,7 +6911,7 @@ EXEC SQL [ AT connection_name ] DEC Description - DECLARE STATEMENT declares a SQL statement identifier. + DECLARE STATEMENT declares an SQL statement identifier. SQL statement identifier can be associated with the connection. When the identifier is used by dynamic SQL statements, the statements are executed using the associated connection. @@ -6945,7 +6945,7 @@ EXEC SQL [ AT connection_name ] DEC statement_name - The name of a SQL statement identifier, either as an SQL identifier or a host variable. + The name of an SQL statement identifier, either as an SQL identifier or a host variable. diff --git a/doc/src/sgml/extend.sgml b/doc/src/sgml/extend.sgml index dae5737574..e928894726 100644 --- a/doc/src/sgml/extend.sgml +++ b/doc/src/sgml/extend.sgml @@ -1441,7 +1441,7 @@ include $(PGXS) and include the global PGXS makefile. Here is an example that builds an extension module named isbn_issn, consisting of a shared library containing - some C code, an extension control file, a SQL script, an include file + some C code, an extension control file, an SQL script, an include file (only needed if other modules might need to access the extension functions without going via SQL), and a documentation text file: diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 08b07f561e..fbc80c1403 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -15196,7 +15196,7 @@ table2-mapping json - Converts a SQL array to a JSON array. The behavior is the same + Converts an SQL array to a JSON array. The behavior is the same as to_json except that line feeds will be added between top-level array elements if the optional boolean parameter is true. @@ -15216,7 +15216,7 @@ table2-mapping json - Converts a SQL composite value to a JSON object. The behavior is the + Converts an SQL composite value to a JSON object. The behavior is the same as to_json except that line feeds will be added between top-level elements if the optional boolean parameter is true. @@ -15629,7 +15629,7 @@ table2-mapping - A JSON null value is converted to a SQL null in all cases. + A JSON null value is converted to an SQL null in all cases. @@ -16152,7 +16152,7 @@ table2-mapping string, number, boolean, and null. (The null result should not be confused - with a SQL NULL; see the examples.) + with an SQL NULL; see the examples.) json_typeof('-123.4') diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index c072110ba6..22af7dbf51 100644 --- a/doc/src/sgml/high-availability.sgml +++ b/doc/src/sgml/high-availability.sgml @@ -2194,7 +2194,7 @@ HINT: You can then restart the server after making the necessary configuration Currently, temporary table creation is not allowed during read only transactions, so in some cases existing scripts will not run correctly. This restriction might be relaxed in a later release. This is - both a SQL Standard compliance issue and a technical issue. + both an SQL Standard compliance issue and a technical issue. diff --git a/doc/src/sgml/indexam.sgml b/doc/src/sgml/indexam.sgml index 29fa3b7933..b2326b72e3 100644 --- a/doc/src/sgml/indexam.sgml +++ b/doc/src/sgml/indexam.sgml @@ -338,7 +338,7 @@ aminsert (Relation indexRelation, If the index AM wishes to cache data across successive index insertions - within a SQL statement, it can allocate space + within an SQL statement, it can allocate space in indexInfo->ii_Context and store a pointer to the data in indexInfo->ii_AmCache (which will be NULL initially). diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index ca905b80a6..9e6e085385 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -3468,7 +3468,7 @@ char *PQresultErrorField(const PGresult *res, int fieldcode); The text of a failed internally-generated command. This could - be, for example, a SQL query issued by a PL/pgSQL function. + be, for example, an SQL query issued by a PL/pgSQL function. @@ -5468,7 +5468,7 @@ UPDATE mytable SET x = x + 1 WHERE id = 42; - Ordinarily, libpq collects a SQL command's + Ordinarily, libpq collects an SQL command's entire result and returns it to the application as a single PGresult. This can be unworkable for commands that return a large number of rows. For such cases, applications can use diff --git a/doc/src/sgml/ltree.sgml b/doc/src/sgml/ltree.sgml index 06a983c075..436be76bfa 100644 --- a/doc/src/sgml/ltree.sgml +++ b/doc/src/sgml/ltree.sgml @@ -804,7 +804,7 @@ ltreetest=> SELECT subpath(path,0,2)||'Space'||subpath(path,2) FROM test WHER - We could simplify this by creating a SQL function that inserts a label + We could simplify this by creating an SQL function that inserts a label at a specified position in a path: CREATE FUNCTION ins_label(ltree, int, text) RETURNS ltree diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml index 6cb9c63161..d358bbe4a6 100644 --- a/doc/src/sgml/mvcc.sgml +++ b/doc/src/sgml/mvcc.sgml @@ -703,7 +703,7 @@ ERROR: could not serialize access due to read/write dependencies among transact transactions might do, or it will not successfully commit. It is important that an environment which uses this technique have a generalized way of handling serialization failures (which always return - with a SQLSTATE value of '40001'), because it will be very hard to + with an SQLSTATE value of '40001'), because it will be very hard to predict exactly which transactions might contribute to the read/write dependencies and need to be rolled back to prevent serialization anomalies. The monitoring of read/write dependencies has a cost, as does diff --git a/doc/src/sgml/pageinspect.sgml b/doc/src/sgml/pageinspect.sgml index 59620faec0..24b5e463ed 100644 --- a/doc/src/sgml/pageinspect.sgml +++ b/doc/src/sgml/pageinspect.sgml @@ -136,7 +136,7 @@ test=# SELECT page_checksum(get_raw_page('pg_class', 0), 0); fsm_page_contents shows the internal node structure - of a FSM page. For example: + of an FSM page. For example: test=# SELECT fsm_page_contents(get_raw_page('pg_class', 'fsm', 0)); diff --git a/doc/src/sgml/pgcrypto.sgml b/doc/src/sgml/pgcrypto.sgml index 13770dfc6f..c4dce94001 100644 --- a/doc/src/sgml/pgcrypto.sgml +++ b/doc/src/sgml/pgcrypto.sgml @@ -521,7 +521,7 @@ gen_salt(type text [, iter_count integer ]) returns text - An SHA1 hash of the random prefix and data is appended. + A SHA1 hash of the random prefix and data is appended. diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index a3edde3503..4cd4bcba80 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -1099,7 +1099,7 @@ PERFORM query; One might expect that writing SELECT directly would accomplish this result, but at present the only accepted way to do it is - PERFORM. A SQL command that can return rows, + PERFORM. An SQL command that can return rows, such as SELECT, will be rejected as an error unless it has an INTO clause as discussed in the next section. @@ -1128,7 +1128,7 @@ PERFORM create_mv('cs_session_page_requests_mv', my_query); - The result of a SQL command yielding a single row (possibly of multiple + The result of an SQL command yielding a single row (possibly of multiple columns) can be assigned to a record variable, row-type variable, or list of scalar variables. This is done by writing the base SQL command and adding an INTO clause. For example, @@ -1317,7 +1317,7 @@ EXECUTE command-string INT The INTO clause specifies where the results of - a SQL command returning rows should be assigned. If a row variable + an SQL command returning rows should be assigned. If a row variable or variable list is provided, it must exactly match the structure of the command's results; if a record variable is provided, it will configure itself to match the @@ -2659,7 +2659,7 @@ END LOOP label ; The FOREACH loop is much like a FOR loop, - but instead of iterating through the rows returned by a SQL query, + but instead of iterating through the rows returned by an SQL query, it iterates through the elements of an array value. (In general, FOREACH is meant for looping through components of a composite-valued expression; variants for looping @@ -4726,7 +4726,7 @@ INSERT INTO foo (foo) VALUES (foo(foo)); Another way to understand this is that variable substitution can only - insert data values into a SQL command; it cannot dynamically change which + insert data values into an SQL command; it cannot dynamically change which database objects are referenced by the command. (If you want to do that, you must build a command string dynamically, as explained in .) @@ -4748,7 +4748,7 @@ INSERT INTO dest (col) SELECT foo + bar FROM src; By default, PL/pgSQL will report an error if a name - in a SQL statement could refer to either a variable or a table column. + in an SQL statement could refer to either a variable or a table column. You can fix such a problem by renaming the variable or column, or by qualifying the ambiguous reference, or by telling PL/pgSQL which interpretation to prefer. @@ -5384,7 +5384,7 @@ HINT: Make sure the query returns the exact list of columns. - If a name used in a SQL command could be either a column name of a + If a name used in an SQL command could be either a column name of a table used in the command or a reference to a variable of the function, PL/SQL treats it as a column name. By default, PL/pgSQL will throw an error diff --git a/doc/src/sgml/plpython.sgml b/doc/src/sgml/plpython.sgml index c1651000a3..c2540b8ec9 100644 --- a/doc/src/sgml/plpython.sgml +++ b/doc/src/sgml/plpython.sgml @@ -577,7 +577,7 @@ AS $$ $$ LANGUAGE plpythonu; - To return a SQL null for any column, insert None at + To return an SQL null for any column, insert None at the corresponding position. @@ -605,7 +605,7 @@ $$ LANGUAGE plpythonu; Any extra dictionary key/value pairs are ignored. Missing keys are treated as errors. - To return a SQL null value for any column, insert + To return an SQL null value for any column, insert None with the corresponding column name as the key. diff --git a/doc/src/sgml/pltcl.sgml b/doc/src/sgml/pltcl.sgml index 032e0b3a6b..1759fc4498 100644 --- a/doc/src/sgml/pltcl.sgml +++ b/doc/src/sgml/pltcl.sgml @@ -475,7 +475,7 @@ $$ LANGUAGE pltcl; The Tcl script contained in command is - executed within a SQL subtransaction. If the script returns an + executed within an SQL subtransaction. If the script returns an error, that entire subtransaction is rolled back before returning the error out to the surrounding Tcl code. See for more details and an @@ -854,7 +854,7 @@ CREATE EVENT TRIGGER tcl_a_snitch ON ddl_command_start EXECUTE FUNCTION tclsnitc PL/Tcl's elog command. Such errors can be caught within Tcl using the Tcl catch command. If an error is not caught but is allowed to propagate out to the top level of - execution of the PL/Tcl function, it is reported as a SQL error in the + execution of the PL/Tcl function, it is reported as an SQL error in the function's calling query. @@ -867,7 +867,7 @@ CREATE EVENT TRIGGER tcl_a_snitch ON ddl_command_start EXECUTE FUNCTION tclsnitc subtransaction, which is rolled back on error, so that any partially-completed operation is automatically cleaned up.) Again, if an error propagates out to the top level without being caught, - it turns back into a SQL error. + it turns back into an SQL error. diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index 2f4dde3beb..bc2a2feb0b 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -349,7 +349,7 @@ AuthenticationSSPI - The frontend must now initiate a SSPI negotiation. The frontend + The frontend must now initiate an SSPI negotiation. The frontend will send a GSSResponse with the first part of the SSPI data stream in response to this. If further messages are needed, the server will respond with AuthenticationGSSContinue. @@ -1605,7 +1605,7 @@ more details on SCRAM-SHA-256 and SCRAM-SHA-256-PLUS. One or more server-challenge and client-response message will follow. Each server-challenge is sent in an AuthenticationSASLContinue message, followed - by a response from client in an SASLResponse message. The particulars of + by a response from client in a SASLResponse message. The particulars of the messages are mechanism specific. @@ -6226,7 +6226,7 @@ message. Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. + This could be, for example, an SQL query issued by a PL/pgSQL function. diff --git a/doc/src/sgml/ref/alter_opfamily.sgml b/doc/src/sgml/ref/alter_opfamily.sgml index b3b5d61a85..b2e5b9b72e 100644 --- a/doc/src/sgml/ref/alter_opfamily.sgml +++ b/doc/src/sgml/ref/alter_opfamily.sgml @@ -269,7 +269,7 @@ ALTER OPERATOR FAMILY name USING name [ DEFAUL - The operators should not be defined by SQL functions. A SQL function + The operators should not be defined by SQL functions. An SQL function is likely to be inlined into the calling query, which will prevent the optimizer from recognizing that the query matches an index. diff --git a/doc/src/sgml/ref/create_statistics.sgml b/doc/src/sgml/ref/create_statistics.sgml index 988f4c573f..9a8c904c08 100644 --- a/doc/src/sgml/ref/create_statistics.sgml +++ b/doc/src/sgml/ref/create_statistics.sgml @@ -208,7 +208,7 @@ EXPLAIN ANALYZE SELECT * FROM t1 WHERE (a = 1) AND (b = 0); Create table t2 with two perfectly correlated columns - (containing identical data), and a MCV list on those columns: + (containing identical data), and an MCV list on those columns: CREATE TABLE t2 ( diff --git a/doc/src/sgml/ref/create_trigger.sgml b/doc/src/sgml/ref/create_trigger.sgml index 561af989a4..3f4b5acc7b 100644 --- a/doc/src/sgml/ref/create_trigger.sgml +++ b/doc/src/sgml/ref/create_trigger.sgml @@ -515,7 +515,7 @@ UPDATE OF column_name1 [, column_name2ON UPDATE CASCADE or ON DELETE SET NULL, are treated as part of the SQL command that caused them (note that such actions are never deferred). Relevant triggers on the affected table will - be fired, so that this provides another way in which a SQL command might + be fired, so that this provides another way in which an SQL command might fire triggers not directly matching its type. In simple cases, triggers that request transition relations will see all changes caused in their table by a single original SQL command as a single transition relation. diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml index 5ddadc11f2..a6c0788592 100644 --- a/doc/src/sgml/ref/pg_dump.sgml +++ b/doc/src/sgml/ref/pg_dump.sgml @@ -1413,7 +1413,7 @@ CREATE DATABASE foo WITH TEMPLATE template0; Examples - To dump a database called mydb into a SQL-script file: + To dump a database called mydb into an SQL-script file: $ pg_dump mydb > db.sql diff --git a/doc/src/sgml/ref/pgbench.sgml b/doc/src/sgml/ref/pgbench.sgml index 8eb4f538d5..0c60077e1f 100644 --- a/doc/src/sgml/ref/pgbench.sgml +++ b/doc/src/sgml/ref/pgbench.sgml @@ -1012,7 +1012,7 @@ pgbench options d Before PostgreSQL 9.6, SQL commands in script files were terminated by newlines, and so they could not be continued across lines. Now a semicolon is required to separate consecutive - SQL commands (though a SQL command does not need one if it is followed + SQL commands (though an SQL command does not need one if it is followed by a meta command). If you need to create a script file that works with both old and new versions of pgbench, be sure to write each SQL command on a single line ending with a semicolon. @@ -1030,7 +1030,7 @@ pgbench options d . A value specified for these variables using takes precedence over the automatic presets. Once set, a variable's - value can be inserted into a SQL command by writing + value can be inserted into an SQL command by writing :variablename. When running more than one client session, each session has its own set of variables. pgbench supports up to 255 variable uses in one diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index dd36830a2d..a8dfc41e40 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1044,7 +1044,7 @@ testdb=> For \copy ... from stdin, data rows are read from the same source that issued the command, continuing until \. is read or the stream reaches EOF. This option is useful - for populating tables in-line within a SQL script file. + for populating tables in-line within an SQL script file. For \copy ... to stdout, output is sent to the same place as psql command output, and the COPY count command status is @@ -2243,7 +2243,7 @@ Tue Oct 26 21:40:57 CEST 1999 Sends the current query buffer to the server, then treats - each column of each row of the query's output (if any) as a SQL + each column of each row of the query's output (if any) as an SQL statement to be executed. For example, to create an index on each column of my_table: @@ -3510,7 +3510,7 @@ testdb=> \setenv LESS -imx4F - Normally, psql will dispatch a SQL command to the + Normally, psql will dispatch an SQL command to the server as soon as it reaches the command-ending semicolon, even if more input remains on the current line. Thus for example entering diff --git a/doc/src/sgml/tablefunc.sgml b/doc/src/sgml/tablefunc.sgml index 356e2b0f00..808162b89b 100644 --- a/doc/src/sgml/tablefunc.sgml +++ b/doc/src/sgml/tablefunc.sgml @@ -198,13 +198,13 @@ row1 val11 val12 val13 ... row2 val21 val22 val23 ... ... - The crosstab function takes a text parameter that is a SQL + The crosstab function takes a text parameter that is an SQL query producing raw data formatted in the first way, and produces a table formatted in the second way. - The sql parameter is a SQL statement that produces + The sql parameter is an SQL statement that produces the source set of data. This statement must return one row_name column, one category column, and one @@ -459,7 +459,7 @@ crosstab(text source_sql, text category_sql) - source_sql is a SQL statement that produces the + source_sql is an SQL statement that produces the source set of data. This statement must return one row_name column, one category column, and one @@ -493,7 +493,7 @@ SELECT row_name, extra_col, cat, value FROM foo ORDER BY 1; - category_sql is a SQL statement that produces + category_sql is an SQL statement that produces the set of categories. This statement must return only one column. It must produce at least one row, or an error will be generated. Also, it must not produce duplicate values, or an error will be diff --git a/doc/src/sgml/tablesample-method.sgml b/doc/src/sgml/tablesample-method.sgml index 1c9f1bf44b..c821941b71 100644 --- a/doc/src/sgml/tablesample-method.sgml +++ b/doc/src/sgml/tablesample-method.sgml @@ -28,7 +28,7 @@ method_name(internal) RETURNS tsm_handler The name of the function is the same method name appearing in the TABLESAMPLE clause. The internal argument is a dummy (always having value zero) that simply serves to prevent this function from - being called directly from a SQL command. + being called directly from an SQL command. The result of the function must be a palloc'd struct of type TsmRoutine, which contains pointers to support functions for the sampling method. These support functions are plain C functions and diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml index 168d84f06b..20db7b7afe 100644 --- a/doc/src/sgml/textsearch.sgml +++ b/doc/src/sgml/textsearch.sgml @@ -1790,7 +1790,7 @@ SELECT ts_rewrite('a & b'::tsquery, 'a'::tsquery, 'c'::tsquery); This form of ts_rewrite accepts a starting - query and a SQL select command, which + query and an SQL select command, which is given as a text string. The select must yield two columns of tsquery type. For each row of the select result, occurrences of the first column value diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml index 4a0e74652f..f1a845f756 100644 --- a/doc/src/sgml/trigger.sgml +++ b/doc/src/sgml/trigger.sgml @@ -411,7 +411,7 @@ trigger will see the effects of data changes for rows previously processed in the same outer command. This requires caution, since the ordering of these - change events is not in general predictable; a SQL command that + change events is not in general predictable; an SQL command that affects multiple rows can visit the rows in any order. diff --git a/doc/src/sgml/typeconv.sgml b/doc/src/sgml/typeconv.sgml index 103e4c5d99..2874874248 100644 --- a/doc/src/sgml/typeconv.sgml +++ b/doc/src/sgml/typeconv.sgml @@ -1222,7 +1222,7 @@ section consider all of their inputs in one resolution step. The rules given in the preceding sections will result in assignment -of non-unknown data types to all expressions in a SQL query, +of non-unknown data types to all expressions in an SQL query, except for unspecified-type literals that appear as simple output columns of a SELECT command. For example, in diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index 3771401c01..584d389d45 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -194,7 +194,7 @@ must be a SELECT or have a RETURNING clause that returns whatever is specified as the function's return type. Alternatively, if you - want to define a SQL function that performs actions but has no + want to define an SQL function that performs actions but has no useful value to return, you can define it as returning void. For example, this function removes rows with negative salaries from the emp table: @@ -234,8 +234,8 @@ CALL clean_emp(); - The entire body of a SQL function is parsed before any of it is - executed. While a SQL function can contain commands that alter + The entire body of an SQL function is parsed before any of it is + executed. While an SQL function can contain commands that alter the system catalogs (e.g., CREATE TABLE), the effects of such commands will not be visible during parse analysis of later commands in the function. Thus, for example, @@ -243,7 +243,7 @@ CALL clean_emp(); will not work as desired if packaged up into a single SQL function, since foo won't exist yet when the INSERT command is parsed. It's recommended to use PL/pgSQL - instead of a SQL function in this type of situation. + instead of an SQL function in this type of situation. @@ -267,7 +267,7 @@ CALL clean_emp(); - Arguments of a SQL function can be referenced in the function + Arguments of an SQL function can be referenced in the function body using either names or numbers. Examples of both methods appear below. @@ -1473,7 +1473,7 @@ SELECT concat_values('|', 1, 4, 2); - When a SQL function has one or more parameters of collatable data types, + When an SQL function has one or more parameters of collatable data types, a collation is identified for each function call depending on the collations assigned to the actual arguments, as described in . If a collation is successfully identified @@ -1508,7 +1508,7 @@ $$ LANGUAGE SQL; If no common collation can be identified among the actual arguments, - then a SQL function treats its parameters as having their data types' + then an SQL function treats its parameters as having their data types' default collation (which is usually the database's default collation, but could be different for parameters of domain types). @@ -2952,7 +2952,7 @@ HeapTupleGetDatum(HeapTuple tuple) save enough state across calls to remember what it was doing and return the correct next item on each call. In the other method, called Materialize mode, - a SRF fills and returns a tuplestore object containing its + an SRF fills and returns a tuplestore object containing its entire result; then only one call occurs for the whole result, and no inter-call state is needed. @@ -3375,7 +3375,7 @@ CREATE FUNCTION make_array(anyelement) RETURNS anyarray There is a variant of polymorphism that is only available to C-language functions: they can be declared to take parameters of type "any". (Note that this type name must be double-quoted, - since it's also a SQL reserved word.) This works like + since it's also an SQL reserved word.) This works like anyelement except that it does not constrain different "any" arguments to be the same type, nor do they help determine the function's result type. A C-language function can also @@ -3544,7 +3544,7 @@ if (!ptr) It is also possible to attach a planner support - function to a SQL-callable function (called + function to an SQL-callable function (called its target function), and thereby provide knowledge about the target function that is too complex to be represented declaratively. Planner support functions have to be diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index 32668f85a1..e2ea51aafe 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -511,13 +511,13 @@ init_execution_state(List *queryTree_list, ((CopyStmt *) stmt->utilityStmt)->filename == NULL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot COPY to/from client in a SQL function"))); + errmsg("cannot COPY to/from client in an SQL function"))); if (IsA(stmt->utilityStmt, TransactionStmt)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is a SQL statement name */ - errmsg("%s is not allowed in a SQL function", + errmsg("%s is not allowed in an SQL function", CreateCommandName(stmt->utilityStmt)))); } diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index dc84b7b9b7..d7479925cb 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -5149,7 +5149,7 @@ ParseScript(const char *script, const char *desc, int weight) if (index == 0) syntax_error(desc, lineno, NULL, NULL, - "\\gset must follow a SQL command", + "\\gset must follow an SQL command", NULL, -1); cmd = ps.commands[index - 1]; @@ -5157,7 +5157,7 @@ ParseScript(const char *script, const char *desc, int weight) if (cmd->type != SQL_COMMAND || cmd->varprefix != NULL) syntax_error(desc, lineno, NULL, NULL, - "\\gset must follow a SQL command", + "\\gset must follow an SQL command", cmd->first_line, -1); /* get variable prefix */ diff --git a/src/bin/pgbench/t/001_pgbench_with_server.pl b/src/bin/pgbench/t/001_pgbench_with_server.pl index 9cc5270e02..55b3c3f6fd 100644 --- a/src/bin/pgbench/t/001_pgbench_with_server.pl +++ b/src/bin/pgbench/t/001_pgbench_with_server.pl @@ -1091,10 +1091,10 @@ SELECT LEAST(} . join(', ', (':i') x 256) . q{)} 'gset no row', 2, [qr{expected one row, got 0\b}], q{SELECT WHERE FALSE \gset} ], - [ 'gset alone', 1, [qr{gset must follow a SQL command}], q{\gset} ], + [ 'gset alone', 1, [qr{gset must follow an SQL command}], q{\gset} ], [ 'gset no SQL', 1, - [qr{gset must follow a SQL command}], q{\set i +1 + [qr{gset must follow an SQL command}], q{\set i +1 \gset} ], [ @@ -1103,7 +1103,7 @@ SELECT LEAST(} . join(', ', (':i') x 256) . q{)} ], [ 'gset after gset', 1, - [qr{gset must follow a SQL command}], q{SELECT 1 AS i \gset + [qr{gset must follow an SQL command}], q{SELECT 1 AS i \gset \gset} ], [