Commit ff5edbd9 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Update SQL query results for lists of operators and functions.

Add a little info on count().
parent 0a95a17d
.\" This is -*-nroff-*- .\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here.... .\" 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 .TH BUILT-INS INTRO 04/01/97 PostgreSQL PostgreSQL
.SH "DESCRIPTION" .SH "DESCRIPTION"
This section describes the data types, functions and operators This section describes the data types, functions and operators
...@@ -534,30 +534,25 @@ circle ...@@ -534,30 +534,25 @@ circle
float8 diameter(circle) diameter of circle float8 diameter(circle) diameter of circle
float8 area(circle) area of circle float8 area(circle) area of circle
.fi .fi
.SH "BINARY OPERATORS"
.PP
This list was generated from the Postgres system catalogs with the This list was generated from the Postgres system catalogs with the
query: query:
.nf .nf
SELECT SELECT t0.typname AS result,
t0.typname AS result, t1.typname AS left_type,
t1.typname AS left_type, t2.typname AS right_type,
t2.typname AS right_type, o.oprname AS operatr,
o.oprname AS operatr, p.proname AS func_name
p.proname AS func_name FROM pg_proc p, pg_type t0,
FROM pg_type t1, pg_type t2,
pg_proc p, pg_type t0, pg_operator o
pg_type t1, pg_type t2, WHERE p.prorettype = t0.oid AND
pg_operator o RegprocToOid(o.oprcode) = p.oid AND
WHERE p.pronargs = 2 AND
p.prorettype = t0.oid AND o.oprleft = t1.oid AND
RegprocToOid(o.oprcode) = p.oid AND o.oprright = t2.oid
p.pronargs = 2 AND ORDER BY result, left_type, right_type, operatr;
o.oprleft = t1.oid AND
o.oprright = t2.oid
ORDER BY
result, left_type, right_type, operatr;
.fi .fi
These operations are cast in terms of SQL types and so are These operations are cast in terms of SQL types and so are
...@@ -565,329 +560,393 @@ These operations are cast in terms of SQL types and so are ...@@ -565,329 +560,393 @@ These operations are cast in terms of SQL types and so are
directly usable as C function prototypes. directly usable as C function prototypes.
.nf .nf
result |left_type |right_type|operatr|func_name result |left_type |right_type|operatr|func_name
---------+----------+----------+-------+--------------- ---------+----------+----------+-------+-----------------
_aclitem |_aclitem |aclitem |+ |aclinsert _aclitem |_aclitem |aclitem |+ |aclinsert
_aclitem |_aclitem |aclitem |- |aclremove _aclitem |_aclitem |aclitem |- |aclremove
abstime |abstime |reltime |+ |timepl abstime |abstime |reltime |+ |timepl
abstime |abstime |reltime |- |timemi abstime |abstime |reltime |- |timemi
bool |_abstime |_abstime |= |array_eq bool |_abstime |_abstime |= |array_eq
bool |_aclitem |_aclitem |= |array_eq bool |_aclitem |_aclitem |= |array_eq
bool |_aclitem |aclitem |~ |aclcontains bool |_aclitem |aclitem |~ |aclcontains
bool |_bool |_bool |= |array_eq bool |_bool |_bool |= |array_eq
bool |_box |_box |= |array_eq bool |_box |_box |= |array_eq
bool |_bytea |_bytea |= |array_eq bool |_bytea |_bytea |= |array_eq
bool |_char |_char |= |array_eq bool |_char |_char |= |array_eq
bool |_char16 |_char16 |= |array_eq bool |_char16 |_char16 |= |array_eq
bool |_cid |_cid |= |array_eq bool |_cid |_cid |= |array_eq
bool |_filename |_filename |= |array_eq bool |_filename |_filename |= |array_eq
bool |_float4 |_float4 |= |array_eq bool |_float4 |_float4 |= |array_eq
bool |_float8 |_float8 |= |array_eq bool |_float8 |_float8 |= |array_eq
bool |_int2 |_int2 |= |array_eq bool |_int2 |_int2 |= |array_eq
bool |_int28 |_int28 |= |array_eq bool |_int28 |_int28 |= |array_eq
bool |_int4 |_int4 |= |array_eq bool |_int4 |_int4 |= |array_eq
bool |_lseg |_lseg |= |array_eq bool |_lseg |_lseg |= |array_eq
bool |_name |_name |= |array_eq bool |_name |_name |= |array_eq
bool |_oid |_oid |= |array_eq bool |_oid |_oid |= |array_eq
bool |_oid8 |_oid8 |= |array_eq bool |_oid8 |_oid8 |= |array_eq
bool |_path |_path |= |array_eq bool |_path |_path |= |array_eq
bool |_point |_point |= |array_eq bool |_point |_point |= |array_eq
bool |_polygon |_polygon |= |array_eq bool |_polygon |_polygon |= |array_eq
bool |_ref |_ref |= |array_eq bool |_ref |_ref |= |array_eq
bool |_regproc |_regproc |= |array_eq bool |_regproc |_regproc |= |array_eq
bool |_reltime |_reltime |= |array_eq bool |_reltime |_reltime |= |array_eq
bool |_stub |_stub |= |array_eq bool |_stub |_stub |= |array_eq
bool |_text |_text |= |array_eq bool |_text |_text |= |array_eq
bool |_tid |_tid |= |array_eq bool |_tid |_tid |= |array_eq
bool |_tinterval|_tinterval|= |array_eq bool |_tinterval|_tinterval|= |array_eq
bool |_xid |_xid |= |array_eq bool |_xid |_xid |= |array_eq
bool |abstime |abstime |< |abstimelt bool |abstime |abstime |< |abstimelt
bool |abstime |abstime |<= |abstimele bool |abstime |abstime |<= |abstimele
bool |abstime |abstime |<> |abstimene bool |abstime |abstime |<> |abstimene
bool |abstime |abstime |= |abstimeeq bool |abstime |abstime |= |abstimeeq
bool |abstime |abstime |> |abstimegt bool |abstime |abstime |> |abstimegt
bool |abstime |abstime |>= |abstimege bool |abstime |abstime |>= |abstimege
bool |abstime |tinterval |<?> |ininterval bool |abstime |tinterval |<?> |ininterval
bool |bool |bool |<> |boolne bool |bool |bool |< |boollt
bool |bool |bool |= |booleq bool |bool |bool |<> |boolne
bool |box |box |&& |box_overlap bool |bool |bool |= |booleq
bool |box |box |&< |box_overleft bool |bool |bool |> |boolgt
bool |box |box |&> |box_overright bool |box |box |&& |box_overlap
bool |box |box |< |box_lt bool |box |box |&< |box_overleft
bool |box |box |<< |box_left bool |box |box |&> |box_overright
bool |box |box |<= |box_le bool |box |box |< |box_lt
bool |box |box |= |box_eq bool |box |box |<< |box_left
bool |box |box |> |box_gt bool |box |box |<= |box_le
bool |box |box |>= |box_ge bool |box |box |= |box_eq
bool |box |box |>> |box_right bool |box |box |> |box_gt
bool |box |box |@ |box_contained bool |box |box |>= |box_ge
bool |box |box |~ |box_contain bool |box |box |>> |box_right
bool |box |box |~= |box_same bool |box |box |@ |box_contained
bool |bpchar |bpchar |< |bpcharlt bool |box |box |~ |box_contain
bool |bpchar |bpchar |<= |bpcharle bool |box |box |~= |box_same
bool |bpchar |bpchar |<> |bpcharne bool |bpchar |bpchar |< |bpcharlt
bool |bpchar |bpchar |= |bpchareq bool |bpchar |bpchar |<= |bpcharle
bool |bpchar |bpchar |> |bpchargt bool |bpchar |bpchar |<> |bpcharne
bool |bpchar |bpchar |>= |bpcharge bool |bpchar |bpchar |= |bpchareq
bool |bpchar |text |!~ |textregexne bool |bpchar |bpchar |> |bpchargt
bool |bpchar |text |!~* |texticregexne bool |bpchar |bpchar |>= |bpcharge
bool |bpchar |text |!~~ |textnlike bool |bpchar |text |!~ |textregexne
bool |bpchar |text |~ |textregexeq bool |bpchar |text |!~* |texticregexne
bool |bpchar |text |~* |texticregexeq bool |bpchar |text |!~~ |textnlike
bool |bpchar |text |~~ |textlike bool |bpchar |text |~ |textregexeq
bool |char |char |< |charlt bool |bpchar |text |~* |texticregexeq
bool |char |char |<= |charle bool |bpchar |text |~~ |textlike
bool |char |char |<> |charne bool |char |char |< |charlt
bool |char |char |= |chareq bool |char |char |<= |charle
bool |char |char |> |chargt bool |char |char |<> |charne
bool |char |char |>= |charge bool |char |char |= |chareq
bool |char16 |char16 |< |char16lt bool |char |char |> |chargt
bool |char16 |char16 |<= |char16le bool |char |char |>= |charge
bool |char16 |char16 |<> |char16ne bool |char16 |char16 |< |char16lt
bool |char16 |char16 |= |char16eq bool |char16 |char16 |<= |char16le
bool |char16 |char16 |> |char16gt bool |char16 |char16 |<> |char16ne
bool |char16 |char16 |>= |char16ge bool |char16 |char16 |= |char16eq
bool |char16 |text |!~ |char16regexne bool |char16 |char16 |> |char16gt
bool |char16 |char16 |>= |char16ge
bool |char16 |text |!~ |char16regexne
bool |char16 |text |!~* |char16icregexne bool |char16 |text |!~* |char16icregexne
bool |char16 |text |!~~ |char16nlike bool |char16 |text |!~~ |char16nlike
bool |char16 |text |!~~ |char16nlike bool |char16 |text |!~~ |char16nlike
bool |char16 |text |~ |char16regexeq bool |char16 |text |~ |char16regexeq
bool |char16 |text |~* |char16icregexeq bool |char16 |text |~* |char16icregexeq
bool |char16 |text |~~ |char16like bool |char16 |text |~~ |char16like
bool |char16 |text |~~ |char16like bool |char16 |text |~~ |char16like
bool |char2 |char2 |< |char2lt bool |char2 |char2 |< |char2lt
bool |char2 |char2 |<= |char2le bool |char2 |char2 |<= |char2le
bool |char2 |char2 |<> |char2ne bool |char2 |char2 |<> |char2ne
bool |char2 |char2 |= |char2eq bool |char2 |char2 |= |char2eq
bool |char2 |char2 |> |char2gt bool |char2 |char2 |> |char2gt
bool |char2 |char2 |>= |char2ge bool |char2 |char2 |>= |char2ge
bool |char2 |text |!~ |char2regexne bool |char2 |text |!~ |char2regexne
bool |char2 |text |!~* |char2icregexne bool |char2 |text |!~* |char2icregexne
bool |char2 |text |!~~ |char2nlike bool |char2 |text |!~~ |char2nlike
bool |char2 |text |~ |char2regexeq bool |char2 |text |~ |char2regexeq
bool |char2 |text |~* |char2icregexeq bool |char2 |text |~* |char2icregexeq
bool |char2 |text |~~ |char2like bool |char2 |text |~~ |char2like
bool |char4 |char4 |< |char4lt bool |char4 |char4 |< |char4lt
bool |char4 |char4 |<= |char4le bool |char4 |char4 |<= |char4le
bool |char4 |char4 |<> |char4ne bool |char4 |char4 |<> |char4ne
bool |char4 |char4 |= |char4eq bool |char4 |char4 |= |char4eq
bool |char4 |char4 |> |char4gt bool |char4 |char4 |> |char4gt
bool |char4 |char4 |>= |char4ge bool |char4 |char4 |>= |char4ge
bool |char4 |text |!~ |char4regexne bool |char4 |text |!~ |char4regexne
bool |char4 |text |!~* |char4icregexne bool |char4 |text |!~* |char4icregexne
bool |char4 |text |!~~ |char4nlike bool |char4 |text |!~~ |char4nlike
bool |char4 |text |~ |char4regexeq bool |char4 |text |~ |char4regexeq
bool |char4 |text |~* |char4icregexeq bool |char4 |text |~* |char4icregexeq
bool |char4 |text |~~ |char4like bool |char4 |text |~~ |char4like
bool |char8 |char8 |< |char8lt bool |char8 |char8 |< |char8lt
bool |char8 |char8 |<= |char8le bool |char8 |char8 |<= |char8le
bool |char8 |char8 |<> |char8ne bool |char8 |char8 |<> |char8ne
bool |char8 |char8 |= |char8eq bool |char8 |char8 |= |char8eq
bool |char8 |char8 |> |char8gt bool |char8 |char8 |> |char8gt
bool |char8 |char8 |>= |char8ge bool |char8 |char8 |>= |char8ge
bool |char8 |text |!~ |char8regexne bool |char8 |text |!~ |char8regexne
bool |char8 |text |!~* |char8icregexne bool |char8 |text |!~* |char8icregexne
bool |char8 |text |!~~ |char8nlike bool |char8 |text |!~~ |char8nlike
bool |char8 |text |~ |char8regexeq bool |char8 |text |~ |char8regexeq
bool |char8 |text |~* |char8icregexeq bool |char8 |text |~* |char8icregexeq
bool |char8 |text |~~ |char8like bool |char8 |text |~~ |char8like
bool |date |date |< |date_lt bool |circle |circle |!^ |circle_above
bool |date |date |<= |date_le bool |circle |circle |!\| |circle_below
bool |date |date |<> |date_ne bool |circle |circle |&& |circle_overlap
bool |date |date |= |date_eq bool |circle |circle |&< |circle_overleft
bool |date |date |> |date_gt bool |circle |circle |&> |circle_overright
bool |date |date |>= |date_ge bool |circle |circle |< |circle_eq
bool |float4 |float4 |< |float4lt bool |circle |circle |<< |circle_left
bool |float4 |float4 |<= |float4le bool |circle |circle |<= |circle_eq
bool |float4 |float4 |<> |float4ne bool |circle |circle |<> |circle_ne
bool |float4 |float4 |= |float4eq bool |circle |circle |= |circle_eq
bool |float4 |float4 |> |float4gt bool |circle |circle |> |circle_eq
bool |float4 |float4 |>= |float4ge bool |circle |circle |>= |circle_eq
bool |float4 |float8 |< |float48lt bool |circle |circle |>> |circle_right
bool |float4 |float8 |<= |float48le bool |circle |circle |@ |circle_contained
bool |float4 |float8 |<> |float48ne bool |circle |circle |~ |circle_contain
bool |float4 |float8 |= |float48eq bool |circle |circle |~= |circle_same
bool |float4 |float8 |> |float48gt bool |date |date |< |date_lt
bool |float4 |float8 |>= |float48ge bool |date |date |<= |date_le
bool |float8 |float4 |< |float84lt bool |date |date |<> |date_ne
bool |float8 |float4 |<= |float84le bool |date |date |= |date_eq
bool |float8 |float4 |<> |float84ne bool |date |date |> |date_gt
bool |float8 |float4 |= |float84eq bool |date |date |>= |date_ge
bool |float8 |float4 |> |float84gt bool |datetime |datetime |< |datetime_lt
bool |float8 |float4 |>= |float84ge bool |datetime |datetime |<= |datetime_le
bool |float8 |float8 |< |float8lt bool |datetime |datetime |<> |datetime_ne
bool |float8 |float8 |<= |float8le bool |datetime |datetime |= |datetime_eq
bool |float8 |float8 |<> |float8ne bool |datetime |datetime |> |datetime_gt
bool |float8 |float8 |= |float8eq bool |datetime |datetime |>= |datetime_ge
bool |float8 |float8 |> |float8gt bool |float4 |float4 |< |float4lt
bool |float8 |float8 |>= |float8ge bool |float4 |float4 |<= |float4le
bool |int2 |int2 |< |int2lt bool |float4 |float4 |<> |float4ne
bool |int2 |int2 |<= |int2le bool |float4 |float4 |= |float4eq
bool |int2 |int2 |<> |int2ne bool |float4 |float4 |> |float4gt
bool |int2 |int2 |= |int2eq bool |float4 |float4 |>= |float4ge
bool |int2 |int2 |> |int2gt bool |float4 |float8 |< |float48lt
bool |int2 |int2 |>= |int2ge bool |float4 |float8 |<= |float48le
bool |int4 |int4 |< |int4lt bool |float4 |float8 |<> |float48ne
bool |int4 |int4 |<= |int4le bool |float4 |float8 |= |float48eq
bool |int4 |int4 |<> |int4ne bool |float4 |float8 |> |float48gt
bool |int4 |int4 |= |int4eq bool |float4 |float8 |>= |float48ge
bool |int4 |int4 |> |int4gt bool |float8 |float4 |< |float84lt
bool |int4 |int4 |>= |int4ge bool |float8 |float4 |<= |float84le
bool |int4 |name |!!= |int4notin bool |float8 |float4 |<> |float84ne
bool |int4 |oid |= |int4eqoid bool |float8 |float4 |= |float84eq
bool |name |name |< |namelt bool |float8 |float4 |> |float84gt
bool |name |name |<= |namele bool |float8 |float4 |>= |float84ge
bool |name |name |<> |namene bool |float8 |float8 |< |float8lt
bool |name |name |= |nameeq bool |float8 |float8 |<= |float8le
bool |name |name |> |namegt bool |float8 |float8 |<> |float8ne
bool |name |name |>= |namege bool |float8 |float8 |= |float8eq
bool |name |text |!~ |nameregexne bool |float8 |float8 |> |float8gt
bool |name |text |!~* |nameicregexne bool |float8 |float8 |>= |float8ge
bool |name |text |!~~ |namenlike bool |int2 |int2 |< |int2lt
bool |name |text |~ |nameregexeq bool |int2 |int2 |<= |int2le
bool |name |text |~* |nameicregexeq bool |int2 |int2 |<> |int2ne
bool |name |text |~~ |namelike bool |int2 |int2 |= |int2eq
bool |oid |int4 |= |oideqint4 bool |int2 |int2 |> |int2gt
bool |oid |name |!!= |oidnotin bool |int2 |int2 |>= |int2ge
bool |oid |oid |< |int4lt bool |int4 |int4 |< |int4lt
bool |oid |oid |<= |int4le bool |int4 |int4 |<= |int4le
bool |oid |oid |<> |oidne bool |int4 |int4 |<> |int4ne
bool |oid |oid |= |oideq bool |int4 |int4 |= |int4eq
bool |oid |oid |> |int4gt bool |int4 |int4 |> |int4gt
bool |oid |oid |>= |int4ge bool |int4 |int4 |>= |int4ge
bool |oidint2 |oidint2 |< |oidint2lt bool |int4 |name |!!= |int4notin
bool |oidint2 |oidint2 |<= |oidint2le bool |int4 |oid |= |int4eqoid
bool |oidint2 |oidint2 |<> |oidint2ne bool |money |money |< |cash_lt
bool |oidint2 |oidint2 |= |oidint2eq bool |money |money |<= |cash_le
bool |oidint2 |oidint2 |> |oidint2gt bool |money |money |<> |cash_ne
bool |oidint2 |oidint2 |>= |oidint2ge bool |money |money |= |cash_eq
bool |oidint4 |oidint4 |< |oidint4lt bool |money |money |> |cash_gt
bool |oidint4 |oidint4 |<= |oidint4le bool |money |money |>= |cash_ge
bool |oidint4 |oidint4 |<> |oidint4ne bool |name |name |< |namelt
bool |oidint4 |oidint4 |= |oidint4eq bool |name |name |<= |namele
bool |oidint4 |oidint4 |> |oidint4gt bool |name |name |<> |namene
bool |oidint4 |oidint4 |>= |oidint4ge bool |name |name |= |nameeq
bool |oidname |oidname |< |oidnamelt bool |name |name |> |namegt
bool |oidname |oidname |<= |oidnamele bool |name |name |>= |namege
bool |oidname |oidname |<> |oidnamene bool |name |text |!~ |nameregexne
bool |oidname |oidname |= |oidnameeq bool |name |text |!~* |nameicregexne
bool |oidname |oidname |> |oidnamegt bool |name |text |!~~ |namenlike
bool |oidname |oidname |>= |oidnamege bool |name |text |~ |nameregexeq
bool |point |box |===> |on_pb bool |name |text |~* |nameicregexeq
bool |point |path |===` |on_ppath bool |name |text |~~ |namelike
bool |point |point |!< |point_left bool |oid |int4 |= |oideqint4
bool |point |point |!> |point_right bool |oid |name |!!= |oidnotin
bool |point |point |!^ |point_above bool |oid |oid |< |int4lt
bool |point |point |!\| |point_below bool |oid |oid |<= |int4le
bool |point |point |=\|= |point_eq bool |oid |oid |<> |oidne
bool |polygon |polygon |&& |poly_overlap bool |oid |oid |= |oideq
bool |polygon |polygon |&< |poly_overleft bool |oid |oid |> |int4gt
bool |polygon |polygon |&> |poly_overright bool |oid |oid |>= |int4ge
bool |polygon |polygon |<< |poly_left bool |oidint2 |oidint2 |< |oidint2lt
bool |polygon |polygon |>> |poly_right bool |oidint2 |oidint2 |<= |oidint2le
bool |polygon |polygon |@ |poly_contained bool |oidint2 |oidint2 |<> |oidint2ne
bool |polygon |polygon |~ |poly_contain bool |oidint2 |oidint2 |= |oidint2eq
bool |polygon |polygon |~= |poly_same bool |oidint2 |oidint2 |> |oidint2gt
bool |reltime |reltime |< |reltimelt bool |oidint2 |oidint2 |>= |oidint2ge
bool |reltime |reltime |<= |reltimele bool |oidint4 |oidint4 |< |oidint4lt
bool |reltime |reltime |<> |reltimene bool |oidint4 |oidint4 |<= |oidint4le
bool |reltime |reltime |= |reltimeeq bool |oidint4 |oidint4 |<> |oidint4ne
bool |reltime |reltime |> |reltimegt bool |oidint4 |oidint4 |= |oidint4eq
bool |reltime |reltime |>= |reltimege bool |oidint4 |oidint4 |> |oidint4gt
bool |text |text |!~ |textregexne bool |oidint4 |oidint4 |>= |oidint4ge
bool |text |text |!~* |texticregexne bool |oidname |oidname |< |oidnamelt
bool |text |text |!~~ |textnlike bool |oidname |oidname |<= |oidnamele
bool |text |text |< |text_lt bool |oidname |oidname |<> |oidnamene
bool |text |text |<= |text_le bool |oidname |oidname |= |oidnameeq
bool |text |text |<> |textne bool |oidname |oidname |> |oidnamegt
bool |text |text |= |texteq bool |oidname |oidname |>= |oidnamege
bool |text |text |> |text_gt bool |point |box |===> |on_pb
bool |text |text |>= |text_ge bool |point |path |===` |on_ppath
bool |text |text |~ |textregexeq bool |point |point |!< |point_left
bool |text |text |~* |texticregexeq bool |point |point |!> |point_right
bool |text |text |~~ |textlike bool |point |point |!^ |point_above
bool |time |time |< |time_lt bool |point |point |!\| |point_below
bool |time |time |<= |time_le bool |point |point |=\|= |point_eq
bool |time |time |<> |time_ne bool |polygon |polygon |&& |poly_overlap
bool |time |time |= |time_eq bool |polygon |polygon |&< |poly_overleft
bool |time |time |> |time_gt bool |polygon |polygon |&> |poly_overright
bool |time |time |>= |time_ge bool |polygon |polygon |<< |poly_left
bool |tinterval |reltime |#< |intervallenlt bool |polygon |polygon |>> |poly_right
bool |tinterval |reltime |#<= |intervallenle bool |polygon |polygon |@ |poly_contained
bool |tinterval |reltime |#<> |intervallenne bool |polygon |polygon |~ |poly_contain
bool |tinterval |reltime |#= |intervalleneq bool |polygon |polygon |~= |poly_same
bool |tinterval |reltime |#> |intervallengt bool |reltime |reltime |< |reltimelt
bool |tinterval |reltime |#>= |intervallenge bool |reltime |reltime |<= |reltimele
bool |tinterval |tinterval |&& |intervalov bool |reltime |reltime |<> |reltimene
bool |tinterval |tinterval |<< |intervalct bool |reltime |reltime |= |reltimeeq
bool |tinterval |tinterval |= |intervaleq bool |reltime |reltime |> |reltimegt
bool |varchar |text |!~ |textregexne bool |reltime |reltime |>= |reltimege
bool |varchar |text |!~* |texticregexne bool |text |text |!~ |textregexne
bool |varchar |text |!~~ |textnlike bool |text |text |!~* |texticregexne
bool |varchar |text |~ |textregexeq bool |text |text |!~~ |textnlike
bool |varchar |text |~* |texticregexeq bool |text |text |< |text_lt
bool |varchar |text |~~ |textlike bool |text |text |<= |text_le
bool |varchar |varchar |< |varcharlt bool |text |text |<> |textne
bool |varchar |varchar |<= |varcharle bool |text |text |= |texteq
bool |varchar |varchar |<> |varcharne bool |text |text |> |text_gt
bool |varchar |varchar |= |varchareq bool |text |text |>= |text_ge
bool |varchar |varchar |> |varchargt bool |text |text |~ |textregexeq
bool |varchar |varchar |>= |varcharge bool |text |text |~* |texticregexeq
char |char |char |* |charmul bool |text |text |~~ |textlike
char |char |char |+ |charpl bool |time |time |< |time_lt
char |char |char |- |charmi bool |time |time |<= |time_le
char |char |char |/ |chardiv bool |time |time |<> |time_ne
float4 |float4 |float4 |* |float4mul bool |time |time |= |time_eq
float4 |float4 |float4 |+ |float4pl bool |time |time |> |time_gt
float4 |float4 |float4 |- |float4mi bool |time |time |>= |time_ge
float4 |float4 |float4 |/ |float4div bool |timespan |timespan |< |timespan_lt
float8 |float4 |float8 |* |float48mul bool |timespan |timespan |<= |timespan_le
float8 |float4 |float8 |+ |float48pl bool |timespan |timespan |<> |timespan_ne
float8 |float4 |float8 |- |float48mi bool |timespan |timespan |= |timespan_eq
float8 |float4 |float8 |/ |float48div bool |timespan |timespan |> |timespan_gt
float8 |float8 |float4 |* |float84mul bool |timespan |timespan |>= |timespan_ge
float8 |float8 |float4 |+ |float84pl bool |timestamp |timestamp |< |timestamplt
float8 |float8 |float4 |- |float84mi bool |timestamp |timestamp |<= |timestample
float8 |float8 |float4 |/ |float84div bool |timestamp |timestamp |<> |timestampne
float8 |float8 |float8 |* |float8mul bool |timestamp |timestamp |= |timestampeq
float8 |float8 |float8 |+ |float8pl bool |timestamp |timestamp |> |timestampgt
float8 |float8 |float8 |- |float8mi bool |timestamp |timestamp |>= |timestampge
float8 |float8 |float8 |/ |float8div bool |tinterval |reltime |#< |intervallenlt
float8 |float8 |float8 |^ |dpow bool |tinterval |reltime |#<= |intervallenle
int2 |int2 |int2 |% |int2mod bool |tinterval |reltime |#<> |intervallenne
int2 |int2 |int2 |* |int2mul bool |tinterval |reltime |#= |intervalleneq
int2 |int2 |int2 |+ |int2pl bool |tinterval |reltime |#> |intervallengt
int2 |int2 |int2 |- |int2mi bool |tinterval |reltime |#>= |intervallenge
int2 |int2 |int2 |/ |int2div bool |tinterval |tinterval |&& |intervalov
int4 |int2 |int4 |% |int24mod bool |tinterval |tinterval |<< |intervalct
int4 |int2 |int4 |* |int24mul bool |tinterval |tinterval |= |intervaleq
int4 |int2 |int4 |+ |int24pl bool |varchar |text |!~ |textregexne
int4 |int2 |int4 |- |int24mi bool |varchar |text |!~* |texticregexne
int4 |int2 |int4 |/ |int24div bool |varchar |text |!~~ |textnlike
int4 |int2 |int4 |< |int24lt bool |varchar |text |~ |textregexeq
int4 |int2 |int4 |<= |int24le bool |varchar |text |~* |texticregexeq
int4 |int2 |int4 |<> |int24ne bool |varchar |text |~~ |textlike
int4 |int2 |int4 |= |int24eq bool |varchar |varchar |< |varcharlt
int4 |int2 |int4 |> |int24gt bool |varchar |varchar |<= |varcharle
int4 |int2 |int4 |>= |int24ge bool |varchar |varchar |<> |varcharne
int4 |int4 |int2 |% |int42mod bool |varchar |varchar |= |varchareq
int4 |int4 |int2 |* |int42mul bool |varchar |varchar |> |varchargt
int4 |int4 |int2 |+ |int42pl bool |varchar |varchar |>= |varcharge
int4 |int4 |int2 |- |int42mi char |char |char |* |charmul
int4 |int4 |int2 |/ |int42div char |char |char |+ |charpl
int4 |int4 |int2 |< |int42lt char |char |char |- |charmi
int4 |int4 |int2 |<= |int42le char |char |char |/ |chardiv
int4 |int4 |int2 |<> |int42ne date |date |int4 |+ |date_pli
int4 |int4 |int2 |= |int42eq date |date |int4 |- |date_mii
int4 |int4 |int2 |> |int42gt datetime |datetime |timespan |+ |datetime_add_span
int4 |int4 |int2 |>= |int42ge datetime |datetime |timespan |- |datetime_sub_span
int4 |int4 |int4 |% |int4mod float4 |float4 |float4 |* |float4mul
int4 |int4 |int4 |* |int4mul float4 |float4 |float4 |+ |float4pl
int4 |int4 |int4 |+ |int4pl float4 |float4 |float4 |- |float4mi
int4 |int4 |int4 |- |int4mi float4 |float4 |float4 |/ |float4div
int4 |int4 |int4 |/ |int4div float8 |box |box |<===> |box_distance
int4 |point |point |<===> |pointdist float8 |circle |circle |<===> |circle_distance
tinterval|abstime |abstime |<#> |mktinterval 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 .fi
...@@ -898,31 +957,33 @@ registered in the system catalogs. ...@@ -898,31 +957,33 @@ registered in the system catalogs.
This list was generated from the Postgres system catalogs with the query: This list was generated from the Postgres system catalogs with the query:
.nf .nf
SELECT o.oprname AS left_unary, SELECT o.oprname AS left_unary,
right.typname AS operand, right.typname AS operand,
result.typname AS return_type result.typname AS return_type
FROM pg_operator o, pg_type right, pg_type result FROM pg_operator o, pg_type right, pg_type result
WHERE o.oprkind = 'l' AND -- left unary WHERE o.oprkind = 'l' AND -- left unary
o.oprright = right.oid AND o.oprright = right.oid AND
o.oprresult = result.oid o.oprresult = result.oid
ORDER BY operand; ORDER BY operand;
left_unary|operand |return_type left_unary|operand |return_type
----------+---------+----------- ----------+---------+-----------
@@ |box |point @@ |box |point
@ |float4 |float4 @ |float4 |float4
- |float4 |float4 - |float4 |float4
; |float8 |float8 |/ |float8 |float8
: |float8 |float8 @ |float8 |float8
% |float8 |float8 ; |float8 |float8
||/ |float8 |float8 : |float8 |float8
|/ |float8 |float8 % |float8 |float8
@ |float8 |float8 ||/ |float8 |float8
- |float8 |float8 - |float8 |float8
- |int2 |int2 - |int2 |int2
- |int4 |int4 !! |int4 |int4
!! |int4 |int4 - |int4 |int4
| |tinterval|abstime # |polygon |int4
- |timespan |timespan
| |tinterval|abstime
.fi .fi
.in .in
...@@ -933,13 +994,13 @@ registered in the system catalogs. ...@@ -933,13 +994,13 @@ registered in the system catalogs.
This list was generated from the Postgres system catalogs with the query: This list was generated from the Postgres system catalogs with the query:
.nf .nf
SELECT o.oprname AS right_unary, SELECT o.oprname AS right_unary,
left.typname AS operand, left.typname AS operand,
result.typname AS return_type result.typname AS return_type
FROM pg_operator o, pg_type left, pg_type result FROM pg_operator o, pg_type left, pg_type result
WHERE o.oprkind = 'r' AND -- right unary WHERE o.oprkind = 'r' AND -- right unary
o.oprleft = left.oid AND o.oprleft = left.oid AND
o.oprresult = result.oid o.oprresult = result.oid
ORDER BY operand; ORDER BY operand;
right_unary|operand|return_type right_unary|operand|return_type
...@@ -956,31 +1017,47 @@ registered in the system catalogs. ...@@ -956,31 +1017,47 @@ registered in the system catalogs.
This list was generated from the Postgres system catalogs with the query: This list was generated from the Postgres system catalogs with the query:
.nf .nf
SELECT a.aggname, t.typname SELECT a.aggname, t.typname
FROM pg_aggregate a, pg_type t FROM pg_aggregate a, pg_type t
WHERE a.aggbasetype = t.oid WHERE a.aggbasetype = t.oid
ORDER BY aggname, typname; ORDER BY aggname, typname;
aggname|typname aggname|typname
-------+------- -------+--------
avg |float4 avg |float4
avg |float8 avg |float8
avg |int2 avg |int2
avg |int4 avg |int4
max |float4 avg |money
max |float8 max |abstime
max |int2 max |date
max |int4 max |datetime
min |float4 max |float4
min |float8 max |float8
min |int2 max |int2
min |int4 max |int4
sum |float4 max |money
sum |float8 max |timespan
sum |int2 min |abstime
sum |int4 min |date
min |datetime
\fBcount\fR is also available. 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 .fi
.in .in
...@@ -991,10 +1068,10 @@ For examples on specifying literals of built-in types, see ...@@ -991,10 +1068,10 @@ For examples on specifying literals of built-in types, see
.PP .PP
Although most of the input and output functions correponding to the Although most of the input and output functions correponding to the
base types (e.g., integers and floating point numbers) do some base types (e.g., integers and floating point numbers) do some
error-checking, none of them are particularly rigorous about it. More error-checking, some are not particularly rigorous about it. More
importantly, almost none of the operators and functions (e.g., importantly, few of the operators and functions (e.g.,
addition and multiplication) perform any error-checking at all. 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. silently underflow or overflow.
.PP .PP
Some of the input and output functions are not invertible. That is, Some of the input and output functions are not invertible. That is,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment