gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1571 line
40KB

  1. /* contrib/btree_gist/btree_gist--1.2.sql */
  2. -- complain if script is sourced in psql, rather than via CREATE EXTENSION
  3. \echo Use "CREATE EXTENSION btree_gist" to load this file. \quit
  4. CREATE FUNCTION gbtreekey4_in(cstring)
  5. RETURNS gbtreekey4
  6. AS 'MODULE_PATHNAME', 'gbtreekey_in'
  7. LANGUAGE C IMMUTABLE STRICT;
  8. CREATE FUNCTION gbtreekey4_out(gbtreekey4)
  9. RETURNS cstring
  10. AS 'MODULE_PATHNAME', 'gbtreekey_out'
  11. LANGUAGE C IMMUTABLE STRICT;
  12. CREATE TYPE gbtreekey4 (
  13. INTERNALLENGTH = 4,
  14. INPUT = gbtreekey4_in,
  15. OUTPUT = gbtreekey4_out
  16. );
  17. CREATE FUNCTION gbtreekey8_in(cstring)
  18. RETURNS gbtreekey8
  19. AS 'MODULE_PATHNAME', 'gbtreekey_in'
  20. LANGUAGE C IMMUTABLE STRICT;
  21. CREATE FUNCTION gbtreekey8_out(gbtreekey8)
  22. RETURNS cstring
  23. AS 'MODULE_PATHNAME', 'gbtreekey_out'
  24. LANGUAGE C IMMUTABLE STRICT;
  25. CREATE TYPE gbtreekey8 (
  26. INTERNALLENGTH = 8,
  27. INPUT = gbtreekey8_in,
  28. OUTPUT = gbtreekey8_out
  29. );
  30. CREATE FUNCTION gbtreekey16_in(cstring)
  31. RETURNS gbtreekey16
  32. AS 'MODULE_PATHNAME', 'gbtreekey_in'
  33. LANGUAGE C IMMUTABLE STRICT;
  34. CREATE FUNCTION gbtreekey16_out(gbtreekey16)
  35. RETURNS cstring
  36. AS 'MODULE_PATHNAME', 'gbtreekey_out'
  37. LANGUAGE C IMMUTABLE STRICT;
  38. CREATE TYPE gbtreekey16 (
  39. INTERNALLENGTH = 16,
  40. INPUT = gbtreekey16_in,
  41. OUTPUT = gbtreekey16_out
  42. );
  43. CREATE FUNCTION gbtreekey32_in(cstring)
  44. RETURNS gbtreekey32
  45. AS 'MODULE_PATHNAME', 'gbtreekey_in'
  46. LANGUAGE C IMMUTABLE STRICT;
  47. CREATE FUNCTION gbtreekey32_out(gbtreekey32)
  48. RETURNS cstring
  49. AS 'MODULE_PATHNAME', 'gbtreekey_out'
  50. LANGUAGE C IMMUTABLE STRICT;
  51. CREATE TYPE gbtreekey32 (
  52. INTERNALLENGTH = 32,
  53. INPUT = gbtreekey32_in,
  54. OUTPUT = gbtreekey32_out
  55. );
  56. CREATE FUNCTION gbtreekey_var_in(cstring)
  57. RETURNS gbtreekey_var
  58. AS 'MODULE_PATHNAME', 'gbtreekey_in'
  59. LANGUAGE C IMMUTABLE STRICT;
  60. CREATE FUNCTION gbtreekey_var_out(gbtreekey_var)
  61. RETURNS cstring
  62. AS 'MODULE_PATHNAME', 'gbtreekey_out'
  63. LANGUAGE C IMMUTABLE STRICT;
  64. CREATE TYPE gbtreekey_var (
  65. INTERNALLENGTH = VARIABLE,
  66. INPUT = gbtreekey_var_in,
  67. OUTPUT = gbtreekey_var_out,
  68. STORAGE = EXTENDED
  69. );
  70. --distance operators
  71. CREATE FUNCTION cash_dist(money, money)
  72. RETURNS money
  73. AS 'MODULE_PATHNAME'
  74. LANGUAGE C IMMUTABLE STRICT;
  75. CREATE OPERATOR <-> (
  76. LEFTARG = money,
  77. RIGHTARG = money,
  78. PROCEDURE = cash_dist,
  79. COMMUTATOR = '<->'
  80. );
  81. CREATE FUNCTION date_dist(date, date)
  82. RETURNS int4
  83. AS 'MODULE_PATHNAME'
  84. LANGUAGE C IMMUTABLE STRICT;
  85. CREATE OPERATOR <-> (
  86. LEFTARG = date,
  87. RIGHTARG = date,
  88. PROCEDURE = date_dist,
  89. COMMUTATOR = '<->'
  90. );
  91. CREATE FUNCTION float4_dist(float4, float4)
  92. RETURNS float4
  93. AS 'MODULE_PATHNAME'
  94. LANGUAGE C IMMUTABLE STRICT;
  95. CREATE OPERATOR <-> (
  96. LEFTARG = float4,
  97. RIGHTARG = float4,
  98. PROCEDURE = float4_dist,
  99. COMMUTATOR = '<->'
  100. );
  101. CREATE FUNCTION float8_dist(float8, float8)
  102. RETURNS float8
  103. AS 'MODULE_PATHNAME'
  104. LANGUAGE C IMMUTABLE STRICT;
  105. CREATE OPERATOR <-> (
  106. LEFTARG = float8,
  107. RIGHTARG = float8,
  108. PROCEDURE = float8_dist,
  109. COMMUTATOR = '<->'
  110. );
  111. CREATE FUNCTION int2_dist(int2, int2)
  112. RETURNS int2
  113. AS 'MODULE_PATHNAME'
  114. LANGUAGE C IMMUTABLE STRICT;
  115. CREATE OPERATOR <-> (
  116. LEFTARG = int2,
  117. RIGHTARG = int2,
  118. PROCEDURE = int2_dist,
  119. COMMUTATOR = '<->'
  120. );
  121. CREATE FUNCTION int4_dist(int4, int4)
  122. RETURNS int4
  123. AS 'MODULE_PATHNAME'
  124. LANGUAGE C IMMUTABLE STRICT;
  125. CREATE OPERATOR <-> (
  126. LEFTARG = int4,
  127. RIGHTARG = int4,
  128. PROCEDURE = int4_dist,
  129. COMMUTATOR = '<->'
  130. );
  131. CREATE FUNCTION int8_dist(int8, int8)
  132. RETURNS int8
  133. AS 'MODULE_PATHNAME'
  134. LANGUAGE C IMMUTABLE STRICT;
  135. CREATE OPERATOR <-> (
  136. LEFTARG = int8,
  137. RIGHTARG = int8,
  138. PROCEDURE = int8_dist,
  139. COMMUTATOR = '<->'
  140. );
  141. CREATE FUNCTION interval_dist(interval, interval)
  142. RETURNS interval
  143. AS 'MODULE_PATHNAME'
  144. LANGUAGE C IMMUTABLE STRICT;
  145. CREATE OPERATOR <-> (
  146. LEFTARG = interval,
  147. RIGHTARG = interval,
  148. PROCEDURE = interval_dist,
  149. COMMUTATOR = '<->'
  150. );
  151. CREATE FUNCTION oid_dist(oid, oid)
  152. RETURNS oid
  153. AS 'MODULE_PATHNAME'
  154. LANGUAGE C IMMUTABLE STRICT;
  155. CREATE OPERATOR <-> (
  156. LEFTARG = oid,
  157. RIGHTARG = oid,
  158. PROCEDURE = oid_dist,
  159. COMMUTATOR = '<->'
  160. );
  161. CREATE FUNCTION time_dist(time, time)
  162. RETURNS interval
  163. AS 'MODULE_PATHNAME'
  164. LANGUAGE C IMMUTABLE STRICT;
  165. CREATE OPERATOR <-> (
  166. LEFTARG = time,
  167. RIGHTARG = time,
  168. PROCEDURE = time_dist,
  169. COMMUTATOR = '<->'
  170. );
  171. CREATE FUNCTION ts_dist(timestamp, timestamp)
  172. RETURNS interval
  173. AS 'MODULE_PATHNAME'
  174. LANGUAGE C IMMUTABLE STRICT;
  175. CREATE OPERATOR <-> (
  176. LEFTARG = timestamp,
  177. RIGHTARG = timestamp,
  178. PROCEDURE = ts_dist,
  179. COMMUTATOR = '<->'
  180. );
  181. CREATE FUNCTION tstz_dist(timestamptz, timestamptz)
  182. RETURNS interval
  183. AS 'MODULE_PATHNAME'
  184. LANGUAGE C IMMUTABLE STRICT;
  185. CREATE OPERATOR <-> (
  186. LEFTARG = timestamptz,
  187. RIGHTARG = timestamptz,
  188. PROCEDURE = tstz_dist,
  189. COMMUTATOR = '<->'
  190. );
  191. --
  192. --
  193. --
  194. -- oid ops
  195. --
  196. --
  197. --
  198. -- define the GiST support methods
  199. CREATE FUNCTION gbt_oid_consistent(internal,oid,int2,oid,internal)
  200. RETURNS bool
  201. AS 'MODULE_PATHNAME'
  202. LANGUAGE C IMMUTABLE STRICT;
  203. CREATE FUNCTION gbt_oid_distance(internal,oid,int2,oid,internal)
  204. RETURNS float8
  205. AS 'MODULE_PATHNAME'
  206. LANGUAGE C IMMUTABLE STRICT;
  207. CREATE FUNCTION gbt_oid_fetch(internal)
  208. RETURNS internal
  209. AS 'MODULE_PATHNAME'
  210. LANGUAGE C IMMUTABLE STRICT;
  211. CREATE FUNCTION gbt_oid_compress(internal)
  212. RETURNS internal
  213. AS 'MODULE_PATHNAME'
  214. LANGUAGE C IMMUTABLE STRICT;
  215. CREATE FUNCTION gbt_decompress(internal)
  216. RETURNS internal
  217. AS 'MODULE_PATHNAME'
  218. LANGUAGE C IMMUTABLE STRICT;
  219. CREATE FUNCTION gbt_var_decompress(internal)
  220. RETURNS internal
  221. AS 'MODULE_PATHNAME'
  222. LANGUAGE C IMMUTABLE STRICT;
  223. CREATE FUNCTION gbt_var_fetch(internal)
  224. RETURNS internal
  225. AS 'MODULE_PATHNAME'
  226. LANGUAGE C IMMUTABLE STRICT;
  227. CREATE FUNCTION gbt_oid_penalty(internal,internal,internal)
  228. RETURNS internal
  229. AS 'MODULE_PATHNAME'
  230. LANGUAGE C IMMUTABLE STRICT;
  231. CREATE FUNCTION gbt_oid_picksplit(internal, internal)
  232. RETURNS internal
  233. AS 'MODULE_PATHNAME'
  234. LANGUAGE C IMMUTABLE STRICT;
  235. CREATE FUNCTION gbt_oid_union(internal, internal)
  236. RETURNS gbtreekey8
  237. AS 'MODULE_PATHNAME'
  238. LANGUAGE C IMMUTABLE STRICT;
  239. CREATE FUNCTION gbt_oid_same(gbtreekey8, gbtreekey8, internal)
  240. RETURNS internal
  241. AS 'MODULE_PATHNAME'
  242. LANGUAGE C IMMUTABLE STRICT;
  243. -- Create the operator class
  244. CREATE OPERATOR CLASS gist_oid_ops
  245. DEFAULT FOR TYPE oid USING gist
  246. AS
  247. OPERATOR 1 < ,
  248. OPERATOR 2 <= ,
  249. OPERATOR 3 = ,
  250. OPERATOR 4 >= ,
  251. OPERATOR 5 > ,
  252. FUNCTION 1 gbt_oid_consistent (internal, oid, int2, oid, internal),
  253. FUNCTION 2 gbt_oid_union (internal, internal),
  254. FUNCTION 3 gbt_oid_compress (internal),
  255. FUNCTION 4 gbt_decompress (internal),
  256. FUNCTION 5 gbt_oid_penalty (internal, internal, internal),
  257. FUNCTION 6 gbt_oid_picksplit (internal, internal),
  258. FUNCTION 7 gbt_oid_same (gbtreekey8, gbtreekey8, internal),
  259. STORAGE gbtreekey8;
  260. -- Add operators that are new in 9.1. We do it like this, leaving them
  261. -- "loose" in the operator family rather than bound into the opclass, because
  262. -- that's the only state that can be reproduced during an upgrade from 9.0.
  263. ALTER OPERATOR FAMILY gist_oid_ops USING gist ADD
  264. OPERATOR 6 <> (oid, oid) ,
  265. OPERATOR 15 <-> (oid, oid) FOR ORDER BY pg_catalog.oid_ops ,
  266. FUNCTION 8 (oid, oid) gbt_oid_distance (internal, oid, int2, oid, internal) ,
  267. -- Also add support function for index-only-scans, added in 9.5.
  268. FUNCTION 9 (oid, oid) gbt_oid_fetch (internal) ;
  269. --
  270. --
  271. --
  272. -- int2 ops
  273. --
  274. --
  275. --
  276. -- define the GiST support methods
  277. CREATE FUNCTION gbt_int2_consistent(internal,int2,int2,oid,internal)
  278. RETURNS bool
  279. AS 'MODULE_PATHNAME'
  280. LANGUAGE C IMMUTABLE STRICT;
  281. CREATE FUNCTION gbt_int2_distance(internal,int2,int2,oid,internal)
  282. RETURNS float8
  283. AS 'MODULE_PATHNAME'
  284. LANGUAGE C IMMUTABLE STRICT;
  285. CREATE FUNCTION gbt_int2_compress(internal)
  286. RETURNS internal
  287. AS 'MODULE_PATHNAME'
  288. LANGUAGE C IMMUTABLE STRICT;
  289. CREATE FUNCTION gbt_int2_fetch(internal)
  290. RETURNS internal
  291. AS 'MODULE_PATHNAME'
  292. LANGUAGE C IMMUTABLE STRICT;
  293. CREATE FUNCTION gbt_int2_penalty(internal,internal,internal)
  294. RETURNS internal
  295. AS 'MODULE_PATHNAME'
  296. LANGUAGE C IMMUTABLE STRICT;
  297. CREATE FUNCTION gbt_int2_picksplit(internal, internal)
  298. RETURNS internal
  299. AS 'MODULE_PATHNAME'
  300. LANGUAGE C IMMUTABLE STRICT;
  301. CREATE FUNCTION gbt_int2_union(internal, internal)
  302. RETURNS gbtreekey4
  303. AS 'MODULE_PATHNAME'
  304. LANGUAGE C IMMUTABLE STRICT;
  305. CREATE FUNCTION gbt_int2_same(gbtreekey4, gbtreekey4, internal)
  306. RETURNS internal
  307. AS 'MODULE_PATHNAME'
  308. LANGUAGE C IMMUTABLE STRICT;
  309. -- Create the operator class
  310. CREATE OPERATOR CLASS gist_int2_ops
  311. DEFAULT FOR TYPE int2 USING gist
  312. AS
  313. OPERATOR 1 < ,
  314. OPERATOR 2 <= ,
  315. OPERATOR 3 = ,
  316. OPERATOR 4 >= ,
  317. OPERATOR 5 > ,
  318. FUNCTION 1 gbt_int2_consistent (internal, int2, int2, oid, internal),
  319. FUNCTION 2 gbt_int2_union (internal, internal),
  320. FUNCTION 3 gbt_int2_compress (internal),
  321. FUNCTION 4 gbt_decompress (internal),
  322. FUNCTION 5 gbt_int2_penalty (internal, internal, internal),
  323. FUNCTION 6 gbt_int2_picksplit (internal, internal),
  324. FUNCTION 7 gbt_int2_same (gbtreekey4, gbtreekey4, internal),
  325. STORAGE gbtreekey4;
  326. ALTER OPERATOR FAMILY gist_int2_ops USING gist ADD
  327. OPERATOR 6 <> (int2, int2) ,
  328. OPERATOR 15 <-> (int2, int2) FOR ORDER BY pg_catalog.integer_ops ,
  329. FUNCTION 8 (int2, int2) gbt_int2_distance (internal, int2, int2, oid, internal) ,
  330. FUNCTION 9 (int2, int2) gbt_int2_fetch (internal) ;
  331. --
  332. --
  333. --
  334. -- int4 ops
  335. --
  336. --
  337. --
  338. -- define the GiST support methods
  339. CREATE FUNCTION gbt_int4_consistent(internal,int4,int2,oid,internal)
  340. RETURNS bool
  341. AS 'MODULE_PATHNAME'
  342. LANGUAGE C IMMUTABLE STRICT;
  343. CREATE FUNCTION gbt_int4_distance(internal,int4,int2,oid,internal)
  344. RETURNS float8
  345. AS 'MODULE_PATHNAME'
  346. LANGUAGE C IMMUTABLE STRICT;
  347. CREATE FUNCTION gbt_int4_compress(internal)
  348. RETURNS internal
  349. AS 'MODULE_PATHNAME'
  350. LANGUAGE C IMMUTABLE STRICT;
  351. CREATE FUNCTION gbt_int4_fetch(internal)
  352. RETURNS internal
  353. AS 'MODULE_PATHNAME'
  354. LANGUAGE C IMMUTABLE STRICT;
  355. CREATE FUNCTION gbt_int4_penalty(internal,internal,internal)
  356. RETURNS internal
  357. AS 'MODULE_PATHNAME'
  358. LANGUAGE C IMMUTABLE STRICT;
  359. CREATE FUNCTION gbt_int4_picksplit(internal, internal)
  360. RETURNS internal
  361. AS 'MODULE_PATHNAME'
  362. LANGUAGE C IMMUTABLE STRICT;
  363. CREATE FUNCTION gbt_int4_union(internal, internal)
  364. RETURNS gbtreekey8
  365. AS 'MODULE_PATHNAME'
  366. LANGUAGE C IMMUTABLE STRICT;
  367. CREATE FUNCTION gbt_int4_same(gbtreekey8, gbtreekey8, internal)
  368. RETURNS internal
  369. AS 'MODULE_PATHNAME'
  370. LANGUAGE C IMMUTABLE STRICT;
  371. -- Create the operator class
  372. CREATE OPERATOR CLASS gist_int4_ops
  373. DEFAULT FOR TYPE int4 USING gist
  374. AS
  375. OPERATOR 1 < ,
  376. OPERATOR 2 <= ,
  377. OPERATOR 3 = ,
  378. OPERATOR 4 >= ,
  379. OPERATOR 5 > ,
  380. FUNCTION 1 gbt_int4_consistent (internal, int4, int2, oid, internal),
  381. FUNCTION 2 gbt_int4_union (internal, internal),
  382. FUNCTION 3 gbt_int4_compress (internal),
  383. FUNCTION 4 gbt_decompress (internal),
  384. FUNCTION 5 gbt_int4_penalty (internal, internal, internal),
  385. FUNCTION 6 gbt_int4_picksplit (internal, internal),
  386. FUNCTION 7 gbt_int4_same (gbtreekey8, gbtreekey8, internal),
  387. STORAGE gbtreekey8;
  388. ALTER OPERATOR FAMILY gist_int4_ops USING gist ADD
  389. OPERATOR 6 <> (int4, int4) ,
  390. OPERATOR 15 <-> (int4, int4) FOR ORDER BY pg_catalog.integer_ops ,
  391. FUNCTION 8 (int4, int4) gbt_int4_distance (internal, int4, int2, oid, internal) ,
  392. FUNCTION 9 (int4, int4) gbt_int4_fetch (internal) ;
  393. --
  394. --
  395. --
  396. -- int8 ops
  397. --
  398. --
  399. --
  400. -- define the GiST support methods
  401. CREATE FUNCTION gbt_int8_consistent(internal,int8,int2,oid,internal)
  402. RETURNS bool
  403. AS 'MODULE_PATHNAME'
  404. LANGUAGE C IMMUTABLE STRICT;
  405. CREATE FUNCTION gbt_int8_distance(internal,int8,int2,oid,internal)
  406. RETURNS float8
  407. AS 'MODULE_PATHNAME'
  408. LANGUAGE C IMMUTABLE STRICT;
  409. CREATE FUNCTION gbt_int8_compress(internal)
  410. RETURNS internal
  411. AS 'MODULE_PATHNAME'
  412. LANGUAGE C IMMUTABLE STRICT;
  413. CREATE FUNCTION gbt_int8_fetch(internal)
  414. RETURNS internal
  415. AS 'MODULE_PATHNAME'
  416. LANGUAGE C IMMUTABLE STRICT;
  417. CREATE FUNCTION gbt_int8_penalty(internal,internal,internal)
  418. RETURNS internal
  419. AS 'MODULE_PATHNAME'
  420. LANGUAGE C IMMUTABLE STRICT;
  421. CREATE FUNCTION gbt_int8_picksplit(internal, internal)
  422. RETURNS internal
  423. AS 'MODULE_PATHNAME'
  424. LANGUAGE C IMMUTABLE STRICT;
  425. CREATE FUNCTION gbt_int8_union(internal, internal)
  426. RETURNS gbtreekey16
  427. AS 'MODULE_PATHNAME'
  428. LANGUAGE C IMMUTABLE STRICT;
  429. CREATE FUNCTION gbt_int8_same(gbtreekey16, gbtreekey16, internal)
  430. RETURNS internal
  431. AS 'MODULE_PATHNAME'
  432. LANGUAGE C IMMUTABLE STRICT;
  433. -- Create the operator class
  434. CREATE OPERATOR CLASS gist_int8_ops
  435. DEFAULT FOR TYPE int8 USING gist
  436. AS
  437. OPERATOR 1 < ,
  438. OPERATOR 2 <= ,
  439. OPERATOR 3 = ,
  440. OPERATOR 4 >= ,
  441. OPERATOR 5 > ,
  442. FUNCTION 1 gbt_int8_consistent (internal, int8, int2, oid, internal),
  443. FUNCTION 2 gbt_int8_union (internal, internal),
  444. FUNCTION 3 gbt_int8_compress (internal),
  445. FUNCTION 4 gbt_decompress (internal),
  446. FUNCTION 5 gbt_int8_penalty (internal, internal, internal),
  447. FUNCTION 6 gbt_int8_picksplit (internal, internal),
  448. FUNCTION 7 gbt_int8_same (gbtreekey16, gbtreekey16, internal),
  449. STORAGE gbtreekey16;
  450. ALTER OPERATOR FAMILY gist_int8_ops USING gist ADD
  451. OPERATOR 6 <> (int8, int8) ,
  452. OPERATOR 15 <-> (int8, int8) FOR ORDER BY pg_catalog.integer_ops ,
  453. FUNCTION 8 (int8, int8) gbt_int8_distance (internal, int8, int2, oid, internal) ,
  454. FUNCTION 9 (int8, int8) gbt_int8_fetch (internal) ;
  455. --
  456. --
  457. --
  458. -- float4 ops
  459. --
  460. --
  461. --
  462. -- define the GiST support methods
  463. CREATE FUNCTION gbt_float4_consistent(internal,float4,int2,oid,internal)
  464. RETURNS bool
  465. AS 'MODULE_PATHNAME'
  466. LANGUAGE C IMMUTABLE STRICT;
  467. CREATE FUNCTION gbt_float4_distance(internal,float4,int2,oid,internal)
  468. RETURNS float8
  469. AS 'MODULE_PATHNAME'
  470. LANGUAGE C IMMUTABLE STRICT;
  471. CREATE FUNCTION gbt_float4_compress(internal)
  472. RETURNS internal
  473. AS 'MODULE_PATHNAME'
  474. LANGUAGE C IMMUTABLE STRICT;
  475. CREATE FUNCTION gbt_float4_fetch(internal)
  476. RETURNS internal
  477. AS 'MODULE_PATHNAME'
  478. LANGUAGE C IMMUTABLE STRICT;
  479. CREATE FUNCTION gbt_float4_penalty(internal,internal,internal)
  480. RETURNS internal
  481. AS 'MODULE_PATHNAME'
  482. LANGUAGE C IMMUTABLE STRICT;
  483. CREATE FUNCTION gbt_float4_picksplit(internal, internal)
  484. RETURNS internal
  485. AS 'MODULE_PATHNAME'
  486. LANGUAGE C IMMUTABLE STRICT;
  487. CREATE FUNCTION gbt_float4_union(internal, internal)
  488. RETURNS gbtreekey8
  489. AS 'MODULE_PATHNAME'
  490. LANGUAGE C IMMUTABLE STRICT;
  491. CREATE FUNCTION gbt_float4_same(gbtreekey8, gbtreekey8, internal)
  492. RETURNS internal
  493. AS 'MODULE_PATHNAME'
  494. LANGUAGE C IMMUTABLE STRICT;
  495. -- Create the operator class
  496. CREATE OPERATOR CLASS gist_float4_ops
  497. DEFAULT FOR TYPE float4 USING gist
  498. AS
  499. OPERATOR 1 < ,
  500. OPERATOR 2 <= ,
  501. OPERATOR 3 = ,
  502. OPERATOR 4 >= ,
  503. OPERATOR 5 > ,
  504. FUNCTION 1 gbt_float4_consistent (internal, float4, int2, oid, internal),
  505. FUNCTION 2 gbt_float4_union (internal, internal),
  506. FUNCTION 3 gbt_float4_compress (internal),
  507. FUNCTION 4 gbt_decompress (internal),
  508. FUNCTION 5 gbt_float4_penalty (internal, internal, internal),
  509. FUNCTION 6 gbt_float4_picksplit (internal, internal),
  510. FUNCTION 7 gbt_float4_same (gbtreekey8, gbtreekey8, internal),
  511. STORAGE gbtreekey8;
  512. ALTER OPERATOR FAMILY gist_float4_ops USING gist ADD
  513. OPERATOR 6 <> (float4, float4) ,
  514. OPERATOR 15 <-> (float4, float4) FOR ORDER BY pg_catalog.float_ops ,
  515. FUNCTION 8 (float4, float4) gbt_float4_distance (internal, float4, int2, oid, internal) ,
  516. FUNCTION 9 (float4, float4) gbt_float4_fetch (internal) ;
  517. --
  518. --
  519. --
  520. -- float8 ops
  521. --
  522. --
  523. --
  524. -- define the GiST support methods
  525. CREATE FUNCTION gbt_float8_consistent(internal,float8,int2,oid,internal)
  526. RETURNS bool
  527. AS 'MODULE_PATHNAME'
  528. LANGUAGE C IMMUTABLE STRICT;
  529. CREATE FUNCTION gbt_float8_distance(internal,float8,int2,oid,internal)
  530. RETURNS float8
  531. AS 'MODULE_PATHNAME'
  532. LANGUAGE C IMMUTABLE STRICT;
  533. CREATE FUNCTION gbt_float8_compress(internal)
  534. RETURNS internal
  535. AS 'MODULE_PATHNAME'
  536. LANGUAGE C IMMUTABLE STRICT;
  537. CREATE FUNCTION gbt_float8_fetch(internal)
  538. RETURNS internal
  539. AS 'MODULE_PATHNAME'
  540. LANGUAGE C IMMUTABLE STRICT;
  541. CREATE FUNCTION gbt_float8_penalty(internal,internal,internal)
  542. RETURNS internal
  543. AS 'MODULE_PATHNAME'
  544. LANGUAGE C IMMUTABLE STRICT;
  545. CREATE FUNCTION gbt_float8_picksplit(internal, internal)
  546. RETURNS internal
  547. AS 'MODULE_PATHNAME'
  548. LANGUAGE C IMMUTABLE STRICT;
  549. CREATE FUNCTION gbt_float8_union(internal, internal)
  550. RETURNS gbtreekey16
  551. AS 'MODULE_PATHNAME'
  552. LANGUAGE C IMMUTABLE STRICT;
  553. CREATE FUNCTION gbt_float8_same(gbtreekey16, gbtreekey16, internal)
  554. RETURNS internal
  555. AS 'MODULE_PATHNAME'
  556. LANGUAGE C IMMUTABLE STRICT;
  557. -- Create the operator class
  558. CREATE OPERATOR CLASS gist_float8_ops
  559. DEFAULT FOR TYPE float8 USING gist
  560. AS
  561. OPERATOR 1 < ,
  562. OPERATOR 2 <= ,
  563. OPERATOR 3 = ,
  564. OPERATOR 4 >= ,
  565. OPERATOR 5 > ,
  566. FUNCTION 1 gbt_float8_consistent (internal, float8, int2, oid, internal),
  567. FUNCTION 2 gbt_float8_union (internal, internal),
  568. FUNCTION 3 gbt_float8_compress (internal),
  569. FUNCTION 4 gbt_decompress (internal),
  570. FUNCTION 5 gbt_float8_penalty (internal, internal, internal),
  571. FUNCTION 6 gbt_float8_picksplit (internal, internal),
  572. FUNCTION 7 gbt_float8_same (gbtreekey16, gbtreekey16, internal),
  573. STORAGE gbtreekey16;
  574. ALTER OPERATOR FAMILY gist_float8_ops USING gist ADD
  575. OPERATOR 6 <> (float8, float8) ,
  576. OPERATOR 15 <-> (float8, float8) FOR ORDER BY pg_catalog.float_ops ,
  577. FUNCTION 8 (float8, float8) gbt_float8_distance (internal, float8, int2, oid, internal) ,
  578. FUNCTION 9 (float8, float8) gbt_float8_fetch (internal) ;
  579. --
  580. --
  581. --
  582. -- timestamp ops
  583. --
  584. --
  585. --
  586. CREATE FUNCTION gbt_ts_consistent(internal,timestamp,int2,oid,internal)
  587. RETURNS bool
  588. AS 'MODULE_PATHNAME'
  589. LANGUAGE C IMMUTABLE STRICT;
  590. CREATE FUNCTION gbt_ts_distance(internal,timestamp,int2,oid,internal)
  591. RETURNS float8
  592. AS 'MODULE_PATHNAME'
  593. LANGUAGE C IMMUTABLE STRICT;
  594. CREATE FUNCTION gbt_tstz_consistent(internal,timestamptz,int2,oid,internal)
  595. RETURNS bool
  596. AS 'MODULE_PATHNAME'
  597. LANGUAGE C IMMUTABLE STRICT;
  598. CREATE FUNCTION gbt_tstz_distance(internal,timestamptz,int2,oid,internal)
  599. RETURNS float8
  600. AS 'MODULE_PATHNAME'
  601. LANGUAGE C IMMUTABLE STRICT;
  602. CREATE FUNCTION gbt_ts_compress(internal)
  603. RETURNS internal
  604. AS 'MODULE_PATHNAME'
  605. LANGUAGE C IMMUTABLE STRICT;
  606. CREATE FUNCTION gbt_tstz_compress(internal)
  607. RETURNS internal
  608. AS 'MODULE_PATHNAME'
  609. LANGUAGE C IMMUTABLE STRICT;
  610. CREATE FUNCTION gbt_ts_fetch(internal)
  611. RETURNS internal
  612. AS 'MODULE_PATHNAME'
  613. LANGUAGE C IMMUTABLE STRICT;
  614. CREATE FUNCTION gbt_ts_penalty(internal,internal,internal)
  615. RETURNS internal
  616. AS 'MODULE_PATHNAME'
  617. LANGUAGE C IMMUTABLE STRICT;
  618. CREATE FUNCTION gbt_ts_picksplit(internal, internal)
  619. RETURNS internal
  620. AS 'MODULE_PATHNAME'
  621. LANGUAGE C IMMUTABLE STRICT;
  622. CREATE FUNCTION gbt_ts_union(internal, internal)
  623. RETURNS gbtreekey16
  624. AS 'MODULE_PATHNAME'
  625. LANGUAGE C IMMUTABLE STRICT;
  626. CREATE FUNCTION gbt_ts_same(gbtreekey16, gbtreekey16, internal)
  627. RETURNS internal
  628. AS 'MODULE_PATHNAME'
  629. LANGUAGE C IMMUTABLE STRICT;
  630. -- Create the operator class
  631. CREATE OPERATOR CLASS gist_timestamp_ops
  632. DEFAULT FOR TYPE timestamp USING gist
  633. AS
  634. OPERATOR 1 < ,
  635. OPERATOR 2 <= ,
  636. OPERATOR 3 = ,
  637. OPERATOR 4 >= ,
  638. OPERATOR 5 > ,
  639. FUNCTION 1 gbt_ts_consistent (internal, timestamp, int2, oid, internal),
  640. FUNCTION 2 gbt_ts_union (internal, internal),
  641. FUNCTION 3 gbt_ts_compress (internal),
  642. FUNCTION 4 gbt_decompress (internal),
  643. FUNCTION 5 gbt_ts_penalty (internal, internal, internal),
  644. FUNCTION 6 gbt_ts_picksplit (internal, internal),
  645. FUNCTION 7 gbt_ts_same (gbtreekey16, gbtreekey16, internal),
  646. STORAGE gbtreekey16;
  647. ALTER OPERATOR FAMILY gist_timestamp_ops USING gist ADD
  648. OPERATOR 6 <> (timestamp, timestamp) ,
  649. OPERATOR 15 <-> (timestamp, timestamp) FOR ORDER BY pg_catalog.interval_ops ,
  650. FUNCTION 8 (timestamp, timestamp) gbt_ts_distance (internal, timestamp, int2, oid, internal) ,
  651. FUNCTION 9 (timestamp, timestamp) gbt_ts_fetch (internal) ;
  652. -- Create the operator class
  653. CREATE OPERATOR CLASS gist_timestamptz_ops
  654. DEFAULT FOR TYPE timestamptz USING gist
  655. AS
  656. OPERATOR 1 < ,
  657. OPERATOR 2 <= ,
  658. OPERATOR 3 = ,
  659. OPERATOR 4 >= ,
  660. OPERATOR 5 > ,
  661. FUNCTION 1 gbt_tstz_consistent (internal, timestamptz, int2, oid, internal),
  662. FUNCTION 2 gbt_ts_union (internal, internal),
  663. FUNCTION 3 gbt_tstz_compress (internal),
  664. FUNCTION 4 gbt_decompress (internal),
  665. FUNCTION 5 gbt_ts_penalty (internal, internal, internal),
  666. FUNCTION 6 gbt_ts_picksplit (internal, internal),
  667. FUNCTION 7 gbt_ts_same (gbtreekey16, gbtreekey16, internal),
  668. STORAGE gbtreekey16;
  669. ALTER OPERATOR FAMILY gist_timestamptz_ops USING gist ADD
  670. OPERATOR 6 <> (timestamptz, timestamptz) ,
  671. OPERATOR 15 <-> (timestamptz, timestamptz) FOR ORDER BY pg_catalog.interval_ops ,
  672. FUNCTION 8 (timestamptz, timestamptz) gbt_tstz_distance (internal, timestamptz, int2, oid, internal) ,
  673. FUNCTION 9 (timestamptz, timestamptz) gbt_ts_fetch (internal) ;
  674. --
  675. --
  676. --
  677. -- time ops
  678. --
  679. --
  680. --
  681. CREATE FUNCTION gbt_time_consistent(internal,time,int2,oid,internal)
  682. RETURNS bool
  683. AS 'MODULE_PATHNAME'
  684. LANGUAGE C IMMUTABLE STRICT;
  685. CREATE FUNCTION gbt_time_distance(internal,time,int2,oid,internal)
  686. RETURNS float8
  687. AS 'MODULE_PATHNAME'
  688. LANGUAGE C IMMUTABLE STRICT;
  689. CREATE FUNCTION gbt_timetz_consistent(internal,timetz,int2,oid,internal)
  690. RETURNS bool
  691. AS 'MODULE_PATHNAME'
  692. LANGUAGE C IMMUTABLE STRICT;
  693. CREATE FUNCTION gbt_time_compress(internal)
  694. RETURNS internal
  695. AS 'MODULE_PATHNAME'
  696. LANGUAGE C IMMUTABLE STRICT;
  697. CREATE FUNCTION gbt_timetz_compress(internal)
  698. RETURNS internal
  699. AS 'MODULE_PATHNAME'
  700. LANGUAGE C IMMUTABLE STRICT;
  701. CREATE FUNCTION gbt_time_fetch(internal)
  702. RETURNS internal
  703. AS 'MODULE_PATHNAME'
  704. LANGUAGE C IMMUTABLE STRICT;
  705. CREATE FUNCTION gbt_time_penalty(internal,internal,internal)
  706. RETURNS internal
  707. AS 'MODULE_PATHNAME'
  708. LANGUAGE C IMMUTABLE STRICT;
  709. CREATE FUNCTION gbt_time_picksplit(internal, internal)
  710. RETURNS internal
  711. AS 'MODULE_PATHNAME'
  712. LANGUAGE C IMMUTABLE STRICT;
  713. CREATE FUNCTION gbt_time_union(internal, internal)
  714. RETURNS gbtreekey16
  715. AS 'MODULE_PATHNAME'
  716. LANGUAGE C IMMUTABLE STRICT;
  717. CREATE FUNCTION gbt_time_same(gbtreekey16, gbtreekey16, internal)
  718. RETURNS internal
  719. AS 'MODULE_PATHNAME'
  720. LANGUAGE C IMMUTABLE STRICT;
  721. -- Create the operator class
  722. CREATE OPERATOR CLASS gist_time_ops
  723. DEFAULT FOR TYPE time USING gist
  724. AS
  725. OPERATOR 1 < ,
  726. OPERATOR 2 <= ,
  727. OPERATOR 3 = ,
  728. OPERATOR 4 >= ,
  729. OPERATOR 5 > ,
  730. FUNCTION 1 gbt_time_consistent (internal, time, int2, oid, internal),
  731. FUNCTION 2 gbt_time_union (internal, internal),
  732. FUNCTION 3 gbt_time_compress (internal),
  733. FUNCTION 4 gbt_decompress (internal),
  734. FUNCTION 5 gbt_time_penalty (internal, internal, internal),
  735. FUNCTION 6 gbt_time_picksplit (internal, internal),
  736. FUNCTION 7 gbt_time_same (gbtreekey16, gbtreekey16, internal),
  737. STORAGE gbtreekey16;
  738. ALTER OPERATOR FAMILY gist_time_ops USING gist ADD
  739. OPERATOR 6 <> (time, time) ,
  740. OPERATOR 15 <-> (time, time) FOR ORDER BY pg_catalog.interval_ops ,
  741. FUNCTION 8 (time, time) gbt_time_distance (internal, time, int2, oid, internal) ,
  742. FUNCTION 9 (time, time) gbt_time_fetch (internal) ;
  743. CREATE OPERATOR CLASS gist_timetz_ops
  744. DEFAULT FOR TYPE timetz USING gist
  745. AS
  746. OPERATOR 1 < ,
  747. OPERATOR 2 <= ,
  748. OPERATOR 3 = ,
  749. OPERATOR 4 >= ,
  750. OPERATOR 5 > ,
  751. FUNCTION 1 gbt_timetz_consistent (internal, timetz, int2, oid, internal),
  752. FUNCTION 2 gbt_time_union (internal, internal),
  753. FUNCTION 3 gbt_timetz_compress (internal),
  754. FUNCTION 4 gbt_decompress (internal),
  755. FUNCTION 5 gbt_time_penalty (internal, internal, internal),
  756. FUNCTION 6 gbt_time_picksplit (internal, internal),
  757. FUNCTION 7 gbt_time_same (gbtreekey16, gbtreekey16, internal),
  758. STORAGE gbtreekey16;
  759. ALTER OPERATOR FAMILY gist_timetz_ops USING gist ADD
  760. OPERATOR 6 <> (timetz, timetz) ;
  761. -- no 'fetch' function, as the compress function is lossy.
  762. --
  763. --
  764. --
  765. -- date ops
  766. --
  767. --
  768. --
  769. CREATE FUNCTION gbt_date_consistent(internal,date,int2,oid,internal)
  770. RETURNS bool
  771. AS 'MODULE_PATHNAME'
  772. LANGUAGE C IMMUTABLE STRICT;
  773. CREATE FUNCTION gbt_date_distance(internal,date,int2,oid,internal)
  774. RETURNS float8
  775. AS 'MODULE_PATHNAME'
  776. LANGUAGE C IMMUTABLE STRICT;
  777. CREATE FUNCTION gbt_date_compress(internal)
  778. RETURNS internal
  779. AS 'MODULE_PATHNAME'
  780. LANGUAGE C IMMUTABLE STRICT;
  781. CREATE FUNCTION gbt_date_fetch(internal)
  782. RETURNS internal
  783. AS 'MODULE_PATHNAME'
  784. LANGUAGE C IMMUTABLE STRICT;
  785. CREATE FUNCTION gbt_date_penalty(internal,internal,internal)
  786. RETURNS internal
  787. AS 'MODULE_PATHNAME'
  788. LANGUAGE C IMMUTABLE STRICT;
  789. CREATE FUNCTION gbt_date_picksplit(internal, internal)
  790. RETURNS internal
  791. AS 'MODULE_PATHNAME'
  792. LANGUAGE C IMMUTABLE STRICT;
  793. CREATE FUNCTION gbt_date_union(internal, internal)
  794. RETURNS gbtreekey8
  795. AS 'MODULE_PATHNAME'
  796. LANGUAGE C IMMUTABLE STRICT;
  797. CREATE FUNCTION gbt_date_same(gbtreekey8, gbtreekey8, internal)
  798. RETURNS internal
  799. AS 'MODULE_PATHNAME'
  800. LANGUAGE C IMMUTABLE STRICT;
  801. -- Create the operator class
  802. CREATE OPERATOR CLASS gist_date_ops
  803. DEFAULT FOR TYPE date USING gist
  804. AS
  805. OPERATOR 1 < ,
  806. OPERATOR 2 <= ,
  807. OPERATOR 3 = ,
  808. OPERATOR 4 >= ,
  809. OPERATOR 5 > ,
  810. FUNCTION 1 gbt_date_consistent (internal, date, int2, oid, internal),
  811. FUNCTION 2 gbt_date_union (internal, internal),
  812. FUNCTION 3 gbt_date_compress (internal),
  813. FUNCTION 4 gbt_decompress (internal),
  814. FUNCTION 5 gbt_date_penalty (internal, internal, internal),
  815. FUNCTION 6 gbt_date_picksplit (internal, internal),
  816. FUNCTION 7 gbt_date_same (gbtreekey8, gbtreekey8, internal),
  817. STORAGE gbtreekey8;
  818. ALTER OPERATOR FAMILY gist_date_ops USING gist ADD
  819. OPERATOR 6 <> (date, date) ,
  820. OPERATOR 15 <-> (date, date) FOR ORDER BY pg_catalog.integer_ops ,
  821. FUNCTION 8 (date, date) gbt_date_distance (internal, date, int2, oid, internal) ,
  822. FUNCTION 9 (date, date) gbt_date_fetch (internal) ;
  823. --
  824. --
  825. --
  826. -- interval ops
  827. --
  828. --
  829. --
  830. CREATE FUNCTION gbt_intv_consistent(internal,interval,int2,oid,internal)
  831. RETURNS bool
  832. AS 'MODULE_PATHNAME'
  833. LANGUAGE C IMMUTABLE STRICT;
  834. CREATE FUNCTION gbt_intv_distance(internal,interval,int2,oid,internal)
  835. RETURNS float8
  836. AS 'MODULE_PATHNAME'
  837. LANGUAGE C IMMUTABLE STRICT;
  838. CREATE FUNCTION gbt_intv_compress(internal)
  839. RETURNS internal
  840. AS 'MODULE_PATHNAME'
  841. LANGUAGE C IMMUTABLE STRICT;
  842. CREATE FUNCTION gbt_intv_decompress(internal)
  843. RETURNS internal
  844. AS 'MODULE_PATHNAME'
  845. LANGUAGE C IMMUTABLE STRICT;
  846. CREATE FUNCTION gbt_intv_fetch(internal)
  847. RETURNS internal
  848. AS 'MODULE_PATHNAME'
  849. LANGUAGE C IMMUTABLE STRICT;
  850. CREATE FUNCTION gbt_intv_penalty(internal,internal,internal)
  851. RETURNS internal
  852. AS 'MODULE_PATHNAME'
  853. LANGUAGE C IMMUTABLE STRICT;
  854. CREATE FUNCTION gbt_intv_picksplit(internal, internal)
  855. RETURNS internal
  856. AS 'MODULE_PATHNAME'
  857. LANGUAGE C IMMUTABLE STRICT;
  858. CREATE FUNCTION gbt_intv_union(internal, internal)
  859. RETURNS gbtreekey32
  860. AS 'MODULE_PATHNAME'
  861. LANGUAGE C IMMUTABLE STRICT;
  862. CREATE FUNCTION gbt_intv_same(gbtreekey32, gbtreekey32, internal)
  863. RETURNS internal
  864. AS 'MODULE_PATHNAME'
  865. LANGUAGE C IMMUTABLE STRICT;
  866. -- Create the operator class
  867. CREATE OPERATOR CLASS gist_interval_ops
  868. DEFAULT FOR TYPE interval USING gist
  869. AS
  870. OPERATOR 1 < ,
  871. OPERATOR 2 <= ,
  872. OPERATOR 3 = ,
  873. OPERATOR 4 >= ,
  874. OPERATOR 5 > ,
  875. FUNCTION 1 gbt_intv_consistent (internal, interval, int2, oid, internal),
  876. FUNCTION 2 gbt_intv_union (internal, internal),
  877. FUNCTION 3 gbt_intv_compress (internal),
  878. FUNCTION 4 gbt_intv_decompress (internal),
  879. FUNCTION 5 gbt_intv_penalty (internal, internal, internal),
  880. FUNCTION 6 gbt_intv_picksplit (internal, internal),
  881. FUNCTION 7 gbt_intv_same (gbtreekey32, gbtreekey32, internal),
  882. STORAGE gbtreekey32;
  883. ALTER OPERATOR FAMILY gist_interval_ops USING gist ADD
  884. OPERATOR 6 <> (interval, interval) ,
  885. OPERATOR 15 <-> (interval, interval) FOR ORDER BY pg_catalog.interval_ops ,
  886. FUNCTION 8 (interval, interval) gbt_intv_distance (internal, interval, int2, oid, internal) ,
  887. FUNCTION 9 (interval, interval) gbt_intv_fetch (internal) ;
  888. --
  889. --
  890. --
  891. -- cash ops
  892. --
  893. --
  894. --
  895. -- define the GiST support methods
  896. CREATE FUNCTION gbt_cash_consistent(internal,money,int2,oid,internal)
  897. RETURNS bool
  898. AS 'MODULE_PATHNAME'
  899. LANGUAGE C IMMUTABLE STRICT;
  900. CREATE FUNCTION gbt_cash_distance(internal,money,int2,oid,internal)
  901. RETURNS float8
  902. AS 'MODULE_PATHNAME'
  903. LANGUAGE C IMMUTABLE STRICT;
  904. CREATE FUNCTION gbt_cash_compress(internal)
  905. RETURNS internal
  906. AS 'MODULE_PATHNAME'
  907. LANGUAGE C IMMUTABLE STRICT;
  908. CREATE FUNCTION gbt_cash_fetch(internal)
  909. RETURNS internal
  910. AS 'MODULE_PATHNAME'
  911. LANGUAGE C IMMUTABLE STRICT;
  912. CREATE FUNCTION gbt_cash_penalty(internal,internal,internal)
  913. RETURNS internal
  914. AS 'MODULE_PATHNAME'
  915. LANGUAGE C IMMUTABLE STRICT;
  916. CREATE FUNCTION gbt_cash_picksplit(internal, internal)
  917. RETURNS internal
  918. AS 'MODULE_PATHNAME'
  919. LANGUAGE C IMMUTABLE STRICT;
  920. CREATE FUNCTION gbt_cash_union(internal, internal)
  921. RETURNS gbtreekey16
  922. AS 'MODULE_PATHNAME'
  923. LANGUAGE C IMMUTABLE STRICT;
  924. CREATE FUNCTION gbt_cash_same(gbtreekey16, gbtreekey16, internal)
  925. RETURNS internal
  926. AS 'MODULE_PATHNAME'
  927. LANGUAGE C IMMUTABLE STRICT;
  928. -- Create the operator class
  929. CREATE OPERATOR CLASS gist_cash_ops
  930. DEFAULT FOR TYPE money USING gist
  931. AS
  932. OPERATOR 1 < ,
  933. OPERATOR 2 <= ,
  934. OPERATOR 3 = ,
  935. OPERATOR 4 >= ,
  936. OPERATOR 5 > ,
  937. FUNCTION 1 gbt_cash_consistent (internal, money, int2, oid, internal),
  938. FUNCTION 2 gbt_cash_union (internal, internal),
  939. FUNCTION 3 gbt_cash_compress (internal),
  940. FUNCTION 4 gbt_decompress (internal),
  941. FUNCTION 5 gbt_cash_penalty (internal, internal, internal),
  942. FUNCTION 6 gbt_cash_picksplit (internal, internal),
  943. FUNCTION 7 gbt_cash_same (gbtreekey16, gbtreekey16, internal),
  944. STORAGE gbtreekey16;
  945. ALTER OPERATOR FAMILY gist_cash_ops USING gist ADD
  946. OPERATOR 6 <> (money, money) ,
  947. OPERATOR 15 <-> (money, money) FOR ORDER BY pg_catalog.money_ops ,
  948. FUNCTION 8 (money, money) gbt_cash_distance (internal, money, int2, oid, internal) ,
  949. FUNCTION 9 (money, money) gbt_cash_fetch (internal) ;
  950. --
  951. --
  952. --
  953. -- macaddr ops
  954. --
  955. --
  956. --
  957. -- define the GiST support methods
  958. CREATE FUNCTION gbt_macad_consistent(internal,macaddr,int2,oid,internal)
  959. RETURNS bool
  960. AS 'MODULE_PATHNAME'
  961. LANGUAGE C IMMUTABLE STRICT;
  962. CREATE FUNCTION gbt_macad_compress(internal)
  963. RETURNS internal
  964. AS 'MODULE_PATHNAME'
  965. LANGUAGE C IMMUTABLE STRICT;
  966. CREATE FUNCTION gbt_macad_fetch(internal)
  967. RETURNS internal
  968. AS 'MODULE_PATHNAME'
  969. LANGUAGE C IMMUTABLE STRICT;
  970. CREATE FUNCTION gbt_macad_penalty(internal,internal,internal)
  971. RETURNS internal
  972. AS 'MODULE_PATHNAME'
  973. LANGUAGE C IMMUTABLE STRICT;
  974. CREATE FUNCTION gbt_macad_picksplit(internal, internal)
  975. RETURNS internal
  976. AS 'MODULE_PATHNAME'
  977. LANGUAGE C IMMUTABLE STRICT;
  978. CREATE FUNCTION gbt_macad_union(internal, internal)
  979. RETURNS gbtreekey16
  980. AS 'MODULE_PATHNAME'
  981. LANGUAGE C IMMUTABLE STRICT;
  982. CREATE FUNCTION gbt_macad_same(gbtreekey16, gbtreekey16, internal)
  983. RETURNS internal
  984. AS 'MODULE_PATHNAME'
  985. LANGUAGE C IMMUTABLE STRICT;
  986. -- Create the operator class
  987. CREATE OPERATOR CLASS gist_macaddr_ops
  988. DEFAULT FOR TYPE macaddr USING gist
  989. AS
  990. OPERATOR 1 < ,
  991. OPERATOR 2 <= ,
  992. OPERATOR 3 = ,
  993. OPERATOR 4 >= ,
  994. OPERATOR 5 > ,
  995. FUNCTION 1 gbt_macad_consistent (internal, macaddr, int2, oid, internal),
  996. FUNCTION 2 gbt_macad_union (internal, internal),
  997. FUNCTION 3 gbt_macad_compress (internal),
  998. FUNCTION 4 gbt_decompress (internal),
  999. FUNCTION 5 gbt_macad_penalty (internal, internal, internal),
  1000. FUNCTION 6 gbt_macad_picksplit (internal, internal),
  1001. FUNCTION 7 gbt_macad_same (gbtreekey16, gbtreekey16, internal),
  1002. STORAGE gbtreekey16;
  1003. ALTER OPERATOR FAMILY gist_macaddr_ops USING gist ADD
  1004. OPERATOR 6 <> (macaddr, macaddr) ,
  1005. FUNCTION 9 (macaddr, macaddr) gbt_macad_fetch (internal);
  1006. --
  1007. --
  1008. --
  1009. -- text/ bpchar ops
  1010. --
  1011. --
  1012. --
  1013. -- define the GiST support methods
  1014. CREATE FUNCTION gbt_text_consistent(internal,text,int2,oid,internal)
  1015. RETURNS bool
  1016. AS 'MODULE_PATHNAME'
  1017. LANGUAGE C IMMUTABLE STRICT;
  1018. CREATE FUNCTION gbt_bpchar_consistent(internal,bpchar,int2,oid,internal)
  1019. RETURNS bool
  1020. AS 'MODULE_PATHNAME'
  1021. LANGUAGE C IMMUTABLE STRICT;
  1022. CREATE FUNCTION gbt_text_compress(internal)
  1023. RETURNS internal
  1024. AS 'MODULE_PATHNAME'
  1025. LANGUAGE C IMMUTABLE STRICT;
  1026. CREATE FUNCTION gbt_bpchar_compress(internal)
  1027. RETURNS internal
  1028. AS 'MODULE_PATHNAME'
  1029. LANGUAGE C IMMUTABLE STRICT;
  1030. CREATE FUNCTION gbt_text_penalty(internal,internal,internal)
  1031. RETURNS internal
  1032. AS 'MODULE_PATHNAME'
  1033. LANGUAGE C IMMUTABLE STRICT;
  1034. CREATE FUNCTION gbt_text_picksplit(internal, internal)
  1035. RETURNS internal
  1036. AS 'MODULE_PATHNAME'
  1037. LANGUAGE C IMMUTABLE STRICT;
  1038. CREATE FUNCTION gbt_text_union(internal, internal)
  1039. RETURNS gbtreekey_var
  1040. AS 'MODULE_PATHNAME'
  1041. LANGUAGE C IMMUTABLE STRICT;
  1042. CREATE FUNCTION gbt_text_same(gbtreekey_var, gbtreekey_var, internal)
  1043. RETURNS internal
  1044. AS 'MODULE_PATHNAME'
  1045. LANGUAGE C IMMUTABLE STRICT;
  1046. -- Create the operator class
  1047. CREATE OPERATOR CLASS gist_text_ops
  1048. DEFAULT FOR TYPE text USING gist
  1049. AS
  1050. OPERATOR 1 < ,
  1051. OPERATOR 2 <= ,
  1052. OPERATOR 3 = ,
  1053. OPERATOR 4 >= ,
  1054. OPERATOR 5 > ,
  1055. FUNCTION 1 gbt_text_consistent (internal, text, int2, oid, internal),
  1056. FUNCTION 2 gbt_text_union (internal, internal),
  1057. FUNCTION 3 gbt_text_compress (internal),
  1058. FUNCTION 4 gbt_var_decompress (internal),
  1059. FUNCTION 5 gbt_text_penalty (internal, internal, internal),
  1060. FUNCTION 6 gbt_text_picksplit (internal, internal),
  1061. FUNCTION 7 gbt_text_same (gbtreekey_var, gbtreekey_var, internal),
  1062. STORAGE gbtreekey_var;
  1063. ALTER OPERATOR FAMILY gist_text_ops USING gist ADD
  1064. OPERATOR 6 <> (text, text) ,
  1065. FUNCTION 9 (text, text) gbt_var_fetch (internal) ;
  1066. ---- Create the operator class
  1067. CREATE OPERATOR CLASS gist_bpchar_ops
  1068. DEFAULT FOR TYPE bpchar USING gist
  1069. AS
  1070. OPERATOR 1 < ,
  1071. OPERATOR 2 <= ,
  1072. OPERATOR 3 = ,
  1073. OPERATOR 4 >= ,
  1074. OPERATOR 5 > ,
  1075. FUNCTION 1 gbt_bpchar_consistent (internal, bpchar , int2, oid, internal),
  1076. FUNCTION 2 gbt_text_union (internal, internal),
  1077. FUNCTION 3 gbt_bpchar_compress (internal),
  1078. FUNCTION 4 gbt_var_decompress (internal),
  1079. FUNCTION 5 gbt_text_penalty (internal, internal, internal),
  1080. FUNCTION 6 gbt_text_picksplit (internal, internal),
  1081. FUNCTION 7 gbt_text_same (gbtreekey_var, gbtreekey_var, internal),
  1082. STORAGE gbtreekey_var;
  1083. ALTER OPERATOR FAMILY gist_bpchar_ops USING gist ADD
  1084. OPERATOR 6 <> (bpchar, bpchar) ,
  1085. FUNCTION 9 (bpchar, bpchar) gbt_var_fetch (internal) ;
  1086. --
  1087. --
  1088. -- bytea ops
  1089. --
  1090. --
  1091. --
  1092. -- define the GiST support methods
  1093. CREATE FUNCTION gbt_bytea_consistent(internal,bytea,int2,oid,internal)
  1094. RETURNS bool
  1095. AS 'MODULE_PATHNAME'
  1096. LANGUAGE C IMMUTABLE STRICT;
  1097. CREATE FUNCTION gbt_bytea_compress(internal)
  1098. RETURNS internal
  1099. AS 'MODULE_PATHNAME'
  1100. LANGUAGE C IMMUTABLE STRICT;
  1101. CREATE FUNCTION gbt_bytea_penalty(internal,internal,internal)
  1102. RETURNS internal
  1103. AS 'MODULE_PATHNAME'
  1104. LANGUAGE C IMMUTABLE STRICT;
  1105. CREATE FUNCTION gbt_bytea_picksplit(internal, internal)
  1106. RETURNS internal
  1107. AS 'MODULE_PATHNAME'
  1108. LANGUAGE C IMMUTABLE STRICT;
  1109. CREATE FUNCTION gbt_bytea_union(internal, internal)
  1110. RETURNS gbtreekey_var
  1111. AS 'MODULE_PATHNAME'
  1112. LANGUAGE C IMMUTABLE STRICT;
  1113. CREATE FUNCTION gbt_bytea_same(gbtreekey_var, gbtreekey_var, internal)
  1114. RETURNS internal
  1115. AS 'MODULE_PATHNAME'
  1116. LANGUAGE C IMMUTABLE STRICT;
  1117. -- Create the operator class
  1118. CREATE OPERATOR CLASS gist_bytea_ops
  1119. DEFAULT FOR TYPE bytea USING gist
  1120. AS
  1121. OPERATOR 1 < ,
  1122. OPERATOR 2 <= ,
  1123. OPERATOR 3 = ,
  1124. OPERATOR 4 >= ,
  1125. OPERATOR 5 > ,
  1126. FUNCTION 1 gbt_bytea_consistent (internal, bytea, int2, oid, internal),
  1127. FUNCTION 2 gbt_bytea_union (internal, internal),
  1128. FUNCTION 3 gbt_bytea_compress (internal),
  1129. FUNCTION 4 gbt_var_decompress (internal),
  1130. FUNCTION 5 gbt_bytea_penalty (internal, internal, internal),
  1131. FUNCTION 6 gbt_bytea_picksplit (internal, internal),
  1132. FUNCTION 7 gbt_bytea_same (gbtreekey_var, gbtreekey_var, internal),
  1133. STORAGE gbtreekey_var;
  1134. ALTER OPERATOR FAMILY gist_bytea_ops USING gist ADD
  1135. OPERATOR 6 <> (bytea, bytea) ,
  1136. FUNCTION 9 (bytea, bytea) gbt_var_fetch (internal) ;
  1137. --
  1138. --
  1139. --
  1140. -- numeric ops
  1141. --
  1142. --
  1143. --
  1144. -- define the GiST support methods
  1145. CREATE FUNCTION gbt_numeric_consistent(internal,numeric,int2,oid,internal)
  1146. RETURNS bool
  1147. AS 'MODULE_PATHNAME'
  1148. LANGUAGE C IMMUTABLE STRICT;
  1149. CREATE FUNCTION gbt_numeric_compress(internal)
  1150. RETURNS internal
  1151. AS 'MODULE_PATHNAME'
  1152. LANGUAGE C IMMUTABLE STRICT;
  1153. CREATE FUNCTION gbt_numeric_penalty(internal,internal,internal)
  1154. RETURNS internal
  1155. AS 'MODULE_PATHNAME'
  1156. LANGUAGE C IMMUTABLE STRICT;
  1157. CREATE FUNCTION gbt_numeric_picksplit(internal, internal)
  1158. RETURNS internal
  1159. AS 'MODULE_PATHNAME'
  1160. LANGUAGE C IMMUTABLE STRICT;
  1161. CREATE FUNCTION gbt_numeric_union(internal, internal)
  1162. RETURNS gbtreekey_var
  1163. AS 'MODULE_PATHNAME'
  1164. LANGUAGE C IMMUTABLE STRICT;
  1165. CREATE FUNCTION gbt_numeric_same(gbtreekey_var, gbtreekey_var, internal)
  1166. RETURNS internal
  1167. AS 'MODULE_PATHNAME'
  1168. LANGUAGE C IMMUTABLE STRICT;
  1169. -- Create the operator class
  1170. CREATE OPERATOR CLASS gist_numeric_ops
  1171. DEFAULT FOR TYPE numeric USING gist
  1172. AS
  1173. OPERATOR 1 < ,
  1174. OPERATOR 2 <= ,
  1175. OPERATOR 3 = ,
  1176. OPERATOR 4 >= ,
  1177. OPERATOR 5 > ,
  1178. FUNCTION 1 gbt_numeric_consistent (internal, numeric, int2, oid, internal),
  1179. FUNCTION 2 gbt_numeric_union (internal, internal),
  1180. FUNCTION 3 gbt_numeric_compress (internal),
  1181. FUNCTION 4 gbt_var_decompress (internal),
  1182. FUNCTION 5 gbt_numeric_penalty (internal, internal, internal),
  1183. FUNCTION 6 gbt_numeric_picksplit (internal, internal),
  1184. FUNCTION 7 gbt_numeric_same (gbtreekey_var, gbtreekey_var, internal),
  1185. STORAGE gbtreekey_var;
  1186. ALTER OPERATOR FAMILY gist_numeric_ops USING gist ADD
  1187. OPERATOR 6 <> (numeric, numeric) ,
  1188. FUNCTION 9 (numeric, numeric) gbt_var_fetch (internal) ;
  1189. --
  1190. --
  1191. -- bit ops
  1192. --
  1193. --
  1194. --
  1195. -- define the GiST support methods
  1196. CREATE FUNCTION gbt_bit_consistent(internal,bit,int2,oid,internal)
  1197. RETURNS bool
  1198. AS 'MODULE_PATHNAME'
  1199. LANGUAGE C IMMUTABLE STRICT;
  1200. CREATE FUNCTION gbt_bit_compress(internal)
  1201. RETURNS internal
  1202. AS 'MODULE_PATHNAME'
  1203. LANGUAGE C IMMUTABLE STRICT;
  1204. CREATE FUNCTION gbt_bit_penalty(internal,internal,internal)
  1205. RETURNS internal
  1206. AS 'MODULE_PATHNAME'
  1207. LANGUAGE C IMMUTABLE STRICT;
  1208. CREATE FUNCTION gbt_bit_picksplit(internal, internal)
  1209. RETURNS internal
  1210. AS 'MODULE_PATHNAME'
  1211. LANGUAGE C IMMUTABLE STRICT;
  1212. CREATE FUNCTION gbt_bit_union(internal, internal)
  1213. RETURNS gbtreekey_var
  1214. AS 'MODULE_PATHNAME'
  1215. LANGUAGE C IMMUTABLE STRICT;
  1216. CREATE FUNCTION gbt_bit_same(gbtreekey_var, gbtreekey_var, internal)
  1217. RETURNS internal
  1218. AS 'MODULE_PATHNAME'
  1219. LANGUAGE C IMMUTABLE STRICT;
  1220. -- Create the operator class
  1221. CREATE OPERATOR CLASS gist_bit_ops
  1222. DEFAULT FOR TYPE bit USING gist
  1223. AS
  1224. OPERATOR 1 < ,
  1225. OPERATOR 2 <= ,
  1226. OPERATOR 3 = ,
  1227. OPERATOR 4 >= ,
  1228. OPERATOR 5 > ,
  1229. FUNCTION 1 gbt_bit_consistent (internal, bit, int2, oid, internal),
  1230. FUNCTION 2 gbt_bit_union (internal, internal),
  1231. FUNCTION 3 gbt_bit_compress (internal),
  1232. FUNCTION 4 gbt_var_decompress (internal),
  1233. FUNCTION 5 gbt_bit_penalty (internal, internal, internal),
  1234. FUNCTION 6 gbt_bit_picksplit (internal, internal),
  1235. FUNCTION 7 gbt_bit_same (gbtreekey_var, gbtreekey_var, internal),
  1236. STORAGE gbtreekey_var;
  1237. ALTER OPERATOR FAMILY gist_bit_ops USING gist ADD
  1238. OPERATOR 6 <> (bit, bit) ,
  1239. FUNCTION 9 (bit, bit) gbt_var_fetch (internal) ;
  1240. -- Create the operator class
  1241. CREATE OPERATOR CLASS gist_vbit_ops
  1242. DEFAULT FOR TYPE varbit USING gist
  1243. AS
  1244. OPERATOR 1 < ,
  1245. OPERATOR 2 <= ,
  1246. OPERATOR 3 = ,
  1247. OPERATOR 4 >= ,
  1248. OPERATOR 5 > ,
  1249. FUNCTION 1 gbt_bit_consistent (internal, bit, int2, oid, internal),
  1250. FUNCTION 2 gbt_bit_union (internal, internal),
  1251. FUNCTION 3 gbt_bit_compress (internal),
  1252. FUNCTION 4 gbt_var_decompress (internal),
  1253. FUNCTION 5 gbt_bit_penalty (internal, internal, internal),
  1254. FUNCTION 6 gbt_bit_picksplit (internal, internal),
  1255. FUNCTION 7 gbt_bit_same (gbtreekey_var, gbtreekey_var, internal),
  1256. STORAGE gbtreekey_var;
  1257. ALTER OPERATOR FAMILY gist_vbit_ops USING gist ADD
  1258. OPERATOR 6 <> (varbit, varbit) ,
  1259. FUNCTION 9 (varbit, varbit) gbt_var_fetch (internal) ;
  1260. --
  1261. --
  1262. --
  1263. -- inet/cidr ops
  1264. --
  1265. --
  1266. --
  1267. -- define the GiST support methods
  1268. CREATE FUNCTION gbt_inet_consistent(internal,inet,int2,oid,internal)
  1269. RETURNS bool
  1270. AS 'MODULE_PATHNAME'
  1271. LANGUAGE C IMMUTABLE STRICT;
  1272. CREATE FUNCTION gbt_inet_compress(internal)
  1273. RETURNS internal
  1274. AS 'MODULE_PATHNAME'
  1275. LANGUAGE C IMMUTABLE STRICT;
  1276. CREATE FUNCTION gbt_inet_penalty(internal,internal,internal)
  1277. RETURNS internal
  1278. AS 'MODULE_PATHNAME'
  1279. LANGUAGE C IMMUTABLE STRICT;
  1280. CREATE FUNCTION gbt_inet_picksplit(internal, internal)
  1281. RETURNS internal
  1282. AS 'MODULE_PATHNAME'
  1283. LANGUAGE C IMMUTABLE STRICT;
  1284. CREATE FUNCTION gbt_inet_union(internal, internal)
  1285. RETURNS gbtreekey16
  1286. AS 'MODULE_PATHNAME'
  1287. LANGUAGE C IMMUTABLE STRICT;
  1288. CREATE FUNCTION gbt_inet_same(gbtreekey16, gbtreekey16, internal)
  1289. RETURNS internal
  1290. AS 'MODULE_PATHNAME'
  1291. LANGUAGE C IMMUTABLE STRICT;
  1292. -- Create the operator class
  1293. CREATE OPERATOR CLASS gist_inet_ops
  1294. DEFAULT FOR TYPE inet USING gist
  1295. AS
  1296. OPERATOR 1 < ,
  1297. OPERATOR 2 <= ,
  1298. OPERATOR 3 = ,
  1299. OPERATOR 4 >= ,
  1300. OPERATOR 5 > ,
  1301. FUNCTION 1 gbt_inet_consistent (internal, inet, int2, oid, internal),
  1302. FUNCTION 2 gbt_inet_union (internal, internal),
  1303. FUNCTION 3 gbt_inet_compress (internal),
  1304. FUNCTION 4 gbt_decompress (internal),
  1305. FUNCTION 5 gbt_inet_penalty (internal, internal, internal),
  1306. FUNCTION 6 gbt_inet_picksplit (internal, internal),
  1307. FUNCTION 7 gbt_inet_same (gbtreekey16, gbtreekey16, internal),
  1308. STORAGE gbtreekey16;
  1309. ALTER OPERATOR FAMILY gist_inet_ops USING gist ADD
  1310. OPERATOR 6 <> (inet, inet) ;
  1311. -- no fetch support, the compress function is lossy
  1312. -- Create the operator class
  1313. CREATE OPERATOR CLASS gist_cidr_ops
  1314. DEFAULT FOR TYPE cidr USING gist
  1315. AS
  1316. OPERATOR 1 < (inet, inet) ,
  1317. OPERATOR 2 <= (inet, inet) ,
  1318. OPERATOR 3 = (inet, inet) ,
  1319. OPERATOR 4 >= (inet, inet) ,
  1320. OPERATOR 5 > (inet, inet) ,
  1321. FUNCTION 1 gbt_inet_consistent (internal, inet, int2, oid, internal),
  1322. FUNCTION 2 gbt_inet_union (internal, internal),
  1323. FUNCTION 3 gbt_inet_compress (internal),
  1324. FUNCTION 4 gbt_decompress (internal),
  1325. FUNCTION 5 gbt_inet_penalty (internal, internal, internal),
  1326. FUNCTION 6 gbt_inet_picksplit (internal, internal),
  1327. FUNCTION 7 gbt_inet_same (gbtreekey16, gbtreekey16, internal),
  1328. STORAGE gbtreekey16;
  1329. ALTER OPERATOR FAMILY gist_cidr_ops USING gist ADD
  1330. OPERATOR 6 <> (inet, inet) ;
  1331. -- no fetch support, the compress function is lossy
上海开阖软件有限公司 沪ICP备12045867号-1