miami.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. /*
  2. *
  3. * Licensed Materials - Property of IBM and/or HCL
  4. *
  5. * IBM Informix Dynamic Server
  6. * Copyright IBM Corporation 1996, 2016
  7. * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
  8. *
  9. ***************************************************************************
  10. *
  11. * Title: miami.h
  12. * Description: header file for the Virtual Table/Virtual Index Interface
  13. *
  14. ************************************************************************
  15. */
  16. #ifndef MIAMI_INCLUDED
  17. #define MIAMI_INCLUDED
  18. #include "mitypes.h"
  19. #include "milib.h"
  20. typedef struct mi_am_table_desc MI_AM_TABLE_DESC;
  21. typedef struct mi_am_scan_desc MI_AM_SCAN_DESC;
  22. typedef struct mi_am_rowid_desc MI_AM_ROWID_DESC;
  23. typedef struct mi_am_key_desc MI_AM_KEY_DESC;
  24. typedef struct mi_am_stats_desc MI_AM_TSTATS_DESC;
  25. typedef struct mi_am_stats_desc MI_AM_ISTATS_DESC;
  26. typedef struct mi_am_qual_desc MI_AM_QUAL_DESC;
  27. typedef struct mi_capsule MI_CAPSULE;
  28. typedef struct mi_capsule_91x MI_CAPSULE_91x;
  29. typedef struct mi_am_check_desc MI_AM_CHECK_DESC;
  30. typedef struct mi_am_param_desc MI_AM_PARAM_DESC;
  31. typedef enum MI_AM_BOOLOP
  32. {
  33. MI_BOOLOP_NONE, /* not a boolean operator. */
  34. MI_BOOLOP_AND, /* boolean AND. */
  35. MI_BOOLOP_OR /* boolean OR. */
  36. } MI_AM_BOOLOP;
  37. typedef enum MI_AM_VALUE
  38. {
  39. MI_VALUE_NOT_EVALUATED, /* qualification is not yet evaluated. */
  40. MI_VALUE_TRUE, /* qualification is true. */
  41. MI_VALUE_FALSE, /* qualification is false. */
  42. MI_VALUE_EXPR_CONST /* qual expression evaluated to a constant */
  43. } MI_AM_VALUE;
  44. typedef enum MI_LOCK_TYPE
  45. {
  46. MI_LCK_S, /* share lock on the table/index */
  47. MI_LCK_X, /* exclusive lock on the table/index */
  48. MI_LCK_IS_S, /* intention share lock on the table/index,
  49. share lock on the row. */
  50. MI_LCK_IX_X, /* intention exclusive lock on the table/index,
  51. exclusive lock on the row. */
  52. MI_LCK_SIX_X /* share intention exclusive lock on the table/index,
  53. exclusive lock on the row. */
  54. } MI_LOCK_TYPE;
  55. typedef enum MI_ISOLATION_LEVEL
  56. {
  57. MI_ISO_NOTRANSACTION, /* a transaction is not being used. */
  58. MI_ISO_READUNCOMMITTED, /* dirty read. */
  59. MI_ISO_READCOMMITTED, /* read only committed. */
  60. MI_ISO_CURSORSTABILITY, /* guarantee cursor stability. */
  61. MI_ISO_REPEATABLEREAD, /* guarantee repeatable reads. */
  62. MI_ISO_SERIALIZABLE, /* guarantee serializability. */
  63. MI_ISO_ERROR = -1 /* error */
  64. } MI_ISOLATION_LEVEL;
  65. typedef enum MI_UPDATE_STAT_MODE
  66. {
  67. MI_US_NOT_RUNNING = 0, /* UPDATE STATISTICS is not being run */
  68. MI_US_LOW, /* UPDATE STATISTICS is being run in low mode */
  69. MI_US_MED, /* UPDATE STATISTICS is being run in medium mode */
  70. MI_US_HIGH, /* UPDATE STATISTICS is being run in high mode */
  71. MI_US_ERROR = -1 /* Error (e.g., bad table descriptor was passed) */
  72. } MI_UPDATE_STAT_MODE;
  73. /* bit fields for options to AM_CHECK */
  74. #define MI_CHECK_EXTENTS_MASK 0x00000001
  75. #define MI_CHECK_DATA_MASK 0x00000002
  76. #define MI_CHECK_DATA_BLOBS_MASK 0x00000004
  77. #define MI_DISPLAY_EXTENTS_MASK 0x00000008
  78. #define MI_DISPLAY_DATA_MASK 0x00000010
  79. #define MI_DISPLAY_DATA_BLOBS_MASK 0x00000020
  80. #define MI_DISPLAY_TPAGES_MASK 0x00000040
  81. #define MI_DISPLAY_CPAGES_MASK 0x00000080
  82. #define MI_DISPLAY_SPACE_MASK 0x00000100
  83. #define MI_CHECK_IDXKEYS_MASK 0x00000200
  84. #define MI_CHECK_IDXKEYS_ROWIDS_MASK 0x00000400
  85. #define MI_DISPLAY_IDXKEYS_MASK 0x00000800
  86. #define MI_DISPLAY_IDXKEYS_ROWIDS_MASK 0x00001000
  87. #define MI_DISPLAY_IDXKEYLEAVES_MASK 0x00002000
  88. #define MI_DISPLAY_IDXKEYLEAVES_ROWIDS_MASK 0x00004000
  89. #define MI_DISPLAY_IDXSPACE_MASK 0x00008000
  90. #define MI_CHECK_IDXUSRXTND_MASK 0x00010000
  91. #define MI_CHECK_IDXUSRXARG_MASK 0x00020000
  92. #define MI_CHECK_YES_TO_ALL_MASK 0x00040000
  93. #define MI_CHECK_NO_TO_ALL_MASK 0x00080000
  94. /* flags for MI_TAB_MODE */
  95. #define MI_INPUT_MASK 0x1
  96. #define MI_OUTPUT_MASK 0x2
  97. #define MI_INOUT_MASK 0x4
  98. #define MI_NOLOG_MASK 0x8
  99. #define MI_IO_MODE_MASK 0x7
  100. /* Macros for the result of MI_TAB_MODE */
  101. #define MI_INPUT(n) \
  102. ((((n) & MI_INPUT_MASK) ? MI_TRUE : MI_FALSE ))
  103. #define MI_OUTPUT(n) \
  104. ((((n) & MI_OUTPUT_MASK) ? MI_TRUE : MI_FALSE ))
  105. #define MI_INOUT(n) \
  106. ((((n) & MI_INOUT_MASK) ? MI_TRUE : MI_FALSE ))
  107. #define MI_NOLOG(n) \
  108. ((((n) & MI_NOLOG_MASK) ? MI_TRUE : MI_FALSE ))
  109. /* Macros for AM_CHECK options */
  110. #define MI_CHECK_EXTENTS(op) \
  111. ((((op) & MI_CHECK_EXTENTS_MASK) ? MI_TRUE : MI_FALSE))
  112. #define MI_CHECK_DATA(op) \
  113. ((((op) & MI_CHECK_DATA_MASK) ? MI_TRUE : MI_FALSE ))
  114. #define MI_CHECK_DATA_BLOBS(op) \
  115. ((((op) & MI_CHECK_DATA_BLOBS_MASK) ? MI_TRUE : MI_FALSE ))
  116. #define MI_DISPLAY_EXTENTS(op) \
  117. ((((op) & MI_DISPLAY_EXTENTS_MASK) ? MI_TRUE : MI_FALSE ))
  118. #define MI_DISPLAY_DATA(op) \
  119. ((((op) & MI_DISPLAY_DATA_MASK) ? MI_TRUE : MI_FALSE ))
  120. #define MI_DISPLAY_DATA_BLOBS(op) \
  121. ((((op) & MI_DISPLAY_DATA_BLOBS_MASK) ? MI_TRUE : MI_FALSE ))
  122. #define MI_DISPLAY_TPAGES(op) \
  123. ((((op) & MI_DISPLAY_TPAGES_MASK) ? MI_TRUE : MI_FALSE ))
  124. #define MI_DISPLAY_CPAGES(op) \
  125. ((((op) & MI_DISPLAY_CPAGES_MASK) ? MI_TRUE : MI_FALSE ))
  126. #define MI_DISPLAY_SPACE(op) \
  127. ((((op) & MI_DISPLAY_SPACE_MASK) ? MI_TRUE : MI_FALSE))
  128. #define MI_CHECK_IDXKEYS(op) \
  129. ((((op) & MI_CHECK_IDXKEYS_MASK) ? MI_TRUE : MI_FALSE ))
  130. #define MI_CHECK_IDXKEYS_ROWIDS(op) \
  131. ((((op) & MI_CHECK_IDXKEYS_ROWIDS_MASK) ? MI_TRUE : MI_FALSE ))
  132. #define MI_DISPLAY_IDXKEYS(op) \
  133. ((((op) & MI_DISPLAY_IDXKEYS_MASK) ? MI_TRUE : MI_FALSE ))
  134. #define MI_DISPLAY_IDXKEYS_ROWIDS(op) \
  135. ((((op) & MI_DISPLAY_IDXKEYS_ROWIDS_MASK) ? MI_TRUE : MI_FALSE ))
  136. #define MI_DISPLAY_IDXKEYLEAVES(op) \
  137. ((((op) & MI_DISPLAY_IDXKEYLEAVES_MASK) ? MI_TRUE : MI_FALSE ))
  138. #define MI_DISPLAY_IDXKEYLEAVES_ROWIDS(op) \
  139. ((((op) & MI_DISPLAY_IDXKEYLEAVES_ROWIDS_MASK) ? MI_TRUE : MI_FALSE))
  140. #define MI_DISPLAY_IDXSPACE(op) \
  141. ((((op) & MI_DISPLAY_IDXSPACE_MASK) ? MI_TRUE : MI_FALSE ))
  142. #define MI_CHECK_YES_TO_ALL(op) \
  143. ((((op) & MI_CHECK_YES_TO_ALL_MASK) ? MI_TRUE : MI_FALSE ))
  144. #define MI_CHECK_NO_TO_ALL(op) \
  145. ((((op) & MI_CHECK_NO_TO_ALL_MASK) ? MI_TRUE : MI_FALSE ))
  146. EXTERNC_BEGIN
  147. MI_DECL
  148. mi_string * MI_PROC_EXPORT
  149. mi_tab_name ARGS((MI_AM_TABLE_DESC *td));
  150. MI_DECL
  151. mi_string * MI_PROC_EXPORT
  152. mi_tab_owner ARGS((MI_AM_TABLE_DESC *td));
  153. MI_DECL
  154. mi_integer MI_PROC_EXPORT
  155. mi_tab_id ARGS((MI_AM_TABLE_DESC *td));
  156. MI_DECL
  157. mi_integer MI_PROC_EXPORT
  158. mi_tab_partnum ARGS((MI_AM_TABLE_DESC *td));
  159. MI_DECL
  160. mi_integer MI_PROC_EXPORT
  161. mi_tab_numfrags ARGS((MI_AM_TABLE_DESC *td));
  162. /* idsdb00250235: get the fragment evaluation position */
  163. MI_DECL
  164. mi_integer MI_PROC_EXPORT
  165. mi_tab_fragment_evalpos ARGS((MI_AM_TABLE_DESC *td, mi_integer partn));
  166. MI_DECL
  167. mi_unsigned_integer MI_PROC_EXPORT
  168. mi_tab_mode ARGS((MI_AM_TABLE_DESC *td));
  169. MI_DECL
  170. mi_boolean MI_PROC_EXPORT
  171. mi_tab_istable ARGS((MI_AM_TABLE_DESC *td));
  172. MI_DECL
  173. mi_boolean MI_PROC_EXPORT
  174. mi_tab_isindex ARGS((MI_AM_TABLE_DESC *td));
  175. MI_DECL
  176. mi_integer MI_PROC_VAEXPORT
  177. mi_tab_check_msg ARGS((MI_AM_TABLE_DESC *td,
  178. mi_integer msg_type,
  179. char *msg,
  180. ...));
  181. MI_DECL
  182. mi_boolean MI_PROC_EXPORT
  183. mi_tab_unique ARGS((MI_AM_TABLE_DESC *td));
  184. MI_DECL
  185. mi_boolean MI_PROC_EXPORT
  186. mi_tab_cluster ARGS((MI_AM_TABLE_DESC *td));
  187. MI_DECL
  188. mi_boolean MI_PROC_EXPORT
  189. mi_tab_build ARGS((MI_AM_TABLE_DESC *td));
  190. MI_DECL
  191. mi_date * MI_PROC_EXPORT
  192. mi_tab_createdate ARGS((MI_AM_TABLE_DESC *td));
  193. MI_DECL
  194. MI_ROW_DESC * MI_PROC_EXPORT
  195. mi_tab_rowdesc ARGS((MI_AM_TABLE_DESC *td));
  196. MI_DECL
  197. MI_AM_KEY_DESC * MI_PROC_EXPORT
  198. mi_tab_keydesc ARGS((MI_AM_TABLE_DESC *td));
  199. MI_DECL
  200. mi_string * MI_PROC_EXPORT
  201. mi_tab_amparam ARGS((MI_AM_TABLE_DESC *td));
  202. MI_DECL
  203. mi_string * MI_PROC_EXPORT
  204. mi_tab_spacename ARGS((MI_AM_TABLE_DESC *td));
  205. MI_DECL
  206. mi_string * MI_PROC_EXPORT
  207. mi_tab_spaceloc ARGS((MI_AM_TABLE_DESC *td));
  208. MI_DECL
  209. mi_char1 MI_PROC_EXPORT
  210. mi_tab_spacetype ARGS((MI_AM_TABLE_DESC *td));
  211. MI_DECL
  212. mi_integer MI_PROC_EXPORT
  213. mi_tab_nprojs ARGS((MI_AM_TABLE_DESC *td));
  214. MI_DECL
  215. mi_smallint * MI_PROC_EXPORT
  216. mi_tab_projs ARGS((MI_AM_TABLE_DESC *td));
  217. MI_DECL
  218. void * MI_PROC_EXPORT
  219. mi_tab_userdata ARGS((MI_AM_TABLE_DESC *td));
  220. MI_DECL
  221. void MI_PROC_EXPORT
  222. mi_tab_setuserdata ARGS((MI_AM_TABLE_DESC *td,
  223. void *ud));
  224. MI_DECL
  225. mi_integer MI_PROC_EXPORT
  226. mi_tab_nparam_exist ARGS((MI_AM_TABLE_DESC *td));
  227. MI_DECL
  228. mi_string * MI_PROC_EXPORT
  229. mi_tab_param_exist ARGS((MI_AM_TABLE_DESC *td, mi_integer p));
  230. MI_DECL
  231. MI_ISOLATION_LEVEL MI_PROC_EXPORT
  232. mi_tab_isolevel ARGS((MI_AM_TABLE_DESC *td));
  233. MI_DECL
  234. MI_UPDATE_STAT_MODE MI_PROC_EXPORT
  235. mi_tab_update_stat_mode ARGS((MI_AM_TABLE_DESC *td));
  236. MI_DECL
  237. mi_integer MI_PROC_EXPORT
  238. mi_tab_niorows ARGS((MI_AM_TABLE_DESC *td));
  239. MI_DECL
  240. mi_integer MI_PROC_EXPORT
  241. mi_tab_setniorows ARGS((MI_AM_TABLE_DESC *td, mi_integer nrows));
  242. MI_DECL
  243. mi_integer MI_PROC_EXPORT
  244. mi_tab_nextrow ARGS((MI_AM_TABLE_DESC *td, MI_ROW **row,
  245. mi_integer *rowid, mi_integer *fragid));
  246. MI_DECL
  247. mi_integer MI_PROC_EXPORT
  248. mi_tab_setnextrow ARGS((MI_AM_TABLE_DESC *td, MI_ROW *row,
  249. mi_integer rowid, mi_integer fragid));
  250. MI_DECL
  251. mi_integer MI_PROC_EXPORT
  252. mi_tab_getrowcol ARGS((MI_AM_TABLE_DESC *td, mi_integer fragid,
  253. mi_integer rowid, mi_integer colno, mi_integer *len,
  254. char **key, char **row, mi_integer *iserrno ));
  255. MI_DECL
  256. mi_string * MI_PROC_EXPORT
  257. mi_tab_table_owner(MI_AM_TABLE_DESC *td);
  258. MI_DECL
  259. mi_string * MI_PROC_EXPORT
  260. mi_tab_table_name(MI_AM_TABLE_DESC *td);
  261. MI_DECL
  262. mi_string * MI_PROC_EXPORT
  263. mi_tab_server_name(MI_AM_TABLE_DESC *td);
  264. MI_DECL
  265. mi_string * MI_PROC_EXPORT
  266. mi_tab_database_name(MI_AM_TABLE_DESC *td);
  267. MI_DECL
  268. mi_integer MI_PROC_EXPORT
  269. mi_tab_execute_background_session ARGS((MI_AM_TABLE_DESC *td, mi_string *udrname));
  270. MI_DECL
  271. mi_integer MI_PROC_EXPORT
  272. mi_tab_indexcolno ARGS((MI_AM_TABLE_DESC *td));
  273. MI_DECL
  274. mi_integer MI_PROC_EXPORT
  275. mi_tab_max_row_size ARGS((MI_AM_TABLE_DESC *td));
  276. MI_DECL
  277. MI_AM_TABLE_DESC * MI_PROC_EXPORT
  278. mi_scan_table ARGS((MI_AM_SCAN_DESC *sd));
  279. MI_DECL
  280. MI_AM_QUAL_DESC * MI_PROC_EXPORT
  281. mi_scan_quals ARGS((MI_AM_SCAN_DESC *sd));
  282. MI_DECL
  283. MI_AM_QUAL_DESC * MI_PROC_EXPORT
  284. mi_join_quals ARGS((MI_AM_SCAN_DESC *sd));
  285. MI_DECL
  286. mi_integer MI_PROC_EXPORT
  287. mi_scan_nprojs ARGS((MI_AM_SCAN_DESC *sd));
  288. MI_DECL
  289. mi_smallint * MI_PROC_EXPORT
  290. mi_scan_projs ARGS((MI_AM_SCAN_DESC *sd));
  291. MI_DECL
  292. void * MI_PROC_EXPORT
  293. mi_scan_userdata ARGS((MI_AM_SCAN_DESC *sd));
  294. MI_DECL
  295. void MI_PROC_EXPORT
  296. mi_scan_setuserdata ARGS((MI_AM_SCAN_DESC *sd,
  297. void *ud));
  298. MI_DECL
  299. mi_boolean MI_PROC_EXPORT
  300. mi_scan_newquals ARGS((MI_AM_SCAN_DESC *sd));
  301. MI_DECL
  302. mi_boolean MI_PROC_EXPORT
  303. mi_scan_forupdate ARGS((MI_AM_SCAN_DESC *sd));
  304. MI_DECL
  305. MI_LOCK_TYPE MI_PROC_EXPORT
  306. mi_scan_locktype ARGS((MI_AM_SCAN_DESC *sd));
  307. MI_DECL
  308. MI_ISOLATION_LEVEL MI_PROC_EXPORT
  309. mi_scan_isolevel ARGS((MI_AM_SCAN_DESC *sd));
  310. MI_DECL
  311. void MI_PROC_EXPORT
  312. mi_qual_setselec ARGS((MI_AM_QUAL_DESC *qd,
  313. mi_real s));
  314. MI_DECL
  315. mi_real MI_PROC_EXPORT
  316. mi_qual_getselec ARGS((MI_AM_QUAL_DESC *qd));
  317. MI_DECL
  318. void MI_PROC_EXPORT
  319. mi_qual_setecost ARGS((MI_AM_QUAL_DESC *qd,
  320. mi_real e));
  321. MI_DECL
  322. mi_real MI_PROC_EXPORT
  323. mi_qual_getecost ARGS((MI_AM_QUAL_DESC *qd));
  324. MI_DECL
  325. void MI_PROC_EXPORT
  326. mi_qual_setvalue ARGS((MI_AM_QUAL_DESC *qd,
  327. MI_AM_VALUE v));
  328. MI_DECL
  329. MI_AM_VALUE MI_PROC_EXPORT
  330. mi_qual_value ARGS((MI_AM_QUAL_DESC *qd));
  331. MI_DECL
  332. mi_boolean MI_PROC_EXPORT
  333. mi_qual_issimple ARGS((MI_AM_QUAL_DESC *qd));
  334. MI_DECL
  335. mi_boolean MI_PROC_EXPORT
  336. mi_qual_negate ARGS((MI_AM_QUAL_DESC *qd));
  337. MI_DECL
  338. mi_boolean MI_PROC_EXPORT
  339. mi_qual_commuteargs ARGS((MI_AM_QUAL_DESC *qd));
  340. MI_DECL
  341. mi_integer MI_PROC_EXPORT
  342. mi_qual_funcid ARGS((MI_AM_QUAL_DESC *qd));
  343. MI_DECL
  344. mi_boolean MI_PROC_EXPORT
  345. mi_qual_handlenull ARGS((MI_AM_QUAL_DESC *qd));
  346. MI_DECL
  347. mi_smallint MI_PROC_EXPORT
  348. mi_qual_column ARGS((MI_AM_QUAL_DESC *qd));
  349. MI_DECL
  350. void MI_PROC_EXPORT
  351. mi_qual_setreopt ARGS((MI_AM_QUAL_DESC *qd));
  352. MI_DECL
  353. MI_DATUM MI_PROC_EXPORT
  354. mi_qual_constant ARGS((MI_AM_QUAL_DESC *qd));
  355. MI_DECL
  356. MI_DATUM MI_PROC_EXPORT
  357. mi_qual_constant_nohostvar ARGS((MI_AM_QUAL_DESC *qd));
  358. MI_DECL
  359. mi_boolean MI_PROC_EXPORT
  360. mi_qual_constisnull ARGS((MI_AM_QUAL_DESC *qd));
  361. MI_DECL
  362. mi_boolean MI_PROC_EXPORT
  363. mi_qual_constisnull_nohostvar ARGS((MI_AM_QUAL_DESC *qd));
  364. MI_DECL
  365. mi_integer MI_PROC_EXPORT
  366. mi_qual_nparams ARGS((MI_AM_QUAL_DESC *qd));
  367. MI_DECL
  368. mi_boolean MI_PROC_EXPORT
  369. mi_qual_const_depends_outer ARGS((MI_AM_QUAL_DESC *qd));
  370. MI_DECL
  371. mi_boolean MI_PROC_EXPORT
  372. mi_qual_const_depends_hostvar ARGS((MI_AM_QUAL_DESC *qd));
  373. MI_DECL
  374. mi_boolean MI_PROC_EXPORT
  375. mi_qual_constisknown ARGS((MI_AM_QUAL_DESC *qd));
  376. MI_DECL
  377. mi_boolean MI_PROC_EXPORT
  378. mi_qual_constispartial ARGS((MI_AM_QUAL_DESC *qd));
  379. MI_DECL
  380. MI_TYPEID * MI_PROC_EXPORT
  381. mi_qual_constant_typeid ARGS((MI_AM_QUAL_DESC *qd));
  382. MI_DECL
  383. mi_boolean MI_PROC_EXPORT
  384. mi_qual_needoutput ARGS((MI_AM_QUAL_DESC *qd,
  385. mi_integer n));
  386. MI_DECL
  387. void MI_PROC_EXPORT
  388. mi_qual_setoutput ARGS((MI_AM_QUAL_DESC *qd,
  389. mi_integer n,
  390. MI_DATUM v,
  391. mi_boolean f));
  392. MI_DECL
  393. MI_AM_BOOLOP MI_PROC_EXPORT
  394. mi_qual_boolop ARGS((MI_AM_QUAL_DESC *qd));
  395. MI_DECL
  396. mi_integer MI_PROC_EXPORT
  397. mi_qual_nquals ARGS((MI_AM_QUAL_DESC *qd));
  398. MI_DECL
  399. MI_AM_QUAL_DESC * MI_PROC_EXPORT
  400. mi_qual_qual ARGS((MI_AM_QUAL_DESC *qd,
  401. mi_integer n));
  402. MI_DECL
  403. MI_AM_QUAL_DESC * MI_PROC_EXPORT
  404. mi_iter_qual_get ARGS((void));
  405. MI_DECL
  406. mi_integer MI_PROC_EXPORT
  407. mi_qual_stratnum ARGS((MI_AM_QUAL_DESC *qd));
  408. MI_DECL
  409. mi_string * MI_PROC_EXPORT
  410. mi_qual_funcname ARGS((MI_AM_QUAL_DESC *qd));
  411. MI_DECL
  412. MI_AM_PARAM_DESC * MI_PROC_EXPORT
  413. mi_qual_param ARGS((MI_AM_QUAL_DESC *qd,
  414. mi_integer np));
  415. MI_DECL
  416. mi_boolean MI_PROC_EXPORT
  417. mi_qual_param_issimple ARGS((MI_AM_PARAM_DESC *pd));
  418. MI_DECL
  419. mi_boolean MI_PROC_EXPORT
  420. mi_qual_param_iscolumn ARGS((MI_AM_PARAM_DESC *pd));
  421. MI_DECL
  422. mi_boolean MI_PROC_EXPORT
  423. mi_qual_param_isconstant ARGS((MI_AM_PARAM_DESC *pd));
  424. MI_DECL
  425. mi_boolean MI_PROC_EXPORT
  426. mi_qual_param_isexpression ARGS((MI_AM_PARAM_DESC *pd));
  427. MI_DECL
  428. mi_smallint MI_PROC_EXPORT
  429. mi_qual_param_column ARGS((MI_AM_PARAM_DESC *pd));
  430. MI_DECL
  431. MI_DATUM MI_PROC_EXPORT
  432. mi_qual_param_constant ARGS((MI_AM_PARAM_DESC *pd));
  433. MI_DECL
  434. mi_boolean MI_PROC_EXPORT
  435. mi_qual_param_constisnull ARGS((MI_AM_PARAM_DESC *pd));
  436. MI_DECL
  437. MI_TYPEID * MI_PROC_EXPORT
  438. mi_qual_param_constant_typeid ARGS((MI_AM_PARAM_DESC *pd));
  439. MI_DECL
  440. MI_AM_QUAL_DESC * MI_PROC_EXPORT
  441. mi_qual_param_expression ARGS((MI_AM_PARAM_DESC *pd));
  442. MI_DECL
  443. MI_TYPE_DESC * MI_PROC_EXPORT
  444. mi_qual_getcast_typedesc ARGS((MI_AM_QUAL_DESC *qd));
  445. MI_DECL
  446. mi_boolean MI_PROC_EXPORT
  447. mi_qual_iscast ARGS((MI_AM_QUAL_DESC *qd));
  448. MI_DECL
  449. mi_integer MI_PROC_EXPORT
  450. mi_key_nkeys ARGS((MI_AM_KEY_DESC *kd));
  451. MI_DECL
  452. mi_integer MI_PROC_EXPORT
  453. mi_key_opclass ARGS((MI_AM_KEY_DESC *kd,
  454. mi_integer k));
  455. MI_DECL
  456. mi_string * MI_PROC_EXPORT
  457. mi_key_opclass_name ARGS((MI_AM_KEY_DESC *kd,
  458. mi_integer k));
  459. MI_DECL
  460. mi_integer MI_PROC_EXPORT
  461. mi_key_opclass_nstrat ARGS((MI_AM_KEY_DESC *kd,
  462. mi_integer k));
  463. MI_DECL
  464. mi_string * MI_PROC_EXPORT
  465. mi_key_opclass_strat ARGS((MI_AM_KEY_DESC *kd,
  466. mi_integer k,
  467. mi_integer s));
  468. MI_DECL
  469. mi_integer MI_PROC_EXPORT
  470. mi_key_opclass_nsupt ARGS((MI_AM_KEY_DESC *kd,
  471. mi_integer k));
  472. MI_DECL
  473. mi_string * MI_PROC_EXPORT
  474. mi_key_opclass_supt ARGS((MI_AM_KEY_DESC *kd,
  475. mi_integer k,
  476. mi_integer s));
  477. MI_DECL
  478. mi_integer MI_PROC_EXPORT
  479. mi_key_opclass_slvtype ARGS((MI_AM_KEY_DESC *kd,
  480. mi_integer k,
  481. mi_integer s,
  482. mi_boolean *is_slv,
  483. MI_TYPEID *slvtypeid));
  484. MI_DECL
  485. mi_integer MI_PROC_EXPORT
  486. mi_key_funcid ARGS((MI_AM_KEY_DESC *kd,
  487. mi_integer k));
  488. MI_DECL
  489. mi_integer MI_PROC_EXPORT
  490. mi_key_changed ARGS((MI_AM_KEY_DESC *kd,
  491. mi_integer k));
  492. MI_DECL
  493. mi_integer MI_PROC_EXPORT
  494. mi_id_rowid ARGS((MI_AM_ROWID_DESC *rd));
  495. MI_DECL
  496. mi_integer MI_PROC_EXPORT
  497. mi_id_fragid ARGS((MI_AM_ROWID_DESC *rd));
  498. MI_DECL
  499. void MI_PROC_EXPORT
  500. mi_id_setrowid ARGS((MI_AM_ROWID_DESC *rd,
  501. mi_integer rowid));
  502. MI_DECL
  503. void MI_PROC_EXPORT
  504. mi_id_setfragid ARGS((MI_AM_ROWID_DESC *rd,
  505. mi_integer fragid));
  506. MI_DECL
  507. void MI_PROC_EXPORT
  508. mi_tstats_setnrows ARGS((MI_AM_TSTATS_DESC *sd,
  509. mi_integer nrows));
  510. MI_DECL
  511. void MI_PROC_EXPORT
  512. mi_tstats_setnrows_internal ARGS((MI_AM_TSTATS_DESC *sd,
  513. mi_double_precision nrows));
  514. MI_DECL
  515. void MI_PROC_EXPORT
  516. mi_tstats_setnpages ARGS((MI_AM_TSTATS_DESC *sd,
  517. mi_integer npages));
  518. MI_DECL
  519. void MI_PROC_EXPORT
  520. mi_tstats_setnpages_internal ARGS((MI_AM_TSTATS_DESC *sd,
  521. mi_double_precision npages));
  522. MI_DECL
  523. void MI_PROC_EXPORT
  524. mi_istats_setnlevels ARGS((MI_AM_ISTATS_DESC *sd,
  525. mi_integer nlevels));
  526. MI_DECL
  527. void MI_PROC_EXPORT
  528. mi_istats_setnleaves ARGS((MI_AM_ISTATS_DESC *sd,
  529. mi_integer nleaves));
  530. MI_DECL
  531. void MI_PROC_EXPORT
  532. mi_istats_setnunique ARGS((MI_AM_ISTATS_DESC *sd,
  533. mi_integer nunique));
  534. MI_DECL
  535. void MI_PROC_EXPORT
  536. mi_istats_setclust ARGS((MI_AM_ISTATS_DESC *sd,
  537. mi_integer clust));
  538. MI_DECL
  539. void MI_PROC_EXPORT
  540. mi_istats_set2lval ARGS((MI_AM_ISTATS_DESC *sd,
  541. void *largeval));
  542. MI_DECL
  543. void MI_PROC_EXPORT
  544. mi_istats_set2sval ARGS((MI_AM_ISTATS_DESC *sd,
  545. void * smallval));
  546. MI_DECL
  547. mi_boolean MI_PROC_EXPORT
  548. mi_eval_am_qual ARGS((MI_ROW *row,
  549. MI_AM_QUAL_DESC *qual));
  550. MI_DECL
  551. void MI_PROC_EXPORT
  552. mi_init_am_qual ARGS((MI_AM_QUAL_DESC *qual));
  553. MI_DECL
  554. MI_TYPEID * MI_PROC_EXPORT
  555. mi_rowdesc_typeid ARGS((MI_ROW_DESC *rowdesc));
  556. MI_DECL
  557. MI_CAPSULE * MI_PROC_EXPORT
  558. mi_capsule_from_fdesc ARGS((MI_CONNECTION *conn,
  559. MI_FUNC_DESC *fdesc));
  560. MI_DECL
  561. mi_integer MI_PROC_EXPORT
  562. mi_capsule_len ARGS((MI_CAPSULE *capsl));
  563. MI_DECL
  564. MI_FUNC_DESC * MI_PROC_EXPORT
  565. mi_capsule_to_fdesc ARGS((MI_CONNECTION *conn,
  566. MI_CAPSULE *capsl));
  567. MI_DECL
  568. mi_integer MI_PROC_EXPORT
  569. mi_capsule_free ARGS((MI_CONNECTION *conn,
  570. MI_CAPSULE *capsl));
  571. MI_DECL
  572. MI_FUNC_DESC *
  573. mi_qual_funcdesc ARGS((MI_AM_QUAL_DESC *qd));
  574. /*
  575. * Accessors to and on MI_AM_CHECK_DESC for am_check UDR support of oncheck
  576. */
  577. MI_DECL
  578. MI_AM_CHECK_DESC * MI_PROC_EXPORT
  579. mi_tab_checkdesc ARGS((MI_AM_TABLE_DESC *td));
  580. /* gets what is now being called 'action' in call to am_check udr */
  581. MI_DECL
  582. mi_integer MI_PROC_EXPORT
  583. mi_check_flags ARGS((MI_AM_CHECK_DESC *cd));
  584. /* string (if any) accompanying -u arg. To be parsed/interpreted by
  585. * am_check as it sees fit.
  586. */
  587. MI_DECL
  588. mi_string * MI_PROC_EXPORT
  589. mi_check_xtndargs ARGS((MI_AM_CHECK_DESC *cd));
  590. MI_DECL
  591. mi_integer MI_PROC_EXPORT
  592. mi_tab_check_set_ask ARGS((MI_AM_TABLE_DESC *td, mi_integer options));
  593. MI_DECL
  594. mi_boolean MI_PROC_EXPORT
  595. mi_tab_check_is_recheck ARGS((MI_AM_TABLE_DESC *td));
  596. /*This converts a capsule from CAPSULE_VER_ONE_91x to CAPSULE_VER_TWO_92.*/
  597. MI_DECL
  598. MI_CAPSULE *
  599. mi_convert_capsules_v1_v2(MI_CAPSULE_91x *ucap_v1_91x_p);
  600. /*This reverts a capsule from CAPSULE_VER_TWO_92 to CAPSULE_VER_ONE_91x.*/
  601. MI_DECL
  602. MI_CAPSULE_91x *
  603. mi_revert_capsules_v2_v1(MI_CAPSULE *ucap_v2_92_p);
  604. EXTERNC_END
  605. #endif /* MIAMI_INCLUDED */