diff --git a/doc/src/sgml/advanced.sgml b/doc/src/sgml/advanced.sgml index 94a3deed6f..2ecb2da5c5 100644 --- a/doc/src/sgml/advanced.sgml +++ b/doc/src/sgml/advanced.sgml @@ -1,4 +1,4 @@ - + Advanced Features @@ -42,7 +42,7 @@ is of particular interest to your application, but you do not want to type the query each time you need it. You can create a view over the query, which gives a name to - the query that you can refer to like an ordinary table. + the query that you can refer to like an ordinary table: CREATE VIEW myview AS @@ -158,7 +158,7 @@ DETAIL: Key (city)=(Berkeley) is not present in table "cities". customer accounts, as well as total deposit balances for branches. Suppose that we want to record a payment of $100.00 from Alice's account to Bob's account. Simplifying outrageously, the SQL commands for this - might look like + might look like: UPDATE accounts SET balance = balance - 100.00 @@ -219,7 +219,7 @@ UPDATE branches SET balance = balance + 100.00 In PostgreSQL, a transaction is set up by surrounding the SQL commands of the transaction with BEGIN and COMMIT commands. So our banking - transaction would actually look like + transaction would actually look like: BEGIN; @@ -392,7 +392,7 @@ CREATE TABLE capitals ( For example, the following query finds the names of all cities, including state capitals, that are located at an altitude - over 500 ft.: + over 500 feet: SELECT name, altitude @@ -415,7 +415,7 @@ SELECT name, altitude On the other hand, the following query finds all the cities that are not state capitals and - are situated at an altitude of 500 ft. or higher: + are situated at an altitude of 500 feet or higher: SELECT name, altitude diff --git a/doc/src/sgml/array.sgml b/doc/src/sgml/array.sgml index 4bfbfc0c54..3fe542446b 100644 --- a/doc/src/sgml/array.sgml +++ b/doc/src/sgml/array.sgml @@ -1,4 +1,4 @@ - + Arrays @@ -102,7 +102,7 @@ CREATE TABLE tictactoe ( box uses a semicolon (;) but all the others use comma (,). Each val is either a constant of the array element type, or a subarray. An example - of an array constant is + of an array constant is: '{{1,2,3},{4,5,6},{7,8,9}}' @@ -126,7 +126,7 @@ CREATE TABLE tictactoe ( - Now we can show some INSERT statements. + Now we can show some INSERT statements: INSERT INTO sal_emp @@ -302,7 +302,7 @@ SELECT array_dims(schedule) FROM sal_emp WHERE name = 'Carol'; for programs. Dimensions can also be retrieved with array_upper and array_lower, which return the upper and lower bound of a - specified array dimension, respectively. + specified array dimension, respectively: SELECT array_upper(schedule, 1) FROM sal_emp WHERE name = 'Carol'; @@ -368,7 +368,7 @@ UPDATE sal_emp SET pay_by_quarter[1:2] = '{27000,27000}' New array values can also be constructed by using the concatenation operator, - ||. + ||: SELECT ARRAY[1,2] || ARRAY[3,4]; ?column? @@ -623,7 +623,7 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2 Remember that what you write in an SQL command will first be interpreted as a string literal, and then as an array. This doubles the number of backslashes you need. For example, to insert a text array - value containing a backslash and a double quote, you'd need to write + value containing a backslash and a double quote, you'd need to write: INSERT ... VALUES (E'{"\\\\","\\""}'); diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml index 9fc4445bbe..8ef3b5b9a0 100644 --- a/doc/src/sgml/backup.sgml +++ b/doc/src/sgml/backup.sgml @@ -1,4 +1,4 @@ - + Backup and Restore @@ -221,20 +221,20 @@ psql -f infile postgres Use compressed dumps. You can use your favorite compression program, for example - gzip. + gzip: pg_dump dbname | gzip > filename.gz - Reload with + Reload with: createdb dbname gunzip -c filename.gz | psql dbname - or + or: cat filename.gz | gunzip | psql dbname @@ -254,7 +254,7 @@ cat filename.gz | gunzip | psql dbname | split -b 1m - filename - Reload with + Reload with: createdb dbname @@ -296,7 +296,7 @@ pg_dump -Fc dbname > it is explained where these files are located, but you have probably found them already if you are interested in this method. You can use whatever method you prefer - for doing usual file system backups, for example + for doing usual file system backups, for example: tar -cf backup.tar /usr/local/pgsql/data @@ -528,7 +528,7 @@ tar -cf backup.tar /usr/local/pgsql/data i.e., the cluster's data directory.) Write %% if you need to embed an actual % character in the command. The simplest useful command is something - like + like: archive_command = 'cp -i %p /mnt/server/archivedir/%f </dev/null' @@ -568,7 +568,7 @@ archive_command = 'cp -i %p /mnt/server/archivedir/%f </dev/null' this correctly on some platforms but not others. If the chosen command does not itself handle this case correctly, you should add a command to test for pre-existence of the archive file. For example, something - like + like: archive_command = 'test ! -f .../%f && cp %p .../%f' @@ -657,7 +657,7 @@ archive_command = 'test ! -f .../%f && cp %p .../%f' - Connect to the database as a superuser, and issue the command + Connect to the database as a superuser, and issue the command: SELECT pg_start_backup('label'); @@ -685,7 +685,7 @@ SELECT pg_start_backup('label'); - Again connect to the database as a superuser, and issue the command + Again connect to the database as a superuser, and issue the command: SELECT pg_stop_backup(); @@ -924,7 +924,7 @@ SELECT pg_stop_backup(); i.e., the cluster's data directory.) Write %% if you need to embed an actual % character in the command. The simplest useful command is - something like + something like: restore_command = 'cp /mnt/server/archivedir/%f %p' @@ -1669,7 +1669,7 @@ if (!triggered) The least downtime can be achieved by installing the new server in a different directory and running both the old and the new servers - in parallel, on different ports. Then you can use something like + in parallel, on different ports. Then you can use something like: pg_dumpall -p 5432 | psql -d postgres -p 6543 diff --git a/doc/src/sgml/bki.sgml b/doc/src/sgml/bki.sgml index 75ecc041b5..61a736b699 100644 --- a/doc/src/sgml/bki.sgml +++ b/doc/src/sgml/bki.sgml @@ -1,4 +1,4 @@ - + <acronym>BKI</acronym> Backend Interface @@ -338,7 +338,7 @@ table test_table with OID 420, having two columns cola and colb of type int4 and text, respectively, and insert - two rows into the table. + two rows into the table: create test_table 420 (cola = int4, colb = text) open test_table diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 2842290716..5b03122e56 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -71,7 +71,7 @@ shared_buffers = 128MB In addition to parameter settings, the postgresql.conf file can contain include directives, which specify another file to read and process as if it were inserted into the - configuration file at this point. Include directives simply look like + configuration file at this point. Include directives simply look like: include 'filename' diff --git a/doc/src/sgml/cvs.sgml b/doc/src/sgml/cvs.sgml index cf0f086347..2fd60ba5ba 100644 --- a/doc/src/sgml/cvs.sgml +++ b/doc/src/sgml/cvs.sgml @@ -1,4 +1,4 @@ - + @@ -109,7 +109,7 @@ cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql Whenever you want to update to the latest CVS sources, cd into - the pgsql subdirectory, and issue + the pgsql subdirectory, and issue: cvs -z3 update -d -P @@ -123,7 +123,7 @@ cvs -z3 update -d -P You can save yourself some typing by making a file .cvsrc - in your home directory that contains + in your home directory that contains: cvs -z3 @@ -132,7 +132,7 @@ update -d -P This supplies the option to all cvs commands, and the and options to cvs update. Then you just have - to say + to say: cvs update @@ -252,14 +252,14 @@ cvs checkout -P pgsql - After you've done the initial checkout on a branch + After you've done the initial checkout on a branch: cvs checkout -r REL6_4 anything you do within that directory structure is restricted to that - branch. If you apply a patch to that directory structure and do a + branch. If you apply a patch to that directory structure and do a: cvs commit @@ -312,7 +312,7 @@ cvs commit but had formerly kept it under a PostgreSQL development tree in /opt/postgres/cvs/. If you intend to keep your - repository in /home/cvs/, then put + repository in /home/cvs/, then put: setenv CVSROOT /home/cvs @@ -349,7 +349,7 @@ CVSROOT/ Verify that cvsup is in your path; on most systems - you can do this by typing + you can do this by typing: which cvsup diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index 5f99231c51..50d70b1cef 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -1,4 +1,4 @@ - + Data Types @@ -476,16 +476,16 @@ Both the maximum precision and the maximum scale of a numeric column can be configured. To declare a column of type numeric use - the syntax + the syntax: NUMERIC(precision, scale) The precision must be positive, the scale zero or positive. - Alternatively, + Alternatively: NUMERIC(precision) - selects a scale of 0. Specifying + selects a scale of 0. Specifying: NUMERIC @@ -741,7 +741,7 @@ NUMERIC a notational convenience for setting up unique identifier columns (similar to the AUTO_INCREMENT property supported by some other databases). In the current - implementation, specifying + implementation, specifying: CREATE TABLE tablename ( @@ -1787,18 +1787,18 @@ SELECT b, char_length(b) FROM test2; followed by an optional AD or BC. (Alternatively, AD/BC can appear before the time zone, but this is not the preferred ordering.) - Thus + Thus: 1999-01-08 04:05:06 - and + and: 1999-01-08 04:05:06 -8:00 are valid values, which follow the ISO 8601 - standard. In addition, the wide-spread format + standard. In addition, the wide-spread format: January 8 04:05:06 1999 PST @@ -2113,7 +2113,7 @@ January 8 04:05:06 1999 PST that units like century or week are converted to years and days and ago is converted to an appropriate sign. In - ISO mode the output looks like + ISO mode the output looks like: quantity unit ... days hours:minutes:seconds @@ -3115,11 +3115,11 @@ SELECT * FROM test; the raw numeric value that type oid would use. The alias types allow simplified lookup of OID values for objects. For example, to examine the pg_attribute rows related to a table - mytable, one could write + mytable, one could write: SELECT * FROM pg_attribute WHERE attrelid = 'mytable'::regclass; - rather than + rather than: SELECT * FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'mytable'); @@ -3444,7 +3444,7 @@ XMLPARSE (CONTENT 'abcbarfoo') ]]> While this is the only way to convert character strings into XML values according to the SQL standard, the PostgreSQL-specific - syntaxes + syntaxes: bar' 'bar'::xml diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index ac4d5a12b7..7f77eae425 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -1,4 +1,4 @@ - + Data Definition @@ -210,7 +210,7 @@ CREATE TABLE products ( so that it gets set to the time of row insertion. Another common example is generating a serial number for each row. In PostgreSQL this is typically done by - something like + something like: CREATE TABLE products ( product_no integer DEFAULT nextval('products_product_no_seq'), @@ -319,7 +319,7 @@ CREATE TABLE products ( A check constraint can also refer to several columns. Say you store a regular price and a discounted price, and you want to - ensure that the discounted price is lower than the regular price. + ensure that the discounted price is lower than the regular price: CREATE TABLE products ( product_no integer, @@ -348,7 +348,7 @@ CREATE TABLE products ( column it is attached to. (PostgreSQL doesn't enforce that rule, but you should follow it if you want your table definitions to work with other database systems.) The above example could - also be written as + also be written as: CREATE TABLE products ( product_no integer, @@ -360,7 +360,7 @@ CREATE TABLE products ( CHECK (price > discounted_price) ); - or even + or even: CREATE TABLE products ( product_no integer, @@ -463,7 +463,7 @@ CREATE TABLE products ( only added to PostgreSQL to be compatible with some other database systems.) Some users, however, like it because it makes it easy to toggle the constraint in a - script file. For example, you could start with + script file. For example, you could start with: CREATE TABLE products ( product_no integer NULL, @@ -497,7 +497,7 @@ CREATE TABLE products ( Unique constraints ensure that the data contained in a column or a group of columns is unique with respect to all the rows in the - table. The syntax is + table. The syntax is: CREATE TABLE products ( product_no integer UNIQUE, @@ -505,7 +505,7 @@ CREATE TABLE products ( price numeric ); - when written as a column constraint, and + when written as a column constraint, and: CREATE TABLE products ( product_no integer, @@ -691,7 +691,7 @@ CREATE TABLE orders ( - You can also shorten the above command to + You can also shorten the above command to: CREATE TABLE orders ( order_id integer PRIMARY KEY, @@ -781,7 +781,7 @@ CREATE TABLE order_items ( many-to-many relationship example above: when someone wants to remove a product that is still referenced by an order (via order_items), we disallow it. If someone - removes an order, the order items are removed as well. + removes an order, the order items are removed as well: CREATE TABLE products ( product_no integer PRIMARY KEY, @@ -1230,7 +1230,7 @@ ALTER TABLE products DROP CONSTRAINT some_name; This works the same for all constraint types except not-null - constraints. To drop a not null constraint use + constraints. To drop a not null constraint use: ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL; @@ -1256,7 +1256,7 @@ ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77; - To remove any default value, use + To remove any default value, use: ALTER TABLE products ALTER COLUMN price DROP DEFAULT; @@ -1383,7 +1383,7 @@ ALTER TABLE products RENAME TO items; To assign privileges, the GRANT command is used. For example, if joe is an existing user, and accounts is an existing table, the privilege to - update the table can be granted with + update the table can be granted with: GRANT UPDATE ON accounts TO joe; @@ -1545,7 +1545,7 @@ CREATE SCHEMA myschema; - So to create a table in the new schema, use + So to create a table in the new schema, use: CREATE TABLE myschema.mytable ( ... @@ -1560,11 +1560,11 @@ CREATE TABLE myschema.mytable ( To drop a schema if it's empty (all objects in it have been - dropped), use + dropped), use: DROP SCHEMA myschema; - To drop a schema including all contained objects, use + To drop a schema including all contained objects, use: DROP SCHEMA myschema CASCADE; @@ -1606,7 +1606,7 @@ CREATE SCHEMA schemaname AUTHORIZATION u CREATE TABLE products ( ... ); - and + and: CREATE TABLE public.products ( ... ); @@ -1686,7 +1686,7 @@ SHOW search_path; - To put our new schema in the path, we use + To put our new schema in the path, we use: SET search_path TO myschema,public; @@ -1701,7 +1701,7 @@ DROP TABLE mytable; - We could also have written + We could also have written: SET search_path TO myschema; @@ -1724,7 +1724,7 @@ SET search_path TO myschema; OPERATOR(schema.operator) - This is needed to avoid syntactic ambiguity. An example is + This is needed to avoid syntactic ambiguity. An example is: SELECT 3 OPERATOR(pg_catalog.+) 4; @@ -1946,7 +1946,7 @@ CREATE TABLE capitals ( The latter behavior is the default. For example, the following query finds the names of all cities, including state capitals, that are located at an altitude over - 500ft: + 500 feet: SELECT name, altitude @@ -1968,7 +1968,7 @@ SELECT name, altitude On the other hand, the following query finds all the cities that - are not state capitals and are situated at an altitude over 500ft: + are not state capitals and are situated at an altitude over 500 feet: SELECT name, altitude @@ -2511,7 +2511,7 @@ CREATE INDEX measurement_y2006m01_logdate ON measurement_y2006m01 (logdate); If data will be added only to the latest partition, we can set up a very simple rule to insert data. We must redefine this each month so that it always points to the - current partition. + current partition: CREATE OR REPLACE RULE measurement_current_partition AS @@ -2525,7 +2525,7 @@ DO INSTEAD We might want to insert data and have the server automatically locate the partition into which the row should be added. We - could do this with a more complex set of rules as shown below. + could do this with a more complex set of rules as shown below: CREATE RULE measurement_insert_y2004m02 AS @@ -2632,7 +2632,7 @@ ALTER TABLE measurement_y2003m02 NO INHERIT measurement; Similarly we can add a new partition to handle new data. We can create an empty partition in the partitioned table just as the original partitions - were created above. + were created above: CREATE TABLE measurement_y2006m02 ( @@ -2643,7 +2643,7 @@ CREATE TABLE measurement_y2006m02 ( As an alternative, it is sometimes more convenient to create the new table outside the partition structure, and make it a proper partition later. This allows the data to be loaded, checked, and - transformed prior to it appearing in the partitioned table. + transformed prior to it appearing in the partitioned table: CREATE TABLE measurement_y2006m02 @@ -2795,7 +2795,7 @@ EXPLAIN SELECT count(*) FROM measurement WHERE logdate >= DATE '2006-01-01'; Don't forget that you still need to run ANALYZE - on each partition individually. A command like + on each partition individually. A command like: ANALYZE measurement; diff --git a/doc/src/sgml/dfunc.sgml b/doc/src/sgml/dfunc.sgml index 0f85aa8a45..d6e18591c5 100644 --- a/doc/src/sgml/dfunc.sgml +++ b/doc/src/sgml/dfunc.sgml @@ -1,4 +1,4 @@ - + Compiling and Linking Dynamically-Loaded Functions @@ -99,15 +99,15 @@ gcc -shared -o foo.so foo.o The compiler flag of the system compiler to create PIC is . When using GCC it's . The - linker flag for shared libraries is . So + linker flag for shared libraries is . So: cc +z -c foo.c - or + or: gcc -fpic -c foo.c - and then + and then: ld -b -o foo.sl foo.o @@ -233,7 +233,7 @@ gcc -G -o foo.so foo.o PIC is the default, so the compilation command is the usual one. ld with special options is - used to do the linking: + used to do the linking. cc -c foo.c ld -shared -expect_unresolved '*' -o foo.so foo.o diff --git a/doc/src/sgml/dml.sgml b/doc/src/sgml/dml.sgml index 6c5eae9dc3..8dce63c00d 100644 --- a/doc/src/sgml/dml.sgml +++ b/doc/src/sgml/dml.sgml @@ -1,4 +1,4 @@ - + Data Manipulation @@ -74,7 +74,7 @@ INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1); If you don't have values for all the columns, you can omit some of them. In that case, the columns will be filled with their default - values. For example, + values. For example: INSERT INTO products (product_no, name) VALUES (1, 'Cheese'); INSERT INTO products VALUES (1, 'Cheese'); @@ -237,14 +237,14 @@ UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0; You use the command to remove rows; the syntax is very similar to the UPDATE command. For instance, to remove all - rows from the products table that have a price of 10, use + rows from the products table that have a price of 10, use: DELETE FROM products WHERE price = 10; - If you simply write + If you simply write: DELETE FROM products; diff --git a/doc/src/sgml/docguide.sgml b/doc/src/sgml/docguide.sgml index 8667ad0801..5a3e0a4f97 100644 --- a/doc/src/sgml/docguide.sgml +++ b/doc/src/sgml/docguide.sgml @@ -1,4 +1,4 @@ - + Documentation @@ -558,7 +558,7 @@ checking for sgmlspl... sgmlspl To allow for easier handling in the final distribution, the files comprising the HTML documentation can be stored in a tar archive that is unpacked at installation time. To create the - HTML documentation package, use the commands + HTML documentation package, use the commands: cd doc/src gmake postgres.tar.gz @@ -578,7 +578,7 @@ gmake postgres.tar.gz refentry pages to *roff output suitable for man pages. The man pages are also distributed as a tar archive, similar to the HTML version. To create the man - page package, use the commands + page package, use the commands: cd doc/src gmake man.tar.gz diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 63fff1a4e2..757a4fff40 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -1,4 +1,4 @@ - + <application>ECPG</application> - Embedded <acronym>SQL</acronym> in C @@ -54,7 +54,7 @@ As already stated, programs written for the embedded SQL interface are normal C programs with special code inserted to perform database-related actions. This special - code always has the form + code always has the form: EXEC SQL ...; @@ -346,7 +346,7 @@ EXEC SQL COMMIT; The first option is to explicitly choose a connection for each SQL - statement, for example + statement, for example: EXEC SQL AT connection-name SELECT ...; @@ -428,16 +428,16 @@ EXEC SQL INSERT INTO sometable VALUES (:v1, 'foo', :v2); - This section starts with + This section starts with: EXEC SQL BEGIN DECLARE SECTION; - and ends with + and ends with: EXEC SQL END DECLARE SECTION; Between those lines, there must be normal C variable declarations, - such as + such as: int x = 4; char foo[16], bar[16]; @@ -483,7 +483,7 @@ EXEC SQL int i = 4; One of the most common uses of an array declaration is probably the - allocation of a char array as in + allocation of a char array as in: EXEC SQL BEGIN DECLARE SECTION; char str[50]; @@ -508,7 +508,7 @@ EXEC SQL BEGIN DECLARE SECTION; typedef long serial_t; EXEC SQL END DECLARE SECTION; - Note that you could also use + Note that you could also use: EXEC SQL TYPE serial_t IS long; @@ -549,11 +549,11 @@ EXEC SQL END DECLARE SECTION; The special type VARCHAR is converted into a named struct for every variable. A - declaration like + declaration like: VARCHAR var[180]; - is converted into + is converted into: struct varchar_var { int len; char arr[180]; } var; @@ -2381,7 +2381,7 @@ void PGTYPESdecimal_free(decimal *var); this mode is active, it tries to behave as if it were the Informix precompiler for Informix E/SQL. Generally spoken this will allow you to use the dollar sign instead of the EXEC SQL primitive to introduce - embedded SQL commands. + embedded SQL commands.: $int j = 3; $CONNECT TO :dbname; @@ -2426,7 +2426,7 @@ void PGTYPESdecimal_free(decimal *var); This statement closes the current connection. In fact, this is a - synonym for ecpg's DISCONNECT CURRENT. + synonym for ecpg's DISCONNECT CURRENT.: $CLOSE DATABASE; /* close the current connection */ EXEC SQL CLOSE DATABASE; @@ -3991,7 +3991,7 @@ EXEC SQL WHENEVER condition action Here is an example that you might want to use in a simple program. It prints a simple message when a warning occurs and aborts the - program when an error happens. + program when an error happens: EXEC SQL WHENEVER SQLWARNING SQLPRINT; EXEC SQL WHENEVER SQLERROR STOP; @@ -4007,7 +4007,7 @@ EXEC SQL WHENEVER SQLERROR STOP; EXEC SQL WHENEVER and the SQL statement causing the condition, regardless of the flow of control in the C program. So neither of the two following C program excerpts will have the - desired effect. + desired effect: /* * WRONG @@ -4493,7 +4493,7 @@ EXEC SQL INCLUDE filename; - Note that this is not the same as + Note that this is not the same as: #include <filename.h> @@ -4654,7 +4654,7 @@ EXEC SQL UPDATE Tbl SET col = MYNUMBER; Embedded SQL programs are typically named with an extension .pgc. If you have a program file called prog1.pgc, you can preprocess it by simply - calling + calling: ecpg prog1.pgc @@ -4938,7 +4938,7 @@ ECPG = ecpg Note that not all SQL commands are treated in this way. For - instance, an open cursor statement like + instance, an open cursor statement like: EXEC SQL OPEN cursor; diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index a2baeb2a10..b1c56e7948 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -1,4 +1,4 @@ - + Functions and Operators @@ -7194,7 +7194,7 @@ SELECT pg_sleep(1.5); in single quotes, so that it looks like a literal constant. To achieve some compatibility with the handling of ordinary SQL names, the string will be converted to lowercase - unless it contains double quotes around the sequence name. Thus + unless it contains double quotes around the sequence name. Thus: nextval('foo') operates on sequence foo nextval('FOO') operates on sequence foo @@ -9713,7 +9713,7 @@ SELECT relname FROM pg_class WHERE pg_table_is_visible(oid); All these functions require object OIDs to identify the object to be checked. If you want to test an object by name, it is convenient to use the OID alias types (regclass, regtype, - regprocedure, or regoperator), for example + regprocedure, or regoperator), for example: SELECT pg_type_is_visible('myschema.widget'::regtype); diff --git a/doc/src/sgml/indices.sgml b/doc/src/sgml/indices.sgml index 95b4134b17..110cd79b9a 100644 --- a/doc/src/sgml/indices.sgml +++ b/doc/src/sgml/indices.sgml @@ -1,4 +1,4 @@ - + Indexes @@ -27,7 +27,7 @@ CREATE TABLE test1 ( content varchar ); - and the application requires a lot of queries of the form + and the application requires a lot of queries of the form: SELECT content FROM test1 WHERE id = constant; @@ -292,13 +292,13 @@ CREATE TABLE test2 ( ); (say, you keep your /dev - directory in a database...) and you frequently make queries like + directory in a database...) and you frequently make queries like: SELECT name FROM test2 WHERE major = constant AND minor = constant; then it might be appropriate to define an index on the columns major and - minor together, e.g., + minor together, e.g.: CREATE INDEX test2_mm_idx ON test2 (major, minor); @@ -666,12 +666,12 @@ CREATE INDEX orders_unbilled_index ON orders (order_nr) - A possible query to use this index would be + A possible query to use this index would be: SELECT * FROM orders WHERE billed is not true AND order_nr < 10000; However, the index can also be used in queries that do not involve - order_nr at all, e.g., + order_nr at all, e.g.: SELECT * FROM orders WHERE billed is not true AND amount > 5000.00; diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml index 9fcdbdf18e..67ce7098c9 100644 --- a/doc/src/sgml/information_schema.sgml +++ b/doc/src/sgml/information_schema.sgml @@ -1,4 +1,4 @@ - + The Information Schema @@ -1871,7 +1871,7 @@ data_type. To obtain information on the element type of the array, you can join the respective view with this view. For example, to show the columns of a table with data types and - array element types, if applicable, you could do + array element types, if applicable, you could do: SELECT c.column_name, c.data_type, e.data_type AS element_type FROM information_schema.columns c LEFT JOIN information_schema.element_types e diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index a728bbac5a..5eed0f8ebd 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -1,4 +1,4 @@ - + <![%standalone-include[<productname>PostgreSQL</>]]> @@ -1446,12 +1446,12 @@ All of PostgreSQL is successfully made. Ready to install. The method to set the shared library search path varies between platforms, but the most widely usable method is to set the environment variable <envar>LD_LIBRARY_PATH</> like so: In Bourne - shells (<command>sh</>, <command>ksh</>, <command>bash</>, <command>zsh</>) + shells (<command>sh</>, <command>ksh</>, <command>bash</>, <command>zsh</>): <programlisting> LD_LIBRARY_PATH=/usr/local/pgsql/lib export LD_LIBRARY_PATH </programlisting> - or in <command>csh</> or <command>tcsh</> + or in <command>csh</> or <command>tcsh</>: <programlisting> setenv LD_LIBRARY_PATH /usr/local/pgsql/lib </programlisting> @@ -1494,7 +1494,7 @@ libpq.so.2.1: cannot open shared object file: No such file or directory </indexterm> If you are on <systemitem class="osname">BSD/OS</>, <systemitem class="osname">Linux</>, or <systemitem class="osname">SunOS 4</> - and you have root access you can run + and you have root access you can run: <programlisting> /sbin/ldconfig /usr/local/pgsql/lib </programlisting> @@ -1503,7 +1503,7 @@ libpq.so.2.1: cannot open shared object file: No such file or directory manual page of <command>ldconfig</> for more information. On <systemitem class="osname">FreeBSD</>, <systemitem class="osname">NetBSD</>, and <systemitem - class="osname">OpenBSD</> the command is + class="osname">OpenBSD</> the command is: <programlisting> /sbin/ldconfig -m /usr/local/pgsql/lib </programlisting> @@ -1550,7 +1550,7 @@ set path = ( /usr/local/pgsql/bin $path ) To enable your system to find the <application>man</> documentation, you need to add lines like the following to a shell start-up file unless you installed into a location that is - searched by default. + searched by default: <programlisting> MANPATH=/usr/local/pgsql/man:$MANPATH export MANPATH @@ -1623,12 +1623,12 @@ postgres$ <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</> <para> The previous step should have told you how to start up the database server. Do so now. The command should look something - like + like: <programlisting> /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data </programlisting> This will start the server in the foreground. To put the server - in the background use something like + in the background use something like: <programlisting> nohup /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data \ </dev/null >>server.log 2>&1 </dev/null & diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index 79ea530381..4b8af8bc16 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.223 2007/01/31 20:56:17 momjian Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.224 2007/02/01 00:28:17 momjian Exp $ --> <chapter id="libpq"> <title><application>libpq</application> - C Library @@ -1267,7 +1267,7 @@ not to hard-wire particular OID values into your program. However, you can avoid doing so even in cases where the server by itself cannot determine the type of the parameter, or chooses a different type than you want. In the SQL command text, attach an explicit cast to the parameter symbol to show what -data type you will send. For example, +data type you will send. For example: select * from mytable where x = $1::bigint; @@ -1920,7 +1920,7 @@ int PQfnumber(const PGresult *res, The given name is treated like an identifier in an SQL command, that is, it is downcased unless double-quoted. For example, - given a query result generated from the SQL command + given a query result generated from the SQL command: select 1 as FOO, 2 as "BAR"; @@ -3982,7 +3982,7 @@ a void pointer that is the same one passed to -The default notice processor is simply +The default notice processor is simply: static void defaultNoticeProcessor(void *arg, const char *message) diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml index 1da03fcbf1..498f87c6a6 100644 --- a/doc/src/sgml/maintenance.sgml +++ b/doc/src/sgml/maintenance.sgml @@ -1,4 +1,4 @@ - + Routine Database Maintenance Tasks @@ -408,7 +408,7 @@ appearing in that database — it is just the minimum of the per-table relfrozenxid values within the database. A convenient way to - examine this information is to execute queries such as + examine this information is to execute queries such as: SELECT relname, age(relfrozenxid) FROM pg_class WHERE relkind = 'r'; @@ -511,7 +511,7 @@ vacuum threshold = vacuum base threshold + vacuum scale factor * number of tuple collector; it is a semi-accurate count updated by each UPDATE and DELETE operation. (It is only semi-accurate because some information might be lost under heavy - load.) For analyze, a similar condition is used: the threshold, defined as + load.) For analyze, a similar condition is used: the threshold, defined as: analyze threshold = analyze base threshold + analyze scale factor * number of tuples diff --git a/doc/src/sgml/manage-ag.sgml b/doc/src/sgml/manage-ag.sgml index 984598211a..5e0fed8637 100644 --- a/doc/src/sgml/manage-ag.sgml +++ b/doc/src/sgml/manage-ag.sgml @@ -1,4 +1,4 @@ - + Managing Databases @@ -162,7 +162,7 @@ createdb dbname CREATE DATABASE dbname OWNER rolename; - from the SQL environment, or + from the SQL environment, or: createdb -O rolename dbname @@ -208,11 +208,11 @@ createdb -O rolename dbname - To create a database by copying template0, use + To create a database by copying template0, use: CREATE DATABASE dbname TEMPLATE template0; - from the SQL environment, or + from the SQL environment, or: createdb -T template0 dbname @@ -286,7 +286,7 @@ createdb -T template0 dbname ordinarily have to either disable it for all databases or make sure that every connecting client is careful to issue SET geqo TO off;. To make this setting the default within a particular - database, you can execute the command + database, you can execute the command: ALTER DATABASE mydb SET geqo TO off; @@ -373,7 +373,7 @@ dropdb dbname To define a tablespace, use the - command, for example:CREATE TABLESPACE + command, for example:CREATE TABLESPACE: CREATE TABLESPACE fastspace LOCATION '/mnt/sda1/postgresql/data'; diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index fe6c94c077..54adf3990b 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -1,4 +1,4 @@ - + Monitoring Database Activity @@ -934,7 +934,7 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, The example below shows a DTrace script for analyzing transaction counts on the system, as an alternative to snapshotting - pg_stat_database before and after a performance test. + pg_stat_database before and after a performance test: #!/usr/sbin/dtrace -qs @@ -992,7 +992,7 @@ Total time (ns) 2312105013 trace macros. These are chosen according to how many variables will be made available for inspection at that trace point. Tracing the occurrence of an event can be achieved with a single line, using - just the trace point name, e.g. + just the trace point name, e.g.: PG_TRACE (my__new__trace__point); diff --git a/doc/src/sgml/nls.sgml b/doc/src/sgml/nls.sgml index b2161eb987..5381de7d78 100644 --- a/doc/src/sgml/nls.sgml +++ b/doc/src/sgml/nls.sgml @@ -1,4 +1,4 @@ - + @@ -170,7 +170,7 @@ msgstr "another translated" If you need to start a new translation effort, then first run the - command + command: gmake init-po @@ -193,7 +193,7 @@ AVAIL_LANGUAGES := de fr As the underlying program or library changes, messages might be changed or added by the programmers. In this case you do not need - to start from scratch. Instead, run the command + to start from scratch. Instead, run the command: gmake update-po @@ -340,11 +340,11 @@ textdomain("progname"); Wherever a message that is a candidate for translation is found, - a call to gettext() needs to be inserted. E.g., + a call to gettext() needs to be inserted. E.g.: fprintf(stderr, "panic level %d\n", lvl); - would be changed to + would be changed to: fprintf(stderr, gettext("panic level %d\n"), lvl); @@ -353,7 +353,7 @@ fprintf(stderr, gettext("panic level %d\n"), lvl); - This tends to add a lot of clutter. One common shortcut is to use + This tends to add a lot of clutter. One common shortcut is to use: #define _(x) gettext(x) @@ -447,7 +447,7 @@ fprintf(stderr, gettext("panic level %d\n"), lvl); - Do not construct sentences at run-time, like + Do not construct sentences at run-time, like: printf("Files were %s.\n", flag ? "copied" : "removed"); @@ -468,7 +468,7 @@ printf("Files were %s.\n", flag ? "copied" : "removed"); printf("copied %d file%s", n, n!=1 ? "s" : ""); because it assumes how the plural is formed. If you figured you - could solve it like this + could solve it like this: if (n==1) printf("copied 1 file"); @@ -490,7 +490,7 @@ printf("number of copied files: %d", n); If you want to communicate something to the translator, such as about how a message is intended to line up with other output, precede the occurrence of the string with a comment that starts - with translator, e.g., + with translator, e.g.: /* translator: This message is not what it seems to be. */ diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml index 37db91ccbc..3c254abb64 100644 --- a/doc/src/sgml/perform.sgml +++ b/doc/src/sgml/perform.sgml @@ -1,4 +1,4 @@ - + Performance Tips @@ -157,7 +157,7 @@ EXPLAIN SELECT * FROM tenk1; - This is about as straightforward as it gets. If you do + This is about as straightforward as it gets. If you do: SELECT relpages, reltuples FROM pg_class WHERE relname = 'tenk1'; @@ -588,7 +588,7 @@ SELECT attname, n_distinct, most_common_vals FROM pg_stats WHERE tablename = 'ro - In a simple join query, such as + In a simple join query, such as: SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id; @@ -628,7 +628,7 @@ SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id; When the query involves outer joins, the planner has less freedom - than it does for plain (inner) joins. For example, consider + than it does for plain (inner) joins. For example, consider: SELECT * FROM a LEFT JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id); @@ -639,7 +639,7 @@ SELECT * FROM a LEFT JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id); B to C and then join A to that result. Accordingly, this query takes less time to plan than the previous query. In other cases, the planner might be able to determine that more than one join order is safe. - For example, given + For example, given: SELECT * FROM a LEFT JOIN b ON (a.bid = b.id) LEFT JOIN c ON (a.cid = c.id); @@ -683,7 +683,7 @@ SELECT * FROM a JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id); You do not need to constrain the join order completely in order to cut search time, because it's OK to use JOIN operators - within items of a plain FROM list. For example, consider + within items of a plain FROM list. For example, consider: SELECT * FROM a CROSS JOIN b, c, d, e WHERE ...; @@ -704,7 +704,7 @@ SELECT * FROM a CROSS JOIN b, c, d, e WHERE ...; A closely related issue that affects planning time is collapsing of - subqueries into their parent query. For example, consider + subqueries into their parent query. For example, consider: SELECT * FROM x, y, @@ -714,7 +714,7 @@ WHERE somethingelse; This situation might arise from use of a view that contains a join; the view's SELECT rule will be inserted in place of the view reference, yielding a query much like the above. Normally, the planner - will try to collapse the subquery into the parent, yielding + will try to collapse the subquery into the parent, yielding: SELECT * FROM x, y, a, b, c WHERE something AND somethingelse; diff --git a/doc/src/sgml/plperl.sgml b/doc/src/sgml/plperl.sgml index 9dddf6598a..26933dbf67 100644 --- a/doc/src/sgml/plperl.sgml +++ b/doc/src/sgml/plperl.sgml @@ -1,4 +1,4 @@ - + PL/Perl - Perl Procedural Language @@ -175,7 +175,7 @@ SELECT name, empcomp(employee.*) FROM employee; A PL/Perl function can return a composite-type result using the same approach: return a reference to a hash that has the required attributes. - For example, + For example: CREATE TYPE testrowperl AS (f1 integer, f2 text, f3 text); @@ -259,13 +259,13 @@ SELECT * FROM perl_set(); - Another way to use the strict pragma is to put + Another way to use the strict pragma is to put: use strict; in the function body. But this only works in PL/PerlU functions, since use is not a trusted operation. In - PL/Perl functions you can instead do + PL/Perl functions you can instead do: BEGIN { strict->import(); } diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index d5a015ef03..55904d6638 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -1,4 +1,4 @@ - + <application>PL/pgSQL</application> - <acronym>SQL</acronym> Procedural Language @@ -264,7 +264,7 @@ $$ LANGUAGE plpgsql; While running psql, you can load or reload such - a function definition file with + a function definition file with: \i filename.sql @@ -299,7 +299,7 @@ $$ LANGUAGE plpgsql; approach, you never double any quote marks, but instead take care to choose a different dollar-quoting delimiter for each level of nesting you need. For example, you might write the CREATE - FUNCTION command as + FUNCTION command as: CREATE OR REPLACE FUNCTION testfunc(integer) RETURNS integer AS $PROC$ .... @@ -343,7 +343,7 @@ CREATE FUNCTION foo() RETURNS integer AS ' a_output := ''Blah''; SELECT * FROM users WHERE f_name=''foobar''; - In the dollar-quoting approach, you'd just write + In the dollar-quoting approach, you'd just write: a_output := 'Blah'; SELECT * FROM users WHERE f_name='foobar'; @@ -367,7 +367,7 @@ a_output := a_output || '' AND name LIKE ''''foobar'''' AND xyz'' AND name LIKE 'foobar' AND xyz. - In the dollar-quoting approach, you'd write + In the dollar-quoting approach, you'd write: a_output := a_output || $$ AND name LIKE 'foobar' AND xyz$$ @@ -390,7 +390,7 @@ a_output := a_output || '' AND name LIKE ''''foobar'''''' AND name LIKE 'foobar'. - In the dollar-quoting approach, this becomes + In the dollar-quoting approach, this becomes: a_output := a_output || $$ AND name LIKE 'foobar'$$ @@ -421,7 +421,7 @@ if v_... like ''...'' then return ''...''; end if; - In the dollar-quoting approach, this becomes + In the dollar-quoting approach, this becomes: a_output := a_output || $$ if v_$$ || referrer_keys.kind || $$ like '$$ || referrer_keys.key_string || $$' @@ -625,7 +625,7 @@ $$ LANGUAGE plpgsql; name ALIAS FOR $n; - The same example in this style looks like + The same example in this style looks like: CREATE FUNCTION sales_tax(real) RETURNS real AS $$ DECLARE @@ -943,7 +943,7 @@ CREATE FUNCTION logfunc1(logtxt text) RETURNS timestamp AS $$ $$ LANGUAGE plpgsql; - and + and: CREATE FUNCTION logfunc2(logtxt text) RETURNS timestamp AS $$ @@ -1069,7 +1069,7 @@ tax := subtotal * 0.06; This two-step process allows PL/pgSQL to plan the query just once and re-use the plan on subsequent executions. As an example, - if you write + if you write: DECLARE key TEXT; @@ -1078,7 +1078,7 @@ BEGIN ... UPDATE mytab SET val = val + delta WHERE id = key; - the query text seen by the main SQL engine will look like + the query text seen by the main SQL engine will look like: UPDATE mytab SET val = val + $1 WHERE id = $2; @@ -1430,7 +1430,7 @@ EXECUTE 'UPDATE tbl SET ' Note that dollar quoting is only useful for quoting fixed text. - It would be a very bad idea to try to do the above example as + It would be a very bad idea to try to do the above example as: EXECUTE 'UPDATE tbl SET ' || quote_ident(colname) @@ -2296,7 +2296,7 @@ END; This example uses exception handling to perform either - UPDATE or INSERT, as appropriate. + UPDATE or INSERT, as appropriate: CREATE TABLE db (a INT PRIMARY KEY, b TEXT); @@ -3718,7 +3718,7 @@ $$ LANGUAGE plpgsql; In PL/pgSQL, when an exception is caught by an EXCEPTION clause, all database changes since the block's BEGIN are automatically rolled back. That is, the behavior - is equivalent to what you'd get in Oracle with + is equivalent to what you'd get in Oracle with: BEGIN diff --git a/doc/src/sgml/plpython.sgml b/doc/src/sgml/plpython.sgml index 8bc2f93b8f..718bb7e4fd 100644 --- a/doc/src/sgml/plpython.sgml +++ b/doc/src/sgml/plpython.sgml @@ -1,4 +1,4 @@ - + PL/Python - Python Procedural Language @@ -83,7 +83,7 @@ $$ LANGUAGE plpythonu; The Python code that is given as the body of the function definition - is transformed into a Python function. For example, the above results in + is transformed into a Python function. For example, the above results in: def __plpython_procedure_pymax_23456(): @@ -459,13 +459,13 @@ $$ LANGUAGE plpythonu; - For example, + For example: rv = plpy.execute("SELECT * FROM my_table", 5) returns up to 5 rows from my_table. If my_table has a column - my_column, it would be accessed as + my_column, it would be accessed as: foo = rv[i]["my_column"] diff --git a/doc/src/sgml/pltcl.sgml b/doc/src/sgml/pltcl.sgml index 9aa3f2d630..41a93fbd95 100644 --- a/doc/src/sgml/pltcl.sgml +++ b/doc/src/sgml/pltcl.sgml @@ -1,4 +1,4 @@ - + PL/Tcl - Tcl Procedural Language @@ -281,8 +281,7 @@ $$ LANGUAGE pltcl; Tcl variables; remaining rows, if any, are ignored. No storing occurs if the query returns no rows. (This case can be detected by checking the - result of spi_exec.) For example, - + result of spi_exec.) For example: spi_exec "SELECT count(*) AS cnt FROM pg_proc" @@ -295,7 +294,7 @@ spi_exec "SELECT count(*) AS cnt FROM pg_proc" a piece of Tcl script that is executed once for each row in the query result. (loop-body is ignored if the given command is not a SELECT.) The values of the current row's columns - are stored into Tcl variables before each iteration. For example, + are stored into Tcl variables before each iteration. For example: spi_exec -array C "SELECT * FROM pg_class" { @@ -421,7 +420,7 @@ $$ LANGUAGE pltcl; that are to be inserted into SQL commands given to spi_exec or spi_prepare. - For example, think about an SQL command string like + For example, think about an SQL command string like: "SELECT '$val' AS ret" @@ -429,7 +428,7 @@ $$ LANGUAGE pltcl; where the Tcl variable val actually contains doesn't. This would result - in the final command string + in the final command string: SELECT 'doesn't' AS ret @@ -438,13 +437,13 @@ SELECT 'doesn't' AS ret which would cause a parse error during spi_exec or spi_prepare. - To work properly, the submitted command should contain + To work properly, the submitted command should contain: SELECT 'doesn''t' AS ret - which can be formed in PL/Tcl using + which can be formed in PL/Tcl using: "SELECT '[ quote $val ]' AS ret" diff --git a/doc/src/sgml/queries.sgml b/doc/src/sgml/queries.sgml index 13288a627a..28e801698c 100644 --- a/doc/src/sgml/queries.sgml +++ b/doc/src/sgml/queries.sgml @@ -1,4 +1,4 @@ - + Queries @@ -35,7 +35,7 @@ SELECT select_list FROM table_expression - A simple kind of query has the form + A simple kind of query has the form: SELECT * FROM table1; @@ -357,7 +357,7 @@ FROM table_reference , table_r - To put this together, assume we have tables t1 + To put this together, assume we have tables t1: num | name -----+------ @@ -365,7 +365,7 @@ FROM table_reference , table_r 2 | b 3 | c - and t2 + and t2: num | value -----+------- @@ -507,7 +507,7 @@ SELECT * FROM some_very_long_table_name s JOIN another_fairly_long_name a ON s.i The alias becomes the new name of the table reference for the current query — it is no longer possible to refer to the table - by the original name. Thus + by the original name. Thus: SELECT * FROM my_table AS m WHERE my_table.a > 5; @@ -517,7 +517,7 @@ SELECT * FROM my_table AS m WHERE my_table.a > 5; off (as it is by default). If it is on, an implicit table reference will be added to the FROM clause, so the query is processed as if - it were written as + it were written as: SELECT * FROM my_table AS m, my_table AS my_table WHERE my_table.a > 5; @@ -526,7 +526,7 @@ SELECT * FROM my_table AS m, my_table AS my_table WHERE my_table.a > 5; Table aliases are mainly for notational convenience, but it is - necessary to use them when joining a table to itself, e.g., + necessary to use them when joining a table to itself, e.g.: SELECT * FROM people AS mother JOIN people AS child ON mother.id = child.mother_id; @@ -559,11 +559,11 @@ FROM table_reference AS When an alias is applied to the output of a JOIN clause, using any of these forms, the alias hides the original - names within the JOIN. For example, + names within the JOIN. For example: SELECT a.* FROM my_table AS a JOIN your_table AS b ON ... - is valid SQL, but + is valid SQL, but: SELECT a.* FROM (my_table AS a JOIN your_table AS b ON ...) AS c @@ -724,11 +724,11 @@ WHERE search_condition FROM a, b WHERE a.id = b.id AND b.val > 5 - and + and: FROM a INNER JOIN b ON (a.id = b.id) WHERE b.val > 5 - or perhaps even + or perhaps even: FROM a NATURAL JOIN b WHERE b.val > 5 @@ -867,7 +867,7 @@ SELECT select_list Here is another example: it calculates the total sales for each - product (rather than the total sales on all products). + product (rather than the total sales on all products): SELECT product_id, p.name, (sum(s.units) * p.price) AS sales FROM products p LEFT JOIN sales s USING (product_id) @@ -997,7 +997,7 @@ SELECT a, b, c FROM ... If more than one table has a column of the same name, the table - name must also be given, as in + name must also be given, as in: SELECT tbl1.a, tbl2.a, tbl1.b FROM ... @@ -1228,7 +1228,7 @@ SELECT select_list , sort_expression2 ASC | DESC NULLS { FIRST | LAST } ... The sort expression(s) can be any expression that would be valid in the - query's select list. An example is + query's select list. An example is: SELECT a, b FROM table1 ORDER BY a + b, c; @@ -1272,7 +1272,7 @@ SELECT a, b FROM table1 ORDER BY a + b, c; For backwards compatibility with the SQL92 version of the standard, a sort_expression can instead be the name or number - of an output column, as in + of an output column, as in: SELECT a + b AS sum, c FROM table1 ORDER BY sum; SELECT a, max(b) FROM table1 GROUP BY a ORDER BY 1; @@ -1392,15 +1392,13 @@ VALUES ( expression [, ...] ) [, .. - As an example, - + As an example: VALUES (1, 'one'), (2, 'two'), (3, 'three'); will return a table of two columns and three rows. It's effectively - equivalent to - + equivalent to: SELECT 1 AS column1, 'one' AS column2 UNION ALL diff --git a/doc/src/sgml/query.sgml b/doc/src/sgml/query.sgml index 0bd51c92d9..442f9ad006 100644 --- a/doc/src/sgml/query.sgml +++ b/doc/src/sgml/query.sgml @@ -1,4 +1,4 @@ - + The <acronym>SQL</acronym> Language @@ -383,7 +383,7 @@ SELECT * FROM weather In this example, the sort order isn't fully specified, and so you might get the San Francisco rows in either order. But you'd always - get the results shown above if you do + get the results shown above if you do: SELECT * FROM weather @@ -663,7 +663,7 @@ SELECT * As an example, we can find the highest low-temperature reading anywhere - with + with: SELECT max(temp_lo) FROM weather; @@ -681,7 +681,7 @@ SELECT max(temp_lo) FROM weather; subquery If we wanted to know what city (or cities) that reading occurred in, - we might try + we might try: SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG @@ -720,7 +720,7 @@ SELECT city FROM weather Aggregates are also very useful in combination with GROUP BY clauses. For example, we can get the maximum low - temperature observed in each city with + temperature observed in each city with: SELECT city, max(temp_lo) @@ -758,7 +758,7 @@ SELECT city, max(temp_lo) which gives us the same results for only the cities that have all temp_lo values below 40. Finally, if we only care about cities whose - names begin with S, we might do + names begin with S, we might do: SELECT city, max(temp_lo) diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 72f78a4074..6ff289b21a 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -1,5 +1,5 @@ @@ -636,7 +636,7 @@ where action is one of: The fact that ALTER TYPE requires rewriting the whole table is sometimes an advantage, because the rewriting process eliminates any dead space in the table. For example, to reclaim the space occupied - by a dropped column immediately, the fastest way is + by a dropped column immediately, the fastest way is: ALTER TABLE table ALTER COLUMN anycol TYPE anytype; diff --git a/doc/src/sgml/ref/cluster.sgml b/doc/src/sgml/ref/cluster.sgml index 29bb4d8ba0..b93d264ae1 100644 --- a/doc/src/sgml/ref/cluster.sgml +++ b/doc/src/sgml/ref/cluster.sgml @@ -1,5 +1,5 @@ @@ -144,7 +144,7 @@ CLUSTER entries are on random pages, so there is one disk page retrieved for every row moved. (PostgreSQL has a cache, but the majority of a big table will not fit in the cache.) - The other way to cluster a table is to use + The other way to cluster a table is to use: CREATE TABLE newtable AS diff --git a/doc/src/sgml/ref/create_aggregate.sgml b/doc/src/sgml/ref/create_aggregate.sgml index 6024a16858..83094361f6 100644 --- a/doc/src/sgml/ref/create_aggregate.sgml +++ b/doc/src/sgml/ref/create_aggregate.sgml @@ -1,5 +1,5 @@ @@ -145,11 +145,11 @@ CREATE AGGREGATE name ( input row. If this aggregate can be so optimized, indicate it by specifying a sort operator. The basic requirement is that the aggregate must yield the first element in the sort ordering induced by - the operator; in other words + the operator; in other words: SELECT agg(col) FROM tab; - must be equivalent to + must be equivalent to: SELECT col FROM tab ORDER BY col USING sortop LIMIT 1; diff --git a/doc/src/sgml/ref/create_cast.sgml b/doc/src/sgml/ref/create_cast.sgml index 3e1c9f22a9..c6e944e26a 100644 --- a/doc/src/sgml/ref/create_cast.sgml +++ b/doc/src/sgml/ref/create_cast.sgml @@ -1,4 +1,4 @@ - + @@ -33,7 +33,7 @@ CREATE CAST (sourcetype AS targettype CREATE CAST defines a new cast. A cast specifies how to perform a conversion between - two data types. For example, + two data types. For example: SELECT CAST(42 AS text); @@ -64,7 +64,7 @@ SELECT CAST(42 AS text); If the cast is marked AS ASSIGNMENT then it can be invoked implicitly when assigning a value to a column of the target data type. For example, supposing that foo.f1 is a column of - type text, then + type text, then: INSERT INTO foo (f1) VALUES (42); @@ -85,7 +85,7 @@ SELECT 'The time is ' || now(); will be allowed only if the cast from type timestamp to text is marked AS IMPLICIT. Otherwise it - will be necessary to write the cast explicitly, for example + will be necessary to write the cast explicitly, for example: SELECT 'The time is ' || CAST(now() AS text); diff --git a/doc/src/sgml/ref/create_domain.sgml b/doc/src/sgml/ref/create_domain.sgml index 7cd698f83d..b369e91b19 100644 --- a/doc/src/sgml/ref/create_domain.sgml +++ b/doc/src/sgml/ref/create_domain.sgml @@ -1,5 +1,5 @@ @@ -166,7 +166,7 @@ where constraint is: This example creates the us_postal_code data type and then uses the type in a table definition. A regular expression test - is used to verify that the value looks like a valid US postal code. + is used to verify that the value looks like a valid US postal code: CREATE DOMAIN us_postal_code AS TEXT diff --git a/doc/src/sgml/ref/create_operator.sgml b/doc/src/sgml/ref/create_operator.sgml index 0b53540b0d..0b8e9fbe4d 100644 --- a/doc/src/sgml/ref/create_operator.sgml +++ b/doc/src/sgml/ref/create_operator.sgml @@ -1,5 +1,5 @@ @@ -205,7 +205,7 @@ CREATE OPERATOR name ( To give a schema-qualified operator name in com_op or the other optional - arguments, use the OPERATOR() syntax, for example + arguments, use the OPERATOR() syntax, for example: COMMUTATOR = OPERATOR(myschema.===) , diff --git a/doc/src/sgml/ref/create_rule.sgml b/doc/src/sgml/ref/create_rule.sgml index 446dad1856..31bc6d9646 100644 --- a/doc/src/sgml/ref/create_rule.sgml +++ b/doc/src/sgml/ref/create_rule.sgml @@ -1,5 +1,5 @@ @@ -248,7 +248,7 @@ SELECT * FROM t1; command, the NOTIFY command will be executed unconditionally, that is, the NOTIFY will be issued even if there are not any rows that the rule should apply - to. For example, in + to. For example, in: CREATE RULE notify_me AS ON UPDATE TO mytable DO ALSO NOTIFY mytable; diff --git a/doc/src/sgml/ref/create_sequence.sgml b/doc/src/sgml/ref/create_sequence.sgml index bd3c4ac869..61bee148bf 100644 --- a/doc/src/sgml/ref/create_sequence.sgml +++ b/doc/src/sgml/ref/create_sequence.sgml @@ -1,5 +1,5 @@ @@ -57,7 +57,7 @@ CREATE [ TEMPORARY | TEMP ] SEQUENCE name - Although you cannot update a sequence directly, you can use a query like + Although you cannot update a sequence directly, you can use a query like: SELECT * FROM name; diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index ef1b1466c4..718ed1cf53 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -1,5 +1,5 @@ @@ -792,7 +792,7 @@ CREATE TABLE array_int ( Define a unique table constraint for the table films. Unique table constraints can be defined - on one or more columns of the table. + on one or more columns of the table: CREATE TABLE films ( diff --git a/doc/src/sgml/ref/create_type.sgml b/doc/src/sgml/ref/create_type.sgml index 7736b87362..29f3541707 100644 --- a/doc/src/sgml/ref/create_type.sgml +++ b/doc/src/sgml/ref/create_type.sgml @@ -1,5 +1,5 @@ @@ -591,7 +591,7 @@ CREATE TABLE myboxes ( If the internal structure of box were an array of four - float4 elements, we might instead use + float4 elements, we might instead use: CREATE TYPE box ( INTERNALLENGTH = 16, diff --git a/doc/src/sgml/ref/create_view.sgml b/doc/src/sgml/ref/create_view.sgml index dc160818c3..f1466c8678 100644 --- a/doc/src/sgml/ref/create_view.sgml +++ b/doc/src/sgml/ref/create_view.sgml @@ -1,5 +1,5 @@ @@ -126,13 +126,13 @@ CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW n Be careful that the names and types of the view's columns will be - assigned the way you want. For example, + assigned the way you want. For example: CREATE VIEW vista AS SELECT 'Hello World'; is bad form in two ways: the column name defaults to ?column?, and the column data type defaults to unknown. If you want a - string literal in a view's result, use something like + string literal in a view's result, use something like: CREATE VIEW vista AS SELECT text 'Hello World' AS hello; diff --git a/doc/src/sgml/ref/delete.sgml b/doc/src/sgml/ref/delete.sgml index 17e1e8b9c7..f57c56ecf7 100644 --- a/doc/src/sgml/ref/delete.sgml +++ b/doc/src/sgml/ref/delete.sgml @@ -1,5 +1,5 @@ @@ -197,7 +197,7 @@ DELETE count PostgreSQL lets you reference columns of other tables in the WHERE condition by specifying the other tables in the USING clause. For example, - to delete all films produced by a given producer, one can do + to delete all films produced by a given producer, one can do: DELETE FROM films USING producers WHERE producer_id = producers.id AND producers.name = 'foo'; @@ -205,7 +205,7 @@ DELETE FROM films USING producers What is essentially happening here is a join between films and producers, with all successfully joined films rows being marked for deletion. - This syntax is not standard. A more standard way to do it is + This syntax is not standard. A more standard way to do it is: DELETE FROM films WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo'); diff --git a/doc/src/sgml/ref/fetch.sgml b/doc/src/sgml/ref/fetch.sgml index 54d2db40ef..c5975c73e0 100644 --- a/doc/src/sgml/ref/fetch.sgml +++ b/doc/src/sgml/ref/fetch.sgml @@ -1,5 +1,5 @@ @@ -343,7 +343,7 @@ FETCH count Examples - The following example traverses a table using a cursor. + The following example traverses a table using a cursor: BEGIN WORK; diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml index 6bb20402fc..080df2b044 100644 --- a/doc/src/sgml/ref/grant.sgml +++ b/doc/src/sgml/ref/grant.sgml @@ -1,5 +1,5 @@ @@ -436,7 +436,7 @@ GRANT role [, ...] TO The above example display would be seen by user miriam after - creating table mytable and doing + creating table mytable and doing: GRANT SELECT ON mytable TO PUBLIC; diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml index 921069576f..a5b2bbadb7 100644 --- a/doc/src/sgml/ref/pg_restore.sgml +++ b/doc/src/sgml/ref/pg_restore.sgml @@ -1,4 +1,4 @@ - + @@ -623,7 +623,7 @@ CREATE DATABASE foo WITH TEMPLATE template0; $ pg_restore -l db.dump > db.list - The listing file consists of a header and one line for each item, e.g., + The listing file consists of a header and one line for each item, e.g.: ; ; Archive created at Fri Jul 28 22:28:36 2000 @@ -654,7 +654,7 @@ CREATE DATABASE foo WITH TEMPLATE template0; - Lines in the file can be commented out, deleted, and reordered. For example, + Lines in the file can be commented out, deleted, and reordered. For example: 10; 145433 TABLE map_resolutions postgres ;2; 145344 TABLE species postgres diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 5f1057c2ce..c670c947c7 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ @@ -563,7 +563,7 @@ PostgreSQL documentation An alternative way to specify connection parameters is in a conninfo string, which is used instead of a database name. This mechanism give you very wide control over the - connection. For example, + connection. For example: $ psql "service=myservice sslmode=require" @@ -585,7 +585,7 @@ $ psql "service=myservice sslmode=require" In normal operation, psql provides a prompt with the name of the database to which psql is currently connected, followed by - the string =>. For example, + the string =>. For example: $ psql testdb Welcome to psql &version;, the PostgreSQL interactive terminal. @@ -2134,7 +2134,7 @@ bar The file name that will be used to store the history list. The default - value is ~/.psql_history. For example, putting + value is ~/.psql_history. For example, putting: \set HISTFILE ~/.psql_history- :DBNAME @@ -2344,7 +2344,7 @@ bar variables is that you can substitute (interpolate) them into regular SQL statements. The syntax for this is again to prepend the variable name with a colon - (:). + (:): testdb=> \set foo 'my_table' testdb=> SELECT * FROM :foo; @@ -2361,7 +2361,7 @@ testdb=> SELECT * FROM :foo; inserted OID in subsequent statements to build a foreign key scenario. Another possible use of this mechanism is to copy the contents of a file into a table column. First load the file into a - variable and then proceed as above. + variable and then proceed as above: testdb=> \set content '''' `cat my_file.txt` '''' testdb=> INSERT INTO my_table VALUES (:content); @@ -2566,7 +2566,7 @@ testdb=> \set content '''' `sed -e "s/'/''/g" -e 's/\\/\\\\/g' < non-printing control characters must be designated as invisible by surrounding them with %[ and %]. Multiple pairs of these can occur within - the prompt. For example, + the prompt. For example: testdb=> \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# ' @@ -2759,7 +2759,7 @@ $endif compatibility this is still supported to some extent, but we are not going to explain the details here as this use is discouraged. If you get strange messages, keep this in mind. - For example + For example: testdb=> \foo Field separator is "oo". diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml index ca101571d0..4f45fe5447 100644 --- a/doc/src/sgml/ref/select.sgml +++ b/doc/src/sgml/ref/select.sgml @@ -1,5 +1,5 @@ @@ -749,7 +749,7 @@ SELECT name FROM distributors ORDER BY code; ORDER BY (see above). Note that the first row of each set is unpredictable unless ORDER BY is used to ensure that the desired row appears first. For - example, + example: SELECT DISTINCT ON (location) location, time, report FROM weather_reports @@ -900,7 +900,7 @@ FOR SHARE [ OF table_name [, ...] ] Avoid locking a row and then modifying it within a later savepoint or PL/pgSQL exception block. A subsequent - rollback would cause the lock to be lost. For example, + rollback would cause the lock to be lost. For example: BEGIN; SELECT * FROM mytable WHERE key = 1 FOR UPDATE; diff --git a/doc/src/sgml/ref/update.sgml b/doc/src/sgml/ref/update.sgml index 5624a3cb09..df0bec9a1d 100644 --- a/doc/src/sgml/ref/update.sgml +++ b/doc/src/sgml/ref/update.sgml @@ -1,5 +1,5 @@ @@ -295,7 +295,7 @@ UPDATE employees SET sales_count = sales_count + 1 WHERE id = Attempt to insert a new stock item along with the quantity of stock. If the item already exists, instead update the stock count of the existing - item. To do this without failing the entire transaction, use savepoints. + item. To do this without failing the entire transaction, use savepoints: BEGIN; -- other operations diff --git a/doc/src/sgml/ref/values.sgml b/doc/src/sgml/ref/values.sgml index 3a28e5dd43..23b84d7820 100644 --- a/doc/src/sgml/ref/values.sgml +++ b/doc/src/sgml/ref/values.sgml @@ -1,5 +1,5 @@ @@ -143,7 +143,7 @@ VALUES (1, 'one'), (2, 'two'), (3, 'three'); This will return a table of two columns and three rows. It's effectively - equivalent to + equivalent to: SELECT 1 AS column1, 'one' AS column2 diff --git a/doc/src/sgml/regress.sgml b/doc/src/sgml/regress.sgml index e28f876f10..1899e5310c 100644 --- a/doc/src/sgml/regress.sgml +++ b/doc/src/sgml/regress.sgml @@ -1,4 +1,4 @@ - + Regression Tests @@ -315,7 +315,7 @@ exclusion of those that don't. The random test script is intended to produce random results. In rare cases, this causes the random regression - test to fail. Typing + test to fail. Typing: diff results/random.out expected/random.out @@ -370,7 +370,7 @@ testname/platformpattern=comparisonfilename float8-small-is-zero.out, which includes the results to be expected on these systems. To silence the bogus failure message on OpenBSD - platforms, resultmap includes + platforms, resultmap includes: float8/i.86-.*-openbsd=float8-small-is-zero diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index ad458d3bd1..b13172d0b8 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,4 +1,4 @@ - + + Composite Types @@ -70,7 +70,7 @@ SELECT price_extension(item, 10) FROM on_hand; Whenever you create a table, a composite type is also automatically created, with the same name as the table, to represent the table's - row type. For example, had we said + row type. For example, had we said: CREATE TABLE inventory_item ( name text, @@ -106,7 +106,7 @@ CREATE TABLE inventory_item ( '( val1 , val2 , ... )' - An example is + An example is: '("fuzzy dice",42,1.99)' @@ -143,7 +143,7 @@ ROW('fuzzy dice', 42, 1.99) ROW('', 42, NULL) The ROW keyword is actually optional as long as you have more than one - field in the expression, so these can simplify to + field in the expression, so these can simplify to: ('fuzzy dice', 42, 1.99) ('', 42, NULL) @@ -189,7 +189,7 @@ SELECT (on_hand.item).name FROM on_hand WHERE (on_hand.item).price > 9.99; Similar syntactic issues apply whenever you select a field from a composite value. For instance, to select just one field from the result of a function - that returns a composite value, you'd need to write something like + that returns a composite value, you'd need to write something like: SELECT (my_func(...)).field FROM ... @@ -254,7 +254,7 @@ INSERT INTO mytab (complex_col.r, complex_col.i) VALUES(1.1, 2.2); items. Whitespace outside the parentheses is ignored, but within the parentheses it is considered part of the field value, and might or might not be significant depending on the input conversion rules for the field data type. - For example, in + For example, in: '( 42)' @@ -297,7 +297,7 @@ INSERT INTO mytab (complex_col.r, complex_col.i) VALUES(1.1, 2.2); backslashes you need (assuming escape string syntax is used). For example, to insert a text field containing a double quote and a backslash in a composite - value, you'd need to write + value, you'd need to write: INSERT ... VALUES (E'("\\"\\\\")'); diff --git a/doc/src/sgml/rules.sgml b/doc/src/sgml/rules.sgml index 5531ae35d5..0da38fdeab 100644 --- a/doc/src/sgml/rules.sgml +++ b/doc/src/sgml/rules.sgml @@ -1,4 +1,4 @@ - + The Rule System @@ -278,13 +278,13 @@ Views in PostgreSQL are implemented using the rule system. In fact, there is essentially no difference - between + between: CREATE VIEW myview AS SELECT * FROM mytab; - compared against the two commands + compared against the two commands: CREATE TABLE myview (same column list as mytab); @@ -340,7 +340,7 @@ CREATE RULE "_RETURN" AS ON SELECT TO myview DO INSTEAD For the example, we need a little min function that -returns the lower of 2 integer values. We create that as +returns the lower of 2 integer values. We create that as: CREATE FUNCTION min(integer, integer) RETURNS integer AS $$ @@ -381,7 +381,7 @@ CREATE TABLE unit ( - The views are created as + The views are created as: CREATE VIEW shoe AS @@ -485,7 +485,7 @@ SELECT * FROM shoelace; This is the simplest SELECT you can do on our views, so we take this opportunity to explain the basics of view rules. The SELECT * FROM shoelace was - interpreted by the parser and produced the query tree + interpreted by the parser and produced the query tree: SELECT shoelace.sl_name, shoelace.sl_avail, @@ -498,7 +498,7 @@ SELECT shoelace.sl_name, shoelace.sl_avail, range table and checks if there are rules for any relation. When processing the range table entry for shoelace (the only one up to now) it finds the - _RETURN rule with the query tree + _RETURN rule with the query tree: SELECT s.sl_name, s.sl_avail, @@ -514,7 +514,7 @@ SELECT s.sl_name, s.sl_avail, To expand the view, the rewriter simply creates a subquery range-table entry containing the rule's action query tree, and substitutes this range table entry for the original one that referenced the view. The - resulting rewritten query tree is almost the same as if you had typed + resulting rewritten query tree is almost the same as if you had typed: SELECT shoelace.sl_name, shoelace.sl_avail, @@ -569,7 +569,7 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2; - The output of the parser this time is the query tree + The output of the parser this time is the query tree: SELECT shoe_ready.shoename, shoe_ready.sh_avail, @@ -581,7 +581,7 @@ SELECT shoe_ready.shoename, shoe_ready.sh_avail, The first rule applied will be the one for the shoe_ready view and it results in the - query tree + query tree: SELECT shoe_ready.shoename, shoe_ready.sh_avail, @@ -668,7 +668,7 @@ SELECT shoe_ready.shoename, shoe_ready.sh_avail, relation points to the range-table entry where the result should go. Everything else is absolutely the same. So having two tables t1 and t2 with columns a and - b, the query trees for the two statements + b, the query trees for the two statements: SELECT t2.b FROM t1, t2 WHERE t1.a = t2.a; @@ -712,14 +712,14 @@ UPDATE t1 SET b = t2.b FROM t2 WHERE t1.a = t2.a; execution plans: They are both joins over the two tables. For the UPDATE the missing columns from t1 are added to the target list by the planner and the final query tree will read - as + as: UPDATE t1 SET a = t1.a, b = t2.b FROM t2 WHERE t1.a = t2.a; and thus the executor run over the join will produce exactly the - same result set as a + same result set as a: SELECT t1.a, t2.b FROM t1, t2 WHERE t1.a = t2.a; @@ -746,7 +746,7 @@ SELECT t1.a, t2.b FROM t1, t2 WHERE t1.a = t2.a; file block number and position in the block for the row. Knowing the table, the CTID can be used to retrieve the original row of t1 to be updated. After adding the - CTID to the target list, the query actually looks like + CTID to the target list, the query actually looks like: SELECT t1.a, t2.b, t1.ctid FROM t1, t2 WHERE t1.a = t2.a; @@ -884,7 +884,7 @@ SELECT t1.a, t2.b, t1.ctid FROM t1, t2 WHERE t1.a = t2.a; How Update Rules Work - Keep the syntax + Keep the syntax: CREATE [ OR REPLACE ] RULE name AS ON event @@ -1054,7 +1054,7 @@ SELECT * FROM shoelace_log; That's what we expected. What happened in the background is the following. - The parser created the query tree + The parser created the query tree: UPDATE shoelace_data SET sl_avail = 6 @@ -1063,13 +1063,13 @@ UPDATE shoelace_data SET sl_avail = 6 There is a rule log_shoelace that is ON UPDATE with the rule - qualification expression + qualification expression: NEW.sl_avail <> OLD.sl_avail - and the action + and the action: INSERT INTO shoelace_log VALUES ( @@ -1188,7 +1188,7 @@ UPDATE shoelace_data SET sl_avail = 6 The substitutions and the added qualifications - ensure that, if the original query would be, say, + ensure that, if the original query would be, say: UPDATE shoelace_data SET sl_color = 'green' @@ -1199,7 +1199,7 @@ UPDATE shoelace_data SET sl_color = 'green' tree does not contain a target list entry for sl_avail, so NEW.sl_avail will get replaced by shoelace_data.sl_avail. Thus, the extra - command generated by the rule is + command generated by the rule is: INSERT INTO shoelace_log VALUES ( @@ -1215,7 +1215,7 @@ INSERT INTO shoelace_log VALUES ( It will also work if the original query modifies multiple rows. So - if someone issued the command + if someone issued the command: UPDATE shoelace_data SET sl_avail = 0 @@ -1225,7 +1225,7 @@ UPDATE shoelace_data SET sl_avail = 0 four rows in fact get updated (sl1, sl2, sl3, and sl4). But sl3 already has sl_avail = 0. In this case, the original query trees qualification is different and that results - in the extra query tree + in the extra query tree: INSERT INTO shoelace_log @@ -1260,7 +1260,7 @@ SELECT shoelace_data.sl_name, 0, A simple way to protect view relations from the mentioned possibility that someone can try to run INSERT, UPDATE, or DELETE on them is - to let those query trees get thrown away. So we could create the rules + to let those query trees get thrown away. So we could create the rules: CREATE RULE shoe_ins_protect AS ON INSERT TO shoe @@ -1320,7 +1320,7 @@ CREATE RULE shoelace_del AS ON DELETE TO shoelace you need to make the rules include RETURNING clauses that compute the view rows. This is usually pretty trivial for views on a single table, but it's a bit tedious for join views such as - shoelace. An example for the insert case is + shoelace. An example for the insert case is: CREATE RULE shoelace_ins AS ON INSERT TO shoelace @@ -1440,7 +1440,7 @@ SELECT * FROM shoelace_log; It's a long way from the one INSERT ... SELECT to these results. And the description of the query-tree transformation will be the last in this chapter. First, there is - the parser's output + the parser's output: INSERT INTO shoelace_ok @@ -1449,7 +1449,7 @@ SELECT shoelace_arrive.arr_name, shoelace_arrive.arr_quant Now the first rule shoelace_ok_ins is applied and turns this - into + into: UPDATE shoelace @@ -1463,7 +1463,7 @@ UPDATE shoelace and throws away the original INSERT on shoelace_ok. This rewritten query is passed to the rule system again, and the second applied rule - shoelace_upd produces + shoelace_upd produces: UPDATE shoelace_data @@ -1483,7 +1483,7 @@ UPDATE shoelace_data Again it's an INSTEAD rule and the previous query tree is trashed. Note that this query still uses the view shoelace. But the rule system isn't finished with this step, so it continues - and applies the _RETURN rule on it, and we get + and applies the _RETURN rule on it, and we get: UPDATE shoelace_data @@ -1503,7 +1503,7 @@ UPDATE shoelace_data Finally, the rule log_shoelace gets applied, - producing the extra query tree + producing the extra query tree: INSERT INTO shoelace_log @@ -1530,7 +1530,7 @@ SELECT s.sl_name, So we end up with two final query trees that are equivalent to the - SQL statements + SQL statements: INSERT INTO shoelace_log @@ -1612,7 +1612,7 @@ INSERT INTO shoelace VALUES ('sl10', 1000, 'magenta', 40.0, 'inch', 0.0); We would like to make a view to check which shoelace entries do not fit any shoe in color. - The view for this is + The view for this is: CREATE VIEW shoelace_mismatch AS @@ -1620,7 +1620,7 @@ CREATE VIEW shoelace_mismatch AS (SELECT shoename FROM shoe WHERE slcolor = sl_color); - Its output is + Its output is: SELECT * FROM shoelace_mismatch; @@ -1636,7 +1636,7 @@ SELECT * FROM shoelace_mismatch; Now we want to set it up so that mismatching shoelaces that are not in stock are deleted from the database. To make it a little harder for PostgreSQL, - we don't delete it directly. Instead we create one more view + we don't delete it directly. Instead we create one more view: CREATE VIEW shoelace_can_delete AS @@ -1918,7 +1918,7 @@ DELETE FROM software WHERE hostname = $1; Since the trigger is called for each individual row deleted from computer, it can prepare and save the plan for this command and pass the hostname value in the - parameter. The rule would be written as + parameter. The rule would be written as: CREATE RULE computer_del AS ON DELETE TO computer @@ -1927,7 +1927,7 @@ CREATE RULE computer_del AS ON DELETE TO computer - Now we look at different types of deletes. In the case of a + Now we look at different types of deletes. In the case of a: DELETE FROM computer WHERE hostname = 'mypc.local.net'; @@ -1935,7 +1935,7 @@ DELETE FROM computer WHERE hostname = 'mypc.local.net'; the table computer is scanned by index (fast), and the command issued by the trigger would also use an index scan (also fast). - The extra command from the rule would be + The extra command from the rule would be: DELETE FROM software WHERE computer.hostname = 'mypc.local.net' @@ -1959,14 +1959,14 @@ Nestloop With the next delete we want to get rid of all the 2000 computers where the hostname starts with old. There are two possible commands to do that. One - is + is: DELETE FROM computer WHERE hostname >= 'old' AND hostname < 'ole' - The command added by the rule will be + The command added by the rule will be: DELETE FROM software WHERE computer.hostname >= 'old' AND computer.hostname < 'ole' @@ -1982,7 +1982,7 @@ Hash Join -> Index Scan using comp_hostidx on computer - The other possible command is + The other possible command is: DELETE FROM computer WHERE hostname ~ '^old'; @@ -2014,7 +2014,7 @@ Nestloop - The last command we look at is + The last command we look at is: DELETE FROM computer WHERE manufacturer = 'bim'; @@ -2022,7 +2022,7 @@ DELETE FROM computer WHERE manufacturer = 'bim'; Again this could result in many rows to be deleted from computer. So the trigger will again run many commands - through the executor. The command generated by the rule will be + through the executor. The command generated by the rule will be: DELETE FROM software WHERE computer.manufacturer = 'bim' diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 35c04257dc..4baec33276 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,4 +1,4 @@ - + Operating System Environment @@ -901,7 +901,7 @@ sysctl -w kern.sysv.shmall In OS X 10.3.9 and later, instead of editing /etc/rc you can create a file named /etc/sysctl.conf, - containing variable assignments such as + containing variable assignments such as: kern.sysv.shmmax=4194304 kern.sysv.shmmin=1 @@ -940,11 +940,11 @@ kern.sysv.shmall=1024 In the default configuration, only 512 kB of shared memory per segment is allowed. To increase the setting, first change to the directory /etc/conf/cf.d. To display the current value of - SHMMAX, run + SHMMAX, run: ./configure -y SHMMAX - To set a new value for SHMMAX, run + To set a new value for SHMMAX, run: ./configure SHMMAX=value @@ -1019,13 +1019,13 @@ set semsys:seminfo_semmsl=32 On UnixWare 7, the maximum size for shared memory segments is only 512 kB in the default configuration. - To display the current value of SHMMAX, run + To display the current value of SHMMAX, run: /etc/conf/bin/idtune -g SHMMAX which displays the current, default, minimum, and maximum values. To set a new value for SHMMAX, - run + run: /etc/conf/bin/idtune SHMMAX value @@ -1533,12 +1533,12 @@ openssl req -new -text -out server.req password can be left blank. The program will generate a key that is passphrase protected; it will not accept a passphrase that is less than four characters long. To remove the passphrase (as you must if - you want automatic start-up of the server), run the commands + you want automatic start-up of the server), run the commands: openssl rsa -in privkey.pem -out server.key rm privkey.pem - Enter the old passphrase to unlock the existing key. Now do + Enter the old passphrase to unlock the existing key. Now do: openssl req -x509 -in server.req -text -key server.key -out server.crt chmod og-rwx server.key diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml index b8dcace314..d4830eca57 100644 --- a/doc/src/sgml/sources.sgml +++ b/doc/src/sgml/sources.sgml @@ -1,4 +1,4 @@ - + PostgreSQL Coding Conventions @@ -30,7 +30,7 @@ The text browsing tools more and - less can be invoked as + less can be invoked as: more -x4 less -x4 @@ -211,11 +211,11 @@ ereport(ERROR, There is an older function elog that is still heavily used. - An elog call + An elog call: elog(level, "format string", ...); - is exactly equivalent to + is exactly equivalent to: ereport(level, (errmsg_internal("format string", ...))); @@ -260,12 +260,12 @@ ereport(level, (errmsg_internal("format string", ...))); - For example, instead of + For example, instead of: IpcMemoryCreate: shmget(key=%d, size=%u, 0%o) failed: %m (plus a long addendum that is basically a hint) - write + write: Primary: could not create shared memory segment: %m Detail: Failed syscall was shmget(key=%d, size=%u, 0%o). @@ -424,11 +424,11 @@ Hint: the addendum - There is a nontrivial semantic difference between sentences of the form + There is a nontrivial semantic difference between sentences of the form: could not open file "%s": %m -and +and: cannot open file "%s" diff --git a/doc/src/sgml/spi.sgml b/doc/src/sgml/spi.sgml index 0fa4bede24..2344219f68 100644 --- a/doc/src/sgml/spi.sgml +++ b/doc/src/sgml/spi.sgml @@ -1,4 +1,4 @@ - + Server Programming Interface @@ -313,7 +313,7 @@ int SPI_execute(const char * command, bool rea for all rows that it applies to. If count is greater than 0, then the number of rows for which the command will be executed is restricted (much like a - LIMIT clause). For example, + LIMIT clause). For example: SPI_execute("INSERT INTO foo SELECT * FROM bar", false, 5); @@ -2931,7 +2931,7 @@ int SPI_freeplan(void *plan) During the execution of an SQL command, any data changes made by the command are invisible to the command itself. For - example, in + example, in: INSERT INTO a SELECT * FROM a; diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml index 9e086a58a7..3ddedf57d4 100644 --- a/doc/src/sgml/syntax.sgml +++ b/doc/src/sgml/syntax.sgml @@ -1,4 +1,4 @@ - + SQL Syntax @@ -144,16 +144,16 @@ INSERT INTO MY_TABLE VALUES (3, 'hi there'); case sensitivity of SQL commands - Identifier and key word names are case insensitive. Therefore + Identifier and key word names are case insensitive. Therefore: UPDATE MY_TABLE SET A = 5; - can equivalently be written as + can equivalently be written as: uPDaTE my_TabLE SeT a = 5; A convention often used is to write key words in upper - case and names in lower case, e.g., + case and names in lower case, e.g.: UPDATE my_table SET a = 5; @@ -257,11 +257,11 @@ UPDATE "my_table" SET "a" = 5; SELECT 'foo' 'bar'; - is equivalent to + is equivalent to: SELECT 'foobar'; - but + but: SELECT 'foo' 'bar'; @@ -506,7 +506,7 @@ $function$ force a numeric value to be interpreted as a specific data type by casting it.type cast For example, you can force a numeric value to be treated as type - real (float4) by writing + real (float4) by writing: REAL '1.23' -- string style @@ -771,18 +771,18 @@ CAST ( 'string' AS type ) > have a different precedence than the Boolean operators <= and >=. Also, you will sometimes need to add parentheses when using combinations of - binary and unary operators. For instance + binary and unary operators. For instance: SELECT 5 ! - 6; - will be parsed as + will be parsed as: SELECT 5 ! (- 6); because the parser has no idea — until it is too late — that ! is defined as a postfix operator, not an infix one. To get the desired behavior in this case, you - must write + must write: SELECT (5 !) - 6; @@ -936,7 +936,7 @@ SELECT (5 !) - 6; When a schema-qualified operator name is used in the - OPERATOR syntax, as for example in + OPERATOR syntax, as for example in: SELECT 3 OPERATOR(pg_catalog.+) 4; @@ -1133,7 +1133,7 @@ $number For example, consider the definition of a function, - dept, as + dept, as: CREATE FUNCTION dept(text) RETURNS dept @@ -1175,7 +1175,7 @@ CREATE FUNCTION dept(text) RETURNS dept to be subscripted is just a column reference or positional parameter. Also, multiple subscripts can be concatenated when the original array is multidimensional. - For example, + For example: mytable.arraycolumn[4] @@ -1208,7 +1208,7 @@ $1[10:42] In general the row expression must be parenthesized, but the parentheses can be omitted when the expression to be selected from is just a table reference or positional parameter. - For example, + For example: mytable.mycolumn @@ -1494,7 +1494,7 @@ SELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name) consists of the key word ARRAY, a left square bracket [, one or more expressions (separated by commas) for the array element values, and finally a right square bracket ]. - For example, + For example: SELECT ARRAY[1,2,3+4]; array @@ -1597,7 +1597,7 @@ SELECT ARRAY(SELECT oid FROM pg_proc WHERE proname LIKE 'bytea%'); for its member fields. A row constructor consists of the key word ROW, a left parenthesis, zero or more expressions (separated by commas) for the row field values, and finally - a right parenthesis. For example, + a right parenthesis. For example: SELECT ROW(1,2.5,'this is a test'); @@ -1675,7 +1675,7 @@ SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype)); in a composite-type table column, or to be passed to a function that accepts a composite parameter. Also, it is possible to compare two row values or test a row with - IS NULL or IS NOT NULL, for example + IS NULL or IS NOT NULL, for example: SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same'); @@ -1705,12 +1705,12 @@ SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows Furthermore, if the result of an expression can be determined by evaluating only some parts of it, then other subexpressions - might not be evaluated at all. For instance, if one wrote + might not be evaluated at all. For instance, if one wrote: SELECT true OR somefunc(); then somefunc() would (probably) not be called - at all. The same would be the case if one wrote + at all. The same would be the case if one wrote: SELECT somefunc() OR true; diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml index f8e039c489..0479f57b0d 100644 --- a/doc/src/sgml/trigger.sgml +++ b/doc/src/sgml/trigger.sgml @@ -1,4 +1,4 @@ - + Triggers @@ -282,11 +282,11 @@ any normal arguments, but it is passed a context pointer pointing to a TriggerData structure. C functions can check whether they were called from the trigger - manager or not by executing the macro + manager or not by executing the macro: CALLED_AS_TRIGGER(fcinfo) - which expands to + which expands to: ((fcinfo)->context != NULL && IsA((fcinfo)->context, TriggerData)) diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml index c7000bc904..871aef702c 100644 --- a/doc/src/sgml/user-manag.sgml +++ b/doc/src/sgml/user-manag.sgml @@ -1,4 +1,4 @@ - + Database Roles and Privileges @@ -154,7 +154,7 @@ SELECT rolname FROM pg_roles; as the initial role name for a database connection. A role with the LOGIN attribute can be considered the same thing as a database user. To create a role with login privilege, - use either + use either: CREATE ROLE name LOGIN; CREATE USER name; @@ -248,7 +248,7 @@ CREATE USER name; configuration settings described in . For example, if for some reason you want to disable index scans (hint: not a good idea) anytime you - connect, you can use + connect, you can use: ALTER ROLE myname SET enable_indexscan TO off; @@ -305,7 +305,7 @@ ALTER ROLE myname SET enable_indexscan TO off; To assign privileges, the GRANT command is used. So, if joe is an existing role, and accounts is an existing table, the privilege to - update the table can be granted with + update the table can be granted with: GRANT UPDATE ON accounts TO joe; @@ -390,7 +390,7 @@ REVOKE group_role FROM role1INHERIT attribute automatically have use of privileges of roles they are members of. As an example, suppose we have - done + done: CREATE ROLE joe LOGIN INHERIT; CREATE ROLE admin NOINHERIT; @@ -405,19 +405,19 @@ GRANT wheel TO admin; granted to wheel are not available, because even though joe is indirectly a member of wheel, the membership is via admin which has the NOINHERIT - attribute. After + attribute. After: SET ROLE admin; the session would have use of only those privileges granted to - admin, and not those granted to joe. After + admin, and not those granted to joe. After: SET ROLE wheel; the session would have use of only those privileges granted to wheel, and not those granted to either joe or admin. The original privilege state can be restored - with any of + with any of: SET ROLE joe; SET ROLE NONE; diff --git a/doc/src/sgml/xaggr.sgml b/doc/src/sgml/xaggr.sgml index 3013392646..dce8d8f1ca 100644 --- a/doc/src/sgml/xaggr.sgml +++ b/doc/src/sgml/xaggr.sgml @@ -1,4 +1,4 @@ - + User-Defined Aggregates @@ -165,7 +165,7 @@ SELECT attrelid::regclass, array_accum(atttypid) A function written in C can detect that it is being called as an aggregate transition or final function by seeing if it was passed an AggState node as the function call context, - for example by + for example by: if (fcinfo->context && IsA(fcinfo->context, AggState)) diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index d45f909206..6e2cd9029a 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -1,4 +1,4 @@ - + User-Defined Functions @@ -244,7 +244,7 @@ SELECT tf1(17, 100.0); In practice one would probably like a more useful result from the function than a constant 1, so a more likely definition - is + is: CREATE FUNCTION tf1 (integer, numeric) RETURNS numeric AS $$ @@ -811,7 +811,7 @@ SELECT * FROM dup(22); When creating a family of overloaded functions, one should be careful not to create ambiguities. For instance, given the - functions + functions: CREATE FUNCTION test(int, real) RETURNS ... CREATE FUNCTION test(smallint, double precision) RETURNS ... @@ -845,7 +845,7 @@ CREATE FUNCTION test(smallint, double precision) RETURNS ... (usually the internal one). The alternative form of the AS clause for the SQL CREATE FUNCTION command decouples the SQL function name from - the function name in the C source code. For instance, + the function name in the C source code. For instance: CREATE FUNCTION test(int) RETURNS int AS 'filename', 'test_1arg' @@ -1740,11 +1740,11 @@ CREATE FUNCTION concat_text(text, text) RETURNS text The version-1 calling convention relies on macros to suppress most of the complexity of passing arguments and results. The C declaration - of a version-1 function is always + of a version-1 function is always: Datum funcname(PG_FUNCTION_ARGS) - In addition, the macro call + In addition, the macro call: PG_FUNCTION_INFO_V1(funcname); @@ -2274,7 +2274,7 @@ include $(PGXS) - Suppose we want to write a function to answer the query + Suppose we want to write a function to answer the query: SELECT name, c_overpaid(emp, 1500) AS overpaid @@ -2397,7 +2397,7 @@ CREATE FUNCTION c_overpaid(emp, integer) RETURNS boolean Several helper functions are available for setting up the needed TupleDesc. The recommended way to do this in most - functions returning composite values is to call + functions returning composite values is to call: TypeFuncClass get_call_result_type(FunctionCallInfo fcinfo, Oid *resultTypeId, @@ -2443,12 +2443,12 @@ TypeFuncClass get_call_result_type(FunctionCallInfo fcinfo, Older, now-deprecated functions for obtaining - TupleDescs are + TupleDescs are: TupleDesc RelationNameGetTupleDesc(const char *relname) to get a TupleDesc for the row type of a named relation, - and + and: TupleDesc TypeGetTupleDesc(Oid typeoid, List *colaliases) @@ -2460,11 +2460,11 @@ TupleDesc TypeGetTupleDesc(Oid typeoid, List *colaliases) - Once you have a TupleDesc, call + Once you have a TupleDesc, call: TupleDesc BlessTupleDesc(TupleDesc tupdesc) - if you plan to work with Datums, or + if you plan to work with Datums, or: AttInMetadata *TupleDescGetAttInMetadata(TupleDesc tupdesc) @@ -2476,7 +2476,7 @@ AttInMetadata *TupleDescGetAttInMetadata(TupleDesc tupdesc) - When working with Datums, use + When working with Datums, use: HeapTuple heap_form_tuple(TupleDesc tupdesc, Datum *values, bool *isnull) @@ -2484,7 +2484,7 @@ HeapTuple heap_form_tuple(TupleDesc tupdesc, Datum *values, bool *isnull) - When working with C strings, use + When working with C strings, use: HeapTuple BuildTupleFromCStrings(AttInMetadata *attinmeta, char **values) @@ -2500,7 +2500,7 @@ HeapTuple BuildTupleFromCStrings(AttInMetadata *attinmeta, char **values) Once you have built a tuple to return from your function, it - must be converted into a Datum. Use + must be converted into a Datum. Use: HeapTupleGetDatum(HeapTuple tuple) @@ -2610,17 +2610,17 @@ typedef struct An SRF uses several functions and macros that automatically manipulate the FuncCallContext - structure (and expect to find it via fn_extra). Use + structure (and expect to find it via fn_extra). Use: SRF_IS_FIRSTCALL() to determine if your function is being called for the first or a - subsequent time. On the first call (only) use + subsequent time. On the first call (only) use: SRF_FIRSTCALL_INIT() to initialize the FuncCallContext. On every function call, - including the first, use + including the first, use: SRF_PERCALL_SETUP() @@ -2630,14 +2630,14 @@ SRF_PERCALL_SETUP() - If your function has data to return, use + If your function has data to return, use: SRF_RETURN_NEXT(funcctx, result) to return it to the caller. (result must be of type Datum, either a single value or a tuple prepared as described above.) Finally, when your function is finished - returning data, use + returning data, use: SRF_RETURN_DONE(funcctx) diff --git a/doc/src/sgml/xindex.sgml b/doc/src/sgml/xindex.sgml index e01d380942..7c68bfc100 100644 --- a/doc/src/sgml/xindex.sgml +++ b/doc/src/sgml/xindex.sgml @@ -1,4 +1,4 @@ - + Interfacing Extensions To Indexes @@ -490,7 +490,7 @@ is to write the B-tree comparison support function first, and then write the other functions as one-line wrappers around the support function. This reduces the odds of getting inconsistent results for corner cases. - Following this approach, we first write + Following this approach, we first write: #define Mag(c) ((c)->x*(c)->x + (c)->y*(c)->y) @@ -509,7 +509,7 @@ complex_abs_cmp_internal(Complex *a, Complex *b) } - Now the less-than function looks like + Now the less-than function looks like: PG_FUNCTION_INFO_V1(complex_abs_lt); @@ -628,7 +628,7 @@ CREATE OPERATOR CLASS complex_abs_ops - We could have written the operator entries more verbosely, as in + We could have written the operator entries more verbosely, as in: OPERATOR 1 < (complex, complex) , @@ -899,7 +899,7 @@ ALTER OPERATOR FAMILY integer_ops USING btree ADD Normally, declaring an operator as a member of an operator class (or family) means that the index method can retrieve exactly the set of rows - that satisfy a WHERE condition using the operator. For example, + that satisfy a WHERE condition using the operator. For example: SELECT * FROM table WHERE integer_column < 4; @@ -925,7 +925,7 @@ SELECT * FROM table WHERE integer_column < 4; case there's not much value in storing the whole polygon in the index entry — we might as well store just a simpler object of type box. This situation is expressed by the STORAGE - option in CREATE OPERATOR CLASS: we'd write something like + option in CREATE OPERATOR CLASS: we'd write something like: CREATE OPERATOR CLASS polygon_ops diff --git a/doc/src/sgml/xoper.sgml b/doc/src/sgml/xoper.sgml index e8e7c0da3f..9c98aa1820 100644 --- a/doc/src/sgml/xoper.sgml +++ b/doc/src/sgml/xoper.sgml @@ -1,4 +1,4 @@ - + User-Defined Operators @@ -222,7 +222,7 @@ SELECT (a + b) AS c FROM test_complex; name, not an operator name.) RESTRICT clauses only make sense for binary operators that return boolean. The idea behind a restriction selectivity estimator is to guess what fraction of the rows in a - table will satisfy a WHERE-clause condition of the form + table will satisfy a WHERE-clause condition of the form: column OP constant @@ -294,7 +294,7 @@ column OP constant name, not an operator name.) JOIN clauses only make sense for binary operators that return boolean. The idea behind a join selectivity estimator is to guess what fraction of the rows in a - pair of tables will satisfy a WHERE-clause condition of the form + pair of tables will satisfy a WHERE-clause condition of the form: table1.column1 OP table2.column2 diff --git a/doc/src/sgml/xplang.sgml b/doc/src/sgml/xplang.sgml index b49c406f53..9882d835e3 100644 --- a/doc/src/sgml/xplang.sgml +++ b/doc/src/sgml/xplang.sgml @@ -1,4 +1,4 @@ - + Procedural Languages @@ -60,7 +60,7 @@ linkend="app-createlang"> can be used to do this from the shell command line. For example, to install the language PL/pgSQL into the database - template1, use + template1, use: createlang plpgsql template1 @@ -183,7 +183,7 @@ CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS - The command + The command: CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler