Changes between Initial Version and Version 1 of Ticket #5236, comment 1


Ignore:
Timestamp:
Sep 7, 2022, 2:47:07 PM (23 months ago)
Author:
marc3932

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5236, comment 1

    initial v1  
    11PostgreSQL Documentation
    22https://www.postgresql.org/docs/current/sql-createtype.html
     3- There are five forms of CREATE TYPE, as shown in the syntax synopsis above.
     4- They respectively create a composite type, an enum type, a range type, a base type, or a **shell type**.
     5- The first four of these are discussed in turn below.
     6- A **shell type** is simply a placeholder for a type to be defined later; it is created by issuing CREATE TYPE with no parameters except for the type name.
     7- **Shell types** are needed as forward references when creating range types and base types, as discussed in those sections.
    38
    4 There are five forms of CREATE TYPE, as shown in the syntax synopsis above. They respectively create a composite type, an enum type, a range type, a base type, or a **shell type**. The first four of these are discussed in turn below. A **shell type** is simply a placeholder for a type to be defined later; it is created by issuing CREATE TYPE with no parameters except for the type name. **Shell types** are needed as forward references when creating range types and base types, as discussed in those sections.
     9NOTE:  https://stackoverflow.com/questions/45055852/postgres-type-field-type-is-only-a-shell
     10- In short: Some types require functions that in turn require that type with is to be declared, so neither can be created - normally.
     11- In order to workaround that problem, Postgres will create shell types that are pretty much placeholder just to satisfy validation.
     12