{"Entry":{"collection":"func","key":"string-to-table","name":"string_to_table","aliases":[],"metadata":{"changed_in":[],"changes":[{"descriptions_changed":false,"doc_overhaul":false,"from":"13","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"added","to":"14"}],"content_hash":"ed7dab23cc9dc57c74e2136ababf978e694f4931304ceb55598591d525ec4824","derived_content_hash":"fdf5ee4af34f903be1738b38d94da3b8b4403c757bcf2f620db8950040e6eb65","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:3006579dc0b99fbfe6e6ecb80fd9b270ed659a060fcde858868136aff209eeaa","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"first_version":"14","group":"string","group_label":"String Functions And Operators","groups":["string"],"imported_at":"2026-09-14T21:49:48.672032+08:00","last_version":"20","name":"string_to_table","name_key":"string_to_table","position":3045,"present_in":["14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"2026-09-14T13:14:25.684213+00:00@99e6866c","receipt_sha256":"b4df3e68480683d8b42273b745450bdc32f6ad0f9a9da2a2e38790477327b8e5","repair":"wiki-repair-20261023"},"signature":"string_to_table ( string text, delimiter text [, null_string text ] ) → setof text","signature_count":1,"slug":"string-to-table","source_rev":"wiki-repair-20261023:3006579dc0b99fbfe6e6ecb80fd9b270ed659a060fcde858868136aff209eeaa","summary":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows.","summary_zh":""}},"Definition":{"Collection":"func","Key":"string-to-table","SourceDatabase":"center","Version":"18","SourceTable":"func","SourceKey":"string-to-table","SourceRevision":"wiki-repair-20261023:3006579dc0b99fbfe6e6ecb80fd9b270ed659a060fcde858868136aff209eeaa","Facts":{"description":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows. If delimiter is NULL, each character in the string will become a separate row of the result. If delimiter is an empty string, then the string is treated as a single field. If null_string is supplied and is not NULL, fields matching that string are replaced by NULL.","description_html":"Splits the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e at occurrences of \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e and returns the resulting fields as a set of \u003ccode class=\"type\"\u003etext\u003c/code\u003e rows. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, each character in the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e will become a separate row of the result. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is an empty string, then the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e is treated as a single field. If \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e is supplied and is not \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, fields matching that string are replaced by \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e.","description_zh":"在出现 delimiter 时拆分 string，并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL，则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串，则将 string 视为单个字段。如果提供了 null_string，并且不是 NULL，则匹配该字符串的字段将被 NULL 替换。","description_zh_html":"在出现 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 时拆分 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e，并将结果字段作为 \u003ccode class=\"type\"\u003etext\u003c/code\u003e 行的集合返回。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 中的每个字符将成为结果的单独一行。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为空字符串，则将 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 视为单个字段。如果提供了 \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e，并且不是 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则匹配该字符串的字段将被 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 替换。","doc":{"anchor":"FUNCTIONS-STRING-OTHER","file":"functions-string.html","sha256":"dbe9f91e55c35969d99a8d2697b6f7bd5388a24ccc2b89706a666f176025f1e2","slug":"18"},"documentation_revision":{"inputs":[{"file":"functions-string.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"dbe9f91e55c35969d99a8d2697b6f7bd5388a24ccc2b89706a666f176025f1e2","version":"18.7"},{"file":"functions-string.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"7eecd3bb343149124be0476a539f3c682476eab2a15489a0e0ad06fbb769ea9e","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"group":"string","group_label":"字符串函数和操作符","lang":"en","layout":"table-new","pages":["functions-string.html"],"prose_only":false,"signatures":[{"description":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows. If delimiter is NULL, each character in the string will become a separate row of the result. If delimiter is an empty string, then the string is treated as a single field. If null_string is supplied and is not NULL, fields matching that string are replaced by NULL.","description_html":"Splits the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e at occurrences of \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e and returns the resulting fields as a set of \u003ccode class=\"type\"\u003etext\u003c/code\u003e rows. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, each character in the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e will become a separate row of the result. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is an empty string, then the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e is treated as a single field. If \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e is supplied and is not \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, fields matching that string are replaced by \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e.","description_zh":"在出现 delimiter 时拆分 string，并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL，则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串，则将 string 视为单个字段。如果提供了 null_string，并且不是 NULL，则匹配该字符串的字段将被 NULL 替换。","description_zh_html":"在出现 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 时拆分 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e，并将结果字段作为 \u003ccode class=\"type\"\u003etext\u003c/code\u003e 行的集合返回。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 中的每个字符将成为结果的单独一行。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为空字符串，则将 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 视为单个字段。如果提供了 \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e，并且不是 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则匹配该字符串的字段将被 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 替换。","examples":[{"expr":"string_to_table('xx~^~yy~^~zz', '~^~', 'yy')","result":"xx\nNULL\nzz"}],"html":"\u003ccode class=\"function\"\u003estring_to_table\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e\u003c/span\u003e] ) → \u003ccode class=\"returnvalue\"\u003esetof text\u003c/code\u003e","returns":"setof text","text":"string_to_table ( string text, delimiter text [, null_string text] ) → setof text","zh_from":"same-version-manual"}],"translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/functions-string.html","sha256":"0446377e0eccc9299099dc4b4b293204c337e3abefcdc396e9698bc54dd1080b"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"FUNCTIONS-STRING-OTHER","file":"functions-string.html","sha256":"dbe9f91e55c35969d99a8d2697b6f7bd5388a24ccc2b89706a666f176025f1e2","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"func","Key":"string-to-table","SourceDatabase":"center","Version":"18","Locale":"en","Title":"string_to_table","Summary":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows. If delimiter is NULL, each character in the string will become a separate row of the result. If delimiter is an empty string, then the string is treated as a single field. If null_string is supplied and is not NULL, fields matching that string are replaced by NULL.","BodyHTML":"Splits the \u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e at occurrences of \u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e and returns the resulting fields as a set of \u003ccode\u003etext\u003c/code\u003e rows. If \u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is \u003ccode\u003eNULL\u003c/code\u003e, each character in the \u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e will become a separate row of the result. If \u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is an empty string, then the \u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e is treated as a single field. If \u003cem\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e is supplied and is not \u003ccode\u003eNULL\u003c/code\u003e, fields matching that string are replaced by \u003ccode\u003eNULL\u003c/code\u003e.","SourceRevision":"wiki-repair-20261023:3006579dc0b99fbfe6e6ecb80fd9b270ed659a060fcde858868136aff209eeaa","ContentHash":"22ec797a10f045dc57fbe86272acde8944ee23c705b2e720e42b1832a89332e0","Payload":{"description":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows. If delimiter is NULL, each character in the string will become a separate row of the result. If delimiter is an empty string, then the string is treated as a single field. If null_string is supplied and is not NULL, fields matching that string are replaced by NULL.","description_html":"Splits the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e at occurrences of \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e and returns the resulting fields as a set of \u003ccode class=\"type\"\u003etext\u003c/code\u003e rows. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, each character in the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e will become a separate row of the result. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is an empty string, then the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e is treated as a single field. If \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e is supplied and is not \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, fields matching that string are replaced by \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e.","signatures":[{"description":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows. If delimiter is NULL, each character in the string will become a separate row of the result. If delimiter is an empty string, then the string is treated as a single field. If null_string is supplied and is not NULL, fields matching that string are replaced by NULL.","description_html":"Splits the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e at occurrences of \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e and returns the resulting fields as a set of \u003ccode class=\"type\"\u003etext\u003c/code\u003e rows. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, each character in the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e will become a separate row of the result. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is an empty string, then the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e is treated as a single field. If \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e is supplied and is not \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, fields matching that string are replaced by \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e.","description_zh":"在出现 delimiter 时拆分 string，并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL，则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串，则将 string 视为单个字段。如果提供了 null_string，并且不是 NULL，则匹配该字符串的字段将被 NULL 替换。","description_zh_html":"在出现 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 时拆分 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e，并将结果字段作为 \u003ccode class=\"type\"\u003etext\u003c/code\u003e 行的集合返回。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 中的每个字符将成为结果的单独一行。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为空字符串，则将 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 视为单个字段。如果提供了 \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e，并且不是 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则匹配该字符串的字段将被 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 替换。","examples":[{"expr":"string_to_table('xx~^~yy~^~zz', '~^~', 'yy')","result":"xx\nNULL\nzz"}],"html":"\u003ccode class=\"function\"\u003estring_to_table\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e\u003c/span\u003e] ) → \u003ccode class=\"returnvalue\"\u003esetof text\u003c/code\u003e","returns":"setof text","text":"string_to_table ( string text, delimiter text [, null_string text] ) → setof text","zh_from":"same-version-manual"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":[{"Version":"18","Ordinal":0,"Hash":"330f19c6cb21ffc682d980955d017faf20962d592393fdb3c44409b803093bf6","Text":"string_to_table ( string text, delimiter text [, null_string text] ) → setof text","Returns":"setof text","Payload":{"description":"Splits the string at occurrences of delimiter and returns the resulting fields as a set of text rows. If delimiter is NULL, each character in the string will become a separate row of the result. If delimiter is an empty string, then the string is treated as a single field. If null_string is supplied and is not NULL, fields matching that string are replaced by NULL.","description_html":"Splits the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e at occurrences of \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e and returns the resulting fields as a set of \u003ccode class=\"type\"\u003etext\u003c/code\u003e rows. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, each character in the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e will become a separate row of the result. If \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e is an empty string, then the \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e is treated as a single field. If \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e is supplied and is not \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e, fields matching that string are replaced by \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e.","description_zh":"在出现 delimiter 时拆分 string，并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL，则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串，则将 string 视为单个字段。如果提供了 null_string，并且不是 NULL，则匹配该字符串的字段将被 NULL 替换。","description_zh_html":"在出现 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 时拆分 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e，并将结果字段作为 \u003ccode class=\"type\"\u003etext\u003c/code\u003e 行的集合返回。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 中的每个字符将成为结果的单独一行。如果 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e 为空字符串，则将 \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e 视为单个字段。如果提供了 \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e，并且不是 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e，则匹配该字符串的字段将被 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 替换。","examples":[{"expr":"string_to_table('xx~^~yy~^~zz', '~^~', 'yy')","result":"xx\nNULL\nzz"}],"html":"\u003ccode class=\"function\"\u003estring_to_table\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003enull_string\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e\u003c/span\u003e] ) → \u003ccode class=\"returnvalue\"\u003esetof text\u003c/code\u003e","returns":"setof text","text":"string_to_table ( string text, delimiter text [, null_string text] ) → setof text","zh_from":"same-version-manual"}}],"Spellings":null,"SQLState":null,"Evidence":null}
