mirror of
https://github.com/postgres/postgres.git
synced 2025-06-02 00:01:40 -04:00
This introduces a new set of extended routines for procedure and operator name lookups, with a flag bitmask argument that can modify the result. The following options are available: - Force schema qualification, ignoring search_path. This is similar to the existing option for format_{operator|procedure}_qualified(). - Force NULL as result instead of a numeric OID for an undefined object. This option is new. This is a refactoring similar to 1185c78, that will be used for a future patch to improve the SQL functions providing information using object addresses for undefined objects. Author: Michael Paquier Reviewed-by: Aleksander Alekseev, Dmitry Dolgov, Daniel Gustafsson, Álvaro Herrera Discussion: https://postgr.es/m/CAB7nPqSZxrSmdHK-rny7z8mi=EAFXJ5J-0RbzDw6aus=wB5azQ@mail.gmail.com
39 lines
1.4 KiB
C
39 lines
1.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* regproc.h
|
|
* Functions for the built-in types regproc, regclass, regtype, etc.
|
|
*
|
|
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/utils/regproc.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef REGPROC_H
|
|
#define REGPROC_H
|
|
|
|
#include "nodes/pg_list.h"
|
|
|
|
/* Control flags for format_procedure_extended */
|
|
#define FORMAT_PROC_INVALID_AS_NULL 0x01 /* NULL if undefined */
|
|
#define FORMAT_PROC_FORCE_QUALIFY 0x02 /* force qualification */
|
|
extern char *format_procedure_extended(Oid procedure_oid, bits16 flags);
|
|
|
|
/* Control flags for format_operator_extended */
|
|
#define FORMAT_OPERATOR_INVALID_AS_NULL 0x01 /* NULL if undefined */
|
|
#define FORMAT_OPERATOR_FORCE_QUALIFY 0x02 /* force qualification */
|
|
extern char *format_operator_extended(Oid operator_oid, bits16 flags);
|
|
|
|
extern List *stringToQualifiedNameList(const char *string);
|
|
extern char *format_procedure(Oid procedure_oid);
|
|
extern char *format_procedure_qualified(Oid procedure_oid);
|
|
extern void format_procedure_parts(Oid operator_oid, List **objnames,
|
|
List **objargs);
|
|
extern char *format_operator(Oid operator_oid);
|
|
extern char *format_operator_qualified(Oid operator_oid);
|
|
extern void format_operator_parts(Oid operator_oid, List **objnames,
|
|
List **objargs);
|
|
|
|
#endif
|