convTovNoSQL1210.sql 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. /* Run this script to make a database that was created in */
  2. /* 12.10.xC1 JSON compatible. You must run this script if */
  3. /* you are upgrading to 12.10.xC2 or any future fix pack. */
  4. /*---------- NoSQL built-in UDT -------------------------*/
  5. create opaque type informix.longlvarchar
  6. (
  7. internallength=variable,
  8. maxlen=4096,
  9. alignment=4,
  10. cannothash
  11. );
  12. create opaque type informix.json
  13. (
  14. internallength=variable,
  15. maxlen=4096,
  16. alignment=4
  17. );
  18. create opaque type informix.bson
  19. (
  20. internallength=variable,
  21. maxlen=4096,
  22. alignment=4
  23. );
  24. /*---------- longlvarchar built-in UDT -------------------------*/
  25. create implicit cast(lvarchar as longlvarchar with informix.llvc_in);
  26. create implicit cast(longlvarchar as lvarchar with informix.llvc_out);
  27. create explicit cast(longlvarchar as sendrecv with informix.llvc_send);
  28. create implicit cast(sendrecv as longlvarchar with informix.llvc_recv);
  29. create implicit cast(impexp as longlvarchar with informix.llvc_import_txt);
  30. create explicit cast(longlvarchar as impexp with informix.llvc_export_txt);
  31. create implicit cast(impexpbin as longlvarchar with informix.llvc_import_bin);
  32. create explicit cast(longlvarchar as impexpbin with informix.llvc_export_bin);
  33. create dba function informix.llvc_in(lvarchar) returns longlvarchar
  34. with (not variant, parallelizable)
  35. external name '(llvc_input)' language c;
  36. create dba function informix.llvc_out(longlvarchar) returns lvarchar
  37. with (not variant, parallelizable)
  38. external name '(llvc_output)' language c;
  39. create dba function informix.llvc_send(longlvarchar) returns sendrecv
  40. with (not variant, parallelizable)
  41. external name '(llvc_send)' language c;
  42. create dba function informix.llvc_recv(sendrecv) returns longlvarchar
  43. with (not variant, parallelizable)
  44. external name '(llvc_recv)' language c;
  45. create dba function informix.llvc_import_txt(impexp) returns longlvarchar
  46. with (not variant, parallelizable)
  47. external name '(llvc_import_txt)' language c;
  48. create dba function informix.llvc_export_txt(longlvarchar) returns impexp
  49. with (not variant, parallelizable)
  50. external name '(llvc_export_txt)' language c;
  51. create dba function informix.llvc_import_bin(impexpbin) returns longlvarchar
  52. with (not variant, parallelizable)
  53. external name '(llvc_import_bin)' language c;
  54. create dba function informix.llvc_export_bin(longlvarchar) returns impexpbin
  55. with (not variant, parallelizable)
  56. external name '(llvc_export_bin)' language c;
  57. create dba function informix.streamwrite(informix.stream, informix.longlvarchar)
  58. returns informix.integer
  59. external name '(llvc_streamwrite)' language c;
  60. create dba function informix.streamread(informix.stream, out informix.longlvarchar)
  61. returns informix.integer
  62. external name '(llvc_streamread)' language c;
  63. create dba function informix.assign(longlvarchar) returns longlvarchar
  64. external name '(llvc_assign)' language c;
  65. create dba procedure informix.destroy(longlvarchar)
  66. external name '(llvc_destroy)' language c
  67. end procedure;
  68. create dba function informix.deepcopy(longlvarchar) returns longlvarchar
  69. external name '(llvc_deep_copy)' language c;
  70. create function informix.compare(informix.longlvarchar, informix.longlvarchar)
  71. returns integer
  72. external name '(llvc_cmp)' language c not variant;
  73. create function informix.equal(informix.longlvarchar, informix.longlvarchar)
  74. returns informix.boolean
  75. external name '(llvc_eq)' language c not variant;
  76. create function informix.notequal(informix.longlvarchar, informix.longlvarchar)
  77. returns informix.boolean
  78. external name '(llvc_ne)' language c not variant;
  79. create function informix.greaterthan(informix.longlvarchar, informix.longlvarchar)
  80. returns informix.boolean
  81. external name '(llvc_gt)' language c not variant;
  82. create function informix.lessthan(informix.longlvarchar, informix.longlvarchar)
  83. returns informix.boolean
  84. external name '(llvc_lt)' language c not variant;
  85. create function informix.greaterthanorequal(informix.longlvarchar, informix.longlvarchar)
  86. returns informix.boolean
  87. external name '(llvc_ge)' language c not variant;
  88. create function informix.lessthanorequal(informix.longlvarchar, informix.longlvarchar)
  89. returns informix.boolean
  90. external name '(llvc_le)' language c not variant;
  91. grant execute on function informix.llvc_in(lvarchar) to public as informix;
  92. grant execute on function informix.llvc_out(longlvarchar) to public as informix;
  93. grant execute on function informix.llvc_send(longlvarchar) to public as informix;
  94. grant execute on function informix.llvc_recv(sendrecv) to public as informix;
  95. grant execute on function informix.llvc_import_txt(impexp) to public as informix;
  96. grant execute on function informix.llvc_export_txt(longlvarchar) to public as informix;
  97. grant execute on function informix.llvc_import_bin(impexpbin) to public as informix;
  98. grant execute on function informix.llvc_export_bin(longlvarchar) to public as informix;
  99. grant execute on function informix.assign(longlvarchar) to public as informix;
  100. grant execute on procedure informix.destroy(longlvarchar) to public as informix;
  101. grant execute on function informix.deepcopy(longlvarchar) to public as informix;
  102. grant execute on function informix.compare(longlvarchar, longlvarchar) to public as informix;
  103. grant execute on function informix.equal(longlvarchar, longlvarchar) to public as informix;
  104. grant execute on function informix.notequal(longlvarchar, longlvarchar) to public as informix;
  105. grant execute on function informix.greaterthan(longlvarchar, longlvarchar) to public as informix;
  106. grant execute on function informix.lessthan(longlvarchar, longlvarchar) to public as informix;
  107. grant execute on function informix.greaterthanorequal(longlvarchar, longlvarchar) to public as informix;
  108. grant execute on function informix.lessthanorequal(longlvarchar, longlvarchar) to public as informix;
  109. /*---------- json built-in UDT -------------------------*/
  110. create implicit cast(lvarchar as json with informix.json_in);
  111. create implicit cast(json as lvarchar with informix.json_out);
  112. create explicit cast(json as sendrecv with informix.json_send);
  113. create implicit cast(sendrecv as json with informix.json_recv);
  114. create implicit cast(impexp as json with informix.json_import_txt);
  115. create explicit cast(json as impexp with informix.json_export_txt);
  116. create implicit cast(impexpbin as json with informix.json_import_bin);
  117. create explicit cast(json as impexpbin with informix.json_export_bin);
  118. create dba function informix.json_in(lvarchar) returns json
  119. with (not variant, parallelizable)
  120. external name '(json_input)' language c;
  121. create dba function informix.json_out(json) returns lvarchar
  122. with (not variant, parallelizable)
  123. external name '(json_out)' language c;
  124. create dba function informix.json_send(json) returns sendrecv
  125. with (not variant, parallelizable)
  126. external name '(json_send)' language c;
  127. create dba function informix.json_recv(sendrecv) returns json
  128. with (not variant, parallelizable)
  129. external name '(json_recv)' language c;
  130. create dba function informix.json_import_txt(impexp) returns json
  131. with (not variant, parallelizable)
  132. external name '(json_import_txt)' language c;
  133. create dba function informix.json_export_txt(json) returns impexp
  134. with (not variant, parallelizable)
  135. external name '(json_export_txt)' language c;
  136. create dba function informix.json_import_bin(impexpbin) returns json
  137. with (not variant, parallelizable)
  138. external name '(json_import_bin)' language c;
  139. create dba function informix.json_export_bin(json) returns impexpbin
  140. with (not variant, parallelizable)
  141. external name '(json_export_bin)' language c;
  142. create dba function informix.streamwrite(informix.stream, informix.json)
  143. returns informix.integer
  144. external name '(json_streamwrite)' language c;
  145. create dba function informix.streamread(informix.stream, out informix.json)
  146. returns informix.integer
  147. external name '(json_streamread)' language c;
  148. create dba function informix.assign(json) returns json
  149. external name '(json_assign)' language c;
  150. create dba procedure informix.destroy(json)
  151. external name '(json_type_destroy)' language c
  152. end procedure;
  153. create dba function informix.deepcopy(json) returns json
  154. external name '(json_deep_copy)' language c;
  155. create function informix.compare(informix.json, informix.json)
  156. returns integer
  157. external name '(json_cmp)' language c not variant;
  158. create function informix.equal(informix.json, informix.json)
  159. returns informix.boolean
  160. external name '(json_eq)' language c not variant;
  161. create function informix.notequal(informix.json, informix.json)
  162. returns informix.boolean
  163. external name '(json_ne)' language c not variant;
  164. grant execute on function informix.json_in(lvarchar) to public as informix;
  165. grant execute on function informix.json_out(json) to public as informix;
  166. grant execute on function informix.json_send(json) to public as informix;
  167. grant execute on function informix.json_recv(sendrecv) to public as informix;
  168. grant execute on function informix.json_import_txt(impexp) to public as informix;
  169. grant execute on function informix.json_export_txt(json) to public as informix;
  170. grant execute on function informix.json_import_bin(impexpbin) to public as informix;
  171. grant execute on function informix.json_export_bin(json) to public as informix;
  172. grant execute on function informix.assign(json) to public as informix;
  173. grant execute on procedure informix.destroy(json) to public as informix;
  174. grant execute on function informix.deepcopy(json) to public as informix;
  175. grant execute on function informix.compare(json, json) to public as informix;
  176. grant execute on function informix.equal(json, json) to public as informix;
  177. grant execute on function informix.notequal(json, json) to public as informix;
  178. /*---------- bson built-in UDT -------------------------*/
  179. create implicit cast(lvarchar as bson with informix.bson_in);
  180. create implicit cast(bson as lvarchar with informix.bson_out);
  181. create explicit cast(bson as sendrecv with informix.bson_send);
  182. create implicit cast(sendrecv as bson with informix.bson_recv);
  183. create implicit cast(impexp as bson with informix.bson_import_txt);
  184. create explicit cast(bson as impexp with informix.bson_export_txt);
  185. create implicit cast(impexpbin as bson with informix.bson_import_bin);
  186. create explicit cast(bson as impexpbin with informix.bson_export_bin);
  187. create dba function informix.bson_in(lvarchar) returns bson
  188. with (not variant, parallelizable)
  189. external name '(bson_input)' language c;
  190. create dba function informix.bson_out(bson) returns lvarchar
  191. with (not variant, parallelizable)
  192. external name '(bson_output)' language c;
  193. create dba function informix.bson_send(bson) returns sendrecv
  194. with (not variant, parallelizable)
  195. external name '(bson_send)' language c;
  196. create dba function informix.bson_recv(sendrecv) returns bson
  197. with (not variant, parallelizable)
  198. external name '(bson_recv)' language c;
  199. create dba function informix.bson_import_txt(impexp) returns bson
  200. with (not variant, parallelizable)
  201. external name '(bson_import_txt)' language c;
  202. create dba function informix.bson_export_txt(bson) returns impexp
  203. with (not variant, parallelizable)
  204. external name '(bson_export_txt)' language c;
  205. create dba function informix.bson_import_bin(impexpbin) returns bson
  206. with (not variant, parallelizable)
  207. external name '(bson_import_bin)' language c;
  208. create dba function informix.bson_export_bin(bson) returns impexpbin
  209. with (not variant, parallelizable)
  210. external name '(bson_export_bin)' language c;
  211. create dba function informix.streamwrite(informix.stream, informix.bson)
  212. returns informix.integer
  213. external name '(bson_streamwrite)' language c;
  214. create dba function informix.streamread(informix.stream, out informix.bson)
  215. returns informix.integer
  216. external name '(bson_streamread)' language c;
  217. create dba function informix.assign(bson) returns bson
  218. external name '(bson_assign)' language c;
  219. create dba procedure informix.destroy(bson)
  220. external name '(bson_type_destroy)' language c
  221. end procedure;
  222. create dba function informix.deepcopy(bson) returns bson
  223. external name '(bson_deep_copy)' language c;
  224. create function informix.bson_extract(informix.bson, informix.lvarchar)
  225. returns informix.bson
  226. external name '(bson_extract)' language c not variant;
  227. create function informix.compare(informix.bson, informix.bson)
  228. returns integer
  229. external name '(bson_cmpr)' language c not variant;
  230. grant execute on function informix.bson_in(lvarchar) to public as informix;
  231. grant execute on function informix.bson_out(bson) to public as informix;
  232. grant execute on function informix.bson_send(bson) to public as informix;
  233. grant execute on function informix.bson_recv(sendrecv) to public as informix;
  234. grant execute on function informix.bson_import_txt(impexp) to public as informix;
  235. grant execute on function informix.bson_export_txt(bson) to public as informix;
  236. grant execute on function informix.bson_import_bin(impexpbin) to public as informix;
  237. grant execute on function informix.bson_export_bin(bson) to public as informix;
  238. grant execute on function informix.assign(bson) to public as informix;
  239. grant execute on procedure informix.destroy(bson) to public as informix;
  240. grant execute on function informix.deepcopy(bson) to public as informix;
  241. grant execute on function informix.bson_extract(bson, lvarchar) to public as informix;
  242. grant execute on function informix.compare(bson, bson) to public as informix;
  243. create dba function informix.jsonoutput(informix.bson) returning informix.json
  244. external name '(json_output)'
  245. language c not variant;
  246. grant execute on function informix.jsonoutput(bson) to public as informix;
  247. create dba function informix.bson_valid(informix.bson) returning informix.lvarchar
  248. external name '(bson_valid)'
  249. language c not variant;
  250. grant execute on function informix.bson_valid(informix.bson) to public as informix;
  251. create explicit cast(informix.bson as informix.json with informix.jsonoutput);
  252. create implicit cast (informix.json as informix.bson with
  253. informix.json_to_bson);
  254. create dba function informix.json_to_bson(informix.json) returning informix.bson
  255. external name '(json_to_bson_output)'
  256. language c not variant;
  257. grant execute on function informix.json_to_bson(json) to public as informix;
  258. create dba function informix.ifx_shard_delete(informix.lvarchar, informix.lvarchar,
  259. informix.lvarchar)
  260. returning integer
  261. external name '(ifx_shard_delete)'
  262. language C not variant;
  263. grant execute on function informix.ifx_shard_delete(informix.lvarchar,
  264. informix.lvarchar, informix.lvarchar)
  265. to public as informix;
  266. create function informix.ifx_Collection_Create(informix.lvarchar,
  267. informix.lvarchar, informix.lvarchar default NULL)
  268. returning integer
  269. with (handlesnulls)
  270. external name '(json_collection_create)'
  271. language C;
  272. grant execute on function informix.ifx_Collection_Create(informix.lvarchar,
  273. informix.lvarchar, informix.lvarchar )
  274. to public as informix;
  275. create function informix.ifx_Collection_Drop( informix.lvarchar,
  276. informix.lvarchar default NULL)
  277. returning integer
  278. with (handlesnulls)
  279. external name '(json_collection_drop)'
  280. language C;
  281. grant execute on function informix.ifx_Collection_Drop( informix.lvarchar,
  282. informix.lvarchar )
  283. to public as informix;
  284. create function informix.ifx_Collection_Index_Create(
  285. informix.lvarchar, informix.lvarchar,
  286. informix.lvarchar, informix.lvarchar, informix.lvarchar,
  287. informix.INTEGER DEFAULT 0, informix.lvarchar DEFAULT NULL)
  288. returning integer
  289. with (handlesnulls)
  290. external name '(json_collection_index_create)'
  291. language C;
  292. grant execute on function informix.ifx_Collection_Index_Create(
  293. informix.lvarchar, informix.lvarchar, informix.lvarchar,
  294. informix.lvarchar, informix.lvarchar, informix.INTEGER,
  295. informix.lvarchar )
  296. to public as informix;
  297. create function informix.ifx_Collection_Index_Drop(
  298. informix.lvarchar, informix.lvarchar default NULL)
  299. returning integer
  300. with (handlesnulls)
  301. external name '(json_collection_index_drop)'
  302. language C;
  303. grant execute on function informix.ifx_Collection_Index_Drop(
  304. informix.lvarchar, informix.lvarchar)
  305. to public as informix;
  306. create function informix.ifx_explain(informix.lvarchar)
  307. returns lvarchar
  308. external name '(sql_sqexplain_single_statement)'
  309. language C;
  310. grant execute on function informix.ifx_explain(informix.lvarchar)
  311. to public as informix;
  312. create function informix.bson_explain(informix.lvarchar)
  313. returns bson
  314. external name '(bson_sqexplain_single_statement)'
  315. language C;
  316. grant execute on function informix.bson_explain(informix.lvarchar)
  317. to public as informix;
  318. create procedure informix.dummyrev_1210XC1()
  319. end procedure;