mirlt.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /*
  2. * Licensed Materials - Property of IBM and/or HCL
  3. *
  4. * IBM Informix Dynamic Server
  5. * (c) Copyright IBM Corporation 1996, 2004 All rights reserved.
  6. * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
  7. *
  8. ***************************************************************************
  9. *
  10. * Title: mirlt.h
  11. * Description:
  12. * Public interface to Rtree functionality
  13. *
  14. ************************************************************************
  15. */
  16. #ifndef MIRLT_INCLUDED
  17. #define MIRLT_INCLUDED
  18. #include "mitypes.h"
  19. #include "miami.h"
  20. /* -----------------------------------
  21. * Support for Oncheck customization *
  22. * ===================================
  23. */
  24. /*
  25. * Type of Rtree entry. (See: mi_rltchk_type() accessor)
  26. */
  27. typedef enum mi_rltchk_types
  28. {
  29. MI_RLT_PAGE, /* Page level (glue) record */
  30. MI_RLT_ITUP, /* Internal Item Record */
  31. MI_RLT_LTUP, /* Leaf-level (user data) record */
  32. MI_RLT_CHKEND /* Last-call indicator */
  33. } MI_RLTCHK_TYPES;
  34. /*
  35. * Opaque handle for descriptor of oncheck instance of entry in an Rtree
  36. */
  37. typedef struct mi_rltchk_desc MI_RLTCHK_DESC;
  38. /* *****************************
  39. * Accessors on MI_RLTCHK_DESC *
  40. * *****************************
  41. */
  42. /*
  43. * General Info
  44. */
  45. MI_DECL
  46. mi_boolean MI_PROC_EXPORT
  47. mi_rltchk_isroot ARGS((MI_RLTCHK_DESC *chk_desc));
  48. MI_DECL
  49. mi_integer MI_PROC_EXPORT
  50. mi_rltchk_level ARGS((MI_RLTCHK_DESC *chk_desc));
  51. MI_DECL
  52. mi_integer MI_PROC_EXPORT
  53. mi_rltchk_pageno ARGS((MI_RLTCHK_DESC *chk_desc));
  54. MI_DECL
  55. mi_integer MI_PROC_EXPORT
  56. mi_rltchk_options ARGS((MI_RLTCHK_DESC *chk_desc));
  57. MI_DECL
  58. MI_AM_TABLE_DESC * MI_PROC_EXPORT
  59. mi_rltchk_amtabdesc ARGS((MI_RLTCHK_DESC *chk_desc));
  60. MI_DECL
  61. MI_RLTCHK_TYPES MI_PROC_EXPORT
  62. mi_rltchk_type ARGS((MI_RLTCHK_DESC *chk_desc));
  63. MI_DECL
  64. MI_DATUM MI_PROC_EXPORT
  65. mi_rltchk_rootbb ARGS((MI_RLTCHK_DESC *chk_desc));
  66. MI_DECL
  67. mi_integer MI_PROC_EXPORT
  68. mi_rltchk_errcode ARGS((MI_RLTCHK_DESC *chk_desc));
  69. /*
  70. * Accessors valid only for type MI_RLT_PAGE
  71. */
  72. MI_DECL
  73. mi_integer MI_PROC_EXPORT
  74. mi_rltchk_pgitems ARGS((MI_RLTCHK_DESC *chk_desc));
  75. MI_DECL
  76. mi_integer MI_PROC_EXPORT
  77. mi_rltchk_pgspace_used ARGS((MI_RLTCHK_DESC *chk_desc));
  78. MI_DECL
  79. mi_integer MI_PROC_EXPORT
  80. mi_rltchk_pgspace_free ARGS((MI_RLTCHK_DESC *chk_desc));
  81. MI_DECL
  82. mi_integer MI_PROC_EXPORT
  83. mi_rltchk_pgrlink ARGS((MI_RLTCHK_DESC *chk_desc));
  84. MI_DECL
  85. mi_integer MI_PROC_EXPORT
  86. mi_rltchk_pgpvn ARGS((MI_RLTCHK_DESC *chk_desc));
  87. /*
  88. * Accessors valid only for type MI_RLT_ITUP
  89. */
  90. MI_DECL
  91. mi_integer MI_PROC_EXPORT
  92. mi_rltchk_itpvn ARGS((MI_RLTCHK_DESC *chk_desc));
  93. MI_DECL
  94. mi_integer MI_PROC_EXPORT
  95. mi_rltchk_itchld ARGS((MI_RLTCHK_DESC *chk_desc));
  96. /*
  97. * Accessors valid only for type MI_RLT_LTUP
  98. */
  99. MI_DECL
  100. mi_boolean MI_PROC_EXPORT
  101. mi_rltchk_ltdel ARGS((MI_RLTCHK_DESC *chk_desc));
  102. MI_DECL
  103. mi_integer MI_PROC_EXPORT
  104. mi_rltchk_ltsize ARGS((MI_RLTCHK_DESC *chk_desc));
  105. MI_DECL
  106. mi_integer MI_PROC_EXPORT
  107. mi_rltchk_ltrowid ARGS((MI_RLTCHK_DESC *chk_desc));
  108. MI_DECL
  109. mi_integer MI_PROC_EXPORT
  110. mi_rltchk_ltfragid ARGS((MI_RLTCHK_DESC *chk_desc));
  111. #endif /* MIRLT_INCLUDED */