.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/built-in.3,v 1.5 1997/04/23 03:18:27 scrappy Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/built-in.3,v 1.6 1997/04/27 19:26:24 thomas Exp $
.TH BUILT-INS INTRO 04/01/97 PostgreSQL PostgreSQL
.SH "DESCRIPTION"
This section describes the data types, functions and operators
float8 diameter(circle) diameter of circle
float8 area(circle) area of circle
.fi
-
-.PP
+.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;
+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
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 |<> |boolne
-bool |bool |bool |= |booleq
-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
+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 |!~~ |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 |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 |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 |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 |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
-float4 |float4 |float4 |* |float4mul
-float4 |float4 |float4 |+ |float4pl
-float4 |float4 |float4 |- |float4mi
-float4 |float4 |float4 |/ |float4div
-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
-int2 |int2 |int2 |% |int2mod
-int2 |int2 |int2 |* |int2mul
-int2 |int2 |int2 |+ |int2pl
-int2 |int2 |int2 |- |int2mi
-int2 |int2 |int2 |/ |int2div
-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
-int4 |point |point |<===> |pointdist
-tinterval|abstime |abstime |<#> |mktinterval
+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
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
+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
-| |tinterval|abstime
+@@ |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
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
+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
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
+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
-max |float4
-max |float8
-max |int2
-max |int4
-min |float4
-min |float8
-min |int2
-min |int4
-sum |float4
-sum |float8
-sum |int2
-sum |int4
-
-\fBcount\fR is also available.
+-------+--------
+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
+
+\fBcount\fR is also available, where
+.BR count(*)
+returns a count of all rows while
+.BR count(column_name)
+returns a count of all non-null fields in the specified column.
.fi
.in
.PP
Although most of the input and output functions correponding to the
base types (e.g., integers and floating point numbers) do some
-error-checking, none of them are particularly rigorous about it. More
-importantly, almost none of the operators and functions (e.g.,
+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 operations will (for example)
+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,