gooderp18绿色标准版
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

551 lignes
13KB

  1. /* contrib/hstore/hstore--1.4.sql */
  2. -- complain if script is sourced in psql, rather than via CREATE EXTENSION
  3. \echo Use "CREATE EXTENSION hstore" to load this file. \quit
  4. CREATE TYPE hstore;
  5. CREATE FUNCTION hstore_in(cstring)
  6. RETURNS hstore
  7. AS 'MODULE_PATHNAME'
  8. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  9. CREATE FUNCTION hstore_out(hstore)
  10. RETURNS cstring
  11. AS 'MODULE_PATHNAME'
  12. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  13. CREATE FUNCTION hstore_recv(internal)
  14. RETURNS hstore
  15. AS 'MODULE_PATHNAME'
  16. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  17. CREATE FUNCTION hstore_send(hstore)
  18. RETURNS bytea
  19. AS 'MODULE_PATHNAME'
  20. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  21. CREATE TYPE hstore (
  22. INTERNALLENGTH = -1,
  23. INPUT = hstore_in,
  24. OUTPUT = hstore_out,
  25. RECEIVE = hstore_recv,
  26. SEND = hstore_send,
  27. STORAGE = extended
  28. );
  29. CREATE FUNCTION hstore_version_diag(hstore)
  30. RETURNS integer
  31. AS 'MODULE_PATHNAME','hstore_version_diag'
  32. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  33. CREATE FUNCTION fetchval(hstore,text)
  34. RETURNS text
  35. AS 'MODULE_PATHNAME','hstore_fetchval'
  36. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  37. CREATE OPERATOR -> (
  38. LEFTARG = hstore,
  39. RIGHTARG = text,
  40. PROCEDURE = fetchval
  41. );
  42. CREATE FUNCTION slice_array(hstore,text[])
  43. RETURNS text[]
  44. AS 'MODULE_PATHNAME','hstore_slice_to_array'
  45. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  46. CREATE OPERATOR -> (
  47. LEFTARG = hstore,
  48. RIGHTARG = text[],
  49. PROCEDURE = slice_array
  50. );
  51. CREATE FUNCTION slice(hstore,text[])
  52. RETURNS hstore
  53. AS 'MODULE_PATHNAME','hstore_slice_to_hstore'
  54. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  55. CREATE FUNCTION isexists(hstore,text)
  56. RETURNS bool
  57. AS 'MODULE_PATHNAME','hstore_exists'
  58. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  59. CREATE FUNCTION exist(hstore,text)
  60. RETURNS bool
  61. AS 'MODULE_PATHNAME','hstore_exists'
  62. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  63. CREATE OPERATOR ? (
  64. LEFTARG = hstore,
  65. RIGHTARG = text,
  66. PROCEDURE = exist,
  67. RESTRICT = contsel,
  68. JOIN = contjoinsel
  69. );
  70. CREATE FUNCTION exists_any(hstore,text[])
  71. RETURNS bool
  72. AS 'MODULE_PATHNAME','hstore_exists_any'
  73. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  74. CREATE OPERATOR ?| (
  75. LEFTARG = hstore,
  76. RIGHTARG = text[],
  77. PROCEDURE = exists_any,
  78. RESTRICT = contsel,
  79. JOIN = contjoinsel
  80. );
  81. CREATE FUNCTION exists_all(hstore,text[])
  82. RETURNS bool
  83. AS 'MODULE_PATHNAME','hstore_exists_all'
  84. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  85. CREATE OPERATOR ?& (
  86. LEFTARG = hstore,
  87. RIGHTARG = text[],
  88. PROCEDURE = exists_all,
  89. RESTRICT = contsel,
  90. JOIN = contjoinsel
  91. );
  92. CREATE FUNCTION isdefined(hstore,text)
  93. RETURNS bool
  94. AS 'MODULE_PATHNAME','hstore_defined'
  95. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  96. CREATE FUNCTION defined(hstore,text)
  97. RETURNS bool
  98. AS 'MODULE_PATHNAME','hstore_defined'
  99. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  100. CREATE FUNCTION delete(hstore,text)
  101. RETURNS hstore
  102. AS 'MODULE_PATHNAME','hstore_delete'
  103. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  104. CREATE FUNCTION delete(hstore,text[])
  105. RETURNS hstore
  106. AS 'MODULE_PATHNAME','hstore_delete_array'
  107. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  108. CREATE FUNCTION delete(hstore,hstore)
  109. RETURNS hstore
  110. AS 'MODULE_PATHNAME','hstore_delete_hstore'
  111. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  112. CREATE OPERATOR - (
  113. LEFTARG = hstore,
  114. RIGHTARG = text,
  115. PROCEDURE = delete
  116. );
  117. CREATE OPERATOR - (
  118. LEFTARG = hstore,
  119. RIGHTARG = text[],
  120. PROCEDURE = delete
  121. );
  122. CREATE OPERATOR - (
  123. LEFTARG = hstore,
  124. RIGHTARG = hstore,
  125. PROCEDURE = delete
  126. );
  127. CREATE FUNCTION hs_concat(hstore,hstore)
  128. RETURNS hstore
  129. AS 'MODULE_PATHNAME','hstore_concat'
  130. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  131. CREATE OPERATOR || (
  132. LEFTARG = hstore,
  133. RIGHTARG = hstore,
  134. PROCEDURE = hs_concat
  135. );
  136. CREATE FUNCTION hs_contains(hstore,hstore)
  137. RETURNS bool
  138. AS 'MODULE_PATHNAME','hstore_contains'
  139. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  140. CREATE FUNCTION hs_contained(hstore,hstore)
  141. RETURNS bool
  142. AS 'MODULE_PATHNAME','hstore_contained'
  143. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  144. CREATE OPERATOR @> (
  145. LEFTARG = hstore,
  146. RIGHTARG = hstore,
  147. PROCEDURE = hs_contains,
  148. COMMUTATOR = '<@',
  149. RESTRICT = contsel,
  150. JOIN = contjoinsel
  151. );
  152. CREATE OPERATOR <@ (
  153. LEFTARG = hstore,
  154. RIGHTARG = hstore,
  155. PROCEDURE = hs_contained,
  156. COMMUTATOR = '@>',
  157. RESTRICT = contsel,
  158. JOIN = contjoinsel
  159. );
  160. -- obsolete:
  161. CREATE OPERATOR @ (
  162. LEFTARG = hstore,
  163. RIGHTARG = hstore,
  164. PROCEDURE = hs_contains,
  165. COMMUTATOR = '~',
  166. RESTRICT = contsel,
  167. JOIN = contjoinsel
  168. );
  169. CREATE OPERATOR ~ (
  170. LEFTARG = hstore,
  171. RIGHTARG = hstore,
  172. PROCEDURE = hs_contained,
  173. COMMUTATOR = '@',
  174. RESTRICT = contsel,
  175. JOIN = contjoinsel
  176. );
  177. CREATE FUNCTION tconvert(text,text)
  178. RETURNS hstore
  179. AS 'MODULE_PATHNAME','hstore_from_text'
  180. LANGUAGE C IMMUTABLE PARALLEL SAFE; -- not STRICT; needs to allow (key,NULL)
  181. CREATE FUNCTION hstore(text,text)
  182. RETURNS hstore
  183. AS 'MODULE_PATHNAME','hstore_from_text'
  184. LANGUAGE C IMMUTABLE PARALLEL SAFE; -- not STRICT; needs to allow (key,NULL)
  185. CREATE FUNCTION hstore(text[],text[])
  186. RETURNS hstore
  187. AS 'MODULE_PATHNAME', 'hstore_from_arrays'
  188. LANGUAGE C IMMUTABLE PARALLEL SAFE; -- not STRICT; allows (keys,null)
  189. CREATE FUNCTION hstore(text[])
  190. RETURNS hstore
  191. AS 'MODULE_PATHNAME', 'hstore_from_array'
  192. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  193. CREATE CAST (text[] AS hstore)
  194. WITH FUNCTION hstore(text[]);
  195. CREATE FUNCTION hstore_to_json(hstore)
  196. RETURNS json
  197. AS 'MODULE_PATHNAME', 'hstore_to_json'
  198. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  199. CREATE CAST (hstore AS json)
  200. WITH FUNCTION hstore_to_json(hstore);
  201. CREATE FUNCTION hstore_to_json_loose(hstore)
  202. RETURNS json
  203. AS 'MODULE_PATHNAME', 'hstore_to_json_loose'
  204. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  205. CREATE FUNCTION hstore_to_jsonb(hstore)
  206. RETURNS jsonb
  207. AS 'MODULE_PATHNAME', 'hstore_to_jsonb'
  208. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  209. CREATE CAST (hstore AS jsonb)
  210. WITH FUNCTION hstore_to_jsonb(hstore);
  211. CREATE FUNCTION hstore_to_jsonb_loose(hstore)
  212. RETURNS jsonb
  213. AS 'MODULE_PATHNAME', 'hstore_to_jsonb_loose'
  214. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  215. CREATE FUNCTION hstore(record)
  216. RETURNS hstore
  217. AS 'MODULE_PATHNAME', 'hstore_from_record'
  218. LANGUAGE C IMMUTABLE PARALLEL SAFE; -- not STRICT; allows (null::recordtype)
  219. CREATE FUNCTION hstore_to_array(hstore)
  220. RETURNS text[]
  221. AS 'MODULE_PATHNAME','hstore_to_array'
  222. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  223. CREATE OPERATOR %% (
  224. RIGHTARG = hstore,
  225. PROCEDURE = hstore_to_array
  226. );
  227. CREATE FUNCTION hstore_to_matrix(hstore)
  228. RETURNS text[]
  229. AS 'MODULE_PATHNAME','hstore_to_matrix'
  230. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  231. CREATE OPERATOR %# (
  232. RIGHTARG = hstore,
  233. PROCEDURE = hstore_to_matrix
  234. );
  235. CREATE FUNCTION akeys(hstore)
  236. RETURNS text[]
  237. AS 'MODULE_PATHNAME','hstore_akeys'
  238. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  239. CREATE FUNCTION avals(hstore)
  240. RETURNS text[]
  241. AS 'MODULE_PATHNAME','hstore_avals'
  242. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  243. CREATE FUNCTION skeys(hstore)
  244. RETURNS setof text
  245. AS 'MODULE_PATHNAME','hstore_skeys'
  246. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  247. CREATE FUNCTION svals(hstore)
  248. RETURNS setof text
  249. AS 'MODULE_PATHNAME','hstore_svals'
  250. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  251. CREATE FUNCTION each(IN hs hstore,
  252. OUT key text,
  253. OUT value text)
  254. RETURNS SETOF record
  255. AS 'MODULE_PATHNAME','hstore_each'
  256. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  257. CREATE FUNCTION populate_record(anyelement,hstore)
  258. RETURNS anyelement
  259. AS 'MODULE_PATHNAME', 'hstore_populate_record'
  260. LANGUAGE C IMMUTABLE PARALLEL SAFE; -- not STRICT; allows (null::rectype,hstore)
  261. CREATE OPERATOR #= (
  262. LEFTARG = anyelement,
  263. RIGHTARG = hstore,
  264. PROCEDURE = populate_record
  265. );
  266. -- btree support
  267. CREATE FUNCTION hstore_eq(hstore,hstore)
  268. RETURNS boolean
  269. AS 'MODULE_PATHNAME','hstore_eq'
  270. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  271. CREATE FUNCTION hstore_ne(hstore,hstore)
  272. RETURNS boolean
  273. AS 'MODULE_PATHNAME','hstore_ne'
  274. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  275. CREATE FUNCTION hstore_gt(hstore,hstore)
  276. RETURNS boolean
  277. AS 'MODULE_PATHNAME','hstore_gt'
  278. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  279. CREATE FUNCTION hstore_ge(hstore,hstore)
  280. RETURNS boolean
  281. AS 'MODULE_PATHNAME','hstore_ge'
  282. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  283. CREATE FUNCTION hstore_lt(hstore,hstore)
  284. RETURNS boolean
  285. AS 'MODULE_PATHNAME','hstore_lt'
  286. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  287. CREATE FUNCTION hstore_le(hstore,hstore)
  288. RETURNS boolean
  289. AS 'MODULE_PATHNAME','hstore_le'
  290. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  291. CREATE FUNCTION hstore_cmp(hstore,hstore)
  292. RETURNS integer
  293. AS 'MODULE_PATHNAME','hstore_cmp'
  294. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  295. CREATE OPERATOR = (
  296. LEFTARG = hstore,
  297. RIGHTARG = hstore,
  298. PROCEDURE = hstore_eq,
  299. COMMUTATOR = =,
  300. NEGATOR = <>,
  301. RESTRICT = eqsel,
  302. JOIN = eqjoinsel,
  303. MERGES,
  304. HASHES
  305. );
  306. CREATE OPERATOR <> (
  307. LEFTARG = hstore,
  308. RIGHTARG = hstore,
  309. PROCEDURE = hstore_ne,
  310. COMMUTATOR = <>,
  311. NEGATOR = =,
  312. RESTRICT = neqsel,
  313. JOIN = neqjoinsel
  314. );
  315. -- the comparison operators have funky names (and are undocumented)
  316. -- in an attempt to discourage anyone from actually using them. they
  317. -- only exist to support the btree opclass
  318. CREATE OPERATOR #<# (
  319. LEFTARG = hstore,
  320. RIGHTARG = hstore,
  321. PROCEDURE = hstore_lt,
  322. COMMUTATOR = #>#,
  323. NEGATOR = #>=#,
  324. RESTRICT = scalarltsel,
  325. JOIN = scalarltjoinsel
  326. );
  327. CREATE OPERATOR #<=# (
  328. LEFTARG = hstore,
  329. RIGHTARG = hstore,
  330. PROCEDURE = hstore_le,
  331. COMMUTATOR = #>=#,
  332. NEGATOR = #>#,
  333. RESTRICT = scalarltsel,
  334. JOIN = scalarltjoinsel
  335. );
  336. CREATE OPERATOR #># (
  337. LEFTARG = hstore,
  338. RIGHTARG = hstore,
  339. PROCEDURE = hstore_gt,
  340. COMMUTATOR = #<#,
  341. NEGATOR = #<=#,
  342. RESTRICT = scalargtsel,
  343. JOIN = scalargtjoinsel
  344. );
  345. CREATE OPERATOR #>=# (
  346. LEFTARG = hstore,
  347. RIGHTARG = hstore,
  348. PROCEDURE = hstore_ge,
  349. COMMUTATOR = #<=#,
  350. NEGATOR = #<#,
  351. RESTRICT = scalargtsel,
  352. JOIN = scalargtjoinsel
  353. );
  354. CREATE OPERATOR CLASS btree_hstore_ops
  355. DEFAULT FOR TYPE hstore USING btree
  356. AS
  357. OPERATOR 1 #<# ,
  358. OPERATOR 2 #<=# ,
  359. OPERATOR 3 = ,
  360. OPERATOR 4 #>=# ,
  361. OPERATOR 5 #># ,
  362. FUNCTION 1 hstore_cmp(hstore,hstore);
  363. -- hash support
  364. CREATE FUNCTION hstore_hash(hstore)
  365. RETURNS integer
  366. AS 'MODULE_PATHNAME','hstore_hash'
  367. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  368. CREATE OPERATOR CLASS hash_hstore_ops
  369. DEFAULT FOR TYPE hstore USING hash
  370. AS
  371. OPERATOR 1 = ,
  372. FUNCTION 1 hstore_hash(hstore);
  373. -- GiST support
  374. CREATE TYPE ghstore;
  375. CREATE FUNCTION ghstore_in(cstring)
  376. RETURNS ghstore
  377. AS 'MODULE_PATHNAME'
  378. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  379. CREATE FUNCTION ghstore_out(ghstore)
  380. RETURNS cstring
  381. AS 'MODULE_PATHNAME'
  382. LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
  383. CREATE TYPE ghstore (
  384. INTERNALLENGTH = -1,
  385. INPUT = ghstore_in,
  386. OUTPUT = ghstore_out
  387. );
  388. CREATE FUNCTION ghstore_compress(internal)
  389. RETURNS internal
  390. AS 'MODULE_PATHNAME'
  391. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  392. CREATE FUNCTION ghstore_decompress(internal)
  393. RETURNS internal
  394. AS 'MODULE_PATHNAME'
  395. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  396. CREATE FUNCTION ghstore_penalty(internal,internal,internal)
  397. RETURNS internal
  398. AS 'MODULE_PATHNAME'
  399. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  400. CREATE FUNCTION ghstore_picksplit(internal, internal)
  401. RETURNS internal
  402. AS 'MODULE_PATHNAME'
  403. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  404. CREATE FUNCTION ghstore_union(internal, internal)
  405. RETURNS ghstore
  406. AS 'MODULE_PATHNAME'
  407. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  408. CREATE FUNCTION ghstore_same(ghstore, ghstore, internal)
  409. RETURNS internal
  410. AS 'MODULE_PATHNAME'
  411. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  412. CREATE FUNCTION ghstore_consistent(internal,hstore,smallint,oid,internal)
  413. RETURNS bool
  414. AS 'MODULE_PATHNAME'
  415. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  416. CREATE OPERATOR CLASS gist_hstore_ops
  417. DEFAULT FOR TYPE hstore USING gist
  418. AS
  419. OPERATOR 7 @> ,
  420. OPERATOR 9 ?(hstore,text) ,
  421. OPERATOR 10 ?|(hstore,text[]) ,
  422. OPERATOR 11 ?&(hstore,text[]) ,
  423. --OPERATOR 8 <@ ,
  424. OPERATOR 13 @ ,
  425. --OPERATOR 14 ~ ,
  426. FUNCTION 1 ghstore_consistent (internal, hstore, smallint, oid, internal),
  427. FUNCTION 2 ghstore_union (internal, internal),
  428. FUNCTION 3 ghstore_compress (internal),
  429. FUNCTION 4 ghstore_decompress (internal),
  430. FUNCTION 5 ghstore_penalty (internal, internal, internal),
  431. FUNCTION 6 ghstore_picksplit (internal, internal),
  432. FUNCTION 7 ghstore_same (ghstore, ghstore, internal),
  433. STORAGE ghstore;
  434. -- GIN support
  435. CREATE FUNCTION gin_extract_hstore(hstore, internal)
  436. RETURNS internal
  437. AS 'MODULE_PATHNAME'
  438. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  439. CREATE FUNCTION gin_extract_hstore_query(hstore, internal, int2, internal, internal)
  440. RETURNS internal
  441. AS 'MODULE_PATHNAME'
  442. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  443. CREATE FUNCTION gin_consistent_hstore(internal, int2, hstore, int4, internal, internal)
  444. RETURNS bool
  445. AS 'MODULE_PATHNAME'
  446. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  447. CREATE OPERATOR CLASS gin_hstore_ops
  448. DEFAULT FOR TYPE hstore USING gin
  449. AS
  450. OPERATOR 7 @>,
  451. OPERATOR 9 ?(hstore,text),
  452. OPERATOR 10 ?|(hstore,text[]),
  453. OPERATOR 11 ?&(hstore,text[]),
  454. FUNCTION 1 bttextcmp(text,text),
  455. FUNCTION 2 gin_extract_hstore(hstore, internal),
  456. FUNCTION 3 gin_extract_hstore_query(hstore, internal, int2, internal, internal),
  457. FUNCTION 4 gin_consistent_hstore(internal, int2, hstore, int4, internal, internal),
  458. STORAGE text;
上海开阖软件有限公司 沪ICP备12045867号-1