title: What is `Publisher()` in `Publisher(pub_name, pub_branch)`?
body: <p>From Database System Concepts, for SQL commands for object-relational databases:</p>
  
  <pre><code>create type Publisher as
  (name varchar(20),
  branch varchar(20));
  
  create type Book as
  (title varchar(20),
  author array varchar(20) array [10],
  pub date date,
  publisher Publisher,
  keyword set varchar(20) multiset);
  
  insert into books
  values (’Compilers’, array[’Smith’, ’Jones’],
  new Publisher(’McGraw-Hill’, ’New York’),
  multiset[’parsing’, ’analysis’]);
  
  create table flat_Book as
  (title varchar(20),
  author array varchar(20) array [10],
  pub_name varchar(20),
  pub_branch varchar(20));
  
  select title, author, Publisher(pub_name, pub_branch) as publisher
  from ﬂat_books
  group by title, author, publisher;
  </code></pre>
  
  <p>What is <code>Publisher(pub_name, pub_branch)</code> and <code>Publisher()</code> in  it?</p>
  
  <p><code>Publisher()</code> doesn't seem to be the constructor method of <code>Publisher</code> type, because a call on a constructor method needs <code>new</code>, e.g. <code>new Publisher(’McGraw-Hill’, ’New York’)</code>.</p>
  
  <p>I guess PostgreSQL may have similar commands, since it follows SQL standard well and is also object-relational DBMS.</p>
  
  <p>Thanks.</p>