gooderp18绿色标准版
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

3435 rindas
68KB

  1. /* contrib/isn/isn--1.1.sql */
  2. -- complain if script is sourced in psql, rather than via CREATE EXTENSION
  3. \echo Use "CREATE EXTENSION isn" to load this file. \quit
  4. -- Example:
  5. -- create table test ( id isbn );
  6. -- insert into test values('978-0-393-04002-9');
  7. --
  8. -- select isbn('978-0-393-04002-9');
  9. -- select isbn13('0-901690-54-6');
  10. --
  11. --
  12. -- Input and output functions and data types:
  13. --
  14. ---------------------------------------------------
  15. CREATE FUNCTION ean13_in(cstring)
  16. RETURNS ean13
  17. AS 'MODULE_PATHNAME'
  18. LANGUAGE C
  19. IMMUTABLE STRICT
  20. PARALLEL SAFE;
  21. CREATE FUNCTION ean13_out(ean13)
  22. RETURNS cstring
  23. AS 'MODULE_PATHNAME'
  24. LANGUAGE C
  25. IMMUTABLE STRICT
  26. PARALLEL SAFE;
  27. CREATE TYPE ean13 (
  28. INPUT = ean13_in,
  29. OUTPUT = ean13_out,
  30. LIKE = pg_catalog.int8
  31. );
  32. COMMENT ON TYPE ean13
  33. IS 'International European Article Number (EAN13)';
  34. CREATE FUNCTION isbn13_in(cstring)
  35. RETURNS isbn13
  36. AS 'MODULE_PATHNAME', 'isbn_in'
  37. LANGUAGE C
  38. IMMUTABLE STRICT
  39. PARALLEL SAFE;
  40. CREATE FUNCTION ean13_out(isbn13)
  41. RETURNS cstring
  42. AS 'MODULE_PATHNAME'
  43. LANGUAGE C
  44. IMMUTABLE STRICT
  45. PARALLEL SAFE;
  46. CREATE TYPE isbn13 (
  47. INPUT = isbn13_in,
  48. OUTPUT = ean13_out,
  49. LIKE = pg_catalog.int8
  50. );
  51. COMMENT ON TYPE isbn13
  52. IS 'International Standard Book Number 13 (ISBN13)';
  53. CREATE FUNCTION ismn13_in(cstring)
  54. RETURNS ismn13
  55. AS 'MODULE_PATHNAME', 'ismn_in'
  56. LANGUAGE C
  57. IMMUTABLE STRICT
  58. PARALLEL SAFE;
  59. CREATE FUNCTION ean13_out(ismn13)
  60. RETURNS cstring
  61. AS 'MODULE_PATHNAME'
  62. LANGUAGE C
  63. IMMUTABLE STRICT
  64. PARALLEL SAFE;
  65. CREATE TYPE ismn13 (
  66. INPUT = ismn13_in,
  67. OUTPUT = ean13_out,
  68. LIKE = pg_catalog.int8
  69. );
  70. COMMENT ON TYPE ismn13
  71. IS 'International Standard Music Number 13 (ISMN13)';
  72. CREATE FUNCTION issn13_in(cstring)
  73. RETURNS issn13
  74. AS 'MODULE_PATHNAME', 'issn_in'
  75. LANGUAGE C
  76. IMMUTABLE STRICT
  77. PARALLEL SAFE;
  78. CREATE FUNCTION ean13_out(issn13)
  79. RETURNS cstring
  80. AS 'MODULE_PATHNAME'
  81. LANGUAGE C
  82. IMMUTABLE STRICT
  83. PARALLEL SAFE;
  84. CREATE TYPE issn13 (
  85. INPUT = issn13_in,
  86. OUTPUT = ean13_out,
  87. LIKE = pg_catalog.int8
  88. );
  89. COMMENT ON TYPE issn13
  90. IS 'International Standard Serial Number 13 (ISSN13)';
  91. -- Short format:
  92. CREATE FUNCTION isbn_in(cstring)
  93. RETURNS isbn
  94. AS 'MODULE_PATHNAME'
  95. LANGUAGE C
  96. IMMUTABLE STRICT
  97. PARALLEL SAFE;
  98. CREATE FUNCTION isn_out(isbn)
  99. RETURNS cstring
  100. AS 'MODULE_PATHNAME'
  101. LANGUAGE C
  102. IMMUTABLE STRICT
  103. PARALLEL SAFE;
  104. CREATE TYPE isbn (
  105. INPUT = isbn_in,
  106. OUTPUT = isn_out,
  107. LIKE = pg_catalog.int8
  108. );
  109. COMMENT ON TYPE isbn
  110. IS 'International Standard Book Number (ISBN)';
  111. CREATE FUNCTION ismn_in(cstring)
  112. RETURNS ismn
  113. AS 'MODULE_PATHNAME'
  114. LANGUAGE C
  115. IMMUTABLE STRICT
  116. PARALLEL SAFE;
  117. CREATE FUNCTION isn_out(ismn)
  118. RETURNS cstring
  119. AS 'MODULE_PATHNAME'
  120. LANGUAGE C
  121. IMMUTABLE STRICT
  122. PARALLEL SAFE;
  123. CREATE TYPE ismn (
  124. INPUT = ismn_in,
  125. OUTPUT = isn_out,
  126. LIKE = pg_catalog.int8
  127. );
  128. COMMENT ON TYPE ismn
  129. IS 'International Standard Music Number (ISMN)';
  130. CREATE FUNCTION issn_in(cstring)
  131. RETURNS issn
  132. AS 'MODULE_PATHNAME'
  133. LANGUAGE C
  134. IMMUTABLE STRICT
  135. PARALLEL SAFE;
  136. CREATE FUNCTION isn_out(issn)
  137. RETURNS cstring
  138. AS 'MODULE_PATHNAME'
  139. LANGUAGE C
  140. IMMUTABLE STRICT
  141. PARALLEL SAFE;
  142. CREATE TYPE issn (
  143. INPUT = issn_in,
  144. OUTPUT = isn_out,
  145. LIKE = pg_catalog.int8
  146. );
  147. COMMENT ON TYPE issn
  148. IS 'International Standard Serial Number (ISSN)';
  149. CREATE FUNCTION upc_in(cstring)
  150. RETURNS upc
  151. AS 'MODULE_PATHNAME'
  152. LANGUAGE C
  153. IMMUTABLE STRICT
  154. PARALLEL SAFE;
  155. CREATE FUNCTION isn_out(upc)
  156. RETURNS cstring
  157. AS 'MODULE_PATHNAME'
  158. LANGUAGE C
  159. IMMUTABLE STRICT
  160. PARALLEL SAFE;
  161. CREATE TYPE upc (
  162. INPUT = upc_in,
  163. OUTPUT = isn_out,
  164. LIKE = pg_catalog.int8
  165. );
  166. COMMENT ON TYPE upc
  167. IS 'Universal Product Code (UPC)';
  168. --
  169. -- Operator functions:
  170. --
  171. ---------------------------------------------------
  172. -- EAN13:
  173. CREATE FUNCTION isnlt(ean13, ean13)
  174. RETURNS boolean
  175. AS 'int8lt'
  176. LANGUAGE 'internal'
  177. IMMUTABLE STRICT
  178. PARALLEL SAFE;
  179. CREATE FUNCTION isnle(ean13, ean13)
  180. RETURNS boolean
  181. AS 'int8le'
  182. LANGUAGE 'internal'
  183. IMMUTABLE STRICT
  184. PARALLEL SAFE;
  185. CREATE FUNCTION isneq(ean13, ean13)
  186. RETURNS boolean
  187. AS 'int8eq'
  188. LANGUAGE 'internal'
  189. IMMUTABLE STRICT
  190. PARALLEL SAFE;
  191. CREATE FUNCTION isnge(ean13, ean13)
  192. RETURNS boolean
  193. AS 'int8ge'
  194. LANGUAGE 'internal'
  195. IMMUTABLE STRICT
  196. PARALLEL SAFE;
  197. CREATE FUNCTION isngt(ean13, ean13)
  198. RETURNS boolean
  199. AS 'int8gt'
  200. LANGUAGE 'internal'
  201. IMMUTABLE STRICT
  202. PARALLEL SAFE;
  203. CREATE FUNCTION isnne(ean13, ean13)
  204. RETURNS boolean
  205. AS 'int8ne'
  206. LANGUAGE 'internal'
  207. IMMUTABLE STRICT
  208. PARALLEL SAFE;
  209. CREATE FUNCTION isnlt(ean13, isbn13)
  210. RETURNS boolean
  211. AS 'int8lt'
  212. LANGUAGE 'internal'
  213. IMMUTABLE STRICT
  214. PARALLEL SAFE;
  215. CREATE FUNCTION isnle(ean13, isbn13)
  216. RETURNS boolean
  217. AS 'int8le'
  218. LANGUAGE 'internal'
  219. IMMUTABLE STRICT
  220. PARALLEL SAFE;
  221. CREATE FUNCTION isneq(ean13, isbn13)
  222. RETURNS boolean
  223. AS 'int8eq'
  224. LANGUAGE 'internal'
  225. IMMUTABLE STRICT
  226. PARALLEL SAFE;
  227. CREATE FUNCTION isnge(ean13, isbn13)
  228. RETURNS boolean
  229. AS 'int8ge'
  230. LANGUAGE 'internal'
  231. IMMUTABLE STRICT
  232. PARALLEL SAFE;
  233. CREATE FUNCTION isngt(ean13, isbn13)
  234. RETURNS boolean
  235. AS 'int8gt'
  236. LANGUAGE 'internal'
  237. IMMUTABLE STRICT
  238. PARALLEL SAFE;
  239. CREATE FUNCTION isnne(ean13, isbn13)
  240. RETURNS boolean
  241. AS 'int8ne'
  242. LANGUAGE 'internal'
  243. IMMUTABLE STRICT
  244. PARALLEL SAFE;
  245. CREATE FUNCTION isnlt(ean13, ismn13)
  246. RETURNS boolean
  247. AS 'int8lt'
  248. LANGUAGE 'internal'
  249. IMMUTABLE STRICT
  250. PARALLEL SAFE;
  251. CREATE FUNCTION isnle(ean13, ismn13)
  252. RETURNS boolean
  253. AS 'int8le'
  254. LANGUAGE 'internal'
  255. IMMUTABLE STRICT
  256. PARALLEL SAFE;
  257. CREATE FUNCTION isneq(ean13, ismn13)
  258. RETURNS boolean
  259. AS 'int8eq'
  260. LANGUAGE 'internal'
  261. IMMUTABLE STRICT
  262. PARALLEL SAFE;
  263. CREATE FUNCTION isnge(ean13, ismn13)
  264. RETURNS boolean
  265. AS 'int8ge'
  266. LANGUAGE 'internal'
  267. IMMUTABLE STRICT
  268. PARALLEL SAFE;
  269. CREATE FUNCTION isngt(ean13, ismn13)
  270. RETURNS boolean
  271. AS 'int8gt'
  272. LANGUAGE 'internal'
  273. IMMUTABLE STRICT
  274. PARALLEL SAFE;
  275. CREATE FUNCTION isnne(ean13, ismn13)
  276. RETURNS boolean
  277. AS 'int8ne'
  278. LANGUAGE 'internal'
  279. IMMUTABLE STRICT
  280. PARALLEL SAFE;
  281. CREATE FUNCTION isnlt(ean13, issn13)
  282. RETURNS boolean
  283. AS 'int8lt'
  284. LANGUAGE 'internal'
  285. IMMUTABLE STRICT
  286. PARALLEL SAFE;
  287. CREATE FUNCTION isnle(ean13, issn13)
  288. RETURNS boolean
  289. AS 'int8le'
  290. LANGUAGE 'internal'
  291. IMMUTABLE STRICT
  292. PARALLEL SAFE;
  293. CREATE FUNCTION isneq(ean13, issn13)
  294. RETURNS boolean
  295. AS 'int8eq'
  296. LANGUAGE 'internal'
  297. IMMUTABLE STRICT
  298. PARALLEL SAFE;
  299. CREATE FUNCTION isnge(ean13, issn13)
  300. RETURNS boolean
  301. AS 'int8ge'
  302. LANGUAGE 'internal'
  303. IMMUTABLE STRICT
  304. PARALLEL SAFE;
  305. CREATE FUNCTION isngt(ean13, issn13)
  306. RETURNS boolean
  307. AS 'int8gt'
  308. LANGUAGE 'internal'
  309. IMMUTABLE STRICT
  310. PARALLEL SAFE;
  311. CREATE FUNCTION isnne(ean13, issn13)
  312. RETURNS boolean
  313. AS 'int8ne'
  314. LANGUAGE 'internal'
  315. IMMUTABLE STRICT
  316. PARALLEL SAFE;
  317. CREATE FUNCTION isnlt(ean13, isbn)
  318. RETURNS boolean
  319. AS 'int8lt'
  320. LANGUAGE 'internal'
  321. IMMUTABLE STRICT
  322. PARALLEL SAFE;
  323. CREATE FUNCTION isnle(ean13, isbn)
  324. RETURNS boolean
  325. AS 'int8le'
  326. LANGUAGE 'internal'
  327. IMMUTABLE STRICT
  328. PARALLEL SAFE;
  329. CREATE FUNCTION isneq(ean13, isbn)
  330. RETURNS boolean
  331. AS 'int8eq'
  332. LANGUAGE 'internal'
  333. IMMUTABLE STRICT
  334. PARALLEL SAFE;
  335. CREATE FUNCTION isnge(ean13, isbn)
  336. RETURNS boolean
  337. AS 'int8ge'
  338. LANGUAGE 'internal'
  339. IMMUTABLE STRICT
  340. PARALLEL SAFE;
  341. CREATE FUNCTION isngt(ean13, isbn)
  342. RETURNS boolean
  343. AS 'int8gt'
  344. LANGUAGE 'internal'
  345. IMMUTABLE STRICT
  346. PARALLEL SAFE;
  347. CREATE FUNCTION isnne(ean13, isbn)
  348. RETURNS boolean
  349. AS 'int8ne'
  350. LANGUAGE 'internal'
  351. IMMUTABLE STRICT
  352. PARALLEL SAFE;
  353. CREATE FUNCTION isnlt(ean13, ismn)
  354. RETURNS boolean
  355. AS 'int8lt'
  356. LANGUAGE 'internal'
  357. IMMUTABLE STRICT
  358. PARALLEL SAFE;
  359. CREATE FUNCTION isnle(ean13, ismn)
  360. RETURNS boolean
  361. AS 'int8le'
  362. LANGUAGE 'internal'
  363. IMMUTABLE STRICT
  364. PARALLEL SAFE;
  365. CREATE FUNCTION isneq(ean13, ismn)
  366. RETURNS boolean
  367. AS 'int8eq'
  368. LANGUAGE 'internal'
  369. IMMUTABLE STRICT
  370. PARALLEL SAFE;
  371. CREATE FUNCTION isnge(ean13, ismn)
  372. RETURNS boolean
  373. AS 'int8ge'
  374. LANGUAGE 'internal'
  375. IMMUTABLE STRICT
  376. PARALLEL SAFE;
  377. CREATE FUNCTION isngt(ean13, ismn)
  378. RETURNS boolean
  379. AS 'int8gt'
  380. LANGUAGE 'internal'
  381. IMMUTABLE STRICT
  382. PARALLEL SAFE;
  383. CREATE FUNCTION isnne(ean13, ismn)
  384. RETURNS boolean
  385. AS 'int8ne'
  386. LANGUAGE 'internal'
  387. IMMUTABLE STRICT
  388. PARALLEL SAFE;
  389. CREATE FUNCTION isnlt(ean13, issn)
  390. RETURNS boolean
  391. AS 'int8lt'
  392. LANGUAGE 'internal'
  393. IMMUTABLE STRICT
  394. PARALLEL SAFE;
  395. CREATE FUNCTION isnle(ean13, issn)
  396. RETURNS boolean
  397. AS 'int8le'
  398. LANGUAGE 'internal'
  399. IMMUTABLE STRICT
  400. PARALLEL SAFE;
  401. CREATE FUNCTION isneq(ean13, issn)
  402. RETURNS boolean
  403. AS 'int8eq'
  404. LANGUAGE 'internal'
  405. IMMUTABLE STRICT
  406. PARALLEL SAFE;
  407. CREATE FUNCTION isnge(ean13, issn)
  408. RETURNS boolean
  409. AS 'int8ge'
  410. LANGUAGE 'internal'
  411. IMMUTABLE STRICT
  412. PARALLEL SAFE;
  413. CREATE FUNCTION isngt(ean13, issn)
  414. RETURNS boolean
  415. AS 'int8gt'
  416. LANGUAGE 'internal'
  417. IMMUTABLE STRICT
  418. PARALLEL SAFE;
  419. CREATE FUNCTION isnne(ean13, issn)
  420. RETURNS boolean
  421. AS 'int8ne'
  422. LANGUAGE 'internal'
  423. IMMUTABLE STRICT
  424. PARALLEL SAFE;
  425. CREATE FUNCTION isnlt(ean13, upc)
  426. RETURNS boolean
  427. AS 'int8lt'
  428. LANGUAGE 'internal'
  429. IMMUTABLE STRICT
  430. PARALLEL SAFE;
  431. CREATE FUNCTION isnle(ean13, upc)
  432. RETURNS boolean
  433. AS 'int8le'
  434. LANGUAGE 'internal'
  435. IMMUTABLE STRICT
  436. PARALLEL SAFE;
  437. CREATE FUNCTION isneq(ean13, upc)
  438. RETURNS boolean
  439. AS 'int8eq'
  440. LANGUAGE 'internal'
  441. IMMUTABLE STRICT
  442. PARALLEL SAFE;
  443. CREATE FUNCTION isnge(ean13, upc)
  444. RETURNS boolean
  445. AS 'int8ge'
  446. LANGUAGE 'internal'
  447. IMMUTABLE STRICT
  448. PARALLEL SAFE;
  449. CREATE FUNCTION isngt(ean13, upc)
  450. RETURNS boolean
  451. AS 'int8gt'
  452. LANGUAGE 'internal'
  453. IMMUTABLE STRICT
  454. PARALLEL SAFE;
  455. CREATE FUNCTION isnne(ean13, upc)
  456. RETURNS boolean
  457. AS 'int8ne'
  458. LANGUAGE 'internal'
  459. IMMUTABLE STRICT
  460. PARALLEL SAFE;
  461. ---------------------------------------------------
  462. -- ISBN13:
  463. CREATE FUNCTION isnlt(isbn13, isbn13)
  464. RETURNS boolean
  465. AS 'int8lt'
  466. LANGUAGE 'internal'
  467. IMMUTABLE STRICT
  468. PARALLEL SAFE;
  469. CREATE FUNCTION isnle(isbn13, isbn13)
  470. RETURNS boolean
  471. AS 'int8le'
  472. LANGUAGE 'internal'
  473. IMMUTABLE STRICT
  474. PARALLEL SAFE;
  475. CREATE FUNCTION isneq(isbn13, isbn13)
  476. RETURNS boolean
  477. AS 'int8eq'
  478. LANGUAGE 'internal'
  479. IMMUTABLE STRICT
  480. PARALLEL SAFE;
  481. CREATE FUNCTION isnge(isbn13, isbn13)
  482. RETURNS boolean
  483. AS 'int8ge'
  484. LANGUAGE 'internal'
  485. IMMUTABLE STRICT
  486. PARALLEL SAFE;
  487. CREATE FUNCTION isngt(isbn13, isbn13)
  488. RETURNS boolean
  489. AS 'int8gt'
  490. LANGUAGE 'internal'
  491. IMMUTABLE STRICT
  492. PARALLEL SAFE;
  493. CREATE FUNCTION isnne(isbn13, isbn13)
  494. RETURNS boolean
  495. AS 'int8ne'
  496. LANGUAGE 'internal'
  497. IMMUTABLE STRICT
  498. PARALLEL SAFE;
  499. CREATE FUNCTION isnlt(isbn13, isbn)
  500. RETURNS boolean
  501. AS 'int8lt'
  502. LANGUAGE 'internal'
  503. IMMUTABLE STRICT
  504. PARALLEL SAFE;
  505. CREATE FUNCTION isnle(isbn13, isbn)
  506. RETURNS boolean
  507. AS 'int8le'
  508. LANGUAGE 'internal'
  509. IMMUTABLE STRICT
  510. PARALLEL SAFE;
  511. CREATE FUNCTION isneq(isbn13, isbn)
  512. RETURNS boolean
  513. AS 'int8eq'
  514. LANGUAGE 'internal'
  515. IMMUTABLE STRICT
  516. PARALLEL SAFE;
  517. CREATE FUNCTION isnge(isbn13, isbn)
  518. RETURNS boolean
  519. AS 'int8ge'
  520. LANGUAGE 'internal'
  521. IMMUTABLE STRICT
  522. PARALLEL SAFE;
  523. CREATE FUNCTION isngt(isbn13, isbn)
  524. RETURNS boolean
  525. AS 'int8gt'
  526. LANGUAGE 'internal'
  527. IMMUTABLE STRICT
  528. PARALLEL SAFE;
  529. CREATE FUNCTION isnne(isbn13, isbn)
  530. RETURNS boolean
  531. AS 'int8ne'
  532. LANGUAGE 'internal'
  533. IMMUTABLE STRICT
  534. PARALLEL SAFE;
  535. CREATE FUNCTION isnlt(isbn13, ean13)
  536. RETURNS boolean
  537. AS 'int8lt'
  538. LANGUAGE 'internal'
  539. IMMUTABLE STRICT
  540. PARALLEL SAFE;
  541. CREATE FUNCTION isnle(isbn13, ean13)
  542. RETURNS boolean
  543. AS 'int8le'
  544. LANGUAGE 'internal'
  545. IMMUTABLE STRICT
  546. PARALLEL SAFE;
  547. CREATE FUNCTION isneq(isbn13, ean13)
  548. RETURNS boolean
  549. AS 'int8eq'
  550. LANGUAGE 'internal'
  551. IMMUTABLE STRICT
  552. PARALLEL SAFE;
  553. CREATE FUNCTION isnge(isbn13, ean13)
  554. RETURNS boolean
  555. AS 'int8ge'
  556. LANGUAGE 'internal'
  557. IMMUTABLE STRICT
  558. PARALLEL SAFE;
  559. CREATE FUNCTION isngt(isbn13, ean13)
  560. RETURNS boolean
  561. AS 'int8gt'
  562. LANGUAGE 'internal'
  563. IMMUTABLE STRICT
  564. PARALLEL SAFE;
  565. CREATE FUNCTION isnne(isbn13, ean13)
  566. RETURNS boolean
  567. AS 'int8ne'
  568. LANGUAGE 'internal'
  569. IMMUTABLE STRICT
  570. PARALLEL SAFE;
  571. ---------------------------------------------------
  572. -- ISBN:
  573. CREATE FUNCTION isnlt(isbn, isbn)
  574. RETURNS boolean
  575. AS 'int8lt'
  576. LANGUAGE 'internal'
  577. IMMUTABLE STRICT
  578. PARALLEL SAFE;
  579. CREATE FUNCTION isnle(isbn, isbn)
  580. RETURNS boolean
  581. AS 'int8le'
  582. LANGUAGE 'internal'
  583. IMMUTABLE STRICT
  584. PARALLEL SAFE;
  585. CREATE FUNCTION isneq(isbn, isbn)
  586. RETURNS boolean
  587. AS 'int8eq'
  588. LANGUAGE 'internal'
  589. IMMUTABLE STRICT
  590. PARALLEL SAFE;
  591. CREATE FUNCTION isnge(isbn, isbn)
  592. RETURNS boolean
  593. AS 'int8ge'
  594. LANGUAGE 'internal'
  595. IMMUTABLE STRICT
  596. PARALLEL SAFE;
  597. CREATE FUNCTION isngt(isbn, isbn)
  598. RETURNS boolean
  599. AS 'int8gt'
  600. LANGUAGE 'internal'
  601. IMMUTABLE STRICT
  602. PARALLEL SAFE;
  603. CREATE FUNCTION isnne(isbn, isbn)
  604. RETURNS boolean
  605. AS 'int8ne'
  606. LANGUAGE 'internal'
  607. IMMUTABLE STRICT
  608. PARALLEL SAFE;
  609. CREATE FUNCTION isnlt(isbn, isbn13)
  610. RETURNS boolean
  611. AS 'int8lt'
  612. LANGUAGE 'internal'
  613. IMMUTABLE STRICT
  614. PARALLEL SAFE;
  615. CREATE FUNCTION isnle(isbn, isbn13)
  616. RETURNS boolean
  617. AS 'int8le'
  618. LANGUAGE 'internal'
  619. IMMUTABLE STRICT
  620. PARALLEL SAFE;
  621. CREATE FUNCTION isneq(isbn, isbn13)
  622. RETURNS boolean
  623. AS 'int8eq'
  624. LANGUAGE 'internal'
  625. IMMUTABLE STRICT
  626. PARALLEL SAFE;
  627. CREATE FUNCTION isnge(isbn, isbn13)
  628. RETURNS boolean
  629. AS 'int8ge'
  630. LANGUAGE 'internal'
  631. IMMUTABLE STRICT
  632. PARALLEL SAFE;
  633. CREATE FUNCTION isngt(isbn, isbn13)
  634. RETURNS boolean
  635. AS 'int8gt'
  636. LANGUAGE 'internal'
  637. IMMUTABLE STRICT
  638. PARALLEL SAFE;
  639. CREATE FUNCTION isnne(isbn, isbn13)
  640. RETURNS boolean
  641. AS 'int8ne'
  642. LANGUAGE 'internal'
  643. IMMUTABLE STRICT
  644. PARALLEL SAFE;
  645. CREATE FUNCTION isnlt(isbn, ean13)
  646. RETURNS boolean
  647. AS 'int8lt'
  648. LANGUAGE 'internal'
  649. IMMUTABLE STRICT
  650. PARALLEL SAFE;
  651. CREATE FUNCTION isnle(isbn, ean13)
  652. RETURNS boolean
  653. AS 'int8le'
  654. LANGUAGE 'internal'
  655. IMMUTABLE STRICT
  656. PARALLEL SAFE;
  657. CREATE FUNCTION isneq(isbn, ean13)
  658. RETURNS boolean
  659. AS 'int8eq'
  660. LANGUAGE 'internal'
  661. IMMUTABLE STRICT
  662. PARALLEL SAFE;
  663. CREATE FUNCTION isnge(isbn, ean13)
  664. RETURNS boolean
  665. AS 'int8ge'
  666. LANGUAGE 'internal'
  667. IMMUTABLE STRICT
  668. PARALLEL SAFE;
  669. CREATE FUNCTION isngt(isbn, ean13)
  670. RETURNS boolean
  671. AS 'int8gt'
  672. LANGUAGE 'internal'
  673. IMMUTABLE STRICT
  674. PARALLEL SAFE;
  675. CREATE FUNCTION isnne(isbn, ean13)
  676. RETURNS boolean
  677. AS 'int8ne'
  678. LANGUAGE 'internal'
  679. IMMUTABLE STRICT
  680. PARALLEL SAFE;
  681. ---------------------------------------------------
  682. -- ISMN13:
  683. CREATE FUNCTION isnlt(ismn13, ismn13)
  684. RETURNS boolean
  685. AS 'int8lt'
  686. LANGUAGE 'internal'
  687. IMMUTABLE STRICT
  688. PARALLEL SAFE;
  689. CREATE FUNCTION isnle(ismn13, ismn13)
  690. RETURNS boolean
  691. AS 'int8le'
  692. LANGUAGE 'internal'
  693. IMMUTABLE STRICT
  694. PARALLEL SAFE;
  695. CREATE FUNCTION isneq(ismn13, ismn13)
  696. RETURNS boolean
  697. AS 'int8eq'
  698. LANGUAGE 'internal'
  699. IMMUTABLE STRICT
  700. PARALLEL SAFE;
  701. CREATE FUNCTION isnge(ismn13, ismn13)
  702. RETURNS boolean
  703. AS 'int8ge'
  704. LANGUAGE 'internal'
  705. IMMUTABLE STRICT
  706. PARALLEL SAFE;
  707. CREATE FUNCTION isngt(ismn13, ismn13)
  708. RETURNS boolean
  709. AS 'int8gt'
  710. LANGUAGE 'internal'
  711. IMMUTABLE STRICT
  712. PARALLEL SAFE;
  713. CREATE FUNCTION isnne(ismn13, ismn13)
  714. RETURNS boolean
  715. AS 'int8ne'
  716. LANGUAGE 'internal'
  717. IMMUTABLE STRICT
  718. PARALLEL SAFE;
  719. CREATE FUNCTION isnlt(ismn13, ismn)
  720. RETURNS boolean
  721. AS 'int8lt'
  722. LANGUAGE 'internal'
  723. IMMUTABLE STRICT
  724. PARALLEL SAFE;
  725. CREATE FUNCTION isnle(ismn13, ismn)
  726. RETURNS boolean
  727. AS 'int8le'
  728. LANGUAGE 'internal'
  729. IMMUTABLE STRICT
  730. PARALLEL SAFE;
  731. CREATE FUNCTION isneq(ismn13, ismn)
  732. RETURNS boolean
  733. AS 'int8eq'
  734. LANGUAGE 'internal'
  735. IMMUTABLE STRICT
  736. PARALLEL SAFE;
  737. CREATE FUNCTION isnge(ismn13, ismn)
  738. RETURNS boolean
  739. AS 'int8ge'
  740. LANGUAGE 'internal'
  741. IMMUTABLE STRICT
  742. PARALLEL SAFE;
  743. CREATE FUNCTION isngt(ismn13, ismn)
  744. RETURNS boolean
  745. AS 'int8gt'
  746. LANGUAGE 'internal'
  747. IMMUTABLE STRICT
  748. PARALLEL SAFE;
  749. CREATE FUNCTION isnne(ismn13, ismn)
  750. RETURNS boolean
  751. AS 'int8ne'
  752. LANGUAGE 'internal'
  753. IMMUTABLE STRICT
  754. PARALLEL SAFE;
  755. CREATE FUNCTION isnlt(ismn13, ean13)
  756. RETURNS boolean
  757. AS 'int8lt'
  758. LANGUAGE 'internal'
  759. IMMUTABLE STRICT
  760. PARALLEL SAFE;
  761. CREATE FUNCTION isnle(ismn13, ean13)
  762. RETURNS boolean
  763. AS 'int8le'
  764. LANGUAGE 'internal'
  765. IMMUTABLE STRICT
  766. PARALLEL SAFE;
  767. CREATE FUNCTION isneq(ismn13, ean13)
  768. RETURNS boolean
  769. AS 'int8eq'
  770. LANGUAGE 'internal'
  771. IMMUTABLE STRICT
  772. PARALLEL SAFE;
  773. CREATE FUNCTION isnge(ismn13, ean13)
  774. RETURNS boolean
  775. AS 'int8ge'
  776. LANGUAGE 'internal'
  777. IMMUTABLE STRICT
  778. PARALLEL SAFE;
  779. CREATE FUNCTION isngt(ismn13, ean13)
  780. RETURNS boolean
  781. AS 'int8gt'
  782. LANGUAGE 'internal'
  783. IMMUTABLE STRICT
  784. PARALLEL SAFE;
  785. CREATE FUNCTION isnne(ismn13, ean13)
  786. RETURNS boolean
  787. AS 'int8ne'
  788. LANGUAGE 'internal'
  789. IMMUTABLE STRICT
  790. PARALLEL SAFE;
  791. ---------------------------------------------------
  792. -- ISMN:
  793. CREATE FUNCTION isnlt(ismn, ismn)
  794. RETURNS boolean
  795. AS 'int8lt'
  796. LANGUAGE 'internal'
  797. IMMUTABLE STRICT
  798. PARALLEL SAFE;
  799. CREATE FUNCTION isnle(ismn, ismn)
  800. RETURNS boolean
  801. AS 'int8le'
  802. LANGUAGE 'internal'
  803. IMMUTABLE STRICT
  804. PARALLEL SAFE;
  805. CREATE FUNCTION isneq(ismn, ismn)
  806. RETURNS boolean
  807. AS 'int8eq'
  808. LANGUAGE 'internal'
  809. IMMUTABLE STRICT
  810. PARALLEL SAFE;
  811. CREATE FUNCTION isnge(ismn, ismn)
  812. RETURNS boolean
  813. AS 'int8ge'
  814. LANGUAGE 'internal'
  815. IMMUTABLE STRICT
  816. PARALLEL SAFE;
  817. CREATE FUNCTION isngt(ismn, ismn)
  818. RETURNS boolean
  819. AS 'int8gt'
  820. LANGUAGE 'internal'
  821. IMMUTABLE STRICT
  822. PARALLEL SAFE;
  823. CREATE FUNCTION isnne(ismn, ismn)
  824. RETURNS boolean
  825. AS 'int8ne'
  826. LANGUAGE 'internal'
  827. IMMUTABLE STRICT
  828. PARALLEL SAFE;
  829. CREATE FUNCTION isnlt(ismn, ismn13)
  830. RETURNS boolean
  831. AS 'int8lt'
  832. LANGUAGE 'internal'
  833. IMMUTABLE STRICT
  834. PARALLEL SAFE;
  835. CREATE FUNCTION isnle(ismn, ismn13)
  836. RETURNS boolean
  837. AS 'int8le'
  838. LANGUAGE 'internal'
  839. IMMUTABLE STRICT
  840. PARALLEL SAFE;
  841. CREATE FUNCTION isneq(ismn, ismn13)
  842. RETURNS boolean
  843. AS 'int8eq'
  844. LANGUAGE 'internal'
  845. IMMUTABLE STRICT
  846. PARALLEL SAFE;
  847. CREATE FUNCTION isnge(ismn, ismn13)
  848. RETURNS boolean
  849. AS 'int8ge'
  850. LANGUAGE 'internal'
  851. IMMUTABLE STRICT
  852. PARALLEL SAFE;
  853. CREATE FUNCTION isngt(ismn, ismn13)
  854. RETURNS boolean
  855. AS 'int8gt'
  856. LANGUAGE 'internal'
  857. IMMUTABLE STRICT
  858. PARALLEL SAFE;
  859. CREATE FUNCTION isnne(ismn, ismn13)
  860. RETURNS boolean
  861. AS 'int8ne'
  862. LANGUAGE 'internal'
  863. IMMUTABLE STRICT
  864. PARALLEL SAFE;
  865. CREATE FUNCTION isnlt(ismn, ean13)
  866. RETURNS boolean
  867. AS 'int8lt'
  868. LANGUAGE 'internal'
  869. IMMUTABLE STRICT
  870. PARALLEL SAFE;
  871. CREATE FUNCTION isnle(ismn, ean13)
  872. RETURNS boolean
  873. AS 'int8le'
  874. LANGUAGE 'internal'
  875. IMMUTABLE STRICT
  876. PARALLEL SAFE;
  877. CREATE FUNCTION isneq(ismn, ean13)
  878. RETURNS boolean
  879. AS 'int8eq'
  880. LANGUAGE 'internal'
  881. IMMUTABLE STRICT
  882. PARALLEL SAFE;
  883. CREATE FUNCTION isnge(ismn, ean13)
  884. RETURNS boolean
  885. AS 'int8ge'
  886. LANGUAGE 'internal'
  887. IMMUTABLE STRICT
  888. PARALLEL SAFE;
  889. CREATE FUNCTION isngt(ismn, ean13)
  890. RETURNS boolean
  891. AS 'int8gt'
  892. LANGUAGE 'internal'
  893. IMMUTABLE STRICT
  894. PARALLEL SAFE;
  895. CREATE FUNCTION isnne(ismn, ean13)
  896. RETURNS boolean
  897. AS 'int8ne'
  898. LANGUAGE 'internal'
  899. IMMUTABLE STRICT
  900. PARALLEL SAFE;
  901. ---------------------------------------------------
  902. -- ISSN13:
  903. CREATE FUNCTION isnlt(issn13, issn13)
  904. RETURNS boolean
  905. AS 'int8lt'
  906. LANGUAGE 'internal'
  907. IMMUTABLE STRICT
  908. PARALLEL SAFE;
  909. CREATE FUNCTION isnle(issn13, issn13)
  910. RETURNS boolean
  911. AS 'int8le'
  912. LANGUAGE 'internal'
  913. IMMUTABLE STRICT
  914. PARALLEL SAFE;
  915. CREATE FUNCTION isneq(issn13, issn13)
  916. RETURNS boolean
  917. AS 'int8eq'
  918. LANGUAGE 'internal'
  919. IMMUTABLE STRICT
  920. PARALLEL SAFE;
  921. CREATE FUNCTION isnge(issn13, issn13)
  922. RETURNS boolean
  923. AS 'int8ge'
  924. LANGUAGE 'internal'
  925. IMMUTABLE STRICT
  926. PARALLEL SAFE;
  927. CREATE FUNCTION isngt(issn13, issn13)
  928. RETURNS boolean
  929. AS 'int8gt'
  930. LANGUAGE 'internal'
  931. IMMUTABLE STRICT
  932. PARALLEL SAFE;
  933. CREATE FUNCTION isnne(issn13, issn13)
  934. RETURNS boolean
  935. AS 'int8ne'
  936. LANGUAGE 'internal'
  937. IMMUTABLE STRICT
  938. PARALLEL SAFE;
  939. CREATE FUNCTION isnlt(issn13, issn)
  940. RETURNS boolean
  941. AS 'int8lt'
  942. LANGUAGE 'internal'
  943. IMMUTABLE STRICT
  944. PARALLEL SAFE;
  945. CREATE FUNCTION isnle(issn13, issn)
  946. RETURNS boolean
  947. AS 'int8le'
  948. LANGUAGE 'internal'
  949. IMMUTABLE STRICT
  950. PARALLEL SAFE;
  951. CREATE FUNCTION isneq(issn13, issn)
  952. RETURNS boolean
  953. AS 'int8eq'
  954. LANGUAGE 'internal'
  955. IMMUTABLE STRICT
  956. PARALLEL SAFE;
  957. CREATE FUNCTION isnge(issn13, issn)
  958. RETURNS boolean
  959. AS 'int8ge'
  960. LANGUAGE 'internal'
  961. IMMUTABLE STRICT
  962. PARALLEL SAFE;
  963. CREATE FUNCTION isngt(issn13, issn)
  964. RETURNS boolean
  965. AS 'int8gt'
  966. LANGUAGE 'internal'
  967. IMMUTABLE STRICT
  968. PARALLEL SAFE;
  969. CREATE FUNCTION isnne(issn13, issn)
  970. RETURNS boolean
  971. AS 'int8ne'
  972. LANGUAGE 'internal'
  973. IMMUTABLE STRICT
  974. PARALLEL SAFE;
  975. CREATE FUNCTION isnlt(issn13, ean13)
  976. RETURNS boolean
  977. AS 'int8lt'
  978. LANGUAGE 'internal'
  979. IMMUTABLE STRICT
  980. PARALLEL SAFE;
  981. CREATE FUNCTION isnle(issn13, ean13)
  982. RETURNS boolean
  983. AS 'int8le'
  984. LANGUAGE 'internal'
  985. IMMUTABLE STRICT
  986. PARALLEL SAFE;
  987. CREATE FUNCTION isneq(issn13, ean13)
  988. RETURNS boolean
  989. AS 'int8eq'
  990. LANGUAGE 'internal'
  991. IMMUTABLE STRICT
  992. PARALLEL SAFE;
  993. CREATE FUNCTION isnge(issn13, ean13)
  994. RETURNS boolean
  995. AS 'int8ge'
  996. LANGUAGE 'internal'
  997. IMMUTABLE STRICT
  998. PARALLEL SAFE;
  999. CREATE FUNCTION isngt(issn13, ean13)
  1000. RETURNS boolean
  1001. AS 'int8gt'
  1002. LANGUAGE 'internal'
  1003. IMMUTABLE STRICT
  1004. PARALLEL SAFE;
  1005. CREATE FUNCTION isnne(issn13, ean13)
  1006. RETURNS boolean
  1007. AS 'int8ne'
  1008. LANGUAGE 'internal'
  1009. IMMUTABLE STRICT
  1010. PARALLEL SAFE;
  1011. ---------------------------------------------------
  1012. -- ISSN:
  1013. CREATE FUNCTION isnlt(issn, issn)
  1014. RETURNS boolean
  1015. AS 'int8lt'
  1016. LANGUAGE 'internal'
  1017. IMMUTABLE STRICT
  1018. PARALLEL SAFE;
  1019. CREATE FUNCTION isnle(issn, issn)
  1020. RETURNS boolean
  1021. AS 'int8le'
  1022. LANGUAGE 'internal'
  1023. IMMUTABLE STRICT
  1024. PARALLEL SAFE;
  1025. CREATE FUNCTION isneq(issn, issn)
  1026. RETURNS boolean
  1027. AS 'int8eq'
  1028. LANGUAGE 'internal'
  1029. IMMUTABLE STRICT
  1030. PARALLEL SAFE;
  1031. CREATE FUNCTION isnge(issn, issn)
  1032. RETURNS boolean
  1033. AS 'int8ge'
  1034. LANGUAGE 'internal'
  1035. IMMUTABLE STRICT
  1036. PARALLEL SAFE;
  1037. CREATE FUNCTION isngt(issn, issn)
  1038. RETURNS boolean
  1039. AS 'int8gt'
  1040. LANGUAGE 'internal'
  1041. IMMUTABLE STRICT
  1042. PARALLEL SAFE;
  1043. CREATE FUNCTION isnne(issn, issn)
  1044. RETURNS boolean
  1045. AS 'int8ne'
  1046. LANGUAGE 'internal'
  1047. IMMUTABLE STRICT
  1048. PARALLEL SAFE;
  1049. CREATE FUNCTION isnlt(issn, issn13)
  1050. RETURNS boolean
  1051. AS 'int8lt'
  1052. LANGUAGE 'internal'
  1053. IMMUTABLE STRICT
  1054. PARALLEL SAFE;
  1055. CREATE FUNCTION isnle(issn, issn13)
  1056. RETURNS boolean
  1057. AS 'int8le'
  1058. LANGUAGE 'internal'
  1059. IMMUTABLE STRICT
  1060. PARALLEL SAFE;
  1061. CREATE FUNCTION isneq(issn, issn13)
  1062. RETURNS boolean
  1063. AS 'int8eq'
  1064. LANGUAGE 'internal'
  1065. IMMUTABLE STRICT
  1066. PARALLEL SAFE;
  1067. CREATE FUNCTION isnge(issn, issn13)
  1068. RETURNS boolean
  1069. AS 'int8ge'
  1070. LANGUAGE 'internal'
  1071. IMMUTABLE STRICT
  1072. PARALLEL SAFE;
  1073. CREATE FUNCTION isngt(issn, issn13)
  1074. RETURNS boolean
  1075. AS 'int8gt'
  1076. LANGUAGE 'internal'
  1077. IMMUTABLE STRICT
  1078. PARALLEL SAFE;
  1079. CREATE FUNCTION isnne(issn, issn13)
  1080. RETURNS boolean
  1081. AS 'int8ne'
  1082. LANGUAGE 'internal'
  1083. IMMUTABLE STRICT
  1084. PARALLEL SAFE;
  1085. CREATE FUNCTION isnlt(issn, ean13)
  1086. RETURNS boolean
  1087. AS 'int8lt'
  1088. LANGUAGE 'internal'
  1089. IMMUTABLE STRICT
  1090. PARALLEL SAFE;
  1091. CREATE FUNCTION isnle(issn, ean13)
  1092. RETURNS boolean
  1093. AS 'int8le'
  1094. LANGUAGE 'internal'
  1095. IMMUTABLE STRICT
  1096. PARALLEL SAFE;
  1097. CREATE FUNCTION isneq(issn, ean13)
  1098. RETURNS boolean
  1099. AS 'int8eq'
  1100. LANGUAGE 'internal'
  1101. IMMUTABLE STRICT
  1102. PARALLEL SAFE;
  1103. CREATE FUNCTION isnge(issn, ean13)
  1104. RETURNS boolean
  1105. AS 'int8ge'
  1106. LANGUAGE 'internal'
  1107. IMMUTABLE STRICT
  1108. PARALLEL SAFE;
  1109. CREATE FUNCTION isngt(issn, ean13)
  1110. RETURNS boolean
  1111. AS 'int8gt'
  1112. LANGUAGE 'internal'
  1113. IMMUTABLE STRICT
  1114. PARALLEL SAFE;
  1115. CREATE FUNCTION isnne(issn, ean13)
  1116. RETURNS boolean
  1117. AS 'int8ne'
  1118. LANGUAGE 'internal'
  1119. IMMUTABLE STRICT
  1120. PARALLEL SAFE;
  1121. ---------------------------------------------------
  1122. -- UPC:
  1123. CREATE FUNCTION isnlt(upc, upc)
  1124. RETURNS boolean
  1125. AS 'int8lt'
  1126. LANGUAGE 'internal'
  1127. IMMUTABLE STRICT
  1128. PARALLEL SAFE;
  1129. CREATE FUNCTION isnle(upc, upc)
  1130. RETURNS boolean
  1131. AS 'int8le'
  1132. LANGUAGE 'internal'
  1133. IMMUTABLE STRICT
  1134. PARALLEL SAFE;
  1135. CREATE FUNCTION isneq(upc, upc)
  1136. RETURNS boolean
  1137. AS 'int8eq'
  1138. LANGUAGE 'internal'
  1139. IMMUTABLE STRICT
  1140. PARALLEL SAFE;
  1141. CREATE FUNCTION isnge(upc, upc)
  1142. RETURNS boolean
  1143. AS 'int8ge'
  1144. LANGUAGE 'internal'
  1145. IMMUTABLE STRICT
  1146. PARALLEL SAFE;
  1147. CREATE FUNCTION isngt(upc, upc)
  1148. RETURNS boolean
  1149. AS 'int8gt'
  1150. LANGUAGE 'internal'
  1151. IMMUTABLE STRICT
  1152. PARALLEL SAFE;
  1153. CREATE FUNCTION isnne(upc, upc)
  1154. RETURNS boolean
  1155. AS 'int8ne'
  1156. LANGUAGE 'internal'
  1157. IMMUTABLE STRICT
  1158. PARALLEL SAFE;
  1159. CREATE FUNCTION isnlt(upc, ean13)
  1160. RETURNS boolean
  1161. AS 'int8lt'
  1162. LANGUAGE 'internal'
  1163. IMMUTABLE STRICT
  1164. PARALLEL SAFE;
  1165. CREATE FUNCTION isnle(upc, ean13)
  1166. RETURNS boolean
  1167. AS 'int8le'
  1168. LANGUAGE 'internal'
  1169. IMMUTABLE STRICT
  1170. PARALLEL SAFE;
  1171. CREATE FUNCTION isneq(upc, ean13)
  1172. RETURNS boolean
  1173. AS 'int8eq'
  1174. LANGUAGE 'internal'
  1175. IMMUTABLE STRICT
  1176. PARALLEL SAFE;
  1177. CREATE FUNCTION isnge(upc, ean13)
  1178. RETURNS boolean
  1179. AS 'int8ge'
  1180. LANGUAGE 'internal'
  1181. IMMUTABLE STRICT
  1182. PARALLEL SAFE;
  1183. CREATE FUNCTION isngt(upc, ean13)
  1184. RETURNS boolean
  1185. AS 'int8gt'
  1186. LANGUAGE 'internal'
  1187. IMMUTABLE STRICT
  1188. PARALLEL SAFE;
  1189. CREATE FUNCTION isnne(upc, ean13)
  1190. RETURNS boolean
  1191. AS 'int8ne'
  1192. LANGUAGE 'internal'
  1193. IMMUTABLE STRICT
  1194. PARALLEL SAFE;
  1195. --
  1196. -- Now the operators:
  1197. --
  1198. --
  1199. -- EAN13 operators:
  1200. --
  1201. ---------------------------------------------------
  1202. CREATE OPERATOR < (
  1203. PROCEDURE = isnlt,
  1204. LEFTARG = ean13,
  1205. RIGHTARG = ean13,
  1206. COMMUTATOR = >,
  1207. NEGATOR = >=,
  1208. RESTRICT = scalarltsel,
  1209. JOIN = scalarltjoinsel);
  1210. CREATE OPERATOR <= (
  1211. PROCEDURE = isnle,
  1212. LEFTARG = ean13,
  1213. RIGHTARG = ean13,
  1214. COMMUTATOR = >=,
  1215. NEGATOR = >,
  1216. RESTRICT = scalarltsel,
  1217. JOIN = scalarltjoinsel);
  1218. CREATE OPERATOR = (
  1219. PROCEDURE = isneq,
  1220. LEFTARG = ean13,
  1221. RIGHTARG = ean13,
  1222. COMMUTATOR = =,
  1223. NEGATOR = <>,
  1224. RESTRICT = eqsel,
  1225. JOIN = eqjoinsel,
  1226. MERGES,
  1227. HASHES);
  1228. CREATE OPERATOR >= (
  1229. PROCEDURE = isnge,
  1230. LEFTARG = ean13,
  1231. RIGHTARG = ean13,
  1232. COMMUTATOR = <=,
  1233. NEGATOR = <,
  1234. RESTRICT = scalargtsel,
  1235. JOIN = scalargtjoinsel );
  1236. CREATE OPERATOR > (
  1237. PROCEDURE = isngt,
  1238. LEFTARG = ean13,
  1239. RIGHTARG = ean13,
  1240. COMMUTATOR = <,
  1241. NEGATOR = <=,
  1242. RESTRICT = scalargtsel,
  1243. JOIN = scalargtjoinsel );
  1244. CREATE OPERATOR <> (
  1245. PROCEDURE = isnne,
  1246. LEFTARG = ean13,
  1247. RIGHTARG = ean13,
  1248. COMMUTATOR = <>,
  1249. NEGATOR = =,
  1250. RESTRICT = neqsel,
  1251. JOIN = neqjoinsel);
  1252. CREATE OPERATOR < (
  1253. PROCEDURE = isnlt,
  1254. LEFTARG = ean13,
  1255. RIGHTARG = isbn13,
  1256. COMMUTATOR = >,
  1257. NEGATOR = >=,
  1258. RESTRICT = scalarltsel,
  1259. JOIN = scalarltjoinsel);
  1260. CREATE OPERATOR <= (
  1261. PROCEDURE = isnle,
  1262. LEFTARG = ean13,
  1263. RIGHTARG = isbn13,
  1264. COMMUTATOR = >=,
  1265. NEGATOR = >,
  1266. RESTRICT = scalarltsel,
  1267. JOIN = scalarltjoinsel);
  1268. CREATE OPERATOR = (
  1269. PROCEDURE = isneq,
  1270. LEFTARG = ean13,
  1271. RIGHTARG = isbn13,
  1272. COMMUTATOR = =,
  1273. NEGATOR = <>,
  1274. RESTRICT = eqsel,
  1275. JOIN = eqjoinsel,
  1276. MERGES,
  1277. HASHES);
  1278. CREATE OPERATOR >= (
  1279. PROCEDURE = isnge,
  1280. LEFTARG = ean13,
  1281. RIGHTARG = isbn13,
  1282. COMMUTATOR = <=,
  1283. NEGATOR = <,
  1284. RESTRICT = scalargtsel,
  1285. JOIN = scalargtjoinsel );
  1286. CREATE OPERATOR > (
  1287. PROCEDURE = isngt,
  1288. LEFTARG = ean13,
  1289. RIGHTARG = isbn13,
  1290. COMMUTATOR = <,
  1291. NEGATOR = <=,
  1292. RESTRICT = scalargtsel,
  1293. JOIN = scalargtjoinsel );
  1294. CREATE OPERATOR <> (
  1295. PROCEDURE = isnne,
  1296. LEFTARG = ean13,
  1297. RIGHTARG = isbn13,
  1298. COMMUTATOR = <>,
  1299. NEGATOR = =,
  1300. RESTRICT = neqsel,
  1301. JOIN = neqjoinsel);
  1302. CREATE OPERATOR < (
  1303. PROCEDURE = isnlt,
  1304. LEFTARG = isbn13,
  1305. RIGHTARG = ean13,
  1306. COMMUTATOR = >,
  1307. NEGATOR = >=,
  1308. RESTRICT = scalarltsel,
  1309. JOIN = scalarltjoinsel);
  1310. CREATE OPERATOR <= (
  1311. PROCEDURE = isnle,
  1312. LEFTARG = isbn13,
  1313. RIGHTARG = ean13,
  1314. COMMUTATOR = >=,
  1315. NEGATOR = >,
  1316. RESTRICT = scalarltsel,
  1317. JOIN = scalarltjoinsel);
  1318. CREATE OPERATOR = (
  1319. PROCEDURE = isneq,
  1320. LEFTARG = isbn13,
  1321. RIGHTARG = ean13,
  1322. COMMUTATOR = =,
  1323. NEGATOR = <>,
  1324. RESTRICT = eqsel,
  1325. JOIN = eqjoinsel,
  1326. MERGES,
  1327. HASHES);
  1328. CREATE OPERATOR >= (
  1329. PROCEDURE = isnge,
  1330. LEFTARG = isbn13,
  1331. RIGHTARG = ean13,
  1332. COMMUTATOR = <=,
  1333. NEGATOR = <,
  1334. RESTRICT = scalargtsel,
  1335. JOIN = scalargtjoinsel );
  1336. CREATE OPERATOR > (
  1337. PROCEDURE = isngt,
  1338. LEFTARG = isbn13,
  1339. RIGHTARG = ean13,
  1340. COMMUTATOR = <,
  1341. NEGATOR = <=,
  1342. RESTRICT = scalargtsel,
  1343. JOIN = scalargtjoinsel );
  1344. CREATE OPERATOR <> (
  1345. PROCEDURE = isnne,
  1346. LEFTARG = isbn13,
  1347. RIGHTARG = ean13,
  1348. COMMUTATOR = <>,
  1349. NEGATOR = =,
  1350. RESTRICT = neqsel,
  1351. JOIN = neqjoinsel);
  1352. CREATE OPERATOR < (
  1353. PROCEDURE = isnlt,
  1354. LEFTARG = ean13,
  1355. RIGHTARG = ismn13,
  1356. COMMUTATOR = >,
  1357. NEGATOR = >=,
  1358. RESTRICT = scalarltsel,
  1359. JOIN = scalarltjoinsel);
  1360. CREATE OPERATOR <= (
  1361. PROCEDURE = isnle,
  1362. LEFTARG = ean13,
  1363. RIGHTARG = ismn13,
  1364. COMMUTATOR = >=,
  1365. NEGATOR = >,
  1366. RESTRICT = scalarltsel,
  1367. JOIN = scalarltjoinsel);
  1368. CREATE OPERATOR = (
  1369. PROCEDURE = isneq,
  1370. LEFTARG = ean13,
  1371. RIGHTARG = ismn13,
  1372. COMMUTATOR = =,
  1373. NEGATOR = <>,
  1374. RESTRICT = eqsel,
  1375. JOIN = eqjoinsel,
  1376. MERGES,
  1377. HASHES);
  1378. CREATE OPERATOR >= (
  1379. PROCEDURE = isnge,
  1380. LEFTARG = ean13,
  1381. RIGHTARG = ismn13,
  1382. COMMUTATOR = <=,
  1383. NEGATOR = <,
  1384. RESTRICT = scalargtsel,
  1385. JOIN = scalargtjoinsel);
  1386. CREATE OPERATOR > (
  1387. PROCEDURE = isngt,
  1388. LEFTARG = ean13,
  1389. RIGHTARG = ismn13,
  1390. COMMUTATOR = <,
  1391. NEGATOR = <=,
  1392. RESTRICT = scalargtsel,
  1393. JOIN = scalargtjoinsel);
  1394. CREATE OPERATOR <> (
  1395. PROCEDURE = isnne,
  1396. LEFTARG = ean13,
  1397. RIGHTARG = ismn13,
  1398. COMMUTATOR = <>,
  1399. NEGATOR = =,
  1400. RESTRICT = neqsel,
  1401. JOIN = neqjoinsel);
  1402. CREATE OPERATOR < (
  1403. PROCEDURE = isnlt,
  1404. LEFTARG = ismn13,
  1405. RIGHTARG = ean13,
  1406. COMMUTATOR = >,
  1407. NEGATOR = >=,
  1408. RESTRICT = scalarltsel,
  1409. JOIN = scalarltjoinsel);
  1410. CREATE OPERATOR <= (
  1411. PROCEDURE = isnle,
  1412. LEFTARG = ismn13,
  1413. RIGHTARG = ean13,
  1414. COMMUTATOR = >=,
  1415. NEGATOR = >,
  1416. RESTRICT = scalarltsel,
  1417. JOIN = scalarltjoinsel);
  1418. CREATE OPERATOR = (
  1419. PROCEDURE = isneq,
  1420. LEFTARG = ismn13,
  1421. RIGHTARG = ean13,
  1422. COMMUTATOR = =,
  1423. NEGATOR = <>,
  1424. RESTRICT = eqsel,
  1425. JOIN = eqjoinsel,
  1426. MERGES,
  1427. HASHES);
  1428. CREATE OPERATOR >= (
  1429. PROCEDURE = isnge,
  1430. LEFTARG = ismn13,
  1431. RIGHTARG = ean13,
  1432. COMMUTATOR = <=,
  1433. NEGATOR = <,
  1434. RESTRICT = scalargtsel,
  1435. JOIN = scalargtjoinsel );
  1436. CREATE OPERATOR > (
  1437. PROCEDURE = isngt,
  1438. LEFTARG = ismn13,
  1439. RIGHTARG = ean13,
  1440. COMMUTATOR = <,
  1441. NEGATOR = <=,
  1442. RESTRICT = scalargtsel,
  1443. JOIN = scalargtjoinsel );
  1444. CREATE OPERATOR <> (
  1445. PROCEDURE = isnne,
  1446. LEFTARG = ismn13,
  1447. RIGHTARG = ean13,
  1448. COMMUTATOR = <>,
  1449. NEGATOR = =,
  1450. RESTRICT = neqsel,
  1451. JOIN = neqjoinsel);
  1452. CREATE OPERATOR < (
  1453. PROCEDURE = isnlt,
  1454. LEFTARG = ean13,
  1455. RIGHTARG = issn13,
  1456. COMMUTATOR = >,
  1457. NEGATOR = >=,
  1458. RESTRICT = scalarltsel,
  1459. JOIN = scalarltjoinsel);
  1460. CREATE OPERATOR <= (
  1461. PROCEDURE = isnle,
  1462. LEFTARG = ean13,
  1463. RIGHTARG = issn13,
  1464. COMMUTATOR = >=,
  1465. NEGATOR = >,
  1466. RESTRICT = scalarltsel,
  1467. JOIN = scalarltjoinsel);
  1468. CREATE OPERATOR = (
  1469. PROCEDURE = isneq,
  1470. LEFTARG = ean13,
  1471. RIGHTARG = issn13,
  1472. COMMUTATOR = =,
  1473. NEGATOR = <>,
  1474. RESTRICT = eqsel,
  1475. JOIN = eqjoinsel,
  1476. MERGES,
  1477. HASHES);
  1478. CREATE OPERATOR >= (
  1479. PROCEDURE = isnge,
  1480. LEFTARG = ean13,
  1481. RIGHTARG = issn13,
  1482. COMMUTATOR = <=,
  1483. NEGATOR = <,
  1484. RESTRICT = scalargtsel,
  1485. JOIN = scalargtjoinsel);
  1486. CREATE OPERATOR > (
  1487. PROCEDURE = isngt,
  1488. LEFTARG = ean13,
  1489. RIGHTARG = issn13,
  1490. COMMUTATOR = <,
  1491. NEGATOR = <=,
  1492. RESTRICT = scalargtsel,
  1493. JOIN = scalargtjoinsel);
  1494. CREATE OPERATOR <> (
  1495. PROCEDURE = isnne,
  1496. LEFTARG = ean13,
  1497. RIGHTARG = issn13,
  1498. COMMUTATOR = <>,
  1499. NEGATOR = =,
  1500. RESTRICT = neqsel,
  1501. JOIN = neqjoinsel);
  1502. CREATE OPERATOR < (
  1503. PROCEDURE = isnlt,
  1504. LEFTARG = ean13,
  1505. RIGHTARG = isbn,
  1506. COMMUTATOR = >,
  1507. NEGATOR = >=,
  1508. RESTRICT = scalarltsel,
  1509. JOIN = scalarltjoinsel);
  1510. CREATE OPERATOR <= (
  1511. PROCEDURE = isnle,
  1512. LEFTARG = ean13,
  1513. RIGHTARG = isbn,
  1514. COMMUTATOR = >=,
  1515. NEGATOR = >,
  1516. RESTRICT = scalarltsel,
  1517. JOIN = scalarltjoinsel);
  1518. CREATE OPERATOR = (
  1519. PROCEDURE = isneq,
  1520. LEFTARG = ean13,
  1521. RIGHTARG = isbn,
  1522. COMMUTATOR = =,
  1523. NEGATOR = <>,
  1524. RESTRICT = eqsel,
  1525. JOIN = eqjoinsel,
  1526. MERGES,
  1527. HASHES);
  1528. CREATE OPERATOR >= (
  1529. PROCEDURE = isnge,
  1530. LEFTARG = ean13,
  1531. RIGHTARG = isbn,
  1532. COMMUTATOR = <=,
  1533. NEGATOR = <,
  1534. RESTRICT = scalargtsel,
  1535. JOIN = scalargtjoinsel);
  1536. CREATE OPERATOR > (
  1537. PROCEDURE = isngt,
  1538. LEFTARG = ean13,
  1539. RIGHTARG = isbn,
  1540. COMMUTATOR = <,
  1541. NEGATOR = <=,
  1542. RESTRICT = scalargtsel,
  1543. JOIN = scalargtjoinsel);
  1544. CREATE OPERATOR <> (
  1545. PROCEDURE = isnne,
  1546. LEFTARG = ean13,
  1547. RIGHTARG = isbn,
  1548. COMMUTATOR = <>,
  1549. NEGATOR = =,
  1550. RESTRICT = neqsel,
  1551. JOIN = neqjoinsel);
  1552. CREATE OPERATOR < (
  1553. PROCEDURE = isnlt,
  1554. LEFTARG = ean13,
  1555. RIGHTARG = ismn,
  1556. COMMUTATOR = >,
  1557. NEGATOR = >=,
  1558. RESTRICT = scalarltsel,
  1559. JOIN = scalarltjoinsel);
  1560. CREATE OPERATOR <= (
  1561. PROCEDURE = isnle,
  1562. LEFTARG = ean13,
  1563. RIGHTARG = ismn,
  1564. COMMUTATOR = >=,
  1565. NEGATOR = >,
  1566. RESTRICT = scalarltsel,
  1567. JOIN = scalarltjoinsel);
  1568. CREATE OPERATOR = (
  1569. PROCEDURE = isneq,
  1570. LEFTARG = ean13,
  1571. RIGHTARG = ismn,
  1572. COMMUTATOR = =,
  1573. NEGATOR = <>,
  1574. RESTRICT = eqsel,
  1575. JOIN = eqjoinsel,
  1576. MERGES,
  1577. HASHES);
  1578. CREATE OPERATOR >= (
  1579. PROCEDURE = isnge,
  1580. LEFTARG = ean13,
  1581. RIGHTARG = ismn,
  1582. COMMUTATOR = <=,
  1583. NEGATOR = <,
  1584. RESTRICT = scalargtsel,
  1585. JOIN = scalargtjoinsel);
  1586. CREATE OPERATOR > (
  1587. PROCEDURE = isngt,
  1588. LEFTARG = ean13,
  1589. RIGHTARG = ismn,
  1590. COMMUTATOR = <,
  1591. NEGATOR = <=,
  1592. RESTRICT = scalargtsel,
  1593. JOIN = scalargtjoinsel);
  1594. CREATE OPERATOR <> (
  1595. PROCEDURE = isnne,
  1596. LEFTARG = ean13,
  1597. RIGHTARG = ismn,
  1598. COMMUTATOR = <>,
  1599. NEGATOR = =,
  1600. RESTRICT = neqsel,
  1601. JOIN = neqjoinsel);
  1602. CREATE OPERATOR < (
  1603. PROCEDURE = isnlt,
  1604. LEFTARG = ean13,
  1605. RIGHTARG = issn,
  1606. COMMUTATOR = >,
  1607. NEGATOR = >=,
  1608. RESTRICT = scalarltsel,
  1609. JOIN = scalarltjoinsel);
  1610. CREATE OPERATOR <= (
  1611. PROCEDURE = isnle,
  1612. LEFTARG = ean13,
  1613. RIGHTARG = issn,
  1614. COMMUTATOR = >=,
  1615. NEGATOR = >,
  1616. RESTRICT = scalarltsel,
  1617. JOIN = scalarltjoinsel);
  1618. CREATE OPERATOR = (
  1619. PROCEDURE = isneq,
  1620. LEFTARG = ean13,
  1621. RIGHTARG = issn,
  1622. COMMUTATOR = =,
  1623. NEGATOR = <>,
  1624. RESTRICT = eqsel,
  1625. JOIN = eqjoinsel,
  1626. MERGES,
  1627. HASHES);
  1628. CREATE OPERATOR >= (
  1629. PROCEDURE = isnge,
  1630. LEFTARG = ean13,
  1631. RIGHTARG = issn,
  1632. COMMUTATOR = <=,
  1633. NEGATOR = <,
  1634. RESTRICT = scalargtsel,
  1635. JOIN = scalargtjoinsel);
  1636. CREATE OPERATOR > (
  1637. PROCEDURE = isngt,
  1638. LEFTARG = ean13,
  1639. RIGHTARG = issn,
  1640. COMMUTATOR = <,
  1641. NEGATOR = <=,
  1642. RESTRICT = scalargtsel,
  1643. JOIN = scalargtjoinsel);
  1644. CREATE OPERATOR <> (
  1645. PROCEDURE = isnne,
  1646. LEFTARG = ean13,
  1647. RIGHTARG = issn,
  1648. COMMUTATOR = <>,
  1649. NEGATOR = =,
  1650. RESTRICT = neqsel,
  1651. JOIN = neqjoinsel);
  1652. CREATE OPERATOR < (
  1653. PROCEDURE = isnlt,
  1654. LEFTARG = ean13,
  1655. RIGHTARG = upc,
  1656. COMMUTATOR = >,
  1657. NEGATOR = >=,
  1658. RESTRICT = scalarltsel,
  1659. JOIN = scalarltjoinsel);
  1660. CREATE OPERATOR <= (
  1661. PROCEDURE = isnle,
  1662. LEFTARG = ean13,
  1663. RIGHTARG = upc,
  1664. COMMUTATOR = >=,
  1665. NEGATOR = >,
  1666. RESTRICT = scalarltsel,
  1667. JOIN = scalarltjoinsel);
  1668. CREATE OPERATOR = (
  1669. PROCEDURE = isneq,
  1670. LEFTARG = ean13,
  1671. RIGHTARG = upc,
  1672. COMMUTATOR = =,
  1673. NEGATOR = <>,
  1674. RESTRICT = eqsel,
  1675. JOIN = eqjoinsel,
  1676. MERGES,
  1677. HASHES);
  1678. CREATE OPERATOR >= (
  1679. PROCEDURE = isnge,
  1680. LEFTARG = ean13,
  1681. RIGHTARG = upc,
  1682. COMMUTATOR = <=,
  1683. NEGATOR = <,
  1684. RESTRICT = scalargtsel,
  1685. JOIN = scalargtjoinsel);
  1686. CREATE OPERATOR > (
  1687. PROCEDURE = isngt,
  1688. LEFTARG = ean13,
  1689. RIGHTARG = upc,
  1690. COMMUTATOR = <,
  1691. NEGATOR = <=,
  1692. RESTRICT = scalargtsel,
  1693. JOIN = scalargtjoinsel);
  1694. CREATE OPERATOR <> (
  1695. PROCEDURE = isnne,
  1696. LEFTARG = ean13,
  1697. RIGHTARG = upc,
  1698. COMMUTATOR = <>,
  1699. NEGATOR = =,
  1700. RESTRICT = neqsel,
  1701. JOIN = neqjoinsel);
  1702. --
  1703. -- ISBN13 operators:
  1704. --
  1705. ---------------------------------------------------
  1706. CREATE OPERATOR < (
  1707. PROCEDURE = isnlt,
  1708. LEFTARG = isbn13,
  1709. RIGHTARG = isbn13,
  1710. COMMUTATOR = >,
  1711. NEGATOR = >=,
  1712. RESTRICT = scalarltsel,
  1713. JOIN = scalarltjoinsel);
  1714. CREATE OPERATOR <= (
  1715. PROCEDURE = isnle,
  1716. LEFTARG = isbn13,
  1717. RIGHTARG = isbn13,
  1718. COMMUTATOR = >=,
  1719. NEGATOR = >,
  1720. RESTRICT = scalarltsel,
  1721. JOIN = scalarltjoinsel);
  1722. CREATE OPERATOR = (
  1723. PROCEDURE = isneq,
  1724. LEFTARG = isbn13,
  1725. RIGHTARG = isbn13,
  1726. COMMUTATOR = =,
  1727. NEGATOR = <>,
  1728. RESTRICT = eqsel,
  1729. JOIN = eqjoinsel,
  1730. MERGES,
  1731. HASHES);
  1732. CREATE OPERATOR >= (
  1733. PROCEDURE = isnge,
  1734. LEFTARG = isbn13,
  1735. RIGHTARG = isbn13,
  1736. COMMUTATOR = <=,
  1737. NEGATOR = <,
  1738. RESTRICT = scalargtsel,
  1739. JOIN = scalargtjoinsel );
  1740. CREATE OPERATOR > (
  1741. PROCEDURE = isngt,
  1742. LEFTARG = isbn13,
  1743. RIGHTARG = isbn13,
  1744. COMMUTATOR = <,
  1745. NEGATOR = <=,
  1746. RESTRICT = scalargtsel,
  1747. JOIN = scalargtjoinsel );
  1748. CREATE OPERATOR <> (
  1749. PROCEDURE = isnne,
  1750. LEFTARG = isbn13,
  1751. RIGHTARG = isbn13,
  1752. COMMUTATOR = <>,
  1753. NEGATOR = =,
  1754. RESTRICT = neqsel,
  1755. JOIN = neqjoinsel);
  1756. CREATE OPERATOR < (
  1757. PROCEDURE = isnlt,
  1758. LEFTARG = isbn13,
  1759. RIGHTARG = isbn,
  1760. COMMUTATOR = >,
  1761. NEGATOR = >=,
  1762. RESTRICT = scalarltsel,
  1763. JOIN = scalarltjoinsel);
  1764. CREATE OPERATOR <= (
  1765. PROCEDURE = isnle,
  1766. LEFTARG = isbn13,
  1767. RIGHTARG = isbn,
  1768. COMMUTATOR = >=,
  1769. NEGATOR = >,
  1770. RESTRICT = scalarltsel,
  1771. JOIN = scalarltjoinsel);
  1772. CREATE OPERATOR = (
  1773. PROCEDURE = isneq,
  1774. LEFTARG = isbn13,
  1775. RIGHTARG = isbn,
  1776. COMMUTATOR = =,
  1777. NEGATOR = <>,
  1778. RESTRICT = eqsel,
  1779. JOIN = eqjoinsel,
  1780. MERGES,
  1781. HASHES);
  1782. CREATE OPERATOR >= (
  1783. PROCEDURE = isnge,
  1784. LEFTARG = isbn13,
  1785. RIGHTARG = isbn,
  1786. COMMUTATOR = <=,
  1787. NEGATOR = <,
  1788. RESTRICT = scalargtsel,
  1789. JOIN = scalargtjoinsel );
  1790. CREATE OPERATOR > (
  1791. PROCEDURE = isngt,
  1792. LEFTARG = isbn13,
  1793. RIGHTARG = isbn,
  1794. COMMUTATOR = <,
  1795. NEGATOR = <=,
  1796. RESTRICT = scalargtsel,
  1797. JOIN = scalargtjoinsel );
  1798. CREATE OPERATOR <> (
  1799. PROCEDURE = isnne,
  1800. LEFTARG = isbn13,
  1801. RIGHTARG = isbn,
  1802. COMMUTATOR = <>,
  1803. NEGATOR = =,
  1804. RESTRICT = neqsel,
  1805. JOIN = neqjoinsel);
  1806. --
  1807. -- ISBN operators:
  1808. --
  1809. ---------------------------------------------------
  1810. CREATE OPERATOR < (
  1811. PROCEDURE = isnlt,
  1812. LEFTARG = isbn,
  1813. RIGHTARG = isbn,
  1814. COMMUTATOR = >,
  1815. NEGATOR = >=,
  1816. RESTRICT = scalarltsel,
  1817. JOIN = scalarltjoinsel);
  1818. CREATE OPERATOR <= (
  1819. PROCEDURE = isnle,
  1820. LEFTARG = isbn,
  1821. RIGHTARG = isbn,
  1822. COMMUTATOR = >=,
  1823. NEGATOR = >,
  1824. RESTRICT = scalarltsel,
  1825. JOIN = scalarltjoinsel);
  1826. CREATE OPERATOR = (
  1827. PROCEDURE = isneq,
  1828. LEFTARG = isbn,
  1829. RIGHTARG = isbn,
  1830. COMMUTATOR = =,
  1831. NEGATOR = <>,
  1832. RESTRICT = eqsel,
  1833. JOIN = eqjoinsel,
  1834. MERGES,
  1835. HASHES);
  1836. CREATE OPERATOR >= (
  1837. PROCEDURE = isnge,
  1838. LEFTARG = isbn,
  1839. RIGHTARG = isbn,
  1840. COMMUTATOR = <=,
  1841. NEGATOR = <,
  1842. RESTRICT = scalargtsel,
  1843. JOIN = scalargtjoinsel );
  1844. CREATE OPERATOR > (
  1845. PROCEDURE = isngt,
  1846. LEFTARG = isbn,
  1847. RIGHTARG = isbn,
  1848. COMMUTATOR = <,
  1849. NEGATOR = <=,
  1850. RESTRICT = scalargtsel,
  1851. JOIN = scalargtjoinsel );
  1852. CREATE OPERATOR <> (
  1853. PROCEDURE = isnne,
  1854. LEFTARG = isbn,
  1855. RIGHTARG = isbn,
  1856. COMMUTATOR = <>,
  1857. NEGATOR = =,
  1858. RESTRICT = neqsel,
  1859. JOIN = neqjoinsel);
  1860. CREATE OPERATOR < (
  1861. PROCEDURE = isnlt,
  1862. LEFTARG = isbn,
  1863. RIGHTARG = isbn13,
  1864. COMMUTATOR = >,
  1865. NEGATOR = >=,
  1866. RESTRICT = scalarltsel,
  1867. JOIN = scalarltjoinsel);
  1868. CREATE OPERATOR <= (
  1869. PROCEDURE = isnle,
  1870. LEFTARG = isbn,
  1871. RIGHTARG = isbn13,
  1872. COMMUTATOR = >=,
  1873. NEGATOR = >,
  1874. RESTRICT = scalarltsel,
  1875. JOIN = scalarltjoinsel);
  1876. CREATE OPERATOR = (
  1877. PROCEDURE = isneq,
  1878. LEFTARG = isbn,
  1879. RIGHTARG = isbn13,
  1880. COMMUTATOR = =,
  1881. NEGATOR = <>,
  1882. RESTRICT = eqsel,
  1883. JOIN = eqjoinsel,
  1884. MERGES,
  1885. HASHES);
  1886. CREATE OPERATOR >= (
  1887. PROCEDURE = isnge,
  1888. LEFTARG = isbn,
  1889. RIGHTARG = isbn13,
  1890. COMMUTATOR = <=,
  1891. NEGATOR = <,
  1892. RESTRICT = scalargtsel,
  1893. JOIN = scalargtjoinsel );
  1894. CREATE OPERATOR > (
  1895. PROCEDURE = isngt,
  1896. LEFTARG = isbn,
  1897. RIGHTARG = isbn13,
  1898. COMMUTATOR = <,
  1899. NEGATOR = <=,
  1900. RESTRICT = scalargtsel,
  1901. JOIN = scalargtjoinsel );
  1902. CREATE OPERATOR <> (
  1903. PROCEDURE = isnne,
  1904. LEFTARG = isbn,
  1905. RIGHTARG = isbn13,
  1906. COMMUTATOR = <>,
  1907. NEGATOR = =,
  1908. RESTRICT = neqsel,
  1909. JOIN = neqjoinsel);
  1910. CREATE OPERATOR < (
  1911. PROCEDURE = isnlt,
  1912. LEFTARG = isbn,
  1913. RIGHTARG = ean13,
  1914. COMMUTATOR = >,
  1915. NEGATOR = >=,
  1916. RESTRICT = scalarltsel,
  1917. JOIN = scalarltjoinsel);
  1918. CREATE OPERATOR <= (
  1919. PROCEDURE = isnle,
  1920. LEFTARG = isbn,
  1921. RIGHTARG = ean13,
  1922. COMMUTATOR = >=,
  1923. NEGATOR = >,
  1924. RESTRICT = scalarltsel,
  1925. JOIN = scalarltjoinsel);
  1926. CREATE OPERATOR = (
  1927. PROCEDURE = isneq,
  1928. LEFTARG = isbn,
  1929. RIGHTARG = ean13,
  1930. COMMUTATOR = =,
  1931. NEGATOR = <>,
  1932. RESTRICT = eqsel,
  1933. JOIN = eqjoinsel,
  1934. MERGES,
  1935. HASHES);
  1936. CREATE OPERATOR >= (
  1937. PROCEDURE = isnge,
  1938. LEFTARG = isbn,
  1939. RIGHTARG = ean13,
  1940. COMMUTATOR = <=,
  1941. NEGATOR = <,
  1942. RESTRICT = scalargtsel,
  1943. JOIN = scalargtjoinsel );
  1944. CREATE OPERATOR > (
  1945. PROCEDURE = isngt,
  1946. LEFTARG = isbn,
  1947. RIGHTARG = ean13,
  1948. COMMUTATOR = <,
  1949. NEGATOR = <=,
  1950. RESTRICT = scalargtsel,
  1951. JOIN = scalargtjoinsel );
  1952. CREATE OPERATOR <> (
  1953. PROCEDURE = isnne,
  1954. LEFTARG = isbn,
  1955. RIGHTARG = ean13,
  1956. COMMUTATOR = <>,
  1957. NEGATOR = =,
  1958. RESTRICT = neqsel,
  1959. JOIN = neqjoinsel);
  1960. --
  1961. -- ISMN13 operators:
  1962. --
  1963. ---------------------------------------------------
  1964. CREATE OPERATOR < (
  1965. PROCEDURE = isnlt,
  1966. LEFTARG = ismn13,
  1967. RIGHTARG = ismn13,
  1968. COMMUTATOR = >,
  1969. NEGATOR = >=,
  1970. RESTRICT = scalarltsel,
  1971. JOIN = scalarltjoinsel);
  1972. CREATE OPERATOR <= (
  1973. PROCEDURE = isnle,
  1974. LEFTARG = ismn13,
  1975. RIGHTARG = ismn13,
  1976. COMMUTATOR = >=,
  1977. NEGATOR = >,
  1978. RESTRICT = scalarltsel,
  1979. JOIN = scalarltjoinsel);
  1980. CREATE OPERATOR = (
  1981. PROCEDURE = isneq,
  1982. LEFTARG = ismn13,
  1983. RIGHTARG = ismn13,
  1984. COMMUTATOR = =,
  1985. NEGATOR = <>,
  1986. RESTRICT = eqsel,
  1987. JOIN = eqjoinsel,
  1988. MERGES,
  1989. HASHES);
  1990. CREATE OPERATOR >= (
  1991. PROCEDURE = isnge,
  1992. LEFTARG = ismn13,
  1993. RIGHTARG = ismn13,
  1994. COMMUTATOR = <=,
  1995. NEGATOR = <,
  1996. RESTRICT = scalargtsel,
  1997. JOIN = scalargtjoinsel );
  1998. CREATE OPERATOR > (
  1999. PROCEDURE = isngt,
  2000. LEFTARG = ismn13,
  2001. RIGHTARG = ismn13,
  2002. COMMUTATOR = <,
  2003. NEGATOR = <=,
  2004. RESTRICT = scalargtsel,
  2005. JOIN = scalargtjoinsel );
  2006. CREATE OPERATOR <> (
  2007. PROCEDURE = isnne,
  2008. LEFTARG = ismn13,
  2009. RIGHTARG = ismn13,
  2010. COMMUTATOR = <>,
  2011. NEGATOR = =,
  2012. RESTRICT = neqsel,
  2013. JOIN = neqjoinsel);
  2014. CREATE OPERATOR < (
  2015. PROCEDURE = isnlt,
  2016. LEFTARG = ismn13,
  2017. RIGHTARG = ismn,
  2018. COMMUTATOR = >,
  2019. NEGATOR = >=,
  2020. RESTRICT = scalarltsel,
  2021. JOIN = scalarltjoinsel);
  2022. CREATE OPERATOR <= (
  2023. PROCEDURE = isnle,
  2024. LEFTARG = ismn13,
  2025. RIGHTARG = ismn,
  2026. COMMUTATOR = >=,
  2027. NEGATOR = >,
  2028. RESTRICT = scalarltsel,
  2029. JOIN = scalarltjoinsel);
  2030. CREATE OPERATOR = (
  2031. PROCEDURE = isneq,
  2032. LEFTARG = ismn13,
  2033. RIGHTARG = ismn,
  2034. COMMUTATOR = =,
  2035. NEGATOR = <>,
  2036. RESTRICT = eqsel,
  2037. JOIN = eqjoinsel,
  2038. MERGES,
  2039. HASHES);
  2040. CREATE OPERATOR >= (
  2041. PROCEDURE = isnge,
  2042. LEFTARG = ismn13,
  2043. RIGHTARG = ismn,
  2044. COMMUTATOR = <=,
  2045. NEGATOR = <,
  2046. RESTRICT = scalargtsel,
  2047. JOIN = scalargtjoinsel );
  2048. CREATE OPERATOR > (
  2049. PROCEDURE = isngt,
  2050. LEFTARG = ismn13,
  2051. RIGHTARG = ismn,
  2052. COMMUTATOR = <,
  2053. NEGATOR = <=,
  2054. RESTRICT = scalargtsel,
  2055. JOIN = scalargtjoinsel );
  2056. CREATE OPERATOR <> (
  2057. PROCEDURE = isnne,
  2058. LEFTARG = ismn13,
  2059. RIGHTARG = ismn,
  2060. COMMUTATOR = <>,
  2061. NEGATOR = =,
  2062. RESTRICT = neqsel,
  2063. JOIN = neqjoinsel);
  2064. --
  2065. -- ISMN operators:
  2066. --
  2067. ---------------------------------------------------
  2068. CREATE OPERATOR < (
  2069. PROCEDURE = isnlt,
  2070. LEFTARG = ismn,
  2071. RIGHTARG = ismn,
  2072. COMMUTATOR = >,
  2073. NEGATOR = >=,
  2074. RESTRICT = scalarltsel,
  2075. JOIN = scalarltjoinsel);
  2076. CREATE OPERATOR <= (
  2077. PROCEDURE = isnle,
  2078. LEFTARG = ismn,
  2079. RIGHTARG = ismn,
  2080. COMMUTATOR = >=,
  2081. NEGATOR = >,
  2082. RESTRICT = scalarltsel,
  2083. JOIN = scalarltjoinsel);
  2084. CREATE OPERATOR = (
  2085. PROCEDURE = isneq,
  2086. LEFTARG = ismn,
  2087. RIGHTARG = ismn,
  2088. COMMUTATOR = =,
  2089. NEGATOR = <>,
  2090. RESTRICT = eqsel,
  2091. JOIN = eqjoinsel,
  2092. MERGES,
  2093. HASHES);
  2094. CREATE OPERATOR >= (
  2095. PROCEDURE = isnge,
  2096. LEFTARG = ismn,
  2097. RIGHTARG = ismn,
  2098. COMMUTATOR = <=,
  2099. NEGATOR = <,
  2100. RESTRICT = scalargtsel,
  2101. JOIN = scalargtjoinsel );
  2102. CREATE OPERATOR > (
  2103. PROCEDURE = isngt,
  2104. LEFTARG = ismn,
  2105. RIGHTARG = ismn,
  2106. COMMUTATOR = <,
  2107. NEGATOR = <=,
  2108. RESTRICT = scalargtsel,
  2109. JOIN = scalargtjoinsel );
  2110. CREATE OPERATOR <> (
  2111. PROCEDURE = isnne,
  2112. LEFTARG = ismn,
  2113. RIGHTARG = ismn,
  2114. COMMUTATOR = <>,
  2115. NEGATOR = =,
  2116. RESTRICT = neqsel,
  2117. JOIN = neqjoinsel);
  2118. CREATE OPERATOR < (
  2119. PROCEDURE = isnlt,
  2120. LEFTARG = ismn,
  2121. RIGHTARG = ismn13,
  2122. COMMUTATOR = >,
  2123. NEGATOR = >=,
  2124. RESTRICT = scalarltsel,
  2125. JOIN = scalarltjoinsel);
  2126. CREATE OPERATOR <= (
  2127. PROCEDURE = isnle,
  2128. LEFTARG = ismn,
  2129. RIGHTARG = ismn13,
  2130. COMMUTATOR = >=,
  2131. NEGATOR = >,
  2132. RESTRICT = scalarltsel,
  2133. JOIN = scalarltjoinsel);
  2134. CREATE OPERATOR = (
  2135. PROCEDURE = isneq,
  2136. LEFTARG = ismn,
  2137. RIGHTARG = ismn13,
  2138. COMMUTATOR = =,
  2139. NEGATOR = <>,
  2140. RESTRICT = eqsel,
  2141. JOIN = eqjoinsel,
  2142. MERGES,
  2143. HASHES);
  2144. CREATE OPERATOR >= (
  2145. PROCEDURE = isnge,
  2146. LEFTARG = ismn,
  2147. RIGHTARG = ismn13,
  2148. COMMUTATOR = <=,
  2149. NEGATOR = <,
  2150. RESTRICT = scalargtsel,
  2151. JOIN = scalargtjoinsel );
  2152. CREATE OPERATOR > (
  2153. PROCEDURE = isngt,
  2154. LEFTARG = ismn,
  2155. RIGHTARG = ismn13,
  2156. COMMUTATOR = <,
  2157. NEGATOR = <=,
  2158. RESTRICT = scalargtsel,
  2159. JOIN = scalargtjoinsel );
  2160. CREATE OPERATOR <> (
  2161. PROCEDURE = isnne,
  2162. LEFTARG = ismn,
  2163. RIGHTARG = ismn13,
  2164. COMMUTATOR = <>,
  2165. NEGATOR = =,
  2166. RESTRICT = neqsel,
  2167. JOIN = neqjoinsel);
  2168. CREATE OPERATOR < (
  2169. PROCEDURE = isnlt,
  2170. LEFTARG = ismn,
  2171. RIGHTARG = ean13,
  2172. COMMUTATOR = >,
  2173. NEGATOR = >=,
  2174. RESTRICT = scalarltsel,
  2175. JOIN = scalarltjoinsel);
  2176. CREATE OPERATOR <= (
  2177. PROCEDURE = isnle,
  2178. LEFTARG = ismn,
  2179. RIGHTARG = ean13,
  2180. COMMUTATOR = >=,
  2181. NEGATOR = >,
  2182. RESTRICT = scalarltsel,
  2183. JOIN = scalarltjoinsel);
  2184. CREATE OPERATOR = (
  2185. PROCEDURE = isneq,
  2186. LEFTARG = ismn,
  2187. RIGHTARG = ean13,
  2188. COMMUTATOR = =,
  2189. NEGATOR = <>,
  2190. RESTRICT = eqsel,
  2191. JOIN = eqjoinsel,
  2192. MERGES,
  2193. HASHES);
  2194. CREATE OPERATOR >= (
  2195. PROCEDURE = isnge,
  2196. LEFTARG = ismn,
  2197. RIGHTARG = ean13,
  2198. COMMUTATOR = <=,
  2199. NEGATOR = <,
  2200. RESTRICT = scalargtsel,
  2201. JOIN = scalargtjoinsel );
  2202. CREATE OPERATOR > (
  2203. PROCEDURE = isngt,
  2204. LEFTARG = ismn,
  2205. RIGHTARG = ean13,
  2206. COMMUTATOR = <,
  2207. NEGATOR = <=,
  2208. RESTRICT = scalargtsel,
  2209. JOIN = scalargtjoinsel );
  2210. CREATE OPERATOR <> (
  2211. PROCEDURE = isnne,
  2212. LEFTARG = ismn,
  2213. RIGHTARG = ean13,
  2214. COMMUTATOR = <>,
  2215. NEGATOR = =,
  2216. RESTRICT = neqsel,
  2217. JOIN = neqjoinsel);
  2218. --
  2219. -- ISSN13 operators:
  2220. --
  2221. ---------------------------------------------------
  2222. CREATE OPERATOR < (
  2223. PROCEDURE = isnlt,
  2224. LEFTARG = issn13,
  2225. RIGHTARG = issn13,
  2226. COMMUTATOR = >,
  2227. NEGATOR = >=,
  2228. RESTRICT = scalarltsel,
  2229. JOIN = scalarltjoinsel);
  2230. CREATE OPERATOR <= (
  2231. PROCEDURE = isnle,
  2232. LEFTARG = issn13,
  2233. RIGHTARG = issn13,
  2234. COMMUTATOR = >=,
  2235. NEGATOR = >,
  2236. RESTRICT = scalarltsel,
  2237. JOIN = scalarltjoinsel);
  2238. CREATE OPERATOR = (
  2239. PROCEDURE = isneq,
  2240. LEFTARG = issn13,
  2241. RIGHTARG = issn13,
  2242. COMMUTATOR = =,
  2243. NEGATOR = <>,
  2244. RESTRICT = eqsel,
  2245. JOIN = eqjoinsel,
  2246. MERGES,
  2247. HASHES);
  2248. CREATE OPERATOR >= (
  2249. PROCEDURE = isnge,
  2250. LEFTARG = issn13,
  2251. RIGHTARG = issn13,
  2252. COMMUTATOR = <=,
  2253. NEGATOR = <,
  2254. RESTRICT = scalargtsel,
  2255. JOIN = scalargtjoinsel );
  2256. CREATE OPERATOR > (
  2257. PROCEDURE = isngt,
  2258. LEFTARG = issn13,
  2259. RIGHTARG = issn13,
  2260. COMMUTATOR = <,
  2261. NEGATOR = <=,
  2262. RESTRICT = scalargtsel,
  2263. JOIN = scalargtjoinsel );
  2264. CREATE OPERATOR <> (
  2265. PROCEDURE = isnne,
  2266. LEFTARG = issn13,
  2267. RIGHTARG = issn13,
  2268. COMMUTATOR = <>,
  2269. NEGATOR = =,
  2270. RESTRICT = neqsel,
  2271. JOIN = neqjoinsel);
  2272. CREATE OPERATOR < (
  2273. PROCEDURE = isnlt,
  2274. LEFTARG = issn13,
  2275. RIGHTARG = issn,
  2276. COMMUTATOR = >,
  2277. NEGATOR = >=,
  2278. RESTRICT = scalarltsel,
  2279. JOIN = scalarltjoinsel);
  2280. CREATE OPERATOR <= (
  2281. PROCEDURE = isnle,
  2282. LEFTARG = issn13,
  2283. RIGHTARG = issn,
  2284. COMMUTATOR = >=,
  2285. NEGATOR = >,
  2286. RESTRICT = scalarltsel,
  2287. JOIN = scalarltjoinsel);
  2288. CREATE OPERATOR = (
  2289. PROCEDURE = isneq,
  2290. LEFTARG = issn13,
  2291. RIGHTARG = issn,
  2292. COMMUTATOR = =,
  2293. NEGATOR = <>,
  2294. RESTRICT = eqsel,
  2295. JOIN = eqjoinsel,
  2296. MERGES,
  2297. HASHES);
  2298. CREATE OPERATOR >= (
  2299. PROCEDURE = isnge,
  2300. LEFTARG = issn13,
  2301. RIGHTARG = issn,
  2302. COMMUTATOR = <=,
  2303. NEGATOR = <,
  2304. RESTRICT = scalargtsel,
  2305. JOIN = scalargtjoinsel );
  2306. CREATE OPERATOR > (
  2307. PROCEDURE = isngt,
  2308. LEFTARG = issn13,
  2309. RIGHTARG = issn,
  2310. COMMUTATOR = <,
  2311. NEGATOR = <=,
  2312. RESTRICT = scalargtsel,
  2313. JOIN = scalargtjoinsel );
  2314. CREATE OPERATOR <> (
  2315. PROCEDURE = isnne,
  2316. LEFTARG = issn13,
  2317. RIGHTARG = issn,
  2318. COMMUTATOR = <>,
  2319. NEGATOR = =,
  2320. RESTRICT = neqsel,
  2321. JOIN = neqjoinsel);
  2322. CREATE OPERATOR < (
  2323. PROCEDURE = isnlt,
  2324. LEFTARG = issn13,
  2325. RIGHTARG = ean13,
  2326. COMMUTATOR = >,
  2327. NEGATOR = >=,
  2328. RESTRICT = scalarltsel,
  2329. JOIN = scalarltjoinsel);
  2330. CREATE OPERATOR <= (
  2331. PROCEDURE = isnle,
  2332. LEFTARG = issn13,
  2333. RIGHTARG = ean13,
  2334. COMMUTATOR = >=,
  2335. NEGATOR = >,
  2336. RESTRICT = scalarltsel,
  2337. JOIN = scalarltjoinsel);
  2338. CREATE OPERATOR = (
  2339. PROCEDURE = isneq,
  2340. LEFTARG = issn13,
  2341. RIGHTARG = ean13,
  2342. COMMUTATOR = =,
  2343. NEGATOR = <>,
  2344. RESTRICT = eqsel,
  2345. JOIN = eqjoinsel,
  2346. MERGES,
  2347. HASHES);
  2348. CREATE OPERATOR >= (
  2349. PROCEDURE = isnge,
  2350. LEFTARG = issn13,
  2351. RIGHTARG = ean13,
  2352. COMMUTATOR = <=,
  2353. NEGATOR = <,
  2354. RESTRICT = scalargtsel,
  2355. JOIN = scalargtjoinsel );
  2356. CREATE OPERATOR > (
  2357. PROCEDURE = isngt,
  2358. LEFTARG = issn13,
  2359. RIGHTARG = ean13,
  2360. COMMUTATOR = <,
  2361. NEGATOR = <=,
  2362. RESTRICT = scalargtsel,
  2363. JOIN = scalargtjoinsel );
  2364. CREATE OPERATOR <> (
  2365. PROCEDURE = isnne,
  2366. LEFTARG = issn13,
  2367. RIGHTARG = ean13,
  2368. COMMUTATOR = <>,
  2369. NEGATOR = =,
  2370. RESTRICT = neqsel,
  2371. JOIN = neqjoinsel);
  2372. --
  2373. -- ISSN operators:
  2374. --
  2375. ---------------------------------------------------
  2376. CREATE OPERATOR < (
  2377. PROCEDURE = isnlt,
  2378. LEFTARG = issn,
  2379. RIGHTARG = issn,
  2380. COMMUTATOR = >,
  2381. NEGATOR = >=,
  2382. RESTRICT = scalarltsel,
  2383. JOIN = scalarltjoinsel);
  2384. CREATE OPERATOR <= (
  2385. PROCEDURE = isnle,
  2386. LEFTARG = issn,
  2387. RIGHTARG = issn,
  2388. COMMUTATOR = >=,
  2389. NEGATOR = >,
  2390. RESTRICT = scalarltsel,
  2391. JOIN = scalarltjoinsel);
  2392. CREATE OPERATOR = (
  2393. PROCEDURE = isneq,
  2394. LEFTARG = issn,
  2395. RIGHTARG = issn,
  2396. COMMUTATOR = =,
  2397. NEGATOR = <>,
  2398. RESTRICT = eqsel,
  2399. JOIN = eqjoinsel,
  2400. MERGES,
  2401. HASHES);
  2402. CREATE OPERATOR >= (
  2403. PROCEDURE = isnge,
  2404. LEFTARG = issn,
  2405. RIGHTARG = issn,
  2406. COMMUTATOR = <=,
  2407. NEGATOR = <,
  2408. RESTRICT = scalargtsel,
  2409. JOIN = scalargtjoinsel );
  2410. CREATE OPERATOR > (
  2411. PROCEDURE = isngt,
  2412. LEFTARG = issn,
  2413. RIGHTARG = issn,
  2414. COMMUTATOR = <,
  2415. NEGATOR = <=,
  2416. RESTRICT = scalargtsel,
  2417. JOIN = scalargtjoinsel );
  2418. CREATE OPERATOR <> (
  2419. PROCEDURE = isnne,
  2420. LEFTARG = issn,
  2421. RIGHTARG = issn,
  2422. COMMUTATOR = <>,
  2423. NEGATOR = =,
  2424. RESTRICT = neqsel,
  2425. JOIN = neqjoinsel);
  2426. CREATE OPERATOR < (
  2427. PROCEDURE = isnlt,
  2428. LEFTARG = issn,
  2429. RIGHTARG = issn13,
  2430. COMMUTATOR = >,
  2431. NEGATOR = >=,
  2432. RESTRICT = scalarltsel,
  2433. JOIN = scalarltjoinsel);
  2434. CREATE OPERATOR <= (
  2435. PROCEDURE = isnle,
  2436. LEFTARG = issn,
  2437. RIGHTARG = issn13,
  2438. COMMUTATOR = >=,
  2439. NEGATOR = >,
  2440. RESTRICT = scalarltsel,
  2441. JOIN = scalarltjoinsel);
  2442. CREATE OPERATOR = (
  2443. PROCEDURE = isneq,
  2444. LEFTARG = issn,
  2445. RIGHTARG = issn13,
  2446. COMMUTATOR = =,
  2447. NEGATOR = <>,
  2448. RESTRICT = eqsel,
  2449. JOIN = eqjoinsel,
  2450. MERGES,
  2451. HASHES);
  2452. CREATE OPERATOR >= (
  2453. PROCEDURE = isnge,
  2454. LEFTARG = issn,
  2455. RIGHTARG = issn13,
  2456. COMMUTATOR = <=,
  2457. NEGATOR = <,
  2458. RESTRICT = scalargtsel,
  2459. JOIN = scalargtjoinsel );
  2460. CREATE OPERATOR > (
  2461. PROCEDURE = isngt,
  2462. LEFTARG = issn,
  2463. RIGHTARG = issn13,
  2464. COMMUTATOR = <,
  2465. NEGATOR = <=,
  2466. RESTRICT = scalargtsel,
  2467. JOIN = scalargtjoinsel );
  2468. CREATE OPERATOR <> (
  2469. PROCEDURE = isnne,
  2470. LEFTARG = issn,
  2471. RIGHTARG = issn13,
  2472. COMMUTATOR = <>,
  2473. NEGATOR = =,
  2474. RESTRICT = neqsel,
  2475. JOIN = neqjoinsel);
  2476. CREATE OPERATOR < (
  2477. PROCEDURE = isnlt,
  2478. LEFTARG = issn,
  2479. RIGHTARG = ean13,
  2480. COMMUTATOR = >,
  2481. NEGATOR = >=,
  2482. RESTRICT = scalarltsel,
  2483. JOIN = scalarltjoinsel);
  2484. CREATE OPERATOR <= (
  2485. PROCEDURE = isnle,
  2486. LEFTARG = issn,
  2487. RIGHTARG = ean13,
  2488. COMMUTATOR = >=,
  2489. NEGATOR = >,
  2490. RESTRICT = scalarltsel,
  2491. JOIN = scalarltjoinsel);
  2492. CREATE OPERATOR = (
  2493. PROCEDURE = isneq,
  2494. LEFTARG = issn,
  2495. RIGHTARG = ean13,
  2496. COMMUTATOR = =,
  2497. NEGATOR = <>,
  2498. RESTRICT = eqsel,
  2499. JOIN = eqjoinsel,
  2500. MERGES,
  2501. HASHES);
  2502. CREATE OPERATOR >= (
  2503. PROCEDURE = isnge,
  2504. LEFTARG = issn,
  2505. RIGHTARG = ean13,
  2506. COMMUTATOR = <=,
  2507. NEGATOR = <,
  2508. RESTRICT = scalargtsel,
  2509. JOIN = scalargtjoinsel );
  2510. CREATE OPERATOR > (
  2511. PROCEDURE = isngt,
  2512. LEFTARG = issn,
  2513. RIGHTARG = ean13,
  2514. COMMUTATOR = <,
  2515. NEGATOR = <=,
  2516. RESTRICT = scalargtsel,
  2517. JOIN = scalargtjoinsel );
  2518. CREATE OPERATOR <> (
  2519. PROCEDURE = isnne,
  2520. LEFTARG = issn,
  2521. RIGHTARG = ean13,
  2522. COMMUTATOR = <>,
  2523. NEGATOR = =,
  2524. RESTRICT = neqsel,
  2525. JOIN = neqjoinsel);
  2526. --
  2527. -- UPC operators:
  2528. --
  2529. ---------------------------------------------------
  2530. CREATE OPERATOR < (
  2531. PROCEDURE = isnlt,
  2532. LEFTARG = upc,
  2533. RIGHTARG = upc,
  2534. COMMUTATOR = >,
  2535. NEGATOR = >=,
  2536. RESTRICT = scalarltsel,
  2537. JOIN = scalarltjoinsel);
  2538. CREATE OPERATOR <= (
  2539. PROCEDURE = isnle,
  2540. LEFTARG = upc,
  2541. RIGHTARG = upc,
  2542. COMMUTATOR = >=,
  2543. NEGATOR = >,
  2544. RESTRICT = scalarltsel,
  2545. JOIN = scalarltjoinsel);
  2546. CREATE OPERATOR = (
  2547. PROCEDURE = isneq,
  2548. LEFTARG = upc,
  2549. RIGHTARG = upc,
  2550. COMMUTATOR = =,
  2551. NEGATOR = <>,
  2552. RESTRICT = eqsel,
  2553. JOIN = eqjoinsel,
  2554. MERGES,
  2555. HASHES);
  2556. CREATE OPERATOR >= (
  2557. PROCEDURE = isnge,
  2558. LEFTARG = upc,
  2559. RIGHTARG = upc,
  2560. COMMUTATOR = <=,
  2561. NEGATOR = <,
  2562. RESTRICT = scalargtsel,
  2563. JOIN = scalargtjoinsel );
  2564. CREATE OPERATOR > (
  2565. PROCEDURE = isngt,
  2566. LEFTARG = upc,
  2567. RIGHTARG = upc,
  2568. COMMUTATOR = <,
  2569. NEGATOR = <=,
  2570. RESTRICT = scalargtsel,
  2571. JOIN = scalargtjoinsel );
  2572. CREATE OPERATOR <> (
  2573. PROCEDURE = isnne,
  2574. LEFTARG = upc,
  2575. RIGHTARG = upc,
  2576. COMMUTATOR = <>,
  2577. NEGATOR = =,
  2578. RESTRICT = neqsel,
  2579. JOIN = neqjoinsel);
  2580. CREATE OPERATOR < (
  2581. PROCEDURE = isnlt,
  2582. LEFTARG = upc,
  2583. RIGHTARG = ean13,
  2584. COMMUTATOR = >,
  2585. NEGATOR = >=,
  2586. RESTRICT = scalarltsel,
  2587. JOIN = scalarltjoinsel);
  2588. CREATE OPERATOR <= (
  2589. PROCEDURE = isnle,
  2590. LEFTARG = upc,
  2591. RIGHTARG = ean13,
  2592. COMMUTATOR = >=,
  2593. NEGATOR = >,
  2594. RESTRICT = scalarltsel,
  2595. JOIN = scalarltjoinsel);
  2596. CREATE OPERATOR = (
  2597. PROCEDURE = isneq,
  2598. LEFTARG = upc,
  2599. RIGHTARG = ean13,
  2600. COMMUTATOR = =,
  2601. NEGATOR = <>,
  2602. RESTRICT = eqsel,
  2603. JOIN = eqjoinsel,
  2604. MERGES,
  2605. HASHES);
  2606. CREATE OPERATOR >= (
  2607. PROCEDURE = isnge,
  2608. LEFTARG = upc,
  2609. RIGHTARG = ean13,
  2610. COMMUTATOR = <=,
  2611. NEGATOR = <,
  2612. RESTRICT = scalargtsel,
  2613. JOIN = scalargtjoinsel );
  2614. CREATE OPERATOR > (
  2615. PROCEDURE = isngt,
  2616. LEFTARG = upc,
  2617. RIGHTARG = ean13,
  2618. COMMUTATOR = <,
  2619. NEGATOR = <=,
  2620. RESTRICT = scalargtsel,
  2621. JOIN = scalargtjoinsel );
  2622. CREATE OPERATOR <> (
  2623. PROCEDURE = isnne,
  2624. LEFTARG = upc,
  2625. RIGHTARG = ean13,
  2626. COMMUTATOR = <>,
  2627. NEGATOR = =,
  2628. RESTRICT = neqsel,
  2629. JOIN = neqjoinsel);
  2630. --
  2631. -- Operator families for the various operator classes:
  2632. --
  2633. ---------------------------------------------------
  2634. CREATE OPERATOR FAMILY isn_ops USING btree;
  2635. CREATE OPERATOR FAMILY isn_ops USING hash;
  2636. --
  2637. -- Operator classes:
  2638. --
  2639. ---------------------------------------------------
  2640. -- EAN13:
  2641. CREATE FUNCTION btean13cmp(ean13, ean13)
  2642. RETURNS int4
  2643. AS 'btint8cmp'
  2644. LANGUAGE 'internal'
  2645. IMMUTABLE STRICT
  2646. PARALLEL SAFE;
  2647. CREATE OPERATOR CLASS ean13_ops DEFAULT
  2648. FOR TYPE ean13 USING btree FAMILY isn_ops AS
  2649. OPERATOR 1 <,
  2650. OPERATOR 2 <=,
  2651. OPERATOR 3 =,
  2652. OPERATOR 4 >=,
  2653. OPERATOR 5 >,
  2654. FUNCTION 1 btean13cmp(ean13, ean13);
  2655. CREATE FUNCTION hashean13(ean13)
  2656. RETURNS int4
  2657. AS 'hashint8'
  2658. LANGUAGE 'internal' IMMUTABLE STRICT
  2659. PARALLEL SAFE;
  2660. CREATE OPERATOR CLASS ean13_ops DEFAULT
  2661. FOR TYPE ean13 USING hash FAMILY isn_ops AS
  2662. OPERATOR 1 =,
  2663. FUNCTION 1 hashean13(ean13);
  2664. -- EAN13 vs other types:
  2665. CREATE FUNCTION btean13cmp(ean13, isbn13)
  2666. RETURNS int4
  2667. AS 'btint8cmp'
  2668. LANGUAGE 'internal'
  2669. IMMUTABLE STRICT
  2670. PARALLEL SAFE;
  2671. CREATE FUNCTION btean13cmp(ean13, ismn13)
  2672. RETURNS int4
  2673. AS 'btint8cmp'
  2674. LANGUAGE 'internal'
  2675. IMMUTABLE STRICT
  2676. PARALLEL SAFE;
  2677. CREATE FUNCTION btean13cmp(ean13, issn13)
  2678. RETURNS int4
  2679. AS 'btint8cmp'
  2680. LANGUAGE 'internal'
  2681. IMMUTABLE STRICT
  2682. PARALLEL SAFE;
  2683. CREATE FUNCTION btean13cmp(ean13, isbn)
  2684. RETURNS int4
  2685. AS 'btint8cmp'
  2686. LANGUAGE 'internal'
  2687. IMMUTABLE STRICT
  2688. PARALLEL SAFE;
  2689. CREATE FUNCTION btean13cmp(ean13, ismn)
  2690. RETURNS int4
  2691. AS 'btint8cmp'
  2692. LANGUAGE 'internal'
  2693. IMMUTABLE STRICT
  2694. PARALLEL SAFE;
  2695. CREATE FUNCTION btean13cmp(ean13, issn)
  2696. RETURNS int4
  2697. AS 'btint8cmp'
  2698. LANGUAGE 'internal'
  2699. IMMUTABLE STRICT
  2700. PARALLEL SAFE;
  2701. CREATE FUNCTION btean13cmp(ean13, upc)
  2702. RETURNS int4
  2703. AS 'btint8cmp'
  2704. LANGUAGE 'internal'
  2705. IMMUTABLE STRICT
  2706. PARALLEL SAFE;
  2707. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  2708. OPERATOR 1 < (ean13, isbn13),
  2709. OPERATOR 1 < (ean13, ismn13),
  2710. OPERATOR 1 < (ean13, issn13),
  2711. OPERATOR 1 < (ean13, isbn),
  2712. OPERATOR 1 < (ean13, ismn),
  2713. OPERATOR 1 < (ean13, issn),
  2714. OPERATOR 1 < (ean13, upc),
  2715. OPERATOR 2 <= (ean13, isbn13),
  2716. OPERATOR 2 <= (ean13, ismn13),
  2717. OPERATOR 2 <= (ean13, issn13),
  2718. OPERATOR 2 <= (ean13, isbn),
  2719. OPERATOR 2 <= (ean13, ismn),
  2720. OPERATOR 2 <= (ean13, issn),
  2721. OPERATOR 2 <= (ean13, upc),
  2722. OPERATOR 3 = (ean13, isbn13),
  2723. OPERATOR 3 = (ean13, ismn13),
  2724. OPERATOR 3 = (ean13, issn13),
  2725. OPERATOR 3 = (ean13, isbn),
  2726. OPERATOR 3 = (ean13, ismn),
  2727. OPERATOR 3 = (ean13, issn),
  2728. OPERATOR 3 = (ean13, upc),
  2729. OPERATOR 4 >= (ean13, isbn13),
  2730. OPERATOR 4 >= (ean13, ismn13),
  2731. OPERATOR 4 >= (ean13, issn13),
  2732. OPERATOR 4 >= (ean13, isbn),
  2733. OPERATOR 4 >= (ean13, ismn),
  2734. OPERATOR 4 >= (ean13, issn),
  2735. OPERATOR 4 >= (ean13, upc),
  2736. OPERATOR 5 > (ean13, isbn13),
  2737. OPERATOR 5 > (ean13, ismn13),
  2738. OPERATOR 5 > (ean13, issn13),
  2739. OPERATOR 5 > (ean13, isbn),
  2740. OPERATOR 5 > (ean13, ismn),
  2741. OPERATOR 5 > (ean13, issn),
  2742. OPERATOR 5 > (ean13, upc),
  2743. FUNCTION 1 btean13cmp(ean13, isbn13),
  2744. FUNCTION 1 btean13cmp(ean13, ismn13),
  2745. FUNCTION 1 btean13cmp(ean13, issn13),
  2746. FUNCTION 1 btean13cmp(ean13, isbn),
  2747. FUNCTION 1 btean13cmp(ean13, ismn),
  2748. FUNCTION 1 btean13cmp(ean13, issn),
  2749. FUNCTION 1 btean13cmp(ean13, upc);
  2750. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  2751. OPERATOR 1 = (ean13, isbn13),
  2752. OPERATOR 1 = (ean13, ismn13),
  2753. OPERATOR 1 = (ean13, issn13),
  2754. OPERATOR 1 = (ean13, isbn),
  2755. OPERATOR 1 = (ean13, ismn),
  2756. OPERATOR 1 = (ean13, issn),
  2757. OPERATOR 1 = (ean13, upc);
  2758. ---------------------------------------------------
  2759. -- ISBN13:
  2760. CREATE FUNCTION btisbn13cmp(isbn13, isbn13)
  2761. RETURNS int4
  2762. AS 'btint8cmp'
  2763. LANGUAGE 'internal'
  2764. IMMUTABLE STRICT
  2765. PARALLEL SAFE;
  2766. CREATE OPERATOR CLASS isbn13_ops DEFAULT
  2767. FOR TYPE isbn13 USING btree FAMILY isn_ops AS
  2768. OPERATOR 1 <,
  2769. OPERATOR 2 <=,
  2770. OPERATOR 3 =,
  2771. OPERATOR 4 >=,
  2772. OPERATOR 5 >,
  2773. FUNCTION 1 btisbn13cmp(isbn13, isbn13);
  2774. CREATE FUNCTION hashisbn13(isbn13)
  2775. RETURNS int4
  2776. AS 'hashint8'
  2777. LANGUAGE 'internal'
  2778. IMMUTABLE STRICT
  2779. PARALLEL SAFE;
  2780. CREATE OPERATOR CLASS isbn13_ops DEFAULT
  2781. FOR TYPE isbn13 USING hash FAMILY isn_ops AS
  2782. OPERATOR 1 =,
  2783. FUNCTION 1 hashisbn13(isbn13);
  2784. -- ISBN13 vs other types:
  2785. CREATE FUNCTION btisbn13cmp(isbn13, ean13)
  2786. RETURNS int4
  2787. AS 'btint8cmp'
  2788. LANGUAGE 'internal'
  2789. IMMUTABLE STRICT
  2790. PARALLEL SAFE;
  2791. CREATE FUNCTION btisbn13cmp(isbn13, isbn)
  2792. RETURNS int4
  2793. AS 'btint8cmp'
  2794. LANGUAGE 'internal'
  2795. IMMUTABLE STRICT
  2796. PARALLEL SAFE;
  2797. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  2798. OPERATOR 1 < (isbn13, ean13),
  2799. OPERATOR 1 < (isbn13, isbn),
  2800. OPERATOR 2 <= (isbn13, ean13),
  2801. OPERATOR 2 <= (isbn13, isbn),
  2802. OPERATOR 3 = (isbn13, ean13),
  2803. OPERATOR 3 = (isbn13, isbn),
  2804. OPERATOR 4 >= (isbn13, ean13),
  2805. OPERATOR 4 >= (isbn13, isbn),
  2806. OPERATOR 5 > (isbn13, ean13),
  2807. OPERATOR 5 > (isbn13, isbn),
  2808. FUNCTION 1 btisbn13cmp(isbn13, ean13),
  2809. FUNCTION 1 btisbn13cmp(isbn13, isbn);
  2810. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  2811. OPERATOR 1 = (isbn13, ean13),
  2812. OPERATOR 1 = (isbn13, isbn);
  2813. ---------------------------------------------------
  2814. -- ISBN:
  2815. CREATE FUNCTION btisbncmp(isbn, isbn)
  2816. RETURNS int4
  2817. AS 'btint8cmp'
  2818. LANGUAGE 'internal'
  2819. IMMUTABLE STRICT
  2820. PARALLEL SAFE;
  2821. CREATE OPERATOR CLASS isbn_ops DEFAULT
  2822. FOR TYPE isbn USING btree FAMILY isn_ops AS
  2823. OPERATOR 1 <,
  2824. OPERATOR 2 <=,
  2825. OPERATOR 3 =,
  2826. OPERATOR 4 >=,
  2827. OPERATOR 5 >,
  2828. FUNCTION 1 btisbncmp(isbn, isbn);
  2829. CREATE FUNCTION hashisbn(isbn)
  2830. RETURNS int4
  2831. AS 'hashint8'
  2832. LANGUAGE 'internal'
  2833. IMMUTABLE STRICT
  2834. PARALLEL SAFE;
  2835. CREATE OPERATOR CLASS isbn_ops DEFAULT
  2836. FOR TYPE isbn USING hash FAMILY isn_ops AS
  2837. OPERATOR 1 =,
  2838. FUNCTION 1 hashisbn(isbn);
  2839. -- ISBN vs other types:
  2840. CREATE FUNCTION btisbncmp(isbn, ean13)
  2841. RETURNS int4
  2842. AS 'btint8cmp'
  2843. LANGUAGE 'internal'
  2844. IMMUTABLE STRICT
  2845. PARALLEL SAFE;
  2846. CREATE FUNCTION btisbncmp(isbn, isbn13)
  2847. RETURNS int4
  2848. AS 'btint8cmp'
  2849. LANGUAGE 'internal'
  2850. IMMUTABLE STRICT
  2851. PARALLEL SAFE;
  2852. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  2853. OPERATOR 1 < (isbn, ean13),
  2854. OPERATOR 1 < (isbn, isbn13),
  2855. OPERATOR 2 <= (isbn, ean13),
  2856. OPERATOR 2 <= (isbn, isbn13),
  2857. OPERATOR 3 = (isbn, ean13),
  2858. OPERATOR 3 = (isbn, isbn13),
  2859. OPERATOR 4 >= (isbn, ean13),
  2860. OPERATOR 4 >= (isbn, isbn13),
  2861. OPERATOR 5 > (isbn, ean13),
  2862. OPERATOR 5 > (isbn, isbn13),
  2863. FUNCTION 1 btisbncmp(isbn, ean13),
  2864. FUNCTION 1 btisbncmp(isbn, isbn13);
  2865. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  2866. OPERATOR 1 = (isbn, ean13),
  2867. OPERATOR 1 = (isbn, isbn13);
  2868. ---------------------------------------------------
  2869. -- ISMN13:
  2870. CREATE FUNCTION btismn13cmp(ismn13, ismn13)
  2871. RETURNS int4
  2872. AS 'btint8cmp'
  2873. LANGUAGE 'internal'
  2874. IMMUTABLE STRICT
  2875. PARALLEL SAFE;
  2876. CREATE OPERATOR CLASS ismn13_ops DEFAULT
  2877. FOR TYPE ismn13 USING btree FAMILY isn_ops AS
  2878. OPERATOR 1 <,
  2879. OPERATOR 2 <=,
  2880. OPERATOR 3 =,
  2881. OPERATOR 4 >=,
  2882. OPERATOR 5 >,
  2883. FUNCTION 1 btismn13cmp(ismn13, ismn13);
  2884. CREATE FUNCTION hashismn13(ismn13)
  2885. RETURNS int4
  2886. AS 'hashint8'
  2887. LANGUAGE 'internal'
  2888. IMMUTABLE STRICT
  2889. PARALLEL SAFE;
  2890. CREATE OPERATOR CLASS ismn13_ops DEFAULT
  2891. FOR TYPE ismn13 USING hash FAMILY isn_ops AS
  2892. OPERATOR 1 =,
  2893. FUNCTION 1 hashismn13(ismn13);
  2894. -- ISMN13 vs other types:
  2895. CREATE FUNCTION btismn13cmp(ismn13, ean13)
  2896. RETURNS int4
  2897. AS 'btint8cmp'
  2898. LANGUAGE 'internal'
  2899. IMMUTABLE STRICT
  2900. PARALLEL SAFE;
  2901. CREATE FUNCTION btismn13cmp(ismn13, ismn)
  2902. RETURNS int4
  2903. AS 'btint8cmp'
  2904. LANGUAGE 'internal'
  2905. IMMUTABLE STRICT
  2906. PARALLEL SAFE;
  2907. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  2908. OPERATOR 1 < (ismn13, ean13),
  2909. OPERATOR 1 < (ismn13, ismn),
  2910. OPERATOR 2 <= (ismn13, ean13),
  2911. OPERATOR 2 <= (ismn13, ismn),
  2912. OPERATOR 3 = (ismn13, ean13),
  2913. OPERATOR 3 = (ismn13, ismn),
  2914. OPERATOR 4 >= (ismn13, ean13),
  2915. OPERATOR 4 >= (ismn13, ismn),
  2916. OPERATOR 5 > (ismn13, ean13),
  2917. OPERATOR 5 > (ismn13, ismn),
  2918. FUNCTION 1 btismn13cmp(ismn13, ean13),
  2919. FUNCTION 1 btismn13cmp(ismn13, ismn);
  2920. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  2921. OPERATOR 1 = (ismn13, ean13),
  2922. OPERATOR 1 = (ismn13, ismn);
  2923. ---------------------------------------------------
  2924. -- ISMN:
  2925. CREATE FUNCTION btismncmp(ismn, ismn)
  2926. RETURNS int4
  2927. AS 'btint8cmp'
  2928. LANGUAGE 'internal'
  2929. IMMUTABLE STRICT
  2930. PARALLEL SAFE;
  2931. CREATE OPERATOR CLASS ismn_ops DEFAULT
  2932. FOR TYPE ismn USING btree FAMILY isn_ops AS
  2933. OPERATOR 1 <,
  2934. OPERATOR 2 <=,
  2935. OPERATOR 3 =,
  2936. OPERATOR 4 >=,
  2937. OPERATOR 5 >,
  2938. FUNCTION 1 btismncmp(ismn, ismn);
  2939. CREATE FUNCTION hashismn(ismn)
  2940. RETURNS int4
  2941. AS 'hashint8'
  2942. LANGUAGE 'internal'
  2943. IMMUTABLE STRICT
  2944. PARALLEL SAFE;
  2945. CREATE OPERATOR CLASS ismn_ops DEFAULT
  2946. FOR TYPE ismn USING hash FAMILY isn_ops AS
  2947. OPERATOR 1 =,
  2948. FUNCTION 1 hashismn(ismn);
  2949. -- ISMN vs other types:
  2950. CREATE FUNCTION btismncmp(ismn, ean13)
  2951. RETURNS int4
  2952. AS 'btint8cmp'
  2953. LANGUAGE 'internal'
  2954. IMMUTABLE STRICT
  2955. PARALLEL SAFE;
  2956. CREATE FUNCTION btismncmp(ismn, ismn13)
  2957. RETURNS int4
  2958. AS 'btint8cmp'
  2959. LANGUAGE 'internal'
  2960. IMMUTABLE STRICT
  2961. PARALLEL SAFE;
  2962. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  2963. OPERATOR 1 < (ismn, ean13),
  2964. OPERATOR 1 < (ismn, ismn13),
  2965. OPERATOR 2 <= (ismn, ean13),
  2966. OPERATOR 2 <= (ismn, ismn13),
  2967. OPERATOR 3 = (ismn, ean13),
  2968. OPERATOR 3 = (ismn, ismn13),
  2969. OPERATOR 4 >= (ismn, ean13),
  2970. OPERATOR 4 >= (ismn, ismn13),
  2971. OPERATOR 5 > (ismn, ean13),
  2972. OPERATOR 5 > (ismn, ismn13),
  2973. FUNCTION 1 btismncmp(ismn, ean13),
  2974. FUNCTION 1 btismncmp(ismn, ismn13);
  2975. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  2976. OPERATOR 1 = (ismn, ean13),
  2977. OPERATOR 1 = (ismn, ismn13);
  2978. ---------------------------------------------------
  2979. -- ISSN13:
  2980. CREATE FUNCTION btissn13cmp(issn13, issn13)
  2981. RETURNS int4
  2982. AS 'btint8cmp'
  2983. LANGUAGE 'internal'
  2984. IMMUTABLE STRICT
  2985. PARALLEL SAFE;
  2986. CREATE OPERATOR CLASS issn13_ops DEFAULT
  2987. FOR TYPE issn13 USING btree FAMILY isn_ops AS
  2988. OPERATOR 1 <,
  2989. OPERATOR 2 <=,
  2990. OPERATOR 3 =,
  2991. OPERATOR 4 >=,
  2992. OPERATOR 5 >,
  2993. FUNCTION 1 btissn13cmp(issn13, issn13);
  2994. CREATE FUNCTION hashissn13(issn13)
  2995. RETURNS int4
  2996. AS 'hashint8'
  2997. LANGUAGE 'internal'
  2998. IMMUTABLE STRICT
  2999. PARALLEL SAFE;
  3000. CREATE OPERATOR CLASS issn13_ops DEFAULT
  3001. FOR TYPE issn13 USING hash FAMILY isn_ops AS
  3002. OPERATOR 1 =,
  3003. FUNCTION 1 hashissn13(issn13);
  3004. -- ISSN13 vs other types:
  3005. CREATE FUNCTION btissn13cmp(issn13, ean13)
  3006. RETURNS int4
  3007. AS 'btint8cmp'
  3008. LANGUAGE 'internal'
  3009. IMMUTABLE STRICT
  3010. PARALLEL SAFE;
  3011. CREATE FUNCTION btissn13cmp(issn13, issn)
  3012. RETURNS int4
  3013. AS 'btint8cmp'
  3014. LANGUAGE 'internal'
  3015. IMMUTABLE STRICT
  3016. PARALLEL SAFE;
  3017. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  3018. OPERATOR 1 < (issn13, ean13),
  3019. OPERATOR 1 < (issn13, issn),
  3020. OPERATOR 2 <= (issn13, ean13),
  3021. OPERATOR 2 <= (issn13, issn),
  3022. OPERATOR 3 = (issn13, ean13),
  3023. OPERATOR 3 = (issn13, issn),
  3024. OPERATOR 4 >= (issn13, ean13),
  3025. OPERATOR 4 >= (issn13, issn),
  3026. OPERATOR 5 > (issn13, ean13),
  3027. OPERATOR 5 > (issn13, issn),
  3028. FUNCTION 1 btissn13cmp(issn13, ean13),
  3029. FUNCTION 1 btissn13cmp(issn13, issn);
  3030. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  3031. OPERATOR 1 = (issn13, ean13),
  3032. OPERATOR 1 = (issn13, issn);
  3033. ---------------------------------------------------
  3034. -- ISSN:
  3035. CREATE FUNCTION btissncmp(issn, issn)
  3036. RETURNS int4
  3037. AS 'btint8cmp'
  3038. LANGUAGE 'internal'
  3039. IMMUTABLE STRICT
  3040. PARALLEL SAFE;
  3041. CREATE OPERATOR CLASS issn_ops DEFAULT
  3042. FOR TYPE issn USING btree FAMILY isn_ops AS
  3043. OPERATOR 1 <,
  3044. OPERATOR 2 <=,
  3045. OPERATOR 3 =,
  3046. OPERATOR 4 >=,
  3047. OPERATOR 5 >,
  3048. FUNCTION 1 btissncmp(issn, issn);
  3049. CREATE FUNCTION hashissn(issn)
  3050. RETURNS int4
  3051. AS 'hashint8'
  3052. LANGUAGE 'internal'
  3053. IMMUTABLE STRICT
  3054. PARALLEL SAFE;
  3055. CREATE OPERATOR CLASS issn_ops DEFAULT
  3056. FOR TYPE issn USING hash FAMILY isn_ops AS
  3057. OPERATOR 1 =,
  3058. FUNCTION 1 hashissn(issn);
  3059. -- ISSN vs other types:
  3060. CREATE FUNCTION btissncmp(issn, ean13)
  3061. RETURNS int4
  3062. AS 'btint8cmp'
  3063. LANGUAGE 'internal'
  3064. IMMUTABLE STRICT
  3065. PARALLEL SAFE;
  3066. CREATE FUNCTION btissncmp(issn, issn13)
  3067. RETURNS int4
  3068. AS 'btint8cmp'
  3069. LANGUAGE 'internal'
  3070. IMMUTABLE STRICT
  3071. PARALLEL SAFE;
  3072. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  3073. OPERATOR 1 < (issn, ean13),
  3074. OPERATOR 1 < (issn, issn13),
  3075. OPERATOR 2 <= (issn, ean13),
  3076. OPERATOR 2 <= (issn, issn13),
  3077. OPERATOR 3 = (issn, ean13),
  3078. OPERATOR 3 = (issn, issn13),
  3079. OPERATOR 4 >= (issn, ean13),
  3080. OPERATOR 4 >= (issn, issn13),
  3081. OPERATOR 5 > (issn, ean13),
  3082. OPERATOR 5 > (issn, issn13),
  3083. FUNCTION 1 btissncmp(issn, ean13),
  3084. FUNCTION 1 btissncmp(issn, issn13);
  3085. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  3086. OPERATOR 1 = (issn, ean13),
  3087. OPERATOR 1 = (issn, issn13);
  3088. ---------------------------------------------------
  3089. -- UPC:
  3090. CREATE FUNCTION btupccmp(upc, upc)
  3091. RETURNS int4
  3092. AS 'btint8cmp'
  3093. LANGUAGE 'internal'
  3094. IMMUTABLE STRICT
  3095. PARALLEL SAFE;
  3096. CREATE OPERATOR CLASS upc_ops DEFAULT
  3097. FOR TYPE upc USING btree FAMILY isn_ops AS
  3098. OPERATOR 1 <,
  3099. OPERATOR 2 <=,
  3100. OPERATOR 3 =,
  3101. OPERATOR 4 >=,
  3102. OPERATOR 5 >,
  3103. FUNCTION 1 btupccmp(upc, upc);
  3104. CREATE FUNCTION hashupc(upc)
  3105. RETURNS int4
  3106. AS 'hashint8'
  3107. LANGUAGE 'internal'
  3108. IMMUTABLE STRICT
  3109. PARALLEL SAFE;
  3110. CREATE OPERATOR CLASS upc_ops DEFAULT
  3111. FOR TYPE upc USING hash FAMILY isn_ops AS
  3112. OPERATOR 1 =,
  3113. FUNCTION 1 hashupc(upc);
  3114. -- UPC vs other types:
  3115. CREATE FUNCTION btupccmp(upc, ean13)
  3116. RETURNS int4
  3117. AS 'btint8cmp'
  3118. LANGUAGE 'internal'
  3119. IMMUTABLE STRICT
  3120. PARALLEL SAFE;
  3121. ALTER OPERATOR FAMILY isn_ops USING btree ADD
  3122. OPERATOR 1 < (upc, ean13),
  3123. OPERATOR 2 <= (upc, ean13),
  3124. OPERATOR 3 = (upc, ean13),
  3125. OPERATOR 4 >= (upc, ean13),
  3126. OPERATOR 5 > (upc, ean13),
  3127. FUNCTION 1 btupccmp(upc, ean13);
  3128. ALTER OPERATOR FAMILY isn_ops USING hash ADD
  3129. OPERATOR 1 = (upc, ean13);
  3130. --
  3131. -- Type casts:
  3132. --
  3133. ---------------------------------------------------
  3134. CREATE FUNCTION isbn13(ean13)
  3135. RETURNS isbn13
  3136. AS 'MODULE_PATHNAME', 'isbn_cast_from_ean13'
  3137. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3138. CREATE FUNCTION ismn13(ean13)
  3139. RETURNS ismn13
  3140. AS 'MODULE_PATHNAME', 'ismn_cast_from_ean13'
  3141. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3142. CREATE FUNCTION issn13(ean13)
  3143. RETURNS issn13
  3144. AS 'MODULE_PATHNAME', 'issn_cast_from_ean13'
  3145. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3146. CREATE FUNCTION isbn(ean13)
  3147. RETURNS isbn
  3148. AS 'MODULE_PATHNAME', 'isbn_cast_from_ean13'
  3149. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3150. CREATE FUNCTION ismn(ean13)
  3151. RETURNS ismn
  3152. AS 'MODULE_PATHNAME', 'ismn_cast_from_ean13'
  3153. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3154. CREATE FUNCTION issn(ean13)
  3155. RETURNS issn
  3156. AS 'MODULE_PATHNAME', 'issn_cast_from_ean13'
  3157. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3158. CREATE FUNCTION upc(ean13)
  3159. RETURNS upc
  3160. AS 'MODULE_PATHNAME', 'upc_cast_from_ean13'
  3161. LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
  3162. CREATE CAST (ean13 AS isbn13) WITH FUNCTION isbn13(ean13);
  3163. CREATE CAST (ean13 AS isbn) WITH FUNCTION isbn(ean13);
  3164. CREATE CAST (ean13 AS ismn13) WITH FUNCTION ismn13(ean13);
  3165. CREATE CAST (ean13 AS ismn) WITH FUNCTION ismn(ean13);
  3166. CREATE CAST (ean13 AS issn13) WITH FUNCTION issn13(ean13);
  3167. CREATE CAST (ean13 AS issn) WITH FUNCTION issn(ean13);
  3168. CREATE CAST (ean13 AS upc) WITH FUNCTION upc(ean13);
  3169. CREATE CAST (isbn13 AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3170. CREATE CAST (isbn AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3171. CREATE CAST (ismn13 AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3172. CREATE CAST (ismn AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3173. CREATE CAST (issn13 AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3174. CREATE CAST (issn AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3175. CREATE CAST (upc AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
  3176. CREATE CAST (isbn AS isbn13) WITHOUT FUNCTION AS ASSIGNMENT;
  3177. CREATE CAST (isbn13 AS isbn) WITHOUT FUNCTION AS ASSIGNMENT;
  3178. CREATE CAST (ismn AS ismn13) WITHOUT FUNCTION AS ASSIGNMENT;
  3179. CREATE CAST (ismn13 AS ismn) WITHOUT FUNCTION AS ASSIGNMENT;
  3180. CREATE CAST (issn AS issn13) WITHOUT FUNCTION AS ASSIGNMENT;
  3181. CREATE CAST (issn13 AS issn) WITHOUT FUNCTION AS ASSIGNMENT;
  3182. --
  3183. -- Validation stuff for lose types:
  3184. --
  3185. CREATE FUNCTION make_valid(ean13)
  3186. RETURNS ean13
  3187. AS 'MODULE_PATHNAME'
  3188. LANGUAGE C
  3189. IMMUTABLE STRICT
  3190. PARALLEL SAFE;
  3191. CREATE FUNCTION make_valid(isbn13)
  3192. RETURNS isbn13
  3193. AS 'MODULE_PATHNAME'
  3194. LANGUAGE C
  3195. IMMUTABLE STRICT
  3196. PARALLEL SAFE;
  3197. CREATE FUNCTION make_valid(ismn13)
  3198. RETURNS ismn13
  3199. AS 'MODULE_PATHNAME'
  3200. LANGUAGE C
  3201. IMMUTABLE STRICT
  3202. PARALLEL SAFE;
  3203. CREATE FUNCTION make_valid(issn13)
  3204. RETURNS issn13
  3205. AS 'MODULE_PATHNAME'
  3206. LANGUAGE C
  3207. IMMUTABLE STRICT
  3208. PARALLEL SAFE;
  3209. CREATE FUNCTION make_valid(isbn)
  3210. RETURNS isbn
  3211. AS 'MODULE_PATHNAME'
  3212. LANGUAGE C
  3213. IMMUTABLE STRICT
  3214. PARALLEL SAFE;
  3215. CREATE FUNCTION make_valid(ismn)
  3216. RETURNS ismn
  3217. AS 'MODULE_PATHNAME'
  3218. LANGUAGE C
  3219. IMMUTABLE STRICT
  3220. PARALLEL SAFE;
  3221. CREATE FUNCTION make_valid(issn)
  3222. RETURNS issn
  3223. AS 'MODULE_PATHNAME'
  3224. LANGUAGE C
  3225. IMMUTABLE STRICT
  3226. PARALLEL SAFE;
  3227. CREATE FUNCTION make_valid(upc)
  3228. RETURNS upc
  3229. AS 'MODULE_PATHNAME'
  3230. LANGUAGE C
  3231. IMMUTABLE STRICT
  3232. PARALLEL SAFE;
  3233. CREATE FUNCTION is_valid(ean13)
  3234. RETURNS boolean
  3235. AS 'MODULE_PATHNAME'
  3236. LANGUAGE C
  3237. IMMUTABLE STRICT
  3238. PARALLEL SAFE;
  3239. CREATE FUNCTION is_valid(isbn13)
  3240. RETURNS boolean
  3241. AS 'MODULE_PATHNAME'
  3242. LANGUAGE C
  3243. IMMUTABLE STRICT
  3244. PARALLEL SAFE;
  3245. CREATE FUNCTION is_valid(ismn13)
  3246. RETURNS boolean
  3247. AS 'MODULE_PATHNAME'
  3248. LANGUAGE C
  3249. IMMUTABLE STRICT
  3250. PARALLEL SAFE;
  3251. CREATE FUNCTION is_valid(issn13)
  3252. RETURNS boolean
  3253. AS 'MODULE_PATHNAME'
  3254. LANGUAGE C
  3255. IMMUTABLE STRICT
  3256. PARALLEL SAFE;
  3257. CREATE FUNCTION is_valid(isbn)
  3258. RETURNS boolean
  3259. AS 'MODULE_PATHNAME'
  3260. LANGUAGE C
  3261. IMMUTABLE STRICT
  3262. PARALLEL SAFE;
  3263. CREATE FUNCTION is_valid(ismn)
  3264. RETURNS boolean
  3265. AS 'MODULE_PATHNAME'
  3266. LANGUAGE C
  3267. IMMUTABLE STRICT
  3268. PARALLEL SAFE;
  3269. CREATE FUNCTION is_valid(issn)
  3270. RETURNS boolean
  3271. AS 'MODULE_PATHNAME'
  3272. LANGUAGE C
  3273. IMMUTABLE STRICT
  3274. PARALLEL SAFE;
  3275. CREATE FUNCTION is_valid(upc)
  3276. RETURNS boolean
  3277. AS 'MODULE_PATHNAME'
  3278. LANGUAGE C
  3279. IMMUTABLE STRICT
  3280. PARALLEL SAFE;
  3281. --
  3282. -- isn_weak(boolean) - Sets the weak input mode.
  3283. -- This function is intended for testing use only!
  3284. --
  3285. CREATE FUNCTION isn_weak(boolean)
  3286. RETURNS boolean
  3287. AS 'MODULE_PATHNAME', 'accept_weak_input'
  3288. LANGUAGE C
  3289. IMMUTABLE STRICT
  3290. PARALLEL RESTRICTED;
  3291. --
  3292. -- isn_weak() - Gets the weak input mode status
  3293. --
  3294. CREATE FUNCTION isn_weak()
  3295. RETURNS boolean
  3296. AS 'MODULE_PATHNAME', 'weak_input_status'
  3297. LANGUAGE C
  3298. IMMUTABLE STRICT
  3299. PARALLEL RESTRICTED;
上海开阖软件有限公司 沪ICP备12045867号-1