# Class: Domain

Class which represent a PostgreSQL domain. Provides attributes and methods for details of the domain.

# Hierarchy

Type

Domain

# Constructors

# constructor

+ new Domain(args: DomainConstructorArgs): Domain

Overrides void

Defined in pg-structure/type/domain.ts:18

Parameters:

Name Type
args DomainConstructorArgs

Returns: Domain

# Properties

# arrayDimension

arrayDimension: number

Defined in pg-structure/type/domain.ts:79

If type is an array, this is the dimension of the array. Otherwise this is 0.


# checkConstraints

checkConstraints: IndexableArray‹CheckConstraint, "name", never, true› = IndexableArray.throwingFrom([], "name")

Defined in pg-structure/type/domain.ts:99

All constraints of the constraint as an [[IndexableArray]] ordered by name.


# classOid

classOid: number

Inherited from Type.classOid

Defined in pg-structure/base/type.ts:24

Object identifier of PostgreSQL class (pg_catalog.pg_class) for the Entity


# Optional comment

comment? : undefined | string

Inherited from DbObject.comment

Defined in pg-structure/base/db-object.ts:75

Comment of the database object defined in database including {@link DbObject#commentData comment data}.


# default

default: number | string | boolean | null

Defined in pg-structure/type/domain.ts:94

Default value without typecast. Default values includes single quotes except sql functions and numeric values.

Please note numeric values which may not be represented by JavaScript values are returned as strings. See here

# Example

const table = db('crm').schema('public').table('contact');
const defaultName = table.get("name").default;                     // "'George'"
const defaultNameWithCast = table.get("name").defaultWithTypeCast; // "'George'::character varying"
const defaultAge = table.get("age").default;                       // 20
const defaultStamp = table.get("created_at").default;              // "now()"

see [[Domain.defaultWithTypeCast]] for default values with typecast as returned by PostgreSQL


# Optional length

length? : undefined | number

Defined in pg-structure/type/domain.ts:53

If base type is a character type, then this is the length of the type.


# name

name: string

Inherited from DbObject.name

Defined in pg-structure/base/db-object.ts:42

Name of the database object.


# notNull

notNull: boolean

Defined in pg-structure/type/domain.ts:43

true if domain is not allowed to be null.


# oid

oid: number

Inherited from Type.oid

Defined in pg-structure/base/type.ts:21

Object identifier for the Entity


# Optional precision

precision? : undefined | number

Defined in pg-structure/type/domain.ts:66

  • If base data type identifies a numeric type, this contains the (declared or implicit) precision of the type for this column. The precision indicates the number of significant digits.
  • If base data type identifies a date, time, timestamp, or interval type, this column contains the (declared or implicit) fractional seconds precision of the type for this attribute, that is, the number of decimal digits maintained following the decimal point in the seconds value.
  • If base data type is an array. Same rules apply for the data type of the array, and this value would become precision of the data type of the array.
  • For all other base data types, this is undefined. For example: The number 23.5141 has a precision of 6 and a scale of 4.

# Optional scale

scale? : undefined | number

Defined in pg-structure/type/domain.ts:76

  • If base data type identifies an exact numeric type, this contains the (declared or implicit) scale of the type for this attribute. The scale indicates the number of significant digits to the right of the decimal point.
  • If base data type is an array. Same rule applies for the data type of the array, and this value would become scale of the data type of the array.
  • For all other base data types, this is undefined. For example: The number 23.5141 has a precision of 6 and a scale of 4. Integers can be considered to have a scale of zero.

# schema

schema: Schema

Inherited from Type.schema

Overrides DbObject.schema

Defined in pg-structure/base/type.ts:29

Schema this type belongs to.


# Optional shortName

shortName? : undefined | string

Inherited from Type.shortName

Defined in pg-structure/base/type.ts:50

Short name of type. Available for some builtin types.

# Example

const name = timetzType.name; // time with time zone
const shortName = timetzType.shortName; // time with time zone
const name2 = varcharType.name; // character varying
const shortName2 = varcharType.name; // varchar

# Accessors

# commentData

get commentData(): JSONData | undefined

Inherited from DbObject.commentData

Defined in pg-structure/base/db-object.ts:102

Data which is extracted from database object's comment. Data is extracted from text between special case-insesitive tag (default: [pg-structure][/pg-structure]) and converted to JavaScript object using JSON5. Token name can be specified by using commentDataToken arguments. For details of JSON5, see it's web site: https://json5.org.

# Example

// "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.comment;               // "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.commentWithoutData;    // "Account details.  Also used for logging."
table.commentData;           // { extraData: 2 }
table.commentData.extraData; // 2

Returns: JSONData | undefined


# commentWithoutData

get commentWithoutData(): string | undefined

Inherited from DbObject.commentWithoutData

Defined in pg-structure/base/db-object.ts:85

Description or comment of the database object defined in database. If comment contains {@link DbObject#commentData comment data}, it is removed.

# Example

// "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.commentWithoutData;    // "Account details.  Also used for logging."

Returns: string | undefined


# db

get db(): Db

Inherited from DbObject.db

Defined in pg-structure/base/db-object.ts:68

Database of the database object.

Returns: Db


# fullCatalogName

get fullCatalogName(): string

Inherited from DbObject.fullCatalogName

Defined in pg-structure/base/db-object.ts:35

Full name of the database object including database name.

Returns: string


# fullName

get fullName(): string

Inherited from Type.fullName

Overrides DbObject.fullName

Defined in pg-structure/base/type.ts:37

Full name of the object with '.' notation including Schema name.

# Example

const fullName = type.fullName; // public.phone_number

Returns: string


# nameCaseType

get nameCaseType(): CaseType

Inherited from DbObject.nameCaseType

Defined in pg-structure/base/db-object.ts:54

Letter casing (i.e snakeCase or camelCase) of the database object name.

# Example

const name = entity.name;                        // ProductDetail
const caseType = entity.nameCaseType;            // camelCase

const otherEntity = otherEntity.name;            // member_protocol
const otherCaseType = otherEntity.nameCaseType;  // snakeCase

Returns: CaseType


# separator

get separator(): string

Inherited from DbObject.separator

Defined in pg-structure/base/db-object.ts:61

Separator used in database object name. Empty string for came case and underscore for (_) snake case.

Returns: string


# type

get type(): Type

Defined in pg-structure/type/domain.ts:46

Data type of the domain.

Returns: Type