Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Domain

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

Hierarchy

Index

Constructors

constructor

  • new Domain(args: DomainConstructorArgs): Domain
  • Parameters

    • args: DomainConstructorArgs

    Returns Domain

Properties

Private _baseTypeName

_baseTypeName: string

Private _baseTypeSchema

_baseTypeSchema: Schema

SQL name of the data type that is identified by its type OID and possibly a type modifier i.e. character varying(20), numeric(3,2), extra_modules."extra-domain"[], timestamp(0) without time zone etc.

Readonly arrayDimension

arrayDimension: number

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

Readonly arrayOid

arrayOid: number

If typarray is not 0 then it identifies another row in pg_type, which is the array type having this type as element.

category

category: TypeCategory

An arbitrary classification of PostgreSQL data types that is used by the PostgreSQL parser to determine which implicit casts should be “preferred”. See related doc here

Readonly checkConstraints

checkConstraints: default<CheckConstraint, "name", never, true> = ...

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

Readonly classOid

classOid: number

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

Optional Readonly comment

comment: undefined | string

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

Readonly default

default: null | string | number | boolean

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

hasLength

hasLength: boolean

Whether the type has length property.

hasPrecision

hasPrecision: boolean

Whether the type has precision property.

hasScale

hasScale: boolean

Whether the type has scale property.

Optional Readonly internalName

internalName: undefined | string

Internal name of type. Available for some builtin types.

Example

const name = doublePrecisionType.name; // double precision
const shortName = doublePrecisionType.internalName; // float8

Optional Readonly length

length: undefined | number

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

Readonly name

name: string

Name of the database object.

Readonly notNull

notNull: boolean

true if domain is not allowed to be null.

Optional numericType

numericType: undefined | Integer | Exact | Floating

If type is a numeric type, its numerical type. If type is non-numeric this is undefined. For TypeScript it is an enum of NumericType.Integer, NumericType.Exact or NumericType.Floating. For JavaScript ir is a string of Integer, Exact or Floating.

Readonly oid

oid: number

Object identifier for the Entity

Optional Readonly precision

precision: undefined | number
  • 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 Readonly scale

scale: undefined | number
  • 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

Schema this type belongs to.

Optional Readonly shortName

shortName: undefined | string

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(): undefined | null | string | number | boolean | JSONObject | JSONArray
  • Data which is extracted from database object's comment. Data is extracted from text between special case-insensitive 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 undefined | null | string | number | boolean | JSONObject | JSONArray

commentWithoutData

  • get commentWithoutData(): undefined | string
  • 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 undefined | string

db

  • get db(): Db
  • Database of the database object.

    Returns Db

fullCatalogName

  • get fullCatalogName(): string
  • Full name of the database object including database name.

    Returns string

fullName

  • get fullName(): string
  • Full name of the object with '.' notation including Schema name.

    Example

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

    Returns string

nameCaseType

  • 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
  • Separator used in database object name. Empty string for came case and underscore for (_) snake case.

    Returns string

type

  • Data type of the domain.

    Returns Type

Generated using TypeDoc