diff options
author | Bruce Momjian | 1997-08-26 17:39:32 +0000 |
---|---|---|
committer | Bruce Momjian | 1997-08-26 17:39:32 +0000 |
commit | 6451b04a08eec52971933a05fdffd8286b25e759 (patch) | |
tree | 09784b684662a321ca63b08e582e5317abeb836c /src/man/built-in.3 | |
parent | ed626314e6358e9e1e2a42b8eab8438b51879138 (diff) |
rename sections.
Diffstat (limited to 'src/man/built-in.3')
-rw-r--r-- | src/man/built-in.3 | 1105 |
1 files changed, 0 insertions, 1105 deletions
diff --git a/src/man/built-in.3 b/src/man/built-in.3 deleted file mode 100644 index 5e801b66261..00000000000 --- a/src/man/built-in.3 +++ /dev/null @@ -1,1105 +0,0 @@ -.\" This is -*-nroff-*- -.\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/built-in.3,v 1.9 1997/08/26 17:00:11 momjian Exp $ -.TH PGBUILTIN INTRO 04/01/97 PostgreSQL PostgreSQL -.SH "DESCRIPTION" -This section describes the data types, functions and operators -available to users in Postgres as it is distributed. -.SH "PGBUILTIN TYPES" -This section describes -.BR pgbuiltin -data types. -These Built-in types are installed in every database. -.PP -Users may add new types to Postgres using the -.IR "define type" -command described in this manual. User-defined types are not -described in this section. -.SH "List of built-in types" -.PP -.if n .ta 5 +15 +40 -.if t .ta 0.5i +1.5i +3.0i -.in 0 -.nf - \fBPOSTGRES Type\fP \fBMeaning\fP - abstime (absolute) limited-range date and time - aclitem access control list item - bool boolean - box 2-dimensional rectangle - bpchar blank-padded characters - bytea variable length array of bytes - char character - char2 array of 2 characters - char4 array of 4 characters - char8 array of 8 characters - char16 array of 16 characters - cid command identifier type - date ANSI SQL date type - datetime general-use date and time - filename large object filename - int alias for int4 - integer alias for int4 - int2 two-byte signed integer - int28 array of 8 int2 - int4 four-byte signed integer - float alias for float4 - float4 single-precision floating-point number - float8 double-precision floating-point number - lseg 2-dimensional line segment - money decimal type with fixed precision - name a multi-character type for storing system identifiers - oid object identifier type - oid8 array of 8 oid - oidchar16 oid and char16 composed - oidint2 oid and int2 composed - oidint4 oid and int4 composed - path open or closed line segments - point 2-dimensional geometric point - polygon 2-dimensional polygon (same as a closed path) - circle 2-dimensional circle (center and radius) - real alias for float4 - regproc registered procedure - reltime (relative) date and time span (duration) - smgr storage manager - smallint alias for int2 - text variable length array of characters - tid tuple identifier type - time ANSI SQL time type - timespan general-use time span (duration) - timestamp limited-range ISO-format date and time - tinterval time interval (start and stop abstime) - varchar variable-length characters - xid transaction identifier type - -.fi -.in -.PP -Many of the built-in types have obvious external formats. However, several -types are either unique to Postgres, such as open and closed paths, or have -several possibilities for formats, such as date and time types. - -.SH "Syntax of date and time types" -Some date and time types share code for data input. For those types (currently -.IR datetime -and -.IR abstime -, and -.IR timespan -and -.IR reltime ) -the input can have any of a wide variety of styles. For numeric date representations, -European and US conventions can differ, and the proper interpretation is obtained -by using the -.IR set (l) -command before entering data. -Output formats can be set to one of three styles: -ISO-8601, SQL (traditional Oracle/Ingres), and traditional -Postgres (see section on -.IR "absolute time" ) -with the SQL style having European and US variants (see -.IR set (l)). - -.SH "DATETIME" -General-use date and time is input using a wide range of -styles, including ISO-compatible, SQL-compatible, traditional -Postgres (see section on -.IR "absolute time") -and other permutations of date and time. Output styles can be ISO-compatible, -SQL-compatible, or traditional Postgres, with the default set to be compatible -with Postgres v6.0. -.PP -datetime is specified using the following syntax: -.PP -.nf -Year-Month-Day [ Hour : Minute : Second ] [AD,BC] [ Timezone ] -.nf - YearMonthDay [ Hour : Minute : Second ] [AD,BC] [ Timezone ] -.nf - Month Day [ Hour : Minute : Second ] Year [AD,BC] [ Timezone ] -.sp -where - Year is 4013 BC, ..., very large - Month is Jan, Feb, ..., Dec or 1, 2, ..., 12 - Day is 1, 2, ..., 31 - Hour is 00, 02, ..., 23 - Minute is 00, 01, ..., 59 - Second is 00, 01, ..., 59 (60 for leap second) - Timezone is 3 characters or ISO offset to GMT -.fi -.PP -Valid dates are from Nov 13 00:00:00 4013 BC GMT to far into the future. -Timezones are either three characters (e.g. "GMT" or "PST") or ISO-compatible -offsets to GMT (e.g. "-08" or "-08:00" when in Pacific Standard Time). -Dates are stored internally in Greenwich Mean Time. Input and output routines -translate time to the local time zone of the server. -.PP -The special values `current', -`infinity' and `-infinity' are provided. -`infinity' specifies a time later than any valid time, and -`-infinity' specifies a time earlier than any valid time. -`current' indicates that the current time should be -substituted whenever this value appears in a computation. -.PP -The strings -`now', -`today', -`yesterday', -`tomorrow', -and `epoch' can be used to specify -time values. `now' means the current time, and differs from -`current' in that the current time is immediately substituted -for it. `epoch' means Jan 1 00:00:00 1970 GMT. - -.SH "TIMESPAN" -General-use time span is input using a wide range of -syntaxes, including ISO-compatible, SQL-compatible, traditional -Postgres (see section on -.IR "relative time" -) and other permutations of time span. Output formats can be ISO-compatible, -SQL-compatible, or traditional Postgres, with the default set to be Postgres-compatible. -Months and years are a "qualitative" time interval, and are stored separately -from the other "quantitative" time intervals such as day or hour. For date arithmetic, -the qualitative time units are instantiated in the context of the relevant date or time. -.PP -Time span is specified with the following syntax: -.PP -.nf - Quantity Unit [Quantity Unit...] [Direction] -.nf -@ Quantity Unit [Direction] -.sp -where - Quantity is ..., `-1', `0', `1', `2', ... - Unit is `second', `minute', `hour', `day', `week', `month', `year', - or abbreviations or plurals of these units. - Direction is `ago'. -.fi -.SH "ABSOLUTE TIME" -Absolute time (abstime) is a limited-range (+/- 68 years) and limited-precision (1 sec) -date data type. -.IR "datetime" -may be preferred, since it -covers a larger range with greater precision. -.PP -Absolute time is specified using the following syntax: -.PP -.nf -Month Day [ Hour : Minute : Second ] Year [ Timezone ] -.sp -where - Month is Jan, Feb, ..., Dec - Day is 1, 2, ..., 31 - Hour is 01, 02, ..., 24 - Minute is 00, 01, ..., 59 - Second is 00, 01, ..., 59 - Year is 1901, 1902, ..., 2038 -.fi -.PP -Valid dates are from Dec 13 20:45:53 1901 GMT to Jan 19 03:14:04 -2038 GMT. As of Version 3.0, times are no longer read and written -using Greenwich Mean Time; the input and output routines default to -the local time zone. -.PP -All special values allowed for -.IR "datetime" -are also allowed for -.IR "absolute time". - -.SH "RELATIVE TIME" -Relative time (reltime) is a limited-range (+/- 68 years) and limited-precision (1 sec) -time span data type. -.IR "timespan" -may be preferred, since it -covers a larger range with greater precision, allows multiple units -for an entry, and correctly handles qualitative time -units such as year and month. For reltime, only one quantity and unit is allowed -per entry, which can be inconvenient for complicated time spans. -.PP -Relative time is specified with the following syntax: -.PP -.nf -@ Quantity Unit [Direction] -.sp -where - Quantity is `1', `2', ... - Unit is ``second'', ``minute'', ``hour'', ``day'', ``week'', - ``month'' (30-days), or ``year'' (365-days), - or PLURAL of these units. - Direction is ``ago'' -.fi -.PP -.RB ( Note : -Valid relative times are less than or equal to 68 years.) -In addition, the special relative time \*(lqUndefined RelTime\*(rq is -provided. -.SH "TIME RANGES" -Time ranges are specified as: -.PP -.nf -[ 'abstime' 'abstime'] -.fi -where -.IR abstime -is a time in the absolute time format. Special abstime values such as -\*(lqcurrent\*(rq, \*(lqinfinity\*(rq and \*(lq-infinity\*(rq can be used. - -.SH "Syntax of geometric types" -.SH "POINT" -Points are specified using the following syntax: -.PP -.nf -( x , y ) -.nf - x , y -.sp -where - x is the x-axis coordinate as a floating point number - y is the y-axis coordinate as a floating point number -.fi -.PP -.SH "LSEG" -Line segments are represented by pairs of points. -.PP -lseg is specified using the following syntax: -.PP -.nf -( ( x1 , y1 ) , ( x2 , y2 ) ) -.nf - ( x1 , y1 ) , ( x2 , y2 ) -.nf - x1 , y1 , x2 , y2 -.sp -where - (x1,y1) and (x2,y2) are the endpoints of the segment -.fi -.PP -.SH "BOX" -Boxes are represented by pairs of points which are opposite -corners of the box. -.PP -box is specified using the following syntax: -.PP -.nf -( ( x1 , y1 ) , ( x2 , y2 ) ) -.nf - ( x1 , y1 ) , ( x2 , y2 ) -.nf - x1 , y1 , x2 , y2 -.sp -where - (x1,y1) and (x2,y2) are opposite corners -.fi -.PP -Boxes are output using the first syntax. -The corners are reordered on input to store -the lower left corner first and the upper right corner last. -Other corners of the box can be entered, but the lower -left and upper right corners are determined from the input and stored. -.SH "PATH" -Paths are represented by sets of points. Paths can be "open", where -the first and last points in the set are not connected, and "closed", -where the first and last point are connected. Functions -.IR popen(p) -and -.IR pclose(p) -are supplied to force a path to be open or closed, and functions -.IR isopen(p) -and -.IR isclosed(p) -are supplied to select either type in a query. -.PP -path is specified using the following syntax: -.PP -.nf -( ( x1 , y1 ) , ... , ( xn , yn ) ) -.nf -[ ( x1 , y1 ) , ... , ( xn , yn ) ] -.nf - ( x1 , y1 ) , ... , ( xn , yn ) -.nf - x1 , y1 , ... , xn , yn -.nf -( closed, n, x1 , y1 , ... , xn , yn ) -.sp -where - (x1,y1),...,(xn,yn) are points 1 through n - a leading "[" indicates an open path - a leading "(" indicates a closed path - a single leading "(" indicates a v6.0-compatible format - closed is an integer flag which is zero for an open path - n is the number of points in the path -.fi -.PP -Paths are output using the first syntax. -The last format is supplied to be backward compatible with v6.0 and earlier -path formats and will not be supported in future versions of Postgres. -.SH "POLYGON" -Polygons are represented by sets of points. Polygons should probably be -considered -equivalent to closed paths, but are stored differently and have their own -set of support routines. -.PP -polygon is specified using the following syntax: -.PP -.nf -( ( x1 , y1 ) , ... , ( xn , yn ) ) -.nf - ( x1 , y1 ) , ... , ( xn , yn ) -.nf - x1 , y1 , ... , xn , yn -.nf -( x1 , ... , xn , y1 , ... , yn ) -.sp -where - (x1,y1),...,(xn,yn) are points 1 through n - a single leading "(" indicates a v6.0-compatible format -.fi -.PP -Polygons are output using the first syntax. -The last format is supplied to be backward compatible with v6.0 and earlier -path formats and will not be supported in future versions of Postgres. -.SH "CIRCLE" -Circles are represented by a center point and a radius. -.PP -circle is specified using the following syntax: -.PP -.nf -< ( x , y ) , r > -.nf -( ( x , y ) , r ) -.nf - ( x , y ) , r -.nf - x , y , r -.sp -where - (x,y) is the center of the circle - r is the radius of the circle -.fi -.PP -Circles are output using the first syntax. - -.SH "Built-in operators and functions" -.SH OPERATORS -Postgres provides a large number of built-in operators on system types. -These operators are declared in the system catalog -\*(lqpg_operator\*(rq. Every entry in \*(lqpg_operator\*(rq includes -the object ID of the procedure that implements the operator. -.PP -Users may invoke operators using the operator name, as in -.nf -select * from emp where salary < 40000; -.fi -Alternatively, users may call the functions that implement the -operators directly. In this case, the query above would be expressed -as -.nf -select * from emp where int4lt(salary, 40000); -.fi -The rest of this section provides a list of the built-in operators and -the functions that implement them. Binary operators are listed first, -followed by unary operators. - -.SH "BINARY OPERATORS" - -.nf -Operators: - -general - <\(eq less or equal - <> inequality - < less than - <\(eq greater or equal - >\(eq greater or equal - > greater than - \(eq equality - ~ A matches regular expression B, case-sensitive - !~ A does not match regular expression B, case-sensitive - ~* A matches regular expression B, case-insensitive. - !~* A does not match regular expression B, case-insensitive - ~~ A matches LIKE expression B, case-sensitive - !~~ A does not match LIKE expression B, case-sensitive - - + addition - \(mi subtraction - * multiplication - / division - % modulus - @ absolute value - <===> distance between - -float8 - ^ exponentiation - % truncate to integer - |/ square root - ||/ cube root - : exponential function - ; natural logarithm (in psql, protect with parentheses) - -point - !< A is left of B - !> A is right of B - !^ A is above B - !| A is below B - \(eq|\(eq equality - ===> point inside box - ===` point on path - -box - && boxes overlap - &< box A overlaps box B, but does not extend to right of box B - &> box A overlaps box B, but does not extend to left of box B - << A is left of B - \(eq area equal - < area less than - <\(eq area less or equal - >\(eq area greater or equal - > area greater than - >> A is right of B - @ A is contained in B - ~\(eq box equality - ~= A same as B - ~ A contains B - @@ center of box - -polygon - && polygons overlap - &< A overlaps B but does not extend to right of B - &> A overlaps B but does not extend to left of B - << A is left of B - >> A is right of B - @ A is contained by B - ~\(eq equality - ~= A same as B - ~ A contains B - -circle - && circles overlap - &< A overlaps B but does not extend to right of B - &> A overlaps B but does not extend to left of B - << A is left of B - >> A is right of B - @ A is contained by B - ~\(eq equality - ~= A same as B - ~ A contains B - -tinterval - #<\(eq interval length less or equal reltime - #<> interval length not equal to reltime. - #< interval length less than reltime - #\(eq interval length equal to reltime - #>\(eq interval length greater or equal reltime - #> interval length greater than reltime - && intervals overlap - << A contains B - \(eq equality - <> interval bounded by two abstimes - <?> abstime in tinterval - | start of interval - <#> convert to interval -.fi - -.SH "FUNCTIONS" -Many data types have functions available for conversion to other related types. -In addition, there are some type-specific functions. -.PP -For the -date_part() and date_trunc() -functions, arguments can be -`year', `month', `day', `hour', `minute', and `second', -as well as the more specialized quantities -`decade', `century', `millenium', `millisecond', and `microsecond'. -date_part() also allows -`dow' -to return day of week and `epoch' to return seconds since 1970. - -.nf -Functions: - -abstime - datetime datetime(abstime) convert to datetime - bool isfinite(abstime) TRUE if this is a finite time - -date - datetime datetime(date) convert to datetime - datetime datetime(date,time) convert to datetime - -datetime - abstime abstime(datetime) convert to abstime - float8 date_part(text,datetime) specified portion of date field - datetime date_trunc(text,datetime) truncate date at specified units - bool isfinite(datetime) TRUE if this is a finite time - -reltime - timespan timespan(reltime) convert to timespan - -time - datetime datetime(date,time) convert to datetime - -timespan - float8 date_part(text,timespan) specified portion of time field - bool isfinite(timespan) TRUE if this is a finite time - reltime reltime(timespan) convert to reltime - -box - box box(point,point) convert points to box - float8 area(box) area of box - -path - bool isopen(path) TRUE if this is an open path - bool isclosed(path) TRUE if this is a closed path - -circle - circle circle(point,float8) convert to circle - polygon polygon(npts,circle) convert to polygon with npts points - float8 center(circle) radius of circle - float8 radius(circle) radius of circle - float8 diameter(circle) diameter of circle - float8 area(circle) area of circle -.fi - -.SH "BINARY OPERATORS" -This list was generated from the Postgres system catalogs with the -query: - -.nf -SELECT t0.typname AS result, - t1.typname AS left_type, - t2.typname AS right_type, - o.oprname AS operatr, - p.proname AS func_name -FROM pg_proc p, pg_type t0, - pg_type t1, pg_type t2, - pg_operator o -WHERE p.prorettype = t0.oid AND - RegprocToOid(o.oprcode) = p.oid AND - p.pronargs = 2 AND - o.oprleft = t1.oid AND - o.oprright = t2.oid -ORDER BY result, left_type, right_type, operatr; -.fi - -These operations are cast in terms of SQL types and so are -.BR not -directly usable as C function prototypes. - -.nf -result |left_type |right_type|operatr|func_name ----------+----------+----------+-------+----------------- -_aclitem |_aclitem |aclitem |+ |aclinsert -_aclitem |_aclitem |aclitem |- |aclremove -abstime |abstime |reltime |+ |timepl -abstime |abstime |reltime |- |timemi -bool |_abstime |_abstime |= |array_eq -bool |_aclitem |_aclitem |= |array_eq -bool |_aclitem |aclitem |~ |aclcontains -bool |_bool |_bool |= |array_eq -bool |_box |_box |= |array_eq -bool |_bytea |_bytea |= |array_eq -bool |_char |_char |= |array_eq -bool |_char16 |_char16 |= |array_eq -bool |_cid |_cid |= |array_eq -bool |_filename |_filename |= |array_eq -bool |_float4 |_float4 |= |array_eq -bool |_float8 |_float8 |= |array_eq -bool |_int2 |_int2 |= |array_eq -bool |_int28 |_int28 |= |array_eq -bool |_int4 |_int4 |= |array_eq -bool |_lseg |_lseg |= |array_eq -bool |_name |_name |= |array_eq -bool |_oid |_oid |= |array_eq -bool |_oid8 |_oid8 |= |array_eq -bool |_path |_path |= |array_eq -bool |_point |_point |= |array_eq -bool |_polygon |_polygon |= |array_eq -bool |_ref |_ref |= |array_eq -bool |_regproc |_regproc |= |array_eq -bool |_reltime |_reltime |= |array_eq -bool |_stub |_stub |= |array_eq -bool |_text |_text |= |array_eq -bool |_tid |_tid |= |array_eq -bool |_tinterval|_tinterval|= |array_eq -bool |_xid |_xid |= |array_eq -bool |abstime |abstime |< |abstimelt -bool |abstime |abstime |<= |abstimele -bool |abstime |abstime |<> |abstimene -bool |abstime |abstime |= |abstimeeq -bool |abstime |abstime |> |abstimegt -bool |abstime |abstime |>= |abstimege -bool |abstime |tinterval |<?> |ininterval -bool |bool |bool |< |boollt -bool |bool |bool |<> |boolne -bool |bool |bool |= |booleq -bool |bool |bool |> |boolgt -bool |box |box |&& |box_overlap -bool |box |box |&< |box_overleft -bool |box |box |&> |box_overright -bool |box |box |< |box_lt -bool |box |box |<< |box_left -bool |box |box |<= |box_le -bool |box |box |= |box_eq -bool |box |box |> |box_gt -bool |box |box |>= |box_ge -bool |box |box |>> |box_right -bool |box |box |@ |box_contained -bool |box |box |~ |box_contain -bool |box |box |~= |box_same -bool |bpchar |bpchar |< |bpcharlt -bool |bpchar |bpchar |<= |bpcharle -bool |bpchar |bpchar |<> |bpcharne -bool |bpchar |bpchar |= |bpchareq -bool |bpchar |bpchar |> |bpchargt -bool |bpchar |bpchar |>= |bpcharge -bool |bpchar |text |!~ |textregexne -bool |bpchar |text |!~* |texticregexne -bool |bpchar |text |!~~ |textnlike -bool |bpchar |text |~ |textregexeq -bool |bpchar |text |~* |texticregexeq -bool |bpchar |text |~~ |textlike -bool |char |char |< |charlt -bool |char |char |<= |charle -bool |char |char |<> |charne -bool |char |char |= |chareq -bool |char |char |> |chargt -bool |char |char |>= |charge -bool |char16 |char16 |< |char16lt -bool |char16 |char16 |<= |char16le -bool |char16 |char16 |<> |char16ne -bool |char16 |char16 |= |char16eq -bool |char16 |char16 |> |char16gt -bool |char16 |char16 |>= |char16ge -bool |char16 |text |!~ |char16regexne -bool |char16 |text |!~* |char16icregexne -bool |char16 |text |!~~ |char16nlike -bool |char16 |text |!~~ |char16nlike -bool |char16 |text |~ |char16regexeq -bool |char16 |text |~* |char16icregexeq -bool |char16 |text |~~ |char16like -bool |char16 |text |~~ |char16like -bool |char2 |char2 |< |char2lt -bool |char2 |char2 |<= |char2le -bool |char2 |char2 |<> |char2ne -bool |char2 |char2 |= |char2eq -bool |char2 |char2 |> |char2gt -bool |char2 |char2 |>= |char2ge -bool |char2 |text |!~ |char2regexne -bool |char2 |text |!~* |char2icregexne -bool |char2 |text |!~~ |char2nlike -bool |char2 |text |~ |char2regexeq -bool |char2 |text |~* |char2icregexeq -bool |char2 |text |~~ |char2like -bool |char4 |char4 |< |char4lt -bool |char4 |char4 |<= |char4le -bool |char4 |char4 |<> |char4ne -bool |char4 |char4 |= |char4eq -bool |char4 |char4 |> |char4gt -bool |char4 |char4 |>= |char4ge -bool |char4 |text |!~ |char4regexne -bool |char4 |text |!~* |char4icregexne -bool |char4 |text |!~~ |char4nlike -bool |char4 |text |~ |char4regexeq -bool |char4 |text |~* |char4icregexeq -bool |char4 |text |~~ |char4like -bool |char8 |char8 |< |char8lt -bool |char8 |char8 |<= |char8le -bool |char8 |char8 |<> |char8ne -bool |char8 |char8 |= |char8eq -bool |char8 |char8 |> |char8gt -bool |char8 |char8 |>= |char8ge -bool |char8 |text |!~ |char8regexne -bool |char8 |text |!~* |char8icregexne -bool |char8 |text |!~~ |char8nlike -bool |char8 |text |~ |char8regexeq -bool |char8 |text |~* |char8icregexeq -bool |char8 |text |~~ |char8like -bool |circle |circle |!^ |circle_above -bool |circle |circle |!\| |circle_below -bool |circle |circle |&& |circle_overlap -bool |circle |circle |&< |circle_overleft -bool |circle |circle |&> |circle_overright -bool |circle |circle |< |circle_eq -bool |circle |circle |<< |circle_left -bool |circle |circle |<= |circle_eq -bool |circle |circle |<> |circle_ne -bool |circle |circle |= |circle_eq -bool |circle |circle |> |circle_eq -bool |circle |circle |>= |circle_eq -bool |circle |circle |>> |circle_right -bool |circle |circle |@ |circle_contained -bool |circle |circle |~ |circle_contain -bool |circle |circle |~= |circle_same -bool |date |date |< |date_lt -bool |date |date |<= |date_le -bool |date |date |<> |date_ne -bool |date |date |= |date_eq -bool |date |date |> |date_gt -bool |date |date |>= |date_ge -bool |datetime |datetime |< |datetime_lt -bool |datetime |datetime |<= |datetime_le -bool |datetime |datetime |<> |datetime_ne -bool |datetime |datetime |= |datetime_eq -bool |datetime |datetime |> |datetime_gt -bool |datetime |datetime |>= |datetime_ge -bool |float4 |float4 |< |float4lt -bool |float4 |float4 |<= |float4le -bool |float4 |float4 |<> |float4ne -bool |float4 |float4 |= |float4eq -bool |float4 |float4 |> |float4gt -bool |float4 |float4 |>= |float4ge -bool |float4 |float8 |< |float48lt -bool |float4 |float8 |<= |float48le -bool |float4 |float8 |<> |float48ne -bool |float4 |float8 |= |float48eq -bool |float4 |float8 |> |float48gt -bool |float4 |float8 |>= |float48ge -bool |float8 |float4 |< |float84lt -bool |float8 |float4 |<= |float84le -bool |float8 |float4 |<> |float84ne -bool |float8 |float4 |= |float84eq -bool |float8 |float4 |> |float84gt -bool |float8 |float4 |>= |float84ge -bool |float8 |float8 |< |float8lt -bool |float8 |float8 |<= |float8le -bool |float8 |float8 |<> |float8ne -bool |float8 |float8 |= |float8eq -bool |float8 |float8 |> |float8gt -bool |float8 |float8 |>= |float8ge -bool |int2 |int2 |< |int2lt -bool |int2 |int2 |<= |int2le -bool |int2 |int2 |<> |int2ne -bool |int2 |int2 |= |int2eq -bool |int2 |int2 |> |int2gt -bool |int2 |int2 |>= |int2ge -bool |int4 |int4 |< |int4lt -bool |int4 |int4 |<= |int4le -bool |int4 |int4 |<> |int4ne -bool |int4 |int4 |= |int4eq -bool |int4 |int4 |> |int4gt -bool |int4 |int4 |>= |int4ge -bool |int4 |name |!!= |int4notin -bool |int4 |oid |= |int4eqoid -bool |money |money |< |cash_lt -bool |money |money |<= |cash_le -bool |money |money |<> |cash_ne -bool |money |money |= |cash_eq -bool |money |money |> |cash_gt -bool |money |money |>= |cash_ge -bool |name |name |< |namelt -bool |name |name |<= |namele -bool |name |name |<> |namene -bool |name |name |= |nameeq -bool |name |name |> |namegt -bool |name |name |>= |namege -bool |name |text |!~ |nameregexne -bool |name |text |!~* |nameicregexne -bool |name |text |!~~ |namenlike -bool |name |text |~ |nameregexeq -bool |name |text |~* |nameicregexeq -bool |name |text |~~ |namelike -bool |oid |int4 |= |oideqint4 -bool |oid |name |!!= |oidnotin -bool |oid |oid |< |int4lt -bool |oid |oid |<= |int4le -bool |oid |oid |<> |oidne -bool |oid |oid |= |oideq -bool |oid |oid |> |int4gt -bool |oid |oid |>= |int4ge -bool |oidint2 |oidint2 |< |oidint2lt -bool |oidint2 |oidint2 |<= |oidint2le -bool |oidint2 |oidint2 |<> |oidint2ne -bool |oidint2 |oidint2 |= |oidint2eq -bool |oidint2 |oidint2 |> |oidint2gt -bool |oidint2 |oidint2 |>= |oidint2ge -bool |oidint4 |oidint4 |< |oidint4lt -bool |oidint4 |oidint4 |<= |oidint4le -bool |oidint4 |oidint4 |<> |oidint4ne -bool |oidint4 |oidint4 |= |oidint4eq -bool |oidint4 |oidint4 |> |oidint4gt -bool |oidint4 |oidint4 |>= |oidint4ge -bool |oidname |oidname |< |oidnamelt -bool |oidname |oidname |<= |oidnamele -bool |oidname |oidname |<> |oidnamene -bool |oidname |oidname |= |oidnameeq -bool |oidname |oidname |> |oidnamegt -bool |oidname |oidname |>= |oidnamege -bool |point |box |===> |on_pb -bool |point |path |===` |on_ppath -bool |point |point |!< |point_left -bool |point |point |!> |point_right -bool |point |point |!^ |point_above -bool |point |point |!\| |point_below -bool |point |point |=\|= |point_eq -bool |polygon |polygon |&& |poly_overlap -bool |polygon |polygon |&< |poly_overleft -bool |polygon |polygon |&> |poly_overright -bool |polygon |polygon |<< |poly_left -bool |polygon |polygon |>> |poly_right -bool |polygon |polygon |@ |poly_contained -bool |polygon |polygon |~ |poly_contain -bool |polygon |polygon |~= |poly_same -bool |reltime |reltime |< |reltimelt -bool |reltime |reltime |<= |reltimele -bool |reltime |reltime |<> |reltimene -bool |reltime |reltime |= |reltimeeq -bool |reltime |reltime |> |reltimegt -bool |reltime |reltime |>= |reltimege -bool |text |text |!~ |textregexne -bool |text |text |!~* |texticregexne -bool |text |text |!~~ |textnlike -bool |text |text |< |text_lt -bool |text |text |<= |text_le -bool |text |text |<> |textne -bool |text |text |= |texteq -bool |text |text |> |text_gt -bool |text |text |>= |text_ge -bool |text |text |~ |textregexeq -bool |text |text |~* |texticregexeq -bool |text |text |~~ |textlike -bool |time |time |< |time_lt -bool |time |time |<= |time_le -bool |time |time |<> |time_ne -bool |time |time |= |time_eq -bool |time |time |> |time_gt -bool |time |time |>= |time_ge -bool |timespan |timespan |< |timespan_lt -bool |timespan |timespan |<= |timespan_le -bool |timespan |timespan |<> |timespan_ne -bool |timespan |timespan |= |timespan_eq -bool |timespan |timespan |> |timespan_gt -bool |timespan |timespan |>= |timespan_ge -bool |timestamp |timestamp |< |timestamplt -bool |timestamp |timestamp |<= |timestample -bool |timestamp |timestamp |<> |timestampne -bool |timestamp |timestamp |= |timestampeq -bool |timestamp |timestamp |> |timestampgt -bool |timestamp |timestamp |>= |timestampge -bool |tinterval |reltime |#< |intervallenlt -bool |tinterval |reltime |#<= |intervallenle -bool |tinterval |reltime |#<> |intervallenne -bool |tinterval |reltime |#= |intervalleneq -bool |tinterval |reltime |#> |intervallengt -bool |tinterval |reltime |#>= |intervallenge -bool |tinterval |tinterval |&& |intervalov -bool |tinterval |tinterval |<< |intervalct -bool |tinterval |tinterval |= |intervaleq -bool |varchar |text |!~ |textregexne -bool |varchar |text |!~* |texticregexne -bool |varchar |text |!~~ |textnlike -bool |varchar |text |~ |textregexeq -bool |varchar |text |~* |texticregexeq -bool |varchar |text |~~ |textlike -bool |varchar |varchar |< |varcharlt -bool |varchar |varchar |<= |varcharle -bool |varchar |varchar |<> |varcharne -bool |varchar |varchar |= |varchareq -bool |varchar |varchar |> |varchargt -bool |varchar |varchar |>= |varcharge -char |char |char |* |charmul -char |char |char |+ |charpl -char |char |char |- |charmi -char |char |char |/ |chardiv -date |date |int4 |+ |date_pli -date |date |int4 |- |date_mii -datetime |datetime |timespan |+ |datetime_add_span -datetime |datetime |timespan |- |datetime_sub_span -float4 |float4 |float4 |* |float4mul -float4 |float4 |float4 |+ |float4pl -float4 |float4 |float4 |- |float4mi -float4 |float4 |float4 |/ |float4div -float8 |box |box |<===> |box_distance -float8 |circle |circle |<===> |circle_distance -float8 |float4 |float8 |* |float48mul -float8 |float4 |float8 |+ |float48pl -float8 |float4 |float8 |- |float48mi -float8 |float4 |float8 |/ |float48div -float8 |float8 |float4 |* |float84mul -float8 |float8 |float4 |+ |float84pl -float8 |float8 |float4 |- |float84mi -float8 |float8 |float4 |/ |float84div -float8 |float8 |float8 |* |float8mul -float8 |float8 |float8 |+ |float8pl -float8 |float8 |float8 |- |float8mi -float8 |float8 |float8 |/ |float8div -float8 |float8 |float8 |^ |dpow -float8 |lseg |box |<===> |dist_sb -float8 |lseg |lseg |<===> |lseg_distance -float8 |path |path |<===> |path_distance -float8 |point |box |<===> |dist_pl -float8 |point |box |<===> |dist_ps -float8 |point |box |<===> |dist_pb -float8 |point |lseg |<===> |dist_ps -float8 |point |path |<===> |dist_ppth -float8 |point |point |<===> |point_distance -int2 |int2 |int2 |% |int2mod -int2 |int2 |int2 |* |int2mul -int2 |int2 |int2 |+ |int2pl -int2 |int2 |int2 |- |int2mi -int2 |int2 |int2 |/ |int2div -int4 |date |date |- |date_mi -int4 |int2 |int4 |% |int24mod -int4 |int2 |int4 |* |int24mul -int4 |int2 |int4 |+ |int24pl -int4 |int2 |int4 |- |int24mi -int4 |int2 |int4 |/ |int24div -int4 |int2 |int4 |< |int24lt -int4 |int2 |int4 |<= |int24le -int4 |int2 |int4 |<> |int24ne -int4 |int2 |int4 |= |int24eq -int4 |int2 |int4 |> |int24gt -int4 |int2 |int4 |>= |int24ge -int4 |int4 |int2 |% |int42mod -int4 |int4 |int2 |* |int42mul -int4 |int4 |int2 |+ |int42pl -int4 |int4 |int2 |- |int42mi -int4 |int4 |int2 |/ |int42div -int4 |int4 |int2 |< |int42lt -int4 |int4 |int2 |<= |int42le -int4 |int4 |int2 |<> |int42ne -int4 |int4 |int2 |= |int42eq -int4 |int4 |int2 |> |int42gt -int4 |int4 |int2 |>= |int42ge -int4 |int4 |int4 |% |int4mod -int4 |int4 |int4 |* |int4mul -int4 |int4 |int4 |+ |int4pl -int4 |int4 |int4 |- |int4mi -int4 |int4 |int4 |/ |int4div -money |money |float8 |* |cash_mul -money |money |float8 |/ |cash_div -money |money |money |+ |cash_pl -money |money |money |- |cash_mi -timespan |datetime |datetime |- |datetime_sub -timespan |timespan |timespan |+ |timespan_add -timespan |timespan |timespan |- |timespan_sub -tinterval|abstime |abstime |<#> |mktinterval - - -.fi -.SH "LEFT UNARY OPERATORS" -The table below gives the left unary operators that are -registered in the system catalogs. - -This list was generated from the Postgres system catalogs with the query: - -.nf -SELECT o.oprname AS left_unary, - right.typname AS operand, - result.typname AS return_type -FROM pg_operator o, pg_type right, pg_type result -WHERE o.oprkind = 'l' AND -- left unary - o.oprright = right.oid AND - o.oprresult = result.oid -ORDER BY operand; - -left_unary|operand |return_type -----------+---------+----------- -@@ |box |point -@ |float4 |float4 -- |float4 |float4 -|/ |float8 |float8 -@ |float8 |float8 -; |float8 |float8 -: |float8 |float8 -% |float8 |float8 -||/ |float8 |float8 -- |float8 |float8 -- |int2 |int2 -!! |int4 |int4 -- |int4 |int4 -# |polygon |int4 -- |timespan |timespan -| |tinterval|abstime - -.fi -.in -.SH "RIGHT UNARY OPERATORS" -The table below gives the right unary operators that are -registered in the system catalogs. - -This list was generated from the Postgres system catalogs with the query: - -.nf -SELECT o.oprname AS right_unary, - left.typname AS operand, - result.typname AS return_type -FROM pg_operator o, pg_type left, pg_type result -WHERE o.oprkind = 'r' AND -- right unary - o.oprleft = left.oid AND - o.oprresult = result.oid -ORDER BY operand; - -right_unary|operand|return_type ------------+-------+----------- -% |float8 |float8 -! |int4 |int4 - -.fi -.in -.SH "AGGREGATE FUNCTIONS" -The table below gives the aggregate functions that are -registered in the system catalogs. - -This list was generated from the Postgres system catalogs with the query: - -.nf -SELECT a.aggname, t.typname -FROM pg_aggregate a, pg_type t -WHERE a.aggbasetype = t.oid -ORDER BY aggname, typname; - -aggname|typname --------+-------- -avg |float4 -avg |float8 -avg |int2 -avg |int4 -avg |money -max |abstime -max |date -max |datetime -max |float4 -max |float8 -max |int2 -max |int4 -max |money -max |timespan -min |abstime -min |date -min |datetime -min |float4 -min |float8 -min |int2 -min |int4 -min |money -min |timespan -sum |float4 -sum |float8 -sum |int2 -sum |int4 -sum |money - -.fi -\fBcount\fR is also available, where \fBcount(*)\fR returns a count of all -rows while \fBcount(column_name)\fR returns a count of all non-null fields -in the specified column. - -.in -.SH "SEE ALSO" -.IR set (l), -.IR show (l), -.IR reset (l). -For examples on specifying literals of built-in types, see -.IR SQL (l). -.SH BUGS -.PP -Although most of the input and output functions corresponding to the -base types (e.g., integers and floating point numbers) do some -error-checking, some are not particularly rigorous about it. More -importantly, few of the operators and functions (e.g., -addition and multiplication) perform any error-checking at all. -Consequently, many of the numeric operators can (for example) -silently underflow or overflow. -.PP -Some of the input and output functions are not invertible. That is, -the result of an output function may lose precision when compared to -the original input. |