pg_opfamily.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*-------------------------------------------------------------------------
  2. *
  3. * pg_opfamily.h
  4. * definition of the "operator family" system catalog (pg_opfamily)
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
  8. * Portions Copyright (c) 1994, Regents of the University of California
  9. *
  10. * src/include/catalog/pg_opfamily.h
  11. *
  12. * NOTES
  13. * The Catalog.pm module reads this file and derives schema
  14. * information.
  15. *
  16. *-------------------------------------------------------------------------
  17. */
  18. #ifndef PG_OPFAMILY_H
  19. #define PG_OPFAMILY_H
  20. #include "catalog/genbki.h"
  21. #include "catalog/pg_opfamily_d.h"
  22. /* ----------------
  23. * pg_opfamily definition. cpp turns this into
  24. * typedef struct FormData_pg_opfamily
  25. * ----------------
  26. */
  27. CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
  28. {
  29. Oid oid; /* oid */
  30. /* index access method opfamily is for */
  31. Oid opfmethod BKI_LOOKUP(pg_am);
  32. /* name of this opfamily */
  33. NameData opfname;
  34. /* namespace of this opfamily */
  35. Oid opfnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
  36. /* opfamily owner */
  37. Oid opfowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
  38. } FormData_pg_opfamily;
  39. /* ----------------
  40. * Form_pg_opfamily corresponds to a pointer to a tuple with
  41. * the format of pg_opfamily relation.
  42. * ----------------
  43. */
  44. typedef FormData_pg_opfamily *Form_pg_opfamily;
  45. DECLARE_UNIQUE_INDEX(pg_opfamily_am_name_nsp_index, 2754, OpfamilyAmNameNspIndexId, on pg_opfamily using btree(opfmethod oid_ops, opfname name_ops, opfnamespace oid_ops));
  46. DECLARE_UNIQUE_INDEX_PKEY(pg_opfamily_oid_index, 2755, OpfamilyOidIndexId, on pg_opfamily using btree(oid oid_ops));
  47. #ifdef EXPOSE_TO_CLIENT_CODE
  48. #define IsBooleanOpfamily(opfamily) \
  49. ((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
  50. #endif /* EXPOSE_TO_CLIENT_CODE */
  51. #endif /* PG_OPFAMILY_H */