boot930a.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. { ************************************************************************* }
  2. { }
  3. { Licensed Materials - Property of IBM and/or HCL }
  4. { }
  5. { IBM Informix Dynamic Server }
  6. { (c) Copyright IBM Corporation 1996, 2004 All rights reserved. }
  7. { (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved. }
  8. { }
  9. { ************************************************************************* }
  10. { }
  11. { Title: boot930a.sql }
  12. { }
  13. { Description: }
  14. { Bootstrapping script for a 9.30 database }
  15. { }
  16. { ************************************************************************* }
  17. { }
  18. { ** IMPORTANT - PLEASE READ }
  19. { }
  20. { All types and routines referenced in this file must be prefixed }
  21. { with the user name "informix". E.g., use "informix.boolean" }
  22. { and not "boolean" }
  23. { }
  24. { Also, please follow the formatting conventions!!! }
  25. { }
  26. { Please ensure that the identifiers that you choose are <= 18 }
  27. { characters in length. Otherwise the changes would affect database }
  28. { reversion. }
  29. { }
  30. { ************************************************************************* }
  31. create dba function informix.deepcopy(row) returns row
  32. external name '(rowdeepcopy)' language C not variant;
  33. create dba function informix.deepcopy(set) returns set
  34. external name '(collectiondeepcopy)' language C not variant;
  35. create dba function informix.deepcopy(multiset) returns multiset
  36. external name '(collectiondeepcopy)' language C not variant;
  37. create dba function informix.deepcopy(list) returns list
  38. external name '(collectiondeepcopy)' language C not variant;
  39. grant execute on function informix.deepcopy(row) to public as informix;
  40. grant execute on function informix.deepcopy(set) to public as informix;
  41. grant execute on function informix.deepcopy(multiset) to public as informix;
  42. grant execute on function informix.deepcopy(list) to public as informix;
  43. ---
  44. --- Register builtin java UDRs for Krakatoa
  45. ---
  46. create dba procedure sqlj.registerJUDTfuncs(varchar(255)) external name
  47. 'informix.jvp.dbapplet.impl.JarHandler.registerJUDTfuncs(java.lang.String)'
  48. language java end procedure;
  49. grant execute on procedure sqlj.registerJUDTfuncs(varchar(255))
  50. to public as sqlj;
  51. create dba procedure sqlj.unregisterJUDTfuncs(varchar(255)) external name
  52. 'informix.jvp.dbapplet.impl.JarHandler.unregisterJUDTfuncs(java.lang.String)'
  53. language java end procedure;
  54. grant execute on procedure sqlj.unregisterJUDTfuncs(varchar(255))
  55. to public as sqlj;
  56. -- Define gist access method
  57. create dba function informix.gist_create(informix.pointer)
  58. returns integer
  59. with (parallelizable)
  60. external name '(gist_create)'
  61. language C;
  62. grant execute on function informix.gist_create(informix.pointer) to public as informix ;
  63. create dba function informix.gist_drop(informix.pointer)
  64. returns integer
  65. with (parallelizable)
  66. external name '(gist_drop)'
  67. language C;
  68. grant execute on function informix.gist_drop(informix.pointer) to public as informix ;
  69. create dba function informix.gist_open(informix.pointer)
  70. returns integer
  71. with (parallelizable)
  72. external name '(gist_open)'
  73. language C;
  74. grant execute on function informix.gist_open(informix.pointer) to public as informix ;
  75. create dba function informix.gist_close(informix.pointer)
  76. returns integer
  77. with (parallelizable)
  78. external name '(gist_close)'
  79. language C;
  80. grant execute on function informix.gist_close(informix.pointer) to public as informix ;
  81. create dba function informix.gist_insert(informix.pointer, informix.pointer, informix.pointer)
  82. returns integer
  83. with (parallelizable)
  84. external name '(gist_insert)'
  85. language C;
  86. grant execute on function informix.gist_insert(informix.pointer, informix.pointer, informix.pointer) to public as informix ;
  87. create dba function informix.gist_update(informix.pointer, informix.pointer, informix.pointer, informix.pointer, informix.pointer)
  88. returns integer
  89. with (parallelizable)
  90. external name '(gist_update)'
  91. language C;
  92. grant execute on function informix.gist_update(informix.pointer, informix.pointer, informix.pointer, informix.pointer, informix.pointer) to public as informix ;
  93. create dba function informix.gist_delete(informix.pointer, informix.pointer, informix.pointer)
  94. returns integer
  95. with (parallelizable)
  96. external name '(gist_delete)'
  97. language C;
  98. grant execute on function informix.gist_delete(informix.pointer, informix.pointer, informix.pointer) to public as informix ;
  99. create dba function informix.gist_beginscan(informix.pointer)
  100. returns integer
  101. with (parallelizable)
  102. external name '(gist_beginscan)'
  103. language C;
  104. grant execute on function informix.gist_beginscan(informix.pointer) to public as informix ;
  105. create dba function informix.gist_endscan(informix.pointer)
  106. returns integer
  107. with (parallelizable)
  108. external name '(gist_endscan)'
  109. language C;
  110. grant execute on function informix.gist_endscan(informix.pointer) to public as informix;
  111. create dba function informix.gist_rescan(informix.pointer)
  112. returns integer
  113. with (parallelizable)
  114. external name '(gist_rescan)'
  115. language C;
  116. grant execute on function informix.gist_rescan(informix.pointer) to public as informix ;
  117. create dba function informix.gist_getnext(informix.pointer, informix.pointer, informix.pointer)
  118. returns integer
  119. with (parallelizable)
  120. external name '(gist_getnext)'
  121. language C;
  122. grant execute on function informix.gist_getnext(informix.pointer, informix.pointer, informix.pointer) to public as informix ;
  123. -- no gist_stats
  124. create dba function informix.gist_cost(informix.pointer, informix.pointer)
  125. returns real
  126. external name '(gist_cost)'
  127. language C;
  128. grant execute on function informix.gist_cost(informix.pointer, informix.pointer) to public as informix ;
  129. create dba function informix.gist_check(informix.pointer, integer)
  130. returns real
  131. external name '(gist_check)'
  132. language C;
  133. grant execute on function informix.gist_check(informix.pointer, integer) to public as informix ;
  134. create secondary access_method informix.gist (
  135. am_create = informix.gist_create,
  136. am_drop = informix.gist_drop,
  137. am_open = informix.gist_open,
  138. am_close = informix.gist_close,
  139. am_insert = informix.gist_insert,
  140. am_update = informix.gist_update,
  141. am_delete = informix.gist_delete,
  142. am_beginscan = informix.gist_beginscan,
  143. am_endscan = informix.gist_endscan,
  144. am_rescan = informix.gist_rescan,
  145. am_getnext = informix.gist_getnext,
  146. am_scancost = informix.gist_cost,
  147. am_check = informix.gist_check,
  148. am_sptype = 'D');
  149. -- Define recovery related functions for the gist access method:
  150. create dba function informix.gist_redo(informix.pointer, informix.pointer, integer, integer)
  151. returns integer
  152. external name '(gist_redo)'
  153. language C;
  154. grant execute on function informix.gist_redo(informix.pointer, informix.pointer, integer, integer) to public as informix ;
  155. create dba function informix.gist_undo(informix.pointer, informix.pointer, integer, integer)
  156. returns integer
  157. external name '(gist_undo)'
  158. language C;
  159. grant execute on function informix.gist_undo(informix.pointer, informix.pointer, integer, integer) to public as informix ;
  160. -- mistream
  161. create opaque type informix.stream
  162. (
  163. internallength=4,
  164. alignment = 1,
  165. passedbyvalue
  166. );
  167. create function informix.streamwrite(informix.stream, informix.boolean)
  168. returns informix.integer
  169. external name '(mi_streamwrite_boolean)' language c;
  170. create function informix.streamwrite(informix.stream, informix.integer)
  171. returns informix.integer
  172. external name '(mi_streamwrite_integer)' language c;
  173. create function informix.streamwrite(informix.stream, informix.smallfloat)
  174. returns informix.integer
  175. external name '(mi_streamwrite_real)' language c;
  176. create function informix.streamwrite(informix.stream, informix.float)
  177. returns informix.integer
  178. external name '(mi_streamwrite_double)' language c;
  179. create function informix.streamwrite(informix.stream, informix.decimal)
  180. returns informix.integer
  181. external name '(mi_streamwrite_decimal)' language c;
  182. create function informix.streamwrite(informix.stream, informix.money)
  183. returns informix.integer
  184. external name '(mi_streamwrite_money)' language c;
  185. create function informix.streamwrite(informix.stream, informix.date)
  186. returns informix.integer
  187. external name '(mi_streamwrite_date)' language c;
  188. create function informix.streamwrite(informix.stream, datetime year to second)
  189. returns informix.integer
  190. external name '(mi_streamwrite_datetime)' language c;
  191. create function informix.streamwrite(informix.stream, interval hour to minute)
  192. returns informix.integer
  193. external name '(mi_streamwrite_interval)' language c;
  194. create function informix.streamwrite(informix.stream, informix.int8)
  195. returns informix.integer
  196. external name '(mi_streamwrite_int8)' language c;
  197. create function informix.streamwrite(informix.stream, informix.char)
  198. returns informix.integer
  199. external name '(mi_streamwrite_string)' language c;
  200. create function informix.streamwrite(informix.stream, informix.lvarchar)
  201. returns informix.integer
  202. external name '(mi_streamwrite_lvarchar)' language c;
  203. create function informix.streamwrite(informix.stream, informix.collection)
  204. returns informix.integer
  205. external name '(mi_streamwrite_collection)' language c;
  206. create function informix.streamwrite(informix.stream, informix.blob)
  207. returns informix.integer
  208. external name '(mi_streamwrite_lo)' language c;
  209. create function informix.streamwrite(informix.stream, informix.clob)
  210. returns informix.integer
  211. external name '(mi_streamwrite_lo)' language c;
  212. create function informix.streamwrite(informix.stream, informix.row)
  213. returns informix.integer
  214. external name '(mi_streamwrite_row)' language c;
  215. create function informix.streamread(informix.stream, out informix.boolean)
  216. returns informix.integer
  217. external name '(mi_streamread_boolean)' language c;
  218. create function informix.streamread(informix.stream, out informix.integer)
  219. returns informix.integer
  220. external name '(mi_streamread_integer)' language c;
  221. create function informix.streamread(informix.stream, out informix.smallfloat)
  222. returns informix.integer
  223. external name '(mi_streamread_real)' language c;
  224. create function informix.streamread(informix.stream, out informix.float)
  225. returns informix.integer
  226. external name '(mi_streamread_double)' language c;
  227. create function informix.streamread(informix.stream, out informix.decimal)
  228. returns informix.integer
  229. external name '(mi_streamread_decimal)' language c;
  230. create function informix.streamread(informix.stream, out informix.money)
  231. returns informix.integer
  232. external name '(mi_streamread_money)' language c;
  233. create function informix.streamread(informix.stream, out informix.date)
  234. returns informix.integer
  235. external name '(mi_streamread_date)' language c;
  236. create function informix.streamread(informix.stream, out datetime year to second)
  237. returns informix.integer
  238. external name '(mi_streamread_datetime)' language c;
  239. create function informix.streamread(informix.stream, out interval hour to minute)
  240. returns informix.integer
  241. external name '(mi_streamread_interval)' language c;
  242. create function informix.streamread(informix.stream, out informix.int8)
  243. returns informix.integer
  244. external name '(mi_streamread_int8)' language c;
  245. create function informix.streamread(informix.stream, out informix.char)
  246. returns informix.integer
  247. external name '(mi_streamread_string)' language c;
  248. create function informix.streamread(informix.stream, out informix.lvarchar)
  249. returns informix.integer
  250. external name '(mi_streamread_lvarchar)' language c;
  251. create function informix.streamread(informix.stream, out informix.collection)
  252. returns informix.integer
  253. external name '(mi_streamread_collection)' language c;
  254. create function informix.streamread(informix.stream, out informix.blob)
  255. returns informix.integer
  256. external name '(mi_streamread_lo)' language c;
  257. create function informix.streamread(informix.stream, out informix.clob)
  258. returns informix.integer
  259. external name '(mi_streamread_lo)' language c;
  260. create function informix.streamread(informix.stream, out informix.row)
  261. returns informix.integer
  262. external name '(mi_streamread_row)' language c;
  263. create dba function informix.cdrgcdisp(informix.lvarchar)
  264. returns informix.lvarchar
  265. external name '(sqcdrGC2Disp)'
  266. language C;
  267. grant execute on function informix.cdrgcdisp(informix.lvarchar)
  268. to public as informix;