*** a/doc/src/sgml/ref/create_foreign_table.sgml
--- b/doc/src/sgml/ref/create_foreign_table.sgml
***************
*** 20,25 ****
--- 20,26 ----
  <synopsis>
  CREATE FOREIGN TABLE [ IF NOT EXISTS ] <replaceable class="PARAMETER">table_name</replaceable> ( [
      <replaceable class="PARAMETER">column_name</replaceable> <replaceable class="PARAMETER">data_type</replaceable> [ OPTIONS ( <replaceable class="PARAMETER">option</replaceable> '<replaceable class="PARAMETER">value</replaceable>' [, ... ] ) ] [ COLLATE <replaceable>collation</replaceable> ] [ <replaceable class="PARAMETER">column_constraint</replaceable> [ ... ] ]
+     | LIKE <replaceable>source_table</replaceable> [ <replaceable>like_option</replaceable> ... ] }
      [, ... ]
  ] )
    SERVER <replaceable class="parameter">server_name</replaceable>
***************
*** 31,36 **** CREATE FOREIGN TABLE [ IF NOT EXISTS ] <replaceable class="PARAMETER">table_name
--- 32,39 ----
  { NOT NULL |
    NULL |
    DEFAULT <replaceable>default_expr</replaceable> }
+ 
+ <phrase>and <replaceable class="PARAMETER">like_option</replaceable> is the same as for <xref linkend="SQL-CREATETABLE">.</phrase>
  </synopsis>
   </refsynopsisdiv>
  
***************
*** 114,119 **** CREATE FOREIGN TABLE [ IF NOT EXISTS ] <replaceable class="PARAMETER">table_name
--- 117,135 ----
     </varlistentry>
  
     <varlistentry>
+     <term><literal>LIKE <replaceable>source_table</replaceable> [ <replaceable>like_option</replaceable> ... ]</literal></term>
+     <listitem>
+      <para>
+       The <literal>LIKE</literal> clause specifies a table from which
+       the new foreign table automatically copies all column names and their data types.
+      </para>
+      <para>
+       Inapplicable options (e.g., <literal>INCLUDING STORAGE</literal>) are ignored.
+      </para>
+ </listitem>
+    </varlistentry>
+ 
+    <varlistentry>
      <term><literal>NOT NULL</></term>
      <listitem>
       <para>
*** a/src/backend/parser/parse_utilcmd.c
--- b/src/backend/parser/parse_utilcmd.c
***************
*** 649,655 **** transformTableConstraint(CreateStmtContext *cxt, Constraint *constraint)
  /*
   * transformTableLikeClause
   *
!  * Change the LIKE <srctable> portion of a CREATE TABLE statement into
   * column definitions which recreate the user defined column portions of
   * <srctable>.
   */
--- 649,655 ----
  /*
   * transformTableLikeClause
   *
!  * Change the LIKE <srctable> portion of a CREATE [FOREIGN] TABLE statement into
   * column definitions which recreate the user defined column portions of
   * <srctable>.
   */
***************
*** 668,679 **** transformTableLikeClause(CreateStmtContext *cxt, TableLikeClause *table_like_cla
  	setup_parser_errposition_callback(&pcbstate, cxt->pstate,
  									  table_like_clause->relation->location);
  
- 	/* we could support LIKE in many cases, but worry about it another day */
- 	if (cxt->isforeign)
- 		ereport(ERROR,
- 				(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- 				 errmsg("LIKE is not supported for creating foreign tables")));
- 
  	relation = relation_openrv(table_like_clause->relation, AccessShareLock);
  
  	if (relation->rd_rel->relkind != RELKIND_RELATION &&
--- 668,673 ----
***************
*** 688,693 **** transformTableLikeClause(CreateStmtContext *cxt, TableLikeClause *table_like_cla
--- 682,691 ----
  
  	cancel_parser_errposition_callback(&pcbstate);
  
+ 	/* For foreign tables, ignore all but applicable options. */
+ 	if (cxt->isforeign)
+ 		table_like_clause->options &= CREATE_TABLE_LIKE_DEFAULTS | CREATE_TABLE_LIKE_COMMENTS;
+ 
  	/*
  	 * Check for privileges
  	 */
