{"Entry":{"collection":"type","key":"text","name":"text","aliases":[],"metadata":{"aliases":[],"category":"Character strings","content_hash":"78c35f5cc3fbf1eb34f93de8573011f708b8ec6c7ad6c4191a83edd778e7917d","imported_at":"2026-09-30T00:40:36.686312+08:00","name":"text","name_zh":"","slug":"text","summary":"variable-length character string"}},"Definition":{"Collection":"type","Key":"text","SourceDatabase":"center","Version":"18","SourceTable":"data_type","SourceKey":"text","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","Facts":{"aliases":[],"casts":[{"castcontext":"i","castfunc":"regclass","castmethod":"f","castsource":"text","casttarget":"regclass"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"text","casttarget":"bpchar"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"text","casttarget":"varchar"},{"castcontext":"i","castfunc":"text(bpchar)","castmethod":"f","castsource":"bpchar","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"varchar","casttarget":"text"},{"castcontext":"i","castfunc":"text(char)","castmethod":"f","castsource":"char","casttarget":"text"},{"castcontext":"i","castfunc":"text(name)","castmethod":"f","castsource":"name","casttarget":"text"},{"castcontext":"a","castfunc":"char(text)","castmethod":"f","castsource":"text","casttarget":"char"},{"castcontext":"i","castfunc":"name(text)","castmethod":"f","castsource":"text","casttarget":"name"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"pg_node_tree","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"i","castsource":"pg_ndistinct","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"i","castsource":"pg_dependencies","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"i","castsource":"pg_mcv_list","casttarget":"text"},{"castcontext":"a","castfunc":"text(inet)","castmethod":"f","castsource":"cidr","casttarget":"text"},{"castcontext":"a","castfunc":"text(inet)","castmethod":"f","castsource":"inet","casttarget":"text"},{"castcontext":"a","castfunc":"text(bool)","castmethod":"f","castsource":"bool","casttarget":"text"},{"castcontext":"a","castfunc":"0","castmethod":"b","castsource":"xml","casttarget":"text"},{"castcontext":"e","castfunc":"xml","castmethod":"f","castsource":"text","casttarget":"xml"}],"catalog":{"array_type_name":"_text","array_type_oid":"1009","descr":"variable-length string, no limit specified","oid":"25","typacl":"_null_","typalign":"i","typanalyze":"-","typarray":"0","typbasetype":"0","typbyval":"f","typcategory":"S","typcollation":"default","typdefault":"_null_","typdefaultbin":"_null_","typdelim":"','","typelem":"0","typinput":"textin","typisdefined":"t","typispreferred":"t","typlen":"-1","typmodin":"-","typmodout":"-","typname":"text","typnamespace":"pg_catalog","typndims":"0","typnotnull":"f","typoutput":"textout","typowner":"POSTGRES","typreceive":"textrecv","typrelid":"0","typsend":"textsend","typstorage":"x","typsubscript":"-","typtype":"b","typtypmod":"-1"},"comparison_data":{"aliases":[],"casts":[{"castcontext":"a","castfunc":"0","castmethod":"b","castsource":"xml","casttarget":"text"},{"castcontext":"a","castfunc":"char(text)","castmethod":"f","castsource":"text","casttarget":"char"},{"castcontext":"a","castfunc":"text(bool)","castmethod":"f","castsource":"bool","casttarget":"text"},{"castcontext":"a","castfunc":"text(inet)","castmethod":"f","castsource":"cidr","casttarget":"text"},{"castcontext":"a","castfunc":"text(inet)","castmethod":"f","castsource":"inet","casttarget":"text"},{"castcontext":"e","castfunc":"xml","castmethod":"f","castsource":"text","casttarget":"xml"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"pg_node_tree","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"text","casttarget":"bpchar"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"text","casttarget":"varchar"},{"castcontext":"i","castfunc":"0","castmethod":"b","castsource":"varchar","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"i","castsource":"pg_dependencies","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"i","castsource":"pg_mcv_list","casttarget":"text"},{"castcontext":"i","castfunc":"0","castmethod":"i","castsource":"pg_ndistinct","casttarget":"text"},{"castcontext":"i","castfunc":"name(text)","castmethod":"f","castsource":"text","casttarget":"name"},{"castcontext":"i","castfunc":"regclass","castmethod":"f","castsource":"text","casttarget":"regclass"},{"castcontext":"i","castfunc":"text(bpchar)","castmethod":"f","castsource":"bpchar","casttarget":"text"},{"castcontext":"i","castfunc":"text(char)","castmethod":"f","castsource":"char","casttarget":"text"},{"castcontext":"i","castfunc":"text(name)","castmethod":"f","castsource":"name","casttarget":"text"}],"catalog":{"array_type_name":"_text","typacl":"_null_","typalign":"i","typanalyze":"-","typarray":"_text","typbasetype":"0","typbyval":"f","typcategory":"S","typcollation":"default","typdefault":"_null_","typdefaultbin":"_null_","typdelim":",","typelem":"0","typinput":"textin","typisdefined":"t","typispreferred":"t","typlen":"-1","typmodin":"-","typmodout":"-","typname":"text","typndims":"0","typnotnull":"f","typoutput":"textout","typreceive":"textrecv","typrelid":"0","typsend":"textsend","typstorage":"x","typsubscript":"-","typtype":"b","typtypmod":"-1"},"facts":[{"label":"Catalog name","value":"pg_catalog.text"},{"label":"Declared length","value":"Variable length (varlena)"},{"label":"Documented declaration","value":"text"},{"label":"Input function","value":"textin"},{"label":"Output function","value":"textout"},{"label":"Storage strategy","value":"extended"},{"label":"Type OID","value":"25"},{"label":"Type kind","value":"Base type"}],"operator_classes":[{"opcdefault":"f","opcfamily":"brin/text_bloom_ops","opcintype":"text","opckeytype":"text","opcmethod":"brin","opcname":"text_bloom_ops"},{"opcdefault":"f","opcfamily":"btree/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"varchar_ops"},{"opcdefault":"f","opcfamily":"btree/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"text_pattern_ops"},{"opcdefault":"f","opcfamily":"btree/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"varchar_pattern_ops"},{"opcdefault":"f","opcfamily":"hash/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"varchar_ops"},{"opcdefault":"f","opcfamily":"hash/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"text_pattern_ops"},{"opcdefault":"f","opcfamily":"hash/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"varchar_pattern_ops"},{"opcdefault":"t","opcfamily":"brin/text_minmax_ops","opcintype":"text","opckeytype":"text","opcmethod":"brin","opcname":"text_minmax_ops"},{"opcdefault":"t","opcfamily":"btree/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"text_ops"},{"opcdefault":"t","opcfamily":"hash/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"text_ops"},{"opcdefault":"t","opcfamily":"spgist/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"spgist","opcname":"text_ops"}],"operators":[{"oprcanhash":"f","oprcanmerge":"f","oprcode":"anytextcat","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"anynonarray","oprname":"||","oprnegate":"0","oprrest":"-","oprresult":"text","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpchariclike","oprcom":"0","oprjoin":"iclikejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~~*","oprnegate":"!~~*(bpchar,text)","oprrest":"iclikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharicnlike","oprcom":"0","oprjoin":"icnlikejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~~*","oprnegate":"~~*(bpchar,text)","oprrest":"icnlikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharicregexeq","oprcom":"0","oprjoin":"icregexeqjoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~*","oprnegate":"!~*(bpchar,text)","oprrest":"icregexeqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharicregexne","oprcom":"0","oprjoin":"icregexnejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~*","oprnegate":"~*(bpchar,text)","oprrest":"icregexnesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharlike","oprcom":"0","oprjoin":"likejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~~","oprnegate":"!~~(bpchar,text)","oprrest":"likesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharnlike","oprcom":"0","oprjoin":"nlikejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~~","oprnegate":"~~(bpchar,text)","oprrest":"nlikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharregexeq","oprcom":"0","oprjoin":"regexeqjoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~","oprnegate":"!~(bpchar,text)","oprrest":"regexeqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharregexne","oprcom":"0","oprjoin":"regexnejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~","oprnegate":"~(bpchar,text)","oprrest":"regexnesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"json_object_field","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"json","oprname":"-\u003e","oprnegate":"0","oprrest":"-","oprresult":"json","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"json_object_field_text","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"json","oprname":"-\u003e\u003e","oprnegate":"0","oprrest":"-","oprresult":"text","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_delete","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"jsonb","oprname":"-","oprnegate":"0","oprrest":"-","oprresult":"jsonb","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_exists","oprcom":"0","oprjoin":"matchingjoinsel","oprkind":"b","oprleft":"jsonb","oprname":"?","oprnegate":"0","oprrest":"matchingsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_object_field","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"jsonb","oprname":"-\u003e","oprnegate":"0","oprrest":"-","oprresult":"jsonb","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_object_field_text","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"jsonb","oprname":"-\u003e\u003e","oprnegate":"0","oprrest":"-","oprresult":"text","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"namegetext","oprcom":"\u003c=(text,name)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"name","oprname":"\u003e=","oprnegate":"\u003c(name,text)","oprrest":"scalargesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"namegttext","oprcom":"\u003c(text,name)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"name","oprname":"\u003e","oprnegate":"\u003c=(name,text)","oprrest":"scalargtsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameiclike","oprcom":"0","oprjoin":"iclikejoinsel","oprkind":"b","oprleft":"name","oprname":"~~*","oprnegate":"!~~*(name,text)","oprrest":"iclikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameicnlike","oprcom":"0","oprjoin":"icnlikejoinsel","oprkind":"b","oprleft":"name","oprname":"!~~*","oprnegate":"~~*(name,text)","oprrest":"icnlikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameicregexeq","oprcom":"0","oprjoin":"icregexeqjoinsel","oprkind":"b","oprleft":"name","oprname":"~*","oprnegate":"!~*(name,text)","oprrest":"icregexeqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameicregexne","oprcom":"0","oprjoin":"icregexnejoinsel","oprkind":"b","oprleft":"name","oprname":"!~*","oprnegate":"~*(name,text)","oprrest":"icregexnesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameletext","oprcom":"\u003e=(text,name)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"name","oprname":"\u003c=","oprnegate":"\u003e(name,text)","oprrest":"scalarlesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"namelike","oprcom":"0","oprjoin":"likejoinsel","oprkind":"b","oprleft":"name","oprname":"~~","oprnegate":"!~~(name,text)","oprrest":"likesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"namelttext","oprcom":"\u003e(text,name)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"name","oprname":"\u003c","oprnegate":"\u003e=(name,text)","oprrest":"scalarltsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"namenetext","oprcom":"\u003c\u003e(text,name)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"name","oprname":"\u003c\u003e","oprnegate":"=(name,text)","oprrest":"neqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"namenlike","oprcom":"0","oprjoin":"nlikejoinsel","oprkind":"b","oprleft":"name","oprname":"!~~","oprnegate":"~~(name,text)","oprrest":"nlikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameregexeq","oprcom":"0","oprjoin":"regexeqjoinsel","oprkind":"b","oprleft":"name","oprname":"~","oprnegate":"!~(name,text)","oprrest":"regexeqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"nameregexne","oprcom":"0","oprjoin":"regexnejoinsel","oprkind":"b","oprleft":"name","oprname":"!~","oprnegate":"~(name,text)","oprrest":"regexnesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"starts_with","oprcom":"0","oprjoin":"prefixjoinsel","oprkind":"b","oprleft":"text","oprname":"^@","oprnegate":"0","oprrest":"prefixsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_ge","oprcom":"\u003c=(text,text)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e=","oprnegate":"\u003c(text,text)","oprrest":"scalargesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_gt","oprcom":"\u003c(text,text)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e","oprnegate":"\u003c=(text,text)","oprrest":"scalargtsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_le","oprcom":"\u003e=(text,text)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c=","oprnegate":"\u003e(text,text)","oprrest":"scalarlesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_lt","oprcom":"\u003e(text,text)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c","oprnegate":"\u003e=(text,text)","oprrest":"scalarltsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_ge","oprcom":"~\u003c=~(text,text)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003e=~","oprnegate":"~\u003c~(text,text)","oprrest":"scalargesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_gt","oprcom":"~\u003c~(text,text)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003e~","oprnegate":"~\u003c=~(text,text)","oprrest":"scalargtsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_le","oprcom":"~\u003e=~(text,text)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003c=~","oprnegate":"~\u003e~(text,text)","oprrest":"scalarlesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_lt","oprcom":"~\u003e~(text,text)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003c~","oprnegate":"~\u003e=~(text,text)","oprrest":"scalarltsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textanycat","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"text","oprname":"||","oprnegate":"0","oprrest":"-","oprresult":"text","oprright":"anynonarray"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textcat","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"text","oprname":"||","oprnegate":"0","oprrest":"-","oprresult":"text","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textgename","oprcom":"\u003c=(name,text)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e=","oprnegate":"\u003c(text,name)","oprrest":"scalargesel","oprresult":"bool","oprright":"name"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textgtname","oprcom":"\u003c(name,text)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e","oprnegate":"\u003c=(text,name)","oprrest":"scalargtsel","oprresult":"bool","oprright":"name"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"texticlike","oprcom":"0","oprjoin":"iclikejoinsel","oprkind":"b","oprleft":"text","oprname":"~~*","oprnegate":"!~~*(text,text)","oprrest":"iclikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"texticnlike","oprcom":"0","oprjoin":"icnlikejoinsel","oprkind":"b","oprleft":"text","oprname":"!~~*","oprnegate":"~~*(text,text)","oprrest":"icnlikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"texticregexeq","oprcom":"0","oprjoin":"icregexeqjoinsel","oprkind":"b","oprleft":"text","oprname":"~*","oprnegate":"!~*(text,text)","oprrest":"icregexeqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"texticregexne","oprcom":"0","oprjoin":"icregexnejoinsel","oprkind":"b","oprleft":"text","oprname":"!~*","oprnegate":"~*(text,text)","oprrest":"icregexnesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textlename","oprcom":"\u003e=(name,text)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c=","oprnegate":"\u003e(text,name)","oprrest":"scalarlesel","oprresult":"bool","oprright":"name"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textlike","oprcom":"0","oprjoin":"likejoinsel","oprkind":"b","oprleft":"text","oprname":"~~","oprnegate":"!~~(text,text)","oprrest":"likesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textltname","oprcom":"\u003e(name,text)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c","oprnegate":"\u003e=(text,name)","oprrest":"scalarltsel","oprresult":"bool","oprright":"name"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textne","oprcom":"\u003c\u003e(text,text)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c\u003e","oprnegate":"=(text,text)","oprrest":"neqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textnename","oprcom":"\u003c\u003e(name,text)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c\u003e","oprnegate":"=(text,name)","oprrest":"neqsel","oprresult":"bool","oprright":"name"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textnlike","oprcom":"0","oprjoin":"nlikejoinsel","oprkind":"b","oprleft":"text","oprname":"!~~","oprnegate":"~~(text,text)","oprrest":"nlikesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textregexeq","oprcom":"0","oprjoin":"regexeqjoinsel","oprkind":"b","oprleft":"text","oprname":"~","oprnegate":"!~(text,text)","oprrest":"regexeqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"textregexne","oprcom":"0","oprjoin":"regexnejoinsel","oprkind":"b","oprleft":"text","oprname":"!~","oprnegate":"~(text,text)","oprrest":"regexnesel","oprresult":"bool","oprright":"text"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"ts_match_tq","oprcom":"0","oprjoin":"matchingjoinsel","oprkind":"b","oprleft":"text","oprname":"@@","oprnegate":"0","oprrest":"matchingsel","oprresult":"bool","oprright":"tsquery"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"ts_match_tt","oprcom":"0","oprjoin":"matchingjoinsel","oprkind":"b","oprleft":"text","oprname":"@@","oprnegate":"0","oprrest":"matchingsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"t","oprcanmerge":"t","oprcode":"nameeqtext","oprcom":"=(text,name)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"name","oprname":"=","oprnegate":"\u003c\u003e(name,text)","oprrest":"eqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"t","oprcanmerge":"t","oprcode":"texteq","oprcom":"=(text,text)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"text","oprname":"=","oprnegate":"\u003c\u003e(text,text)","oprrest":"eqsel","oprresult":"bool","oprright":"text"},{"oprcanhash":"t","oprcanmerge":"t","oprcode":"texteqname","oprcom":"=(name,text)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"text","oprname":"=","oprnegate":"\u003c\u003e(text,name)","oprrest":"eqsel","oprresult":"bool","oprright":"name"}],"ranges":[]},"comparison_hash":"fdefd986eec7346d2a9f4f6a59a5fc233501b733fc579b0cbc1f61d6676fcef0","coverage":"source inventory; exact declared input types for operator classes","description":["variable-length character string"],"facts":[{"label":"Catalog name","value":"pg_catalog.text"},{"label":"Type OID","value":"25"},{"label":"Type kind","value":"Base type"},{"label":"Declared length","value":"Variable length (varlena)"},{"label":"Storage strategy","value":"extended"},{"label":"Input function","value":"textin"},{"label":"Output function","value":"textout"},{"label":"Documented declaration","value":"text"},{"label":"Manual description","value":"variable unlimited length"}],"manual_documentation":"dedicated family chapter","manual_html":"\u003cdiv class=\"sect1\" id=\"DATATYPE-CHARACTER\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch2 class=\"title\"\u003e8.3. Character Types \u003c/h2\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"table\" id=\"DATATYPE-CHARACTER-TABLE\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eTable 8.4. Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"table-contents\"\u003e\n\u003ctable class=\"table\"\u003e\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003echaracter varying(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode class=\"type\"\u003evarchar(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable-length with limit\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode class=\"type\"\u003echar(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode class=\"type\"\u003ebpchar(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efixed-length, blank-padded\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable unlimited length, blank-trimmed\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003etext\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable unlimited length\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"table-break\"\u003e\n\u003cp\u003e\u003ca class=\"xref\" href=\"/docs/18/datatype-character.html#DATATYPE-CHARACTER-TABLE\" title=\"Table 8.4. Character Types\"\u003eTable 8.4\u003c/a\u003e shows the general-purpose character types available in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e.\u003c/p\u003e\n\u003cp\u003eSQL defines two primary character types: \u003ccode class=\"type\"\u003echaracter varying(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, where \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e is a positive integer. Both of these types can store strings up to \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e characters (not bytes) in length. An attempt to store a longer string into a column of these types will result in an error, unless the excess characters are all spaces, in which case the string will be truncated to the maximum length. (This somewhat bizarre exception is required by the SQL standard.) However, if one explicitly casts a value to \u003ccode class=\"type\"\u003echaracter varying(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e or \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, then an over-length value will be truncated to \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e characters without raising an error. (This too is required by the SQL standard.) If the string to be stored is shorter than the declared length, values of type \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e will be space-padded; values of type \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e will simply store the shorter string.\u003c/p\u003e\n\u003cp\u003eIn addition, \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e provides the \u003ccode class=\"type\"\u003etext\u003c/code\u003e type, which stores strings of any length. Although the \u003ccode class=\"type\"\u003etext\u003c/code\u003e type is not in the SQL standard, several other SQL database management systems have it as well. \u003ccode class=\"type\"\u003etext\u003c/code\u003e is \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e's native string data type, in that most built-in functions operating on strings are declared to take or return \u003ccode class=\"type\"\u003etext\u003c/code\u003e not \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e. For many purposes, \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e acts as though it were a \u003ca class=\"link\" href=\"/docs/18/domains.html\" title=\"8.18. Domain Types\"\u003edomain\u003c/a\u003e over \u003ccode class=\"type\"\u003etext\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe type name \u003ccode class=\"type\"\u003evarchar\u003c/code\u003e is an alias for \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e, while \u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e (with length specifier) and \u003ccode class=\"type\"\u003echar\u003c/code\u003e are aliases for \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e. The \u003ccode class=\"type\"\u003evarchar\u003c/code\u003e and \u003ccode class=\"type\"\u003echar\u003c/code\u003e aliases are defined in the SQL standard; \u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e\n\u003cp\u003eIf specified, the length \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e must be greater than zero and cannot exceed 10,485,760. If \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e (or \u003ccode class=\"type\"\u003evarchar\u003c/code\u003e) is used without length specifier, the type accepts strings of any length. If \u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e lacks a length specifier, it also accepts strings of any length, but trailing spaces are semantically insignificant. If \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e (or \u003ccode class=\"type\"\u003echar\u003c/code\u003e) lacks a specifier, it is equivalent to \u003ccode class=\"type\"\u003echaracter(1)\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e are physically padded with spaces to the specified width \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e, and are stored and displayed that way. However, trailing spaces are treated as semantically insignificant and disregarded when comparing two values of type \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e. In collations where whitespace is significant, this behavior can produce unexpected results; for example \u003ccode class=\"command\"\u003eSELECT 'a '::CHAR(2) collate \"C\" \u0026lt; E'a\\n'::CHAR(2)\u003c/code\u003e returns true, even though \u003ccode class=\"literal\"\u003eC\u003c/code\u003e locale would consider a space to be greater than a newline. Trailing spaces are removed when converting a \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e value to one of the other string types. Note that trailing spaces \u003cspan class=\"emphasis\"\u003e\u003cem\u003eare\u003c/em\u003e\u003c/span\u003e semantically significant in \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e and \u003ccode class=\"type\"\u003etext\u003c/code\u003e values, and when using pattern matching, that is \u003ccode class=\"literal\"\u003eLIKE\u003c/code\u003e and regular expressions.\u003c/p\u003e\n\u003cp\u003eThe characters that can be stored in any of these data types are determined by the database character set, which is selected when the database is created. Regardless of the specific character set, the character with code zero (sometimes called NUL) cannot be stored. For more information refer to \u003ca class=\"xref\" href=\"/docs/18/multibyte.html\" title=\"23.3. Character Set Support\"\u003eSection 23.3\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe storage requirement for a short string (up to 126 bytes) is 1 byte plus the actual string, which includes the space padding in the case of \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e. Longer strings have 4 bytes of overhead instead of 1. Long strings are compressed by the system automatically, so the physical requirement on disk might be less. Very long values are also stored in background tables so that they do not interfere with rapid access to shorter column values. In any case, the longest possible character string that can be stored is about 1 GB. (The maximum value that will be allowed for \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e in the data type declaration is less than that. It wouldn't be useful to change this because with multibyte character encodings the number of characters and bytes can be quite different. If you desire to store long strings with no specific upper limit, use \u003ccode class=\"type\"\u003etext\u003c/code\u003e or \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e without a length specifier, rather than making up an arbitrary length limit.)\u003c/p\u003e\n\u003cdiv class=\"tip\"\u003e\n\u003ch3 class=\"title\"\u003eTip\u003c/h3\u003e\n\u003cp\u003eThere is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e has performance advantages in some other database systems, there is no such advantage in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e; in fact \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e is usually the slowest of the three because of its additional storage costs. In most situations \u003ccode class=\"type\"\u003etext\u003c/code\u003e or \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e should be used instead.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eRefer to \u003ca class=\"xref\" href=\"/docs/18/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS\" title=\"4.1.2.1. String Constants\"\u003eSection 4.1.2.1\u003c/a\u003e for information about the syntax of string literals, and to \u003ca class=\"xref\" href=\"/docs/18/functions.html\" title=\"Chapter 9. Functions and Operators\"\u003eChapter 9\u003c/a\u003e for information about available operators and functions.\u003c/p\u003e\n\u003cdiv class=\"example\" id=\"id-1.5.7.11.21\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eExample 8.1. Using the Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"example-contents\"\u003e\n\u003cpre class=\"programlisting\"\u003eCREATE TABLE test1 (a character(4));\nINSERT INTO test1 VALUES ('ok');\nSELECT a, char_length(a) FROM test1; -- \u003cspan id=\"co.datatype-char\"\u003e\u003c/span\u003e(1)\n\u003ccode class=\"computeroutput\"\u003e\n  a   | char_length\n------+-------------\n ok   |           2\n\u003c/code\u003e\n\nCREATE TABLE test2 (b varchar(5));\nINSERT INTO test2 VALUES ('ok');\nINSERT INTO test2 VALUES ('good      ');\nINSERT INTO test2 VALUES ('too long');\n\u003ccode class=\"computeroutput\"\u003eERROR:  value too long for type character varying(5)\u003c/code\u003e\nINSERT INTO test2 VALUES ('too long'::varchar(5)); -- explicit truncation\nSELECT b, char_length(b) FROM test2;\n\u003ccode class=\"computeroutput\"\u003e\n   b   | char_length\n-------+-------------\n ok    |           2\n good  |           5\n too l |           5\n\u003c/code\u003e\n\u003c/pre\u003e\n\u003cdiv class=\"calloutlist\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003ca href=\"/docs/18/datatype-character.html#co.datatype-char\"\u003e(1)\u003c/a\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eThe \u003ccode class=\"function\"\u003echar_length\u003c/code\u003e function is discussed in \u003ca class=\"xref\" href=\"/docs/18/functions-string.html\" title=\"9.4. String Functions and Operators\"\u003eSection 9.4\u003c/a\u003e.\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"example-break\"\u003e\n\u003cp\u003eThere are two other fixed-length character types in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e, shown in \u003ca class=\"xref\" href=\"/docs/18/datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE\" title=\"Table 8.5. Special Character Types\"\u003eTable 8.5\u003c/a\u003e. These are not intended for general-purpose use, only for use in the internal system catalogs. The \u003ccode class=\"type\"\u003ename\u003c/code\u003e type is used to store identifiers. Its length is currently defined as 64 bytes (63 usable characters plus terminator) but should be referenced using the constant \u003ccode class=\"symbol\"\u003eNAMEDATALEN\u003c/code\u003e in \u003ccode class=\"literal\"\u003eC\u003c/code\u003e source code. The length is set at compile time (and is therefore adjustable for special uses); the default maximum length might change in a future release. The type \u003ccode class=\"type\"\u003e\"char\"\u003c/code\u003e (note the quotes) is different from \u003ccode class=\"type\"\u003echar(1)\u003c/code\u003e in that it only uses one byte of storage, and therefore can store only a single ASCII character. It is used in the system catalogs as a simplistic enumeration type.\u003c/p\u003e\n\u003cdiv class=\"table\" id=\"DATATYPE-CHARACTER-SPECIAL-TABLE\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eTable 8.5. Special Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"table-contents\"\u003e\n\u003ctable class=\"table\"\u003e\n\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eStorage Size\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003e\"char\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e1 byte\u003c/td\u003e\n\u003ctd\u003esingle-byte internal type\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ename\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e64 bytes\u003c/td\u003e\n\u003ctd\u003einternal type for object names\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"table-break\"\u003e\n\u003c/div\u003e","manual_path":"datatype-character.html","operator_classes":[{"oid":"3126","oid_symbol":"TEXT_BTREE_OPS_OID","opcdefault":"t","opcfamily":"btree/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"text_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"t","opcfamily":"hash/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"text_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"f","opcfamily":"btree/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"varchar_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"f","opcfamily":"hash/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"varchar_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"oid":"4217","oid_symbol":"TEXT_BTREE_PATTERN_OPS_OID","opcdefault":"f","opcfamily":"btree/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"text_pattern_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"oid":"4218","oid_symbol":"VARCHAR_BTREE_PATTERN_OPS_OID","opcdefault":"f","opcfamily":"btree/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"btree","opcname":"varchar_pattern_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"f","opcfamily":"hash/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"text_pattern_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"f","opcfamily":"hash/text_pattern_ops","opcintype":"text","opckeytype":"0","opcmethod":"hash","opcname":"varchar_pattern_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"t","opcfamily":"spgist/text_ops","opcintype":"text","opckeytype":"0","opcmethod":"spgist","opcname":"text_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"t","opcfamily":"brin/text_minmax_ops","opcintype":"text","opckeytype":"text","opcmethod":"brin","opcname":"text_minmax_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"},{"opcdefault":"f","opcfamily":"brin/text_bloom_ops","opcintype":"text","opckeytype":"text","opcmethod":"brin","opcname":"text_bloom_ops","opcnamespace":"pg_catalog","opcowner":"POSTGRES"}],"operators":[{"descr":"equal","oid":"98","oid_symbol":"TextEqualOperator","oprcanhash":"t","oprcanmerge":"t","oprcode":"texteq","oprcom":"=(text,text)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"text","oprname":"=","oprnamespace":"pg_catalog","oprnegate":"\u003c\u003e(text,text)","oprowner":"POSTGRES","oprrest":"eqsel","oprresult":"bool","oprright":"text"},{"descr":"starts with","oid":"3877","oid_symbol":"TextPrefixOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"starts_with","oprcom":"0","oprjoin":"prefixjoinsel","oprkind":"b","oprleft":"text","oprname":"^@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"prefixsel","oprresult":"bool","oprright":"text"},{"descr":"equal","oid":"254","oid_symbol":"NameEqualTextOperator","oprcanhash":"t","oprcanmerge":"t","oprcode":"nameeqtext","oprcom":"=(text,name)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"name","oprname":"=","oprnamespace":"pg_catalog","oprnegate":"\u003c\u003e(name,text)","oprowner":"POSTGRES","oprrest":"eqsel","oprresult":"bool","oprright":"text"},{"descr":"less than","oid":"255","oid_symbol":"NameLessTextOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"namelttext","oprcom":"\u003e(text,name)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"name","oprname":"\u003c","oprnamespace":"pg_catalog","oprnegate":"\u003e=(name,text)","oprowner":"POSTGRES","oprrest":"scalarltsel","oprresult":"bool","oprright":"text"},{"descr":"less than or equal","oid":"256","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameletext","oprcom":"\u003e=(text,name)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"name","oprname":"\u003c=","oprnamespace":"pg_catalog","oprnegate":"\u003e(name,text)","oprowner":"POSTGRES","oprrest":"scalarlesel","oprresult":"bool","oprright":"text"},{"descr":"greater than or equal","oid":"257","oid_symbol":"NameGreaterEqualTextOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"namegetext","oprcom":"\u003c=(text,name)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"name","oprname":"\u003e=","oprnamespace":"pg_catalog","oprnegate":"\u003c(name,text)","oprowner":"POSTGRES","oprrest":"scalargesel","oprresult":"bool","oprright":"text"},{"descr":"greater than","oid":"258","oprcanhash":"f","oprcanmerge":"f","oprcode":"namegttext","oprcom":"\u003c(text,name)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"name","oprname":"\u003e","oprnamespace":"pg_catalog","oprnegate":"\u003c=(name,text)","oprowner":"POSTGRES","oprrest":"scalargtsel","oprresult":"bool","oprright":"text"},{"descr":"not equal","oid":"259","oprcanhash":"f","oprcanmerge":"f","oprcode":"namenetext","oprcom":"\u003c\u003e(text,name)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"name","oprname":"\u003c\u003e","oprnamespace":"pg_catalog","oprnegate":"=(name,text)","oprowner":"POSTGRES","oprrest":"neqsel","oprresult":"bool","oprright":"text"},{"descr":"equal","oid":"260","oprcanhash":"t","oprcanmerge":"t","oprcode":"texteqname","oprcom":"=(name,text)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"text","oprname":"=","oprnamespace":"pg_catalog","oprnegate":"\u003c\u003e(text,name)","oprowner":"POSTGRES","oprrest":"eqsel","oprresult":"bool","oprright":"name"},{"descr":"less than","oid":"261","oprcanhash":"f","oprcanmerge":"f","oprcode":"textltname","oprcom":"\u003e(name,text)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c","oprnamespace":"pg_catalog","oprnegate":"\u003e=(text,name)","oprowner":"POSTGRES","oprrest":"scalarltsel","oprresult":"bool","oprright":"name"},{"descr":"less than or equal","oid":"262","oprcanhash":"f","oprcanmerge":"f","oprcode":"textlename","oprcom":"\u003e=(name,text)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c=","oprnamespace":"pg_catalog","oprnegate":"\u003e(text,name)","oprowner":"POSTGRES","oprrest":"scalarlesel","oprresult":"bool","oprright":"name"},{"descr":"greater than or equal","oid":"263","oprcanhash":"f","oprcanmerge":"f","oprcode":"textgename","oprcom":"\u003c=(name,text)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e=","oprnamespace":"pg_catalog","oprnegate":"\u003c(text,name)","oprowner":"POSTGRES","oprrest":"scalargesel","oprresult":"bool","oprright":"name"},{"descr":"greater than","oid":"264","oprcanhash":"f","oprcanmerge":"f","oprcode":"textgtname","oprcom":"\u003c(name,text)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e","oprnamespace":"pg_catalog","oprnegate":"\u003c=(text,name)","oprowner":"POSTGRES","oprrest":"scalargtsel","oprresult":"bool","oprright":"name"},{"descr":"not equal","oid":"265","oprcanhash":"f","oprcanmerge":"f","oprcode":"textnename","oprcom":"\u003c\u003e(name,text)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c\u003e","oprnamespace":"pg_catalog","oprnegate":"=(text,name)","oprowner":"POSTGRES","oprrest":"neqsel","oprresult":"bool","oprright":"name"},{"descr":"not equal","oid":"531","oprcanhash":"f","oprcanmerge":"f","oprcode":"textne","oprcom":"\u003c\u003e(text,text)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c\u003e","oprnamespace":"pg_catalog","oprnegate":"=(text,text)","oprowner":"POSTGRES","oprrest":"neqsel","oprresult":"bool","oprright":"text"},{"descr":"matches regular expression, case-sensitive","oid":"639","oid_symbol":"OID_NAME_REGEXEQ_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameregexeq","oprcom":"0","oprjoin":"regexeqjoinsel","oprkind":"b","oprleft":"name","oprname":"~","oprnamespace":"pg_catalog","oprnegate":"!~(name,text)","oprowner":"POSTGRES","oprrest":"regexeqsel","oprresult":"bool","oprright":"text"},{"descr":"does not match regular expression, case-sensitive","oid":"640","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameregexne","oprcom":"0","oprjoin":"regexnejoinsel","oprkind":"b","oprleft":"name","oprname":"!~","oprnamespace":"pg_catalog","oprnegate":"~(name,text)","oprowner":"POSTGRES","oprrest":"regexnesel","oprresult":"bool","oprright":"text"},{"descr":"matches regular expression, case-sensitive","oid":"641","oid_symbol":"OID_TEXT_REGEXEQ_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"textregexeq","oprcom":"0","oprjoin":"regexeqjoinsel","oprkind":"b","oprleft":"text","oprname":"~","oprnamespace":"pg_catalog","oprnegate":"!~(text,text)","oprowner":"POSTGRES","oprrest":"regexeqsel","oprresult":"bool","oprright":"text"},{"descr":"does not match regular expression, case-sensitive","oid":"642","oprcanhash":"f","oprcanmerge":"f","oprcode":"textregexne","oprcom":"0","oprjoin":"regexnejoinsel","oprkind":"b","oprleft":"text","oprname":"!~","oprnamespace":"pg_catalog","oprnegate":"~(text,text)","oprowner":"POSTGRES","oprrest":"regexnesel","oprresult":"bool","oprright":"text"},{"descr":"concatenate","oid":"654","oprcanhash":"f","oprcanmerge":"f","oprcode":"textcat","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"text","oprname":"||","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"text","oprright":"text"},{"descr":"less than","oid":"664","oid_symbol":"TextLessOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_lt","oprcom":"\u003e(text,text)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c","oprnamespace":"pg_catalog","oprnegate":"\u003e=(text,text)","oprowner":"POSTGRES","oprrest":"scalarltsel","oprresult":"bool","oprright":"text"},{"descr":"less than or equal","oid":"665","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_le","oprcom":"\u003e=(text,text)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003c=","oprnamespace":"pg_catalog","oprnegate":"\u003e(text,text)","oprowner":"POSTGRES","oprrest":"scalarlesel","oprresult":"bool","oprright":"text"},{"descr":"greater than","oid":"666","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_gt","oprcom":"\u003c(text,text)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e","oprnamespace":"pg_catalog","oprnegate":"\u003c=(text,text)","oprowner":"POSTGRES","oprrest":"scalargtsel","oprresult":"bool","oprright":"text"},{"descr":"greater than or equal","oid":"667","oid_symbol":"TextGreaterEqualOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_ge","oprcom":"\u003c=(text,text)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"text","oprname":"\u003e=","oprnamespace":"pg_catalog","oprnegate":"\u003c(text,text)","oprowner":"POSTGRES","oprrest":"scalargesel","oprresult":"bool","oprright":"text"},{"descr":"matches regular expression, case-sensitive","oid":"1055","oid_symbol":"OID_BPCHAR_REGEXEQ_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharregexeq","oprcom":"0","oprjoin":"regexeqjoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~","oprnamespace":"pg_catalog","oprnegate":"!~(bpchar,text)","oprowner":"POSTGRES","oprrest":"regexeqsel","oprresult":"bool","oprright":"text"},{"descr":"does not match regular expression, case-sensitive","oid":"1056","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharregexne","oprcom":"0","oprjoin":"regexnejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~","oprnamespace":"pg_catalog","oprnegate":"~(bpchar,text)","oprowner":"POSTGRES","oprrest":"regexnesel","oprresult":"bool","oprright":"text"},{"descr":"matches LIKE expression","oid":"1207","oid_symbol":"OID_NAME_LIKE_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"namelike","oprcom":"0","oprjoin":"likejoinsel","oprkind":"b","oprleft":"name","oprname":"~~","oprnamespace":"pg_catalog","oprnegate":"!~~(name,text)","oprowner":"POSTGRES","oprrest":"likesel","oprresult":"bool","oprright":"text"},{"descr":"does not match LIKE expression","oid":"1208","oprcanhash":"f","oprcanmerge":"f","oprcode":"namenlike","oprcom":"0","oprjoin":"nlikejoinsel","oprkind":"b","oprleft":"name","oprname":"!~~","oprnamespace":"pg_catalog","oprnegate":"~~(name,text)","oprowner":"POSTGRES","oprrest":"nlikesel","oprresult":"bool","oprright":"text"},{"descr":"matches LIKE expression","oid":"1209","oid_symbol":"OID_TEXT_LIKE_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"textlike","oprcom":"0","oprjoin":"likejoinsel","oprkind":"b","oprleft":"text","oprname":"~~","oprnamespace":"pg_catalog","oprnegate":"!~~(text,text)","oprowner":"POSTGRES","oprrest":"likesel","oprresult":"bool","oprright":"text"},{"descr":"does not match LIKE expression","oid":"1210","oprcanhash":"f","oprcanmerge":"f","oprcode":"textnlike","oprcom":"0","oprjoin":"nlikejoinsel","oprkind":"b","oprleft":"text","oprname":"!~~","oprnamespace":"pg_catalog","oprnegate":"~~(text,text)","oprowner":"POSTGRES","oprrest":"nlikesel","oprresult":"bool","oprright":"text"},{"descr":"matches LIKE expression","oid":"1211","oid_symbol":"OID_BPCHAR_LIKE_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharlike","oprcom":"0","oprjoin":"likejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~~","oprnamespace":"pg_catalog","oprnegate":"!~~(bpchar,text)","oprowner":"POSTGRES","oprrest":"likesel","oprresult":"bool","oprright":"text"},{"descr":"does not match LIKE expression","oid":"1212","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharnlike","oprcom":"0","oprjoin":"nlikejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~~","oprnamespace":"pg_catalog","oprnegate":"~~(bpchar,text)","oprowner":"POSTGRES","oprrest":"nlikesel","oprresult":"bool","oprright":"text"},{"descr":"matches regular expression, case-insensitive","oid":"1226","oid_symbol":"OID_NAME_ICREGEXEQ_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameicregexeq","oprcom":"0","oprjoin":"icregexeqjoinsel","oprkind":"b","oprleft":"name","oprname":"~*","oprnamespace":"pg_catalog","oprnegate":"!~*(name,text)","oprowner":"POSTGRES","oprrest":"icregexeqsel","oprresult":"bool","oprright":"text"},{"descr":"does not match regular expression, case-insensitive","oid":"1227","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameicregexne","oprcom":"0","oprjoin":"icregexnejoinsel","oprkind":"b","oprleft":"name","oprname":"!~*","oprnamespace":"pg_catalog","oprnegate":"~*(name,text)","oprowner":"POSTGRES","oprrest":"icregexnesel","oprresult":"bool","oprright":"text"},{"descr":"matches regular expression, case-insensitive","oid":"1228","oid_symbol":"OID_TEXT_ICREGEXEQ_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"texticregexeq","oprcom":"0","oprjoin":"icregexeqjoinsel","oprkind":"b","oprleft":"text","oprname":"~*","oprnamespace":"pg_catalog","oprnegate":"!~*(text,text)","oprowner":"POSTGRES","oprrest":"icregexeqsel","oprresult":"bool","oprright":"text"},{"descr":"does not match regular expression, case-insensitive","oid":"1229","oprcanhash":"f","oprcanmerge":"f","oprcode":"texticregexne","oprcom":"0","oprjoin":"icregexnejoinsel","oprkind":"b","oprleft":"text","oprname":"!~*","oprnamespace":"pg_catalog","oprnegate":"~*(text,text)","oprowner":"POSTGRES","oprrest":"icregexnesel","oprresult":"bool","oprright":"text"},{"descr":"matches regular expression, case-insensitive","oid":"1234","oid_symbol":"OID_BPCHAR_ICREGEXEQ_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharicregexeq","oprcom":"0","oprjoin":"icregexeqjoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~*","oprnamespace":"pg_catalog","oprnegate":"!~*(bpchar,text)","oprowner":"POSTGRES","oprrest":"icregexeqsel","oprresult":"bool","oprright":"text"},{"descr":"does not match regular expression, case-insensitive","oid":"1235","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharicregexne","oprcom":"0","oprjoin":"icregexnejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~*","oprnamespace":"pg_catalog","oprnegate":"~*(bpchar,text)","oprowner":"POSTGRES","oprrest":"icregexnesel","oprresult":"bool","oprright":"text"},{"descr":"matches LIKE expression, case-insensitive","oid":"1625","oid_symbol":"OID_NAME_ICLIKE_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameiclike","oprcom":"0","oprjoin":"iclikejoinsel","oprkind":"b","oprleft":"name","oprname":"~~*","oprnamespace":"pg_catalog","oprnegate":"!~~*(name,text)","oprowner":"POSTGRES","oprrest":"iclikesel","oprresult":"bool","oprright":"text"},{"descr":"does not match LIKE expression, case-insensitive","oid":"1626","oprcanhash":"f","oprcanmerge":"f","oprcode":"nameicnlike","oprcom":"0","oprjoin":"icnlikejoinsel","oprkind":"b","oprleft":"name","oprname":"!~~*","oprnamespace":"pg_catalog","oprnegate":"~~*(name,text)","oprowner":"POSTGRES","oprrest":"icnlikesel","oprresult":"bool","oprright":"text"},{"descr":"matches LIKE expression, case-insensitive","oid":"1627","oid_symbol":"OID_TEXT_ICLIKE_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"texticlike","oprcom":"0","oprjoin":"iclikejoinsel","oprkind":"b","oprleft":"text","oprname":"~~*","oprnamespace":"pg_catalog","oprnegate":"!~~*(text,text)","oprowner":"POSTGRES","oprrest":"iclikesel","oprresult":"bool","oprright":"text"},{"descr":"does not match LIKE expression, case-insensitive","oid":"1628","oprcanhash":"f","oprcanmerge":"f","oprcode":"texticnlike","oprcom":"0","oprjoin":"icnlikejoinsel","oprkind":"b","oprleft":"text","oprname":"!~~*","oprnamespace":"pg_catalog","oprnegate":"~~*(text,text)","oprowner":"POSTGRES","oprrest":"icnlikesel","oprresult":"bool","oprright":"text"},{"descr":"matches LIKE expression, case-insensitive","oid":"1629","oid_symbol":"OID_BPCHAR_ICLIKE_OP","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpchariclike","oprcom":"0","oprjoin":"iclikejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"~~*","oprnamespace":"pg_catalog","oprnegate":"!~~*(bpchar,text)","oprowner":"POSTGRES","oprrest":"iclikesel","oprresult":"bool","oprright":"text"},{"descr":"does not match LIKE expression, case-insensitive","oid":"1630","oprcanhash":"f","oprcanmerge":"f","oprcode":"bpcharicnlike","oprcom":"0","oprjoin":"icnlikejoinsel","oprkind":"b","oprleft":"bpchar","oprname":"!~~*","oprnamespace":"pg_catalog","oprnegate":"~~*(bpchar,text)","oprowner":"POSTGRES","oprrest":"icnlikesel","oprresult":"bool","oprright":"text"},{"descr":"less than","oid":"2314","oid_symbol":"TextPatternLessOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_lt","oprcom":"~\u003e~(text,text)","oprjoin":"scalarltjoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003c~","oprnamespace":"pg_catalog","oprnegate":"~\u003e=~(text,text)","oprowner":"POSTGRES","oprrest":"scalarltsel","oprresult":"bool","oprright":"text"},{"descr":"less than or equal","oid":"2315","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_le","oprcom":"~\u003e=~(text,text)","oprjoin":"scalarlejoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003c=~","oprnamespace":"pg_catalog","oprnegate":"~\u003e~(text,text)","oprowner":"POSTGRES","oprrest":"scalarlesel","oprresult":"bool","oprright":"text"},{"descr":"greater than or equal","oid":"2317","oid_symbol":"TextPatternGreaterEqualOperator","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_ge","oprcom":"~\u003c=~(text,text)","oprjoin":"scalargejoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003e=~","oprnamespace":"pg_catalog","oprnegate":"~\u003c~(text,text)","oprowner":"POSTGRES","oprrest":"scalargesel","oprresult":"bool","oprright":"text"},{"descr":"greater than","oid":"2318","oprcanhash":"f","oprcanmerge":"f","oprcode":"text_pattern_gt","oprcom":"~\u003c~(text,text)","oprjoin":"scalargtjoinsel","oprkind":"b","oprleft":"text","oprname":"~\u003e~","oprnamespace":"pg_catalog","oprnegate":"~\u003c=~(text,text)","oprowner":"POSTGRES","oprrest":"scalargtsel","oprresult":"bool","oprright":"text"},{"descr":"concatenate","oid":"2779","oprcanhash":"f","oprcanmerge":"f","oprcode":"textanycat","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"text","oprname":"||","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"text","oprright":"anynonarray"},{"descr":"concatenate","oid":"2780","oprcanhash":"f","oprcanmerge":"f","oprcode":"anytextcat","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"anynonarray","oprname":"||","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"text","oprright":"text"},{"descr":"text search match","oid":"3762","oprcanhash":"f","oprcanmerge":"f","oprcode":"ts_match_tt","oprcom":"0","oprjoin":"matchingjoinsel","oprkind":"b","oprleft":"text","oprname":"@@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"matchingsel","oprresult":"bool","oprright":"text"},{"descr":"text search match","oid":"3763","oprcanhash":"f","oprcanmerge":"f","oprcode":"ts_match_tq","oprcom":"0","oprjoin":"matchingjoinsel","oprkind":"b","oprleft":"text","oprname":"@@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"matchingsel","oprresult":"bool","oprright":"tsquery"},{"descr":"get json object field","oid":"3962","oprcanhash":"f","oprcanmerge":"f","oprcode":"json_object_field","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"json","oprname":"-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"json","oprright":"text"},{"descr":"get json object field as text","oid":"3963","oprcanhash":"f","oprcanmerge":"f","oprcode":"json_object_field_text","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"json","oprname":"-\u003e\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"text","oprright":"text"},{"descr":"get jsonb object field","oid":"3211","oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_object_field","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"jsonb","oprname":"-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"jsonb","oprright":"text"},{"descr":"get jsonb object field as text","oid":"3477","oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_object_field_text","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"jsonb","oprname":"-\u003e\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"text","oprright":"text"},{"descr":"key exists","oid":"3247","oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_exists","oprcom":"0","oprjoin":"matchingjoinsel","oprkind":"b","oprleft":"jsonb","oprname":"?","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"matchingsel","oprresult":"bool","oprright":"text"},{"descr":"delete object field","oid":"3285","oprcanhash":"f","oprcanmerge":"f","oprcode":"jsonb_delete(jsonb,text)","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"jsonb","oprname":"-","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"jsonb","oprright":"text"}],"ranges":[],"related":[{"label":"pg_type catalog","url":"/wiki/catalog/pg_type/?v=18"},{"label":"pg_cast catalog","url":"/wiki/catalog/pg_cast/?v=18"},{"label":"pg_operator catalog","url":"/wiki/catalog/pg_operator/?v=18"},{"label":"pg_opclass catalog","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"Arrays","url":"/wiki/type/arrays/?v=18"},{"label":"brin index access method","url":"/wiki/indexam/brin/?v=18"},{"label":"btree index access method","url":"/wiki/indexam/btree/?v=18"},{"label":"hash index access method","url":"/wiki/indexam/hash/?v=18"},{"label":"spgist index access method","url":"/wiki/indexam/spgist/?v=18"}],"release":{"channel":"stable","label":"18.6","major":"18","manual_sha256":{"arrays.html":"0e1d5c5a7b4a949d4439995f44f74ad4264e050d16eb9ad2a850fbaee04032df","catalog-pg-type.html":"ea9c9313bab8e92a7da18ebc50c7ff1f908dd80999a7e0ca3bbc82ba626c58d4","datatype-binary.html":"0c03ec47b76e37888a3da7f5dcfd340128a5d356642a85185cc9ebe17856a904","datatype-bit.html":"c49124aad561636c18080b9e09572fde7785a6b9eae86f5a33283f0fd6774c37","datatype-boolean.html":"b633f663e6c8276e7056287640c413aa79dbc15d5353cee0d41653d58d376956","datatype-character.html":"c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73","datatype-datetime.html":"e366275d8b13845bfa4ef0d68faa093e5f3ecb708a1ec870cbcbf7e425b85699","datatype-enum.html":"cab38e53222e30cc94b24de4b33634fd22d7c93f58ebcf35f646c9b8da78fae8","datatype-geometric.html":"0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9","datatype-json.html":"650162a05b660146b500a205d523374d00aee117a6a6240d30262be51b6e33e5","datatype-money.html":"8b29c14b90679683ac5c472b59a0a7e2853f32cc7db43fab417b2697a6879964","datatype-net-types.html":"96846e641cc37727ddcd8b8a1aa0dbe33cd9787760a2b4efb0dcb9403d5be63f","datatype-numeric.html":"b74619f7ac2f1ca9f85c48073df78c33dd30e464e61baba6008634534edcb500","datatype-oid.html":"8b3360302225f08ae72716ce1804596de95b568e5d31f788cb4597427b28cc38","datatype-pg-lsn.html":"339172f5107cc7eb7139bec911277647219e92a532cebd0f3da0a5dacf8195af","datatype-pseudo.html":"c7cf0b8214304bd8702c95f2142671ae5f0d631f83717f9c07d9e1f2579961b4","datatype-textsearch.html":"4b15e05be8b49a71b28aea22f2c46d0dbf639a91e7b4fe129a4c737c6daad47c","datatype-uuid.html":"292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246","datatype-xml.html":"061fc2295b7b69be704f0a741b8decd10ad721059f871fb0243c669bb54d7822","datatype.html":"e581f67c74e42006289638c8659e9b338adbfd7f068bd8bf2b3be3880fcd2254","domains.html":"82d486973ccc35d14276627a67ac76b434452f23f9ed4d8aa3fbb01fdf285fc2","functions-info.html":"78ac80bf81da2e4f4a33f3b850faa86f0f58ec54a083d6c31da557907de0df87","rangetypes.html":"e4960abc7ce8e51d794f94f1e57b099d30b7f75dd7f2b23a960eef91f6291c33","rowtypes.html":"74f99e029c3a9edfd3e18810ba3c8cb66d3aada91eb67b86476560871e6617e9","sql-createdomain.html":"e94f927196de1b0ea1ce35cd4603c1f6f544439adcc0edf1c4222358e832245b"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_files":{"doc/src/sgml/datatype.sgml":"86328daa77e20d81d222376ec0306d9841a17104e436c08d138eb763aefb3700","src/include/catalog/pg_am.dat":"b3cb86b102a42fb0024cbd99779c9897afb40d12a71f5cc5a0e5aee7ff2f9969","src/include/catalog/pg_am.h":"3426799df799f32163fcc0765f43dbdb5e88e626acf31284fef9fc6014b69d8e","src/include/catalog/pg_cast.dat":"97911281ca2c81917394ccb2ec13367e37c6801fd461d5e1a3d2f28b911b46b2","src/include/catalog/pg_cast.h":"de585c7df687d698e7d1d100dce8a794ac9da52414ea48169191019178c8f053","src/include/catalog/pg_opclass.dat":"4ee7d3619a6aa106e1c0db55de903931c7d11b1c60ba053a022519c55f8ee668","src/include/catalog/pg_opclass.h":"9c218537806c8ef0398302faaca7f91315dfc1198c48706cebffb479b68defaf","src/include/catalog/pg_operator.dat":"5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703","src/include/catalog/pg_operator.h":"621b18cfffe102413d79b746ce7a10f77fc60fdd097bac34c22b31070d3ee3c4","src/include/catalog/pg_opfamily.dat":"3b694879027b858f2ecf1fa1152b7e30c6e15a216ba99c2384291c30e9d52311","src/include/catalog/pg_opfamily.h":"e1f5fc8aebd3042df847455bf66bf755f768c2aa8a9b03d22f7ec8563eba59c0","src/include/catalog/pg_proc.dat":"1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a","src/include/catalog/pg_proc.h":"f7d59f07c5b95e2f3c7141762a0f576e8a3af7581ba54c27537f4d500472bea5","src/include/catalog/pg_range.dat":"5c2271f8e89e9378d1887204e5785060b77405b5f0ff3e6c719250c9c1dcfcc4","src/include/catalog/pg_range.h":"45546d952b5181f989bd9234721897fc2b37005c8e49ce2ddc156f26974c3ca4","src/include/catalog/pg_type.dat":"5f5887b75677cba2d4a1a0cfeb355df5ed91f85d385fac88bd8d7c605b3578f9","src/include/catalog/pg_type.h":"8fb198749fd82b6c1818a3c18455f226f66116fcfeb3d4959c65ce3fda22802e"},"source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[],"signature":"text","sources":[{"label":"PostgreSQL 18 English manual","path":"datatype-character.html","sha256":"c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73","url":"/docs/18/datatype-character.html"},{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"}]},"ManualEvidence":{"manual_path":"datatype-character.html","release":{"channel":"stable","label":"18.6","major":"18","manual_sha256":{"arrays.html":"0e1d5c5a7b4a949d4439995f44f74ad4264e050d16eb9ad2a850fbaee04032df","catalog-pg-type.html":"ea9c9313bab8e92a7da18ebc50c7ff1f908dd80999a7e0ca3bbc82ba626c58d4","datatype-binary.html":"0c03ec47b76e37888a3da7f5dcfd340128a5d356642a85185cc9ebe17856a904","datatype-bit.html":"c49124aad561636c18080b9e09572fde7785a6b9eae86f5a33283f0fd6774c37","datatype-boolean.html":"b633f663e6c8276e7056287640c413aa79dbc15d5353cee0d41653d58d376956","datatype-character.html":"c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73","datatype-datetime.html":"e366275d8b13845bfa4ef0d68faa093e5f3ecb708a1ec870cbcbf7e425b85699","datatype-enum.html":"cab38e53222e30cc94b24de4b33634fd22d7c93f58ebcf35f646c9b8da78fae8","datatype-geometric.html":"0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9","datatype-json.html":"650162a05b660146b500a205d523374d00aee117a6a6240d30262be51b6e33e5","datatype-money.html":"8b29c14b90679683ac5c472b59a0a7e2853f32cc7db43fab417b2697a6879964","datatype-net-types.html":"96846e641cc37727ddcd8b8a1aa0dbe33cd9787760a2b4efb0dcb9403d5be63f","datatype-numeric.html":"b74619f7ac2f1ca9f85c48073df78c33dd30e464e61baba6008634534edcb500","datatype-oid.html":"8b3360302225f08ae72716ce1804596de95b568e5d31f788cb4597427b28cc38","datatype-pg-lsn.html":"339172f5107cc7eb7139bec911277647219e92a532cebd0f3da0a5dacf8195af","datatype-pseudo.html":"c7cf0b8214304bd8702c95f2142671ae5f0d631f83717f9c07d9e1f2579961b4","datatype-textsearch.html":"4b15e05be8b49a71b28aea22f2c46d0dbf639a91e7b4fe129a4c737c6daad47c","datatype-uuid.html":"292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246","datatype-xml.html":"061fc2295b7b69be704f0a741b8decd10ad721059f871fb0243c669bb54d7822","datatype.html":"e581f67c74e42006289638c8659e9b338adbfd7f068bd8bf2b3be3880fcd2254","domains.html":"82d486973ccc35d14276627a67ac76b434452f23f9ed4d8aa3fbb01fdf285fc2","functions-info.html":"78ac80bf81da2e4f4a33f3b850faa86f0f58ec54a083d6c31da557907de0df87","rangetypes.html":"e4960abc7ce8e51d794f94f1e57b099d30b7f75dd7f2b23a960eef91f6291c33","rowtypes.html":"74f99e029c3a9edfd3e18810ba3c8cb66d3aada91eb67b86476560871e6617e9","sql-createdomain.html":"e94f927196de1b0ea1ce35cd4603c1f6f544439adcc0edf1c4222358e832245b"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_files":{"doc/src/sgml/datatype.sgml":"86328daa77e20d81d222376ec0306d9841a17104e436c08d138eb763aefb3700","src/include/catalog/pg_am.dat":"b3cb86b102a42fb0024cbd99779c9897afb40d12a71f5cc5a0e5aee7ff2f9969","src/include/catalog/pg_am.h":"3426799df799f32163fcc0765f43dbdb5e88e626acf31284fef9fc6014b69d8e","src/include/catalog/pg_cast.dat":"97911281ca2c81917394ccb2ec13367e37c6801fd461d5e1a3d2f28b911b46b2","src/include/catalog/pg_cast.h":"de585c7df687d698e7d1d100dce8a794ac9da52414ea48169191019178c8f053","src/include/catalog/pg_opclass.dat":"4ee7d3619a6aa106e1c0db55de903931c7d11b1c60ba053a022519c55f8ee668","src/include/catalog/pg_opclass.h":"9c218537806c8ef0398302faaca7f91315dfc1198c48706cebffb479b68defaf","src/include/catalog/pg_operator.dat":"5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703","src/include/catalog/pg_operator.h":"621b18cfffe102413d79b746ce7a10f77fc60fdd097bac34c22b31070d3ee3c4","src/include/catalog/pg_opfamily.dat":"3b694879027b858f2ecf1fa1152b7e30c6e15a216ba99c2384291c30e9d52311","src/include/catalog/pg_opfamily.h":"e1f5fc8aebd3042df847455bf66bf755f768c2aa8a9b03d22f7ec8563eba59c0","src/include/catalog/pg_proc.dat":"1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a","src/include/catalog/pg_proc.h":"f7d59f07c5b95e2f3c7141762a0f576e8a3af7581ba54c27537f4d500472bea5","src/include/catalog/pg_range.dat":"5c2271f8e89e9378d1887204e5785060b77405b5f0ff3e6c719250c9c1dcfcc4","src/include/catalog/pg_range.h":"45546d952b5181f989bd9234721897fc2b37005c8e49ce2ddc156f26974c3ca4","src/include/catalog/pg_type.dat":"5f5887b75677cba2d4a1a0cfeb355df5ed91f85d385fac88bd8d7c605b3578f9","src/include/catalog/pg_type.h":"8fb198749fd82b6c1818a3c18455f226f66116fcfeb3d4959c65ce3fda22802e"},"source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"label":"PostgreSQL 18 English manual","path":"datatype-character.html","sha256":"c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73","url":"/docs/18/datatype-character.html"},{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"}]},"MeasuredEvidence":{}},"Text":{"Collection":"type","Key":"text","SourceDatabase":"center","Version":"18","Locale":"en","Title":"text","Summary":"variable-length character string","BodyHTML":"\u003cdiv id=\"DATATYPE-CHARACTER\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch2\u003e8.3. Character Types \u003c/h2\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-CHARACTER-TABLE\"\u003e\n\u003cp\u003e\u003cstrong\u003eTable 8.4. Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv\u003e\n\u003ctable\u003e\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003echaracter varying(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode\u003evarchar(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable-length with limit\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003echaracter(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode\u003echar(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode\u003ebpchar(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efixed-length, blank-padded\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ebpchar\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable unlimited length, blank-trimmed\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003etext\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable unlimited length\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr\u003e\n\u003cp\u003e\u003ca href=\"/docs/18/datatype-character.html#DATATYPE-CHARACTER-TABLE\" rel=\"nofollow\"\u003eTable 8.4\u003c/a\u003e shows the general-purpose character types available in \u003cspan\u003ePostgreSQL\u003c/span\u003e.\u003c/p\u003e\n\u003cp\u003eSQL defines two primary character types: \u003ccode\u003echaracter varying(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode\u003echaracter(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, where \u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e is a positive integer. Both of these types can store strings up to \u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e characters (not bytes) in length. An attempt to store a longer string into a column of these types will result in an error, unless the excess characters are all spaces, in which case the string will be truncated to the maximum length. (This somewhat bizarre exception is required by the SQL standard.) However, if one explicitly casts a value to \u003ccode\u003echaracter varying(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e or \u003ccode\u003echaracter(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, then an over-length value will be truncated to \u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e characters without raising an error. (This too is required by the SQL standard.) If the string to be stored is shorter than the declared length, values of type \u003ccode\u003echaracter\u003c/code\u003e will be space-padded; values of type \u003ccode\u003echaracter varying\u003c/code\u003e will simply store the shorter string.\u003c/p\u003e\n\u003cp\u003eIn addition, \u003cspan\u003ePostgreSQL\u003c/span\u003e provides the \u003ccode\u003etext\u003c/code\u003e type, which stores strings of any length. Although the \u003ccode\u003etext\u003c/code\u003e type is not in the SQL standard, several other SQL database management systems have it as well. \u003ccode\u003etext\u003c/code\u003e is \u003cspan\u003ePostgreSQL\u003c/span\u003e\u0026#39;s native string data type, in that most built-in functions operating on strings are declared to take or return \u003ccode\u003etext\u003c/code\u003e not \u003ccode\u003echaracter varying\u003c/code\u003e. For many purposes, \u003ccode\u003echaracter varying\u003c/code\u003e acts as though it were a \u003ca href=\"/docs/18/domains.html\" rel=\"nofollow\"\u003edomain\u003c/a\u003e over \u003ccode\u003etext\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe type name \u003ccode\u003evarchar\u003c/code\u003e is an alias for \u003ccode\u003echaracter varying\u003c/code\u003e, while \u003ccode\u003ebpchar\u003c/code\u003e (with length specifier) and \u003ccode\u003echar\u003c/code\u003e are aliases for \u003ccode\u003echaracter\u003c/code\u003e. The \u003ccode\u003evarchar\u003c/code\u003e and \u003ccode\u003echar\u003c/code\u003e aliases are defined in the SQL standard; \u003ccode\u003ebpchar\u003c/code\u003e is a \u003cspan\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e\n\u003cp\u003eIf specified, the length \u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e must be greater than zero and cannot exceed 10,485,760. If \u003ccode\u003echaracter varying\u003c/code\u003e (or \u003ccode\u003evarchar\u003c/code\u003e) is used without length specifier, the type accepts strings of any length. If \u003ccode\u003ebpchar\u003c/code\u003e lacks a length specifier, it also accepts strings of any length, but trailing spaces are semantically insignificant. If \u003ccode\u003echaracter\u003c/code\u003e (or \u003ccode\u003echar\u003c/code\u003e) lacks a specifier, it is equivalent to \u003ccode\u003echaracter(1)\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode\u003echaracter\u003c/code\u003e are physically padded with spaces to the specified width \u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e, and are stored and displayed that way. However, trailing spaces are treated as semantically insignificant and disregarded when comparing two values of type \u003ccode\u003echaracter\u003c/code\u003e. In collations where whitespace is significant, this behavior can produce unexpected results; for example \u003ccode\u003eSELECT \u0026#39;a \u0026#39;::CHAR(2) collate \u0026#34;C\u0026#34; \u0026lt; E\u0026#39;a\\n\u0026#39;::CHAR(2)\u003c/code\u003e returns true, even though \u003ccode\u003eC\u003c/code\u003e locale would consider a space to be greater than a newline. Trailing spaces are removed when converting a \u003ccode\u003echaracter\u003c/code\u003e value to one of the other string types. Note that trailing spaces \u003cspan\u003e\u003cem\u003eare\u003c/em\u003e\u003c/span\u003e semantically significant in \u003ccode\u003echaracter varying\u003c/code\u003e and \u003ccode\u003etext\u003c/code\u003e values, and when using pattern matching, that is \u003ccode\u003eLIKE\u003c/code\u003e and regular expressions.\u003c/p\u003e\n\u003cp\u003eThe characters that can be stored in any of these data types are determined by the database character set, which is selected when the database is created. Regardless of the specific character set, the character with code zero (sometimes called NUL) cannot be stored. For more information refer to \u003ca href=\"/docs/18/multibyte.html\" rel=\"nofollow\"\u003eSection 23.3\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe storage requirement for a short string (up to 126 bytes) is 1 byte plus the actual string, which includes the space padding in the case of \u003ccode\u003echaracter\u003c/code\u003e. Longer strings have 4 bytes of overhead instead of 1. Long strings are compressed by the system automatically, so the physical requirement on disk might be less. Very long values are also stored in background tables so that they do not interfere with rapid access to shorter column values. In any case, the longest possible character string that can be stored is about 1 GB. (The maximum value that will be allowed for \u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e in the data type declaration is less than that. It wouldn\u0026#39;t be useful to change this because with multibyte character encodings the number of characters and bytes can be quite different. If you desire to store long strings with no specific upper limit, use \u003ccode\u003etext\u003c/code\u003e or \u003ccode\u003echaracter varying\u003c/code\u003e without a length specifier, rather than making up an arbitrary length limit.)\u003c/p\u003e\n\u003cdiv\u003e\n\u003ch3\u003eTip\u003c/h3\u003e\n\u003cp\u003eThere is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While \u003ccode\u003echaracter(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e has performance advantages in some other database systems, there is no such advantage in \u003cspan\u003ePostgreSQL\u003c/span\u003e; in fact \u003ccode\u003echaracter(\u003cem\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e is usually the slowest of the three because of its additional storage costs. In most situations \u003ccode\u003etext\u003c/code\u003e or \u003ccode\u003echaracter varying\u003c/code\u003e should be used instead.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eRefer to \u003ca href=\"/docs/18/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS\" rel=\"nofollow\"\u003eSection 4.1.2.1\u003c/a\u003e for information about the syntax of string literals, and to \u003ca href=\"/docs/18/functions.html\" rel=\"nofollow\"\u003eChapter 9\u003c/a\u003e for information about available operators and functions.\u003c/p\u003e\n\u003cdiv id=\"id-1.5.7.11.21\"\u003e\n\u003cp\u003e\u003cstrong\u003eExample 8.1. Using the Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv\u003e\n\u003cpre\u003eCREATE TABLE test1 (a character(4));\nINSERT INTO test1 VALUES (\u0026#39;ok\u0026#39;);\nSELECT a, char_length(a) FROM test1; -- \u003cspan id=\"co.datatype-char\"\u003e\u003c/span\u003e(1)\n\u003ccode\u003e\n  a   | char_length\n------+-------------\n ok   |           2\n\u003c/code\u003e\n\nCREATE TABLE test2 (b varchar(5));\nINSERT INTO test2 VALUES (\u0026#39;ok\u0026#39;);\nINSERT INTO test2 VALUES (\u0026#39;good      \u0026#39;);\nINSERT INTO test2 VALUES (\u0026#39;too long\u0026#39;);\n\u003ccode\u003eERROR:  value too long for type character varying(5)\u003c/code\u003e\nINSERT INTO test2 VALUES (\u0026#39;too long\u0026#39;::varchar(5)); -- explicit truncation\nSELECT b, char_length(b) FROM test2;\n\u003ccode\u003e\n   b   | char_length\n-------+-------------\n ok    |           2\n good  |           5\n too l |           5\n\u003c/code\u003e\n\u003c/pre\u003e\n\u003cdiv\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003ca href=\"/docs/18/datatype-character.html#co.datatype-char\" rel=\"nofollow\"\u003e(1)\u003c/a\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eThe \u003ccode\u003echar_length\u003c/code\u003e function is discussed in \u003ca href=\"/docs/18/functions-string.html\" rel=\"nofollow\"\u003eSection 9.4\u003c/a\u003e.\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr\u003e\n\u003cp\u003eThere are two other fixed-length character types in \u003cspan\u003ePostgreSQL\u003c/span\u003e, shown in \u003ca href=\"/docs/18/datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE\" rel=\"nofollow\"\u003eTable 8.5\u003c/a\u003e. These are not intended for general-purpose use, only for use in the internal system catalogs. The \u003ccode\u003ename\u003c/code\u003e type is used to store identifiers. Its length is currently defined as 64 bytes (63 usable characters plus terminator) but should be referenced using the constant \u003ccode\u003eNAMEDATALEN\u003c/code\u003e in \u003ccode\u003eC\u003c/code\u003e source code. The length is set at compile time (and is therefore adjustable for special uses); the default maximum length might change in a future release. The type \u003ccode\u003e\u0026#34;char\u0026#34;\u003c/code\u003e (note the quotes) is different from \u003ccode\u003echar(1)\u003c/code\u003e in that it only uses one byte of storage, and therefore can store only a single ASCII character. It is used in the system catalogs as a simplistic enumeration type.\u003c/p\u003e\n\u003cdiv id=\"DATATYPE-CHARACTER-SPECIAL-TABLE\"\u003e\n\u003cp\u003e\u003cstrong\u003eTable 8.5. Special Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv\u003e\n\u003ctable\u003e\n\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eStorage Size\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026#34;char\u0026#34;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e1 byte\u003c/td\u003e\n\u003ctd\u003esingle-byte internal type\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e64 bytes\u003c/td\u003e\n\u003ctd\u003einternal type for object names\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr\u003e\n\u003c/div\u003e","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","ContentHash":"3dd52ee19113ff30e44beac6bd4626e986666b71c8aa8e4b4548d48511cee7c2","Payload":{"description":["variable-length character string"],"manual_html":"\u003cdiv class=\"sect1\" id=\"DATATYPE-CHARACTER\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch2 class=\"title\"\u003e8.3. Character Types \u003c/h2\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"table\" id=\"DATATYPE-CHARACTER-TABLE\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eTable 8.4. Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"table-contents\"\u003e\n\u003ctable class=\"table\"\u003e\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003echaracter varying(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode class=\"type\"\u003evarchar(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable-length with limit\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode class=\"type\"\u003echar(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, \u003ccode class=\"type\"\u003ebpchar(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efixed-length, blank-padded\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable unlimited length, blank-trimmed\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003etext\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003evariable unlimited length\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"table-break\"\u003e\n\u003cp\u003e\u003ca class=\"xref\" href=\"/docs/18/datatype-character.html#DATATYPE-CHARACTER-TABLE\" title=\"Table 8.4. Character Types\"\u003eTable 8.4\u003c/a\u003e shows the general-purpose character types available in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e.\u003c/p\u003e\n\u003cp\u003eSQL defines two primary character types: \u003ccode class=\"type\"\u003echaracter varying(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, where \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e is a positive integer. Both of these types can store strings up to \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e characters (not bytes) in length. An attempt to store a longer string into a column of these types will result in an error, unless the excess characters are all spaces, in which case the string will be truncated to the maximum length. (This somewhat bizarre exception is required by the SQL standard.) However, if one explicitly casts a value to \u003ccode class=\"type\"\u003echaracter varying(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e or \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e, then an over-length value will be truncated to \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e characters without raising an error. (This too is required by the SQL standard.) If the string to be stored is shorter than the declared length, values of type \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e will be space-padded; values of type \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e will simply store the shorter string.\u003c/p\u003e\n\u003cp\u003eIn addition, \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e provides the \u003ccode class=\"type\"\u003etext\u003c/code\u003e type, which stores strings of any length. Although the \u003ccode class=\"type\"\u003etext\u003c/code\u003e type is not in the SQL standard, several other SQL database management systems have it as well. \u003ccode class=\"type\"\u003etext\u003c/code\u003e is \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e's native string data type, in that most built-in functions operating on strings are declared to take or return \u003ccode class=\"type\"\u003etext\u003c/code\u003e not \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e. For many purposes, \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e acts as though it were a \u003ca class=\"link\" href=\"/docs/18/domains.html\" title=\"8.18. Domain Types\"\u003edomain\u003c/a\u003e over \u003ccode class=\"type\"\u003etext\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe type name \u003ccode class=\"type\"\u003evarchar\u003c/code\u003e is an alias for \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e, while \u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e (with length specifier) and \u003ccode class=\"type\"\u003echar\u003c/code\u003e are aliases for \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e. The \u003ccode class=\"type\"\u003evarchar\u003c/code\u003e and \u003ccode class=\"type\"\u003echar\u003c/code\u003e aliases are defined in the SQL standard; \u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e\n\u003cp\u003eIf specified, the length \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e must be greater than zero and cannot exceed 10,485,760. If \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e (or \u003ccode class=\"type\"\u003evarchar\u003c/code\u003e) is used without length specifier, the type accepts strings of any length. If \u003ccode class=\"type\"\u003ebpchar\u003c/code\u003e lacks a length specifier, it also accepts strings of any length, but trailing spaces are semantically insignificant. If \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e (or \u003ccode class=\"type\"\u003echar\u003c/code\u003e) lacks a specifier, it is equivalent to \u003ccode class=\"type\"\u003echaracter(1)\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e are physically padded with spaces to the specified width \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e, and are stored and displayed that way. However, trailing spaces are treated as semantically insignificant and disregarded when comparing two values of type \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e. In collations where whitespace is significant, this behavior can produce unexpected results; for example \u003ccode class=\"command\"\u003eSELECT 'a '::CHAR(2) collate \"C\" \u0026lt; E'a\\n'::CHAR(2)\u003c/code\u003e returns true, even though \u003ccode class=\"literal\"\u003eC\u003c/code\u003e locale would consider a space to be greater than a newline. Trailing spaces are removed when converting a \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e value to one of the other string types. Note that trailing spaces \u003cspan class=\"emphasis\"\u003e\u003cem\u003eare\u003c/em\u003e\u003c/span\u003e semantically significant in \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e and \u003ccode class=\"type\"\u003etext\u003c/code\u003e values, and when using pattern matching, that is \u003ccode class=\"literal\"\u003eLIKE\u003c/code\u003e and regular expressions.\u003c/p\u003e\n\u003cp\u003eThe characters that can be stored in any of these data types are determined by the database character set, which is selected when the database is created. Regardless of the specific character set, the character with code zero (sometimes called NUL) cannot be stored. For more information refer to \u003ca class=\"xref\" href=\"/docs/18/multibyte.html\" title=\"23.3. Character Set Support\"\u003eSection 23.3\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe storage requirement for a short string (up to 126 bytes) is 1 byte plus the actual string, which includes the space padding in the case of \u003ccode class=\"type\"\u003echaracter\u003c/code\u003e. Longer strings have 4 bytes of overhead instead of 1. Long strings are compressed by the system automatically, so the physical requirement on disk might be less. Very long values are also stored in background tables so that they do not interfere with rapid access to shorter column values. In any case, the longest possible character string that can be stored is about 1 GB. (The maximum value that will be allowed for \u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e in the data type declaration is less than that. It wouldn't be useful to change this because with multibyte character encodings the number of characters and bytes can be quite different. If you desire to store long strings with no specific upper limit, use \u003ccode class=\"type\"\u003etext\u003c/code\u003e or \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e without a length specifier, rather than making up an arbitrary length limit.)\u003c/p\u003e\n\u003cdiv class=\"tip\"\u003e\n\u003ch3 class=\"title\"\u003eTip\u003c/h3\u003e\n\u003cp\u003eThere is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e has performance advantages in some other database systems, there is no such advantage in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e; in fact \u003ccode class=\"type\"\u003echaracter(\u003cem class=\"replaceable\"\u003e\u003ccode\u003en\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e is usually the slowest of the three because of its additional storage costs. In most situations \u003ccode class=\"type\"\u003etext\u003c/code\u003e or \u003ccode class=\"type\"\u003echaracter varying\u003c/code\u003e should be used instead.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eRefer to \u003ca class=\"xref\" href=\"/docs/18/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS\" title=\"4.1.2.1. String Constants\"\u003eSection 4.1.2.1\u003c/a\u003e for information about the syntax of string literals, and to \u003ca class=\"xref\" href=\"/docs/18/functions.html\" title=\"Chapter 9. Functions and Operators\"\u003eChapter 9\u003c/a\u003e for information about available operators and functions.\u003c/p\u003e\n\u003cdiv class=\"example\" id=\"id-1.5.7.11.21\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eExample 8.1. Using the Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"example-contents\"\u003e\n\u003cpre class=\"programlisting\"\u003eCREATE TABLE test1 (a character(4));\nINSERT INTO test1 VALUES ('ok');\nSELECT a, char_length(a) FROM test1; -- \u003cspan id=\"co.datatype-char\"\u003e\u003c/span\u003e(1)\n\u003ccode class=\"computeroutput\"\u003e\n  a   | char_length\n------+-------------\n ok   |           2\n\u003c/code\u003e\n\nCREATE TABLE test2 (b varchar(5));\nINSERT INTO test2 VALUES ('ok');\nINSERT INTO test2 VALUES ('good      ');\nINSERT INTO test2 VALUES ('too long');\n\u003ccode class=\"computeroutput\"\u003eERROR:  value too long for type character varying(5)\u003c/code\u003e\nINSERT INTO test2 VALUES ('too long'::varchar(5)); -- explicit truncation\nSELECT b, char_length(b) FROM test2;\n\u003ccode class=\"computeroutput\"\u003e\n   b   | char_length\n-------+-------------\n ok    |           2\n good  |           5\n too l |           5\n\u003c/code\u003e\n\u003c/pre\u003e\n\u003cdiv class=\"calloutlist\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003ca href=\"/docs/18/datatype-character.html#co.datatype-char\"\u003e(1)\u003c/a\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eThe \u003ccode class=\"function\"\u003echar_length\u003c/code\u003e function is discussed in \u003ca class=\"xref\" href=\"/docs/18/functions-string.html\" title=\"9.4. String Functions and Operators\"\u003eSection 9.4\u003c/a\u003e.\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"example-break\"\u003e\n\u003cp\u003eThere are two other fixed-length character types in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e, shown in \u003ca class=\"xref\" href=\"/docs/18/datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE\" title=\"Table 8.5. Special Character Types\"\u003eTable 8.5\u003c/a\u003e. These are not intended for general-purpose use, only for use in the internal system catalogs. The \u003ccode class=\"type\"\u003ename\u003c/code\u003e type is used to store identifiers. Its length is currently defined as 64 bytes (63 usable characters plus terminator) but should be referenced using the constant \u003ccode class=\"symbol\"\u003eNAMEDATALEN\u003c/code\u003e in \u003ccode class=\"literal\"\u003eC\u003c/code\u003e source code. The length is set at compile time (and is therefore adjustable for special uses); the default maximum length might change in a future release. The type \u003ccode class=\"type\"\u003e\"char\"\u003c/code\u003e (note the quotes) is different from \u003ccode class=\"type\"\u003echar(1)\u003c/code\u003e in that it only uses one byte of storage, and therefore can store only a single ASCII character. It is used in the system catalogs as a simplistic enumeration type.\u003c/p\u003e\n\u003cdiv class=\"table\" id=\"DATATYPE-CHARACTER-SPECIAL-TABLE\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eTable 8.5. Special Character Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"table-contents\"\u003e\n\u003ctable class=\"table\"\u003e\n\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eStorage Size\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003e\"char\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e1 byte\u003c/td\u003e\n\u003ctd\u003esingle-byte internal type\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ename\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e64 bytes\u003c/td\u003e\n\u003ctd\u003einternal type for object names\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"table-break\"\u003e\n\u003c/div\u003e","related":[{"label":"pg_type catalog","url":"/wiki/catalog/pg_type/?v=18"},{"label":"pg_cast catalog","url":"/wiki/catalog/pg_cast/?v=18"},{"label":"pg_operator catalog","url":"/wiki/catalog/pg_operator/?v=18"},{"label":"pg_opclass catalog","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"Arrays","url":"/wiki/type/arrays/?v=18"},{"label":"brin index access method","url":"/wiki/indexam/brin/?v=18"},{"label":"btree index access method","url":"/wiki/indexam/btree/?v=18"},{"label":"hash index access method","url":"/wiki/indexam/hash/?v=18"},{"label":"spgist index access method","url":"/wiki/indexam/spgist/?v=18"}],"sections":[]}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
