{"Entry":{"collection":"psql","key":"cmd-65-66","name":"\\ef","aliases":["\\ef"],"metadata":{"aliases":["\\ef"],"category":"Query buffer and editing","content_hash":"e85efd9f6cfc1ed1009674aaceae2b5841ab9733ba3a31905809f813e60f3574","imported_at":"2026-09-30T00:40:44.976078+08:00","name":"\\ef","name_zh":"","slug":"cmd-65-66","summary":"This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel."}},"Definition":{"Collection":"psql","Key":"cmd-65-66","SourceDatabase":"center","Version":"18","SourceTable":"psql_command","SourceKey":"cmd-65-66","SourceRevision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","Facts":{"command":"\\ef","comparison_data":{"definition":"This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel. The target function can be specified by name alone, or by name and arguments, for example foo(integer, text) . The argument types must be given if there is more than one function of the same name. If no function is specified, a blank CREATE FUNCTION template is presented for editing. If a line number is specified, psql will position the cursor on the specified line of the function body. (Note that the function body typically does not begin on the first line of the file.) Unlike most other meta-commands, the entire remainder of the line is always taken to be the argument(s) of \\ef , and neither variable interpolation nor backquote expansion are performed in the arguments. Tip See Environment , below, for how to configure and customize your editor.","modifiers":[],"signature":"\\ef [ function_description [ line_number ] ]","spellings":["\\ef"]},"comparison_hash":"c6f53578cbd03f42a5ee2d84af67e951894977f92c34d928eb87890b8e81638e","description":["This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel."],"facts":[{"label":"Client","value":"psql 18.6"},{"label":"Case-sensitive spelling","value":"\\ef"}],"manual_html":"\u003cdiv\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt id=\"APP-PSQL-META-COMMAND-EF\"\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003e\\ef [ \u003cspan class=\"optional\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_description\u003c/code\u003e\u003c/em\u003e [ \u003cspan class=\"optional\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eline_number\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e ]\u003c/span\u003e ]\u003c/code\u003e\u003c/span\u003e \u003c/dt\u003e\u003cdd\u003e\n\u003cp\u003eThis command fetches and edits the definition of the named function or procedure, in the form of a \u003ccode class=\"command\"\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e or \u003ccode class=\"command\"\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e command. Editing is done in the same way as for \u003ccode class=\"literal\"\u003e\\edit\u003c/code\u003e. If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \u003ccode class=\"literal\"\u003e\\g\u003c/code\u003e to send it, or \u003ccode class=\"literal\"\u003e\\r\u003c/code\u003e to cancel.\u003c/p\u003e\n\u003cp\u003eThe target function can be specified by name alone, or by name and arguments, for example \u003ccode class=\"literal\"\u003efoo(integer, text)\u003c/code\u003e. The argument types must be given if there is more than one function of the same name.\u003c/p\u003e\n\u003cp\u003eIf no function is specified, a blank \u003ccode class=\"command\"\u003eCREATE FUNCTION\u003c/code\u003e template is presented for editing.\u003c/p\u003e\n\u003cp\u003eIf a line number is specified, \u003cspan class=\"application\"\u003epsql\u003c/span\u003e will position the cursor on the specified line of the function body. (Note that the function body typically does not begin on the first line of the file.)\u003c/p\u003e\n\u003cp\u003eUnlike most other meta-commands, the entire remainder of the line is always taken to be the argument(s) of \u003ccode class=\"command\"\u003e\\ef\u003c/code\u003e, and neither variable interpolation nor backquote expansion are performed in the arguments.\u003c/p\u003e\n\u003cdiv class=\"tip\"\u003e\n\u003ch3 class=\"title\"\u003eTip\u003c/h3\u003e\n\u003cp\u003eSee \u003ca class=\"xref\" href=\"/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"Environment\"\u003eEnvironment\u003c/a\u003e, below, for how to configure and customize your editor.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","manual_path":"app-psql.html#APP-PSQL-META-COMMAND-EF","modifiers":[],"related":[{"label":"psql command-line options and complete manual","url":"/wiki/tool/psql/?v=18"}],"release":{"channel":"stable","evidence_kind":"English manual and source declarations","label":"18.6","major":"18","manifest":{"index":"index.html","major":"18","pages":1148,"pdf":{"A4":{"built_at":"2026-09-26","bytes":15865106,"pages":3154,"sha256":"19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190","url":"/files/documentation/pdf/18/postgresql-18-A4.pdf"},"US":{"built_at":"2026-09-26","bytes":15748059,"pages":3328,"sha256":"facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319","url":"/files/documentation/pdf/18/postgresql-18-US.pdf"}},"release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","svg_assets":3,"tree":"18"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[],"signature":"\\ef [ function_description [ line_number ] ]","sources":[{"anchor":"APP-PSQL-META-COMMAND-EF","file":"app-psql.html","label":"18.6 English manual · app-psql.html","sha256":"fa2a1d39294b8854318e82e93f71272c645ed88150ecc2786c28902c3f32782c","url":"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-EF"}],"spellings":["\\ef"],"tables":[{"columns":[{"key":"command","label":"Command"},{"key":"modifiers","label":"Documented suffix modifiers"}],"key":"spellings","rows":[{"command":{"text":"\\ef","url":"/wiki/psql/cmd-65-66/?v=18"},"modifiers":"None listed in this signature"}],"title":"Spellings in this manual definition"}]},"ManualEvidence":{"manual_path":"app-psql.html#APP-PSQL-META-COMMAND-EF","release":{"channel":"stable","evidence_kind":"English manual and source declarations","label":"18.6","major":"18","manifest":{"index":"index.html","major":"18","pages":1148,"pdf":{"A4":{"built_at":"2026-09-26","bytes":15865106,"pages":3154,"sha256":"19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190","url":"/files/documentation/pdf/18/postgresql-18-A4.pdf"},"US":{"built_at":"2026-09-26","bytes":15748059,"pages":3328,"sha256":"facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319","url":"/files/documentation/pdf/18/postgresql-18-US.pdf"}},"release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","svg_assets":3,"tree":"18"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"anchor":"APP-PSQL-META-COMMAND-EF","file":"app-psql.html","label":"18.6 English manual · app-psql.html","sha256":"fa2a1d39294b8854318e82e93f71272c645ed88150ecc2786c28902c3f32782c","url":"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-EF"}]},"MeasuredEvidence":{}},"Text":{"Collection":"psql","Key":"cmd-65-66","SourceDatabase":"center","Version":"18","Locale":"en","Title":"\\ef","Summary":"This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel.","BodyHTML":"\u003cdiv\u003e\u003cdl\u003e\u003cdt id=\"APP-PSQL-META-COMMAND-EF\"\u003e\u003cspan\u003e\u003ccode\u003e\\ef [ \u003cspan\u003e\u003cem\u003e\u003ccode\u003efunction_description\u003c/code\u003e\u003c/em\u003e [ \u003cspan\u003e\u003cem\u003e\u003ccode\u003eline_number\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e ]\u003c/span\u003e ]\u003c/code\u003e\u003c/span\u003e \u003c/dt\u003e\u003cdd\u003e\n\u003cp\u003eThis command fetches and edits the definition of the named function or procedure, in the form of a \u003ccode\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e or \u003ccode\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e command. Editing is done in the same way as for \u003ccode\u003e\\edit\u003c/code\u003e. If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \u003ccode\u003e\\g\u003c/code\u003e to send it, or \u003ccode\u003e\\r\u003c/code\u003e to cancel.\u003c/p\u003e\n\u003cp\u003eThe target function can be specified by name alone, or by name and arguments, for example \u003ccode\u003efoo(integer, text)\u003c/code\u003e. The argument types must be given if there is more than one function of the same name.\u003c/p\u003e\n\u003cp\u003eIf no function is specified, a blank \u003ccode\u003eCREATE FUNCTION\u003c/code\u003e template is presented for editing.\u003c/p\u003e\n\u003cp\u003eIf a line number is specified, \u003cspan\u003epsql\u003c/span\u003e will position the cursor on the specified line of the function body. (Note that the function body typically does not begin on the first line of the file.)\u003c/p\u003e\n\u003cp\u003eUnlike most other meta-commands, the entire remainder of the line is always taken to be the argument(s) of \u003ccode\u003e\\ef\u003c/code\u003e, and neither variable interpolation nor backquote expansion are performed in the arguments.\u003c/p\u003e\n\u003cdiv\u003e\n\u003ch3\u003eTip\u003c/h3\u003e\n\u003cp\u003eSee \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"Environment\" rel=\"nofollow\"\u003eEnvironment\u003c/a\u003e, below, for how to configure and customize your editor.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","SourceRevision":"ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8","ContentHash":"957f6437d8a178247007e23b869ea10fe99b7a859844ab0731e67d9dd989edc8","Payload":{"description":["This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel."],"manual_html":"\u003cdiv\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt id=\"APP-PSQL-META-COMMAND-EF\"\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003e\\ef [ \u003cspan class=\"optional\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_description\u003c/code\u003e\u003c/em\u003e [ \u003cspan class=\"optional\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eline_number\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e ]\u003c/span\u003e ]\u003c/code\u003e\u003c/span\u003e \u003c/dt\u003e\u003cdd\u003e\n\u003cp\u003eThis command fetches and edits the definition of the named function or procedure, in the form of a \u003ccode class=\"command\"\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e or \u003ccode class=\"command\"\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e command. Editing is done in the same way as for \u003ccode class=\"literal\"\u003e\\edit\u003c/code\u003e. If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \u003ccode class=\"literal\"\u003e\\g\u003c/code\u003e to send it, or \u003ccode class=\"literal\"\u003e\\r\u003c/code\u003e to cancel.\u003c/p\u003e\n\u003cp\u003eThe target function can be specified by name alone, or by name and arguments, for example \u003ccode class=\"literal\"\u003efoo(integer, text)\u003c/code\u003e. The argument types must be given if there is more than one function of the same name.\u003c/p\u003e\n\u003cp\u003eIf no function is specified, a blank \u003ccode class=\"command\"\u003eCREATE FUNCTION\u003c/code\u003e template is presented for editing.\u003c/p\u003e\n\u003cp\u003eIf a line number is specified, \u003cspan class=\"application\"\u003epsql\u003c/span\u003e will position the cursor on the specified line of the function body. (Note that the function body typically does not begin on the first line of the file.)\u003c/p\u003e\n\u003cp\u003eUnlike most other meta-commands, the entire remainder of the line is always taken to be the argument(s) of \u003ccode class=\"command\"\u003e\\ef\u003c/code\u003e, and neither variable interpolation nor backquote expansion are performed in the arguments.\u003c/p\u003e\n\u003cdiv class=\"tip\"\u003e\n\u003ch3 class=\"title\"\u003eTip\u003c/h3\u003e\n\u003cp\u003eSee \u003ca class=\"xref\" href=\"/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"Environment\"\u003eEnvironment\u003c/a\u003e, below, for how to configure and customize your editor.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","related":[{"label":"psql command-line options and complete manual","url":"/wiki/tool/psql/?v=18"}],"sections":[],"tables":[{"columns":[{"key":"command","label":"Command"},{"key":"modifiers","label":"Documented suffix modifiers"}],"key":"spellings","rows":[{"command":{"text":"\\ef","url":"/wiki/psql/cmd-65-66/?v=18"},"modifiers":"None listed in this signature"}],"title":"Spellings in this manual definition"}]}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en"],"Signatures":null,"Spellings":[{"Version":"18","Ordinal":0,"Command":"\\ef","Signature":"\\ef [ function_description [ line_number ] ]","Modifiers":[]}],"SQLState":null,"Evidence":null}
