# Class PostgresDomainType

Namespace
  Npgsql.PostgresTypes

Assembly
  Npgsql.dll

Represents a PostgreSQL domain type.

    public class PostgresDomainType : PostgresType

Inheritance
  object
  PostgresType
  PostgresDomainType

Inherited Members
  PostgresType.OID
  PostgresType.Namespace
  PostgresType.Name
  PostgresType.FullName
  PostgresType.DisplayName
  PostgresType.InternalName
  PostgresType.Array
  PostgresType.Range
  PostgresType.ToString()
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)

## Remarks

See https://www.postgresql.org/docs/current/static/sql-createdomain.html.

When PostgreSQL returns a RowDescription for a domain type, the type OID is the base type's (so fetching a domain type over text returns a RowDescription for text). However, when a composite type is returned, the type OID there is that of the domain, so we provide "clean" support for domain types.

## Constructors

### PostgresDomainType(string, string, uint, PostgresType, bool)

Constructs a representation of a PostgreSQL domain data type.

    protected PostgresDomainType(string ns, string name, uint oid, PostgresType baseType, bool notNull)

#### Parameters

`ns` string
`name` string
`oid` uint
`baseType` PostgresType
`notNull` bool

## Properties

### BaseType

The PostgreSQL data type of the base type, i.e. the type this domain is based on.

    public PostgresType BaseType { get; }

#### Property Value

PostgresType

### NotNull

True if the domain has a NOT NULL constraint, otherwise false.

    public bool NotNull { get; }

#### Property Value

bool