Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Postgres-Extensions/cat_tools

Open more actions menu

Repository files navigation

Cat Tools

These are tools that make it easier to interface with the Postgres catalog tables/views/functions. They are meant for use by code, not by people.

To make use of them, you need to grant cat_tools__usage to any roles that need access.

Current Status

PGXN version Build Status

This is very much a work in progress. If it doesn’t do something you need, please open an issue!

Supported Versions

Works on Postgres 9.3 and above.

Data Types

  • cat_tools.object_type - Descriptive names for every type of Postgres object (table, operator, rule, etc)

  • cat_tools.constraint_type - Types of constraints (domain constraint or table_constraint)

  • cat_tools.relation_type - Types of objects stored in pg_class

  • cat_tools.relation_relkind - Valid values for pg_class.relkind

Functions

  • cat_tools.currval(table, column) - Returns current value for a sequence owned by a column

  • cat_tools.enum_range(regtype) - Returns valid values for an ENUM as an array

  • cat_tools.enum_range_srf(regtype) - Returns valid values for an ENUM as a recordset

  • cat_tools.name__check(text) - Throws an error if input would be truncated when cast to name

  • cat_tools.pg_class(relation regclass) - Returns cat_tools.pg_class_v row for a relation

  • cat_tools.pg_extension__get(extension_name name) - Returns cat_tools.pg_extension_v row for an extension

  • cat_tools.extension__schemas(extension_names text/name[]) - Returns the schemas for the requested functions

  • cat_tools.extension__schemas_unique(extension_names text/name[]) - Returns a unique array of schemas

  • cat_tools.function__arg_types(arguments) - Accepts full function argument string and returns regtype[] of IN/INOUT arguments

  • cat_tools.functionarg_types_text(arguments) - Version of functionarg_types that returns text

  • cat_tools.object__catalog(object_type) - Returns catalog table that is used to store object_type objects

  • cat_tools.object__reg_type(object_catalog) - Returns the "reg" pseudotype (ie: regclass) associated with a system catalog (ie: pg_class)

  • cat_tools.regprocedure(function_name, arguments) - Returns regprocedure for function_name and it’s full set of arguments

  • cat_tools.relation__kind(relkind) - Mapping from pg_class.relkind to a cat_tools.relation_type

  • cat_tools.relation__relkind(relation_type) - Mapping from cat_tools.relation_type to a pg_class.relkind value

  • cat_tools.triggerargs_as_text(text) - Converts the arguments for a trigger function (as returned by triggerparse()) to text (for backwards compatibility).

  • cat_tools.trigger__get_oid(trigger_table, trigger_name) - oid of a trigger. Throws error if trigger doesn’t exits.

  • cat_tools.triggerget_oidloose(trigger_table, trigger_name) - oid of a trigger. Does not throw error if trigger doesn’t exits.

  • cat_tools.trigger__parse(trigger oid) - Returns information about a trigger

  • cat_tools.trigger__parse(table_name regclass, trigger_name text) - Returns information about a trigger

Views

Warning
These views may eventually move into a separate extension!
  • cat_tools.pg_class_v - Joins pg_class to pg_namespace

  • cat_tools.pg_extension_v - Joins pg_extension to pg_namespace; cast extconfig to regclass[]

  • cat_tools.column - Returns data about columns

  • cat_tools.pg_all_foreign_keys - Data about foreign keys

Cat Tools is released under a MIT license.

Copyright (c) 2016 Jim Nasby <Jim.Nasby@BlueTreble.com>.

About

Tools for interfacing with Postgres catalog tables

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.