mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			701 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			701 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" This is -*-nroff-*-
 | |
| .\" XXX standard disclaimer belongs here....
 | |
| .\" $Header: /cvsroot/pgsql/doc/man/Attic/built-in.3,v 1.1.1.1 1996/08/18 22:14:20 scrappy Exp $
 | |
| .TH BUILT-INS INTRO 11/05/95 Postgres95 Postgres95
 | |
| .SH "DESCRIPTION"
 | |
| This section describes the data types, functions and operators
 | |
| available to users in Postgres as it is distributed.
 | |
| .SH "Built-in and System Types"
 | |
| .SH "BUILT-IN TYPES"
 | |
| This section describes both 
 | |
| .BR built-in
 | |
| data types.
 | |
| These Built-in types are 
 | |
| 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 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
 | |
| 	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
 | |
| 	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	variable-length array of lseg
 | |
| 	point	2-dimensional geometric point
 | |
| 	polygon	2-dimensional polygon
 | |
| 	real	alias for float4
 | |
| 	regproc	registered procedure
 | |
| 	reltime	relative date and time
 | |
| 	smgr	storage manager	
 | |
| 	smallint	alias for int2
 | |
| 	text	variable length array of characters
 | |
| 	tid	tuple identifier type
 | |
| 	time 	ANSI SQL time type 
 | |
| 	tinterval	time interval
 | |
| 	varchar	variable-length characters
 | |
| 	xid	transaction identifier type
 | |
| 
 | |
| .fi
 | |
| .in
 | |
| .PP
 | |
| As a rule, the built-in types are all either (1) internal types, in
 | |
| which case the user should not worry about their external format, or
 | |
| (2) have obvious formats.  The exceptions to this rule are the three
 | |
| time types.
 | |
| .SH "Syntax of date and time types"
 | |
| .SH "ABSOLUTE TIME"
 | |
| Absolute time is specified using the following syntax:
 | |
| .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
 | |
| 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
 | |
| The special absolute time values \*(lqcurrent\*(rq,
 | |
| \*(lqinfinity\*(rq and \*(lq-infinity\*(rq are also provided.
 | |
| \*(lqinfinity\*(rq specifies a time later than any valid time, and
 | |
| \*(lq-infinity\*(rq specifies a time earlier than any valid time.
 | |
| \*(lqcurrent\*(rq indicates that the current time should be
 | |
| substituted whenever this value appears in a computation.
 | |
| .PP
 | |
| The strings \*(lqnow\*(rq and \*(lqepoch\*(rq can be used to specify
 | |
| time values.  \*(lqnow\*(rq means the current time, and differs from
 | |
| \*(lqcurrent\*(rq in that the current time is immediately substituted
 | |
| for it.  \*(lqepoch\*(rq means Jan 1 00:00:00 1970 GMT.
 | |
| .SH "RELATIVE TIME"
 | |
| Relative time is specified with the following syntax:
 | |
| .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:
 | |
| .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 "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"
 | |
| 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
 | |
| 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
 | |
| 
 | |
| float8	
 | |
| 	^	exponentiation
 | |
| 	%	truncate to integer
 | |
| 	|/	square root
 | |
| 	||/	cube root
 | |
| 	:	exponential function
 | |
| 	;	natural logarithm
 | |
| 
 | |
| 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
 | |
| 	<===>	distance between points
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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  
 | |
| 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     |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    
 | |
| 
 | |
| 
 | |
| .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       
 | |
| \|        |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   
 | |
| 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.
 | |
| 
 | |
| .fi
 | |
| .in
 | |
| .SH "SEE ALSO"
 | |
| For examples on specifying literals of built-in types, see
 | |
| .IR SQL(l).
 | |
| .SH BUGS
 | |
| .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.,
 | |
| addition and multiplication) perform any error-checking at all.
 | |
| Consequently, many of the numeric operations will (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.
 |