Options
All
  • Public
  • Public/Protected
  • All
Menu

Class NormalFunction

Class which represent a PostgreSQL (normal function. Provides attributes and methods for details of the normal function. Class name is NormalFunction because procedures, aggregate functions, and window functions are classified as functions by PostgreSQL. The term "normal function" is used by PostgreSQL. See prokind attribute at https://www.postgresql.org/docs/12/catalog-pg-proc.html.

Hierarchy

  • Func
    • NormalFunction

Index

Properties

Readonly arguments

arguments: default<FunctionArgument, "name", "argumentNumber", true> = ...

All function arguments of the {@link Function function} as an {@link IndexableArray indexable array} ordered by same order they are defined in PostgreSQL {@link Function function}.

Please note that, name is not required for PostgreSQL function arguments. There may be multiple empty string arguments. {@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one. You may also use getAll to get all unnamed arguments as an array.

Example

myFunc.arguments.get("maxVal");
myFunc.arguments.getAll("");

Optional Readonly comment

comment: undefined | string

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

Readonly estimatedCost

estimatedCost: number

Estimated execution cost (in units of cpu_operator_cost); if proretset, this is cost per row returned

Readonly estimatedRows

estimatedRows: number

Estimated number of result rows (zero if not proretset)

Readonly isLeakProof

isLeakProof: boolean

The function has no side effects. No information about the arguments is conveyed except via the return value. Any function that might throw an error depending on the values of its arguments is not leak-proof.

Readonly isStrict

isStrict: boolean

Whether function returns null if any call argument is null.

Readonly language

language: string

Language name of the function.

Readonly name

name: string

Name of the database object.

Readonly oid

oid: number

Object identifier for the {@link Function}

Readonly parallelSafety

parallelSafety: ParallelSafety

whether the function can be safely run in parallel mode.

Readonly returnType

returnType: Type

Data type of the return value.

Readonly returnsArray

returnsArray: boolean = false

Whether function returns an array.

Readonly returnsSet

returnsSet: boolean

Whether function returns a set.

Readonly schema

schema: Schema

Schema of the object.

Readonly source

source: string

Source definition of the function.

Readonly volatility

volatility: Volatility

Whether the function's result depends only on its input arguments, or is affected by outside factors.

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 = func.fullName; // public.some_func
    

    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

Generated using TypeDoc