home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / db / rdbms71 / pipidl.sql < prev    next >
Text File  |  1994-08-04  |  21KB  |  617 lines

  1. rem
  2. rem $Header: pipidl.sql 7010300.1 94/02/26 00:28:52 snataraj Generic<base> $
  3. rem
  4. Rem  Copyright (c) 1991 by Oracle Corporation
  5. Rem    NAME
  6. Rem      pidl.sql - package Portable IDL
  7. Rem    DESCRIPTION
  8. Rem      equivalent to v7$pls:[icd]PIPISPC.PLS and PIPIBDY.PLS
  9. Rem    MODIFIED   (MM/DD/YY)
  10. Rem     usundara   01/20/94 -  fix traversals - bug 161306,147036 (for pclare)
  11. Rem     pshaw      10/21/92 -  modify script for bug 131187 
  12. Rem     gclossma   05/08/92 -  cleaning 
  13. Rem     ahong      02/18/92 -  use package diutil 
  14. Rem     gclossma   01/22/92 -  functions may not have OUT parms 
  15. Rem     gclossma   01/14/92 -  pkg PIDL mustn't call pkg DIANA: disable subptxt
  16. Rem     ahong      01/07/92 -  icd for DESCRIBE
  17. Rem     pdufour    01/03/92 -  remove connect internal and add drop package
  18. Rem     gclossma   11/27/91 -  Creation
  19. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  20. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  21. -- NOTE: you must be connected "internal" (as user SYS) to run this script.
  22. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  23. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  24.  
  25. create or replace package sys.PIDL is
  26.  
  27.  
  28.   ----------------------------------------------------------------------------
  29.   -- Persistent IDL datatypes
  30.   ----------------------------------------------------------------------------
  31.  
  32.   subtype byte4     is binary_integer; -- guaranteed to be 4 bytes
  33.   subtype ptnod     is binary_integer; -- generic IDL node type
  34.   subtype ub4       is binary_integer; -- Oracle C type, unsigned byte 4
  35.   subtype ub2       is binary_integer; -- Oracle C type, unsigned byte 2
  36.   subtype ub1       is binary_integer; -- Oracle C type, unsigned byte 1
  37.   subtype sb4       is binary_integer; -- Oracle C type, signed byte 4 
  38.   subtype sb2       is binary_integer; -- Oracle C type, signed byte 2
  39.   subtype b4        is binary_integer; -- Oracle C type, byte 4
  40.  
  41.   ----------------------------------------------------------------------------
  42.   -- Sequence datatypes.
  43.   ----------------------------------------------------------------------------
  44.   subtype ptseqtx   is ptnod;       -- seq of text/char
  45.   subtype ptseqnd   is ptnod;       -- seq of IDL node
  46.   subtype ptsequ4   is ptnod;       -- seq of ub4
  47.   subtype ptsequ2   is ptnod;       -- seq of ub2
  48.   subtype ptsequ1   is ptnod;       -- seq of ub1
  49.   subtype ptseqs4   is ptnod;       -- seq of sb4
  50.   subtype ptseqs2   is ptnod;       -- seq of sb2
  51.   subtype ptseqb4   is ptnod;       -- seq of b4
  52.  
  53.   ----------------------------------------------------------------------------
  54.   -- Non-persistent IDL datatypes
  55.   ----------------------------------------------------------------------------
  56.   subtype private_ptr_t is raw; /*(12)*/
  57.   type    ptr_t     is record(private_ptr private_ptr_t(12));
  58.   subtype ptseqpt   is ptnod;  -- seq of ptr_t
  59.  
  60.   ----------------------------------------------------------------------------
  61.   -- Types used for the implementation of persistent-idl.
  62.   ----------------------------------------------------------------------------
  63.   subtype ptnty        is ub2;    -- node-type enumerators
  64.   subtype ptaty        is ub2;    -- attr-type enumerators
  65.   subtype ptbty        is ub2;    -- base-type enumerators for attributes
  66.   subtype ptrty     is ub2;     -- rererence-type enumerators
  67.  
  68.   ----------------------------------------------------------------------------
  69.   -- Enumerators for the kinds of reference (ptrty).
  70.   ----------------------------------------------------------------------------
  71.   PTA_REF    constant ptrty := 0; -- REF
  72.   PTA_PART     constant ptrty := 1; -- PART
  73.   PTA_PREF    constant ptrty := 2; -- PART REF
  74.  
  75.   ----------------------------------------------------------------------------
  76.   -- Enumerators for the idl basetypes (ptbty).
  77.   ----------------------------------------------------------------------------
  78.   PTABTERR constant ptbty :=  0; -- error
  79.   PTABT_ND constant ptbty :=  1; -- ptnod 
  80.   PTABT_TX constant ptbty :=  2; -- text* 
  81.   PTABT_U4 constant ptbty :=  3; -- ub4   
  82.   PTABT_U2 constant ptbty :=  4; -- ptbty
  83.   PTABT_U1 constant ptbty :=  5; -- ub1
  84.   PTABT_S4 constant ptbty :=  6; -- sb4   
  85.   PTABT_S2 constant ptbty :=  7; -- sb2
  86.   PTABT_B4 constant ptbty :=  8; -- byte4 
  87.   PTABT_PT constant ptbty :=  9; -- dvoid*
  88.   PTABT_RA constant ptbty := 10; -- s_opera 
  89.         -- s_opera is an internal type, for diana's S_OPERAT
  90.   PTABT_LS constant ptbty := 11; -- ptlis*
  91.   PTABT_RS constant ptbty := 12; -- ub1* raw string, w/out null ind
  92.   PTABT_CS constant ptbty := 13; -- char* w/out null ind
  93. -- (pl)sql basetypes
  94.   PTABT_NU constant ptbty := 14; -- sql number (with null ind)
  95.   PTABT_RW constant ptbty := 15; -- sql raw (with null ind)
  96.   PTABT_C2 constant ptbty := 18; -- sql varchar2 (with null ind)
  97.   PTABT_DT constant ptbty := 19; -- sql date (with null ind)
  98.   PTABT_BI constant ptbty := 20; -- (pl)sql binary_integer (w nullind)
  99.   PTABT_BO constant ptbty := 21; -- (pl)sql boolean (with null ind)
  100.  
  101. -- ptabts: pt attribute base type sequences, idl bulk types, one of:
  102.   PTABTS_0 constant ptbty := 29;
  103.   PTABTSND constant ptbty := (PTABTS_0 +  1); -- seq of ptnod 
  104.   PTABTSTX constant ptbty := (PTABTS_0 +  2); -- seq of text* 
  105.   PTABTSU4 constant ptbty := (PTABTS_0 +  3); -- seq of ub4   
  106.   PTABTSU2 constant ptbty := (PTABTS_0 +  4); -- seq of ptbty
  107.   PTABTSU1 constant ptbty := (PTABTS_0 +  5); -- seq of ub1
  108.   PTABTSS4 constant ptbty := (PTABTS_0 +  6); -- seq of sb4   
  109.   PTABTSS2 constant ptbty := (PTABTS_0 +  7); -- seq of sb2
  110.   PTABTSB4 constant ptbty := (PTABTS_0 +  8); -- seq of byte4 
  111.   PTABTSPT constant ptbty := (PTABTS_0 +  9); -- seq of dvoid*
  112.   PTABTSRA constant ptbty := (PTABTS_0 + 10); -- seq of s_opera
  113. --      PTABTSLS  (PTABTS_0 + 11);          -- seq of ptlis*: unsupported
  114.   PTABTSRS constant ptbty := (PTABTS_0 + 12); -- seq of ub1*
  115.   PTABTSCS constant ptbty := (PTABTS_0 + 13); -- seq of char*
  116. -- (pl)sql basetypes
  117.   PTABTSNU constant ptbty := (PTABTS_0 + 14); -- seq of sql number
  118.   PTABTSRW constant ptbty := (PTABTS_0 + 15); -- seq of sql raw 
  119.   PTABTSC2 constant ptbty := (PTABTS_0 + 18); -- seq of sql varchar2
  120.   PTABTSDT constant ptbty := (PTABTS_0 + 19); -- seq of sql date
  121.   PTABTSBI constant ptbty := (PTABTS_0 + 20); -- seq of (pl)sql
  122.                               --  binary_integer
  123.   PTABTSBO constant ptbty := (PTABTS_0 + 21); -- seq of (pl)sql
  124.                               -- boolean
  125.  
  126.   
  127.   ----------------------------------------------------------------------------
  128.   -- IDL traversal state. 
  129.   --
  130.   -- A traversal is like a cursor. It performs a full pre-order scan of
  131.   -- an IDL complex object. 
  132.   ----------------------------------------------------------------------------
  133.   type    ptftrvrsl is record(private_ptr raw(12));
  134.  
  135.   ----------------------------------------------------------------------------
  136.   -- Traversal primitives.
  137.   ----------------------------------------------------------------------------
  138.   function ptftin(root ptnod) return ptftrvrsl;
  139.   function ptfnxt(traversal ptftrvrsl, node ptnod) return ptnod;
  140.  
  141.   ----------------------------------------------------------------------------
  142.   -- Miscellaneous functions.
  143.   ----------------------------------------------------------------------------
  144.   function ptkin(obj ptnod) return ptnty;
  145.  
  146.   function hshbod(def_id ptnod) return ptnod;
  147.  
  148.     -- returns number of attributes for given node type
  149.   function ptattcnt(node_enum ptnty) return ub2;
  150.  
  151.     -- returns attr-type enumerator for nth attr of given node type
  152.   function ptatttyp(node_enum ptnty, nth ub2) return ptaty;
  153.  
  154.     -- returns text name of given node type
  155.   function ptattnnm(node_enum ptnty) return varchar2;
  156.  
  157.     -- returns text name of given attr type
  158.   function ptattanm(attr_enum ptaty) return varchar2;
  159.  
  160.     -- returns base-type enumerator for type of given attribute
  161.   function ptattbty(node_enum ptnty, attr_enum ptaty) return ptbty;
  162.  
  163.     -- "ref type" returns PART, PART_REF, or REF
  164.   function ptattrty(node_enum ptnty, attr_enum ptaty) return ptrty;
  165.  
  166.   ----------------------------------------------------------------------------
  167.   -- Primitive IDL access methods.  See DEFS$:PT.H.
  168.   -- 
  169.   -- There is a "get" (ptg%) and a "put" (ptp%) for each IDL base type 
  170.   --     tx: text*
  171.   --     nd: ptnod
  172.   --     u4: ub4
  173.   --     u2: ub2
  174.   --     u1: ub1
  175.   --     s4: sb4
  176.   --     s2: sb2
  177.   --     b4: byte4
  178.   --     ls: ptlis*        -- not persistent
  179.   --     pt: ptr_t        -- not persistent
  180.   --     dt: sql date
  181.   --     nu: sql number
  182.   --     ch: sql varchar2
  183.   --     vc: sql varchar
  184.   --     c2: sql varchar2
  185.   --     bi: plsql binary integer
  186.   --     bo: plsql boolean
  187.   --
  188.   -- The ptgs% calls get sequences of the above types, for example,
  189.   -- ptgsnd() fetches a handle to a sequence of nodes from an attribute
  190.   -- of type "sequence of <NODE or CLASS>".
  191.   ----------------------------------------------------------------------------
  192.   function ptg_tx(obj ptnod, aty ptaty) return varchar2;
  193.   function ptg_nd(obj ptnod, aty ptaty) return ptnod;
  194.   function ptg_u4(obj ptnod, aty ptaty) return ub4;
  195.   function ptg_u2(obj ptnod, aty ptaty) return ub2;
  196.   function ptg_u1(obj ptnod, aty ptaty) return ub1;
  197.   function ptg_s4(obj ptnod, aty ptaty) return sb4;
  198.   function ptg_s2(obj ptnod, aty ptaty) return sb2;
  199.   function ptg_b4(obj ptnod, aty ptaty) return byte4;
  200.   function ptg_pt(obj ptnod, aty ptaty) return ptr_t;
  201.  
  202.   function ptgsnd(obj ptnod, aty ptaty) return ptseqnd;
  203.   function ptslen(seq ptseqnd) return ub2; -- get length of sequence
  204.  
  205.   procedure ptp_tx(obj ptnod, val varchar2,   aty ptaty);
  206.   procedure ptp_nd(obj ptnod, val ptnod,  aty ptaty);
  207.   procedure ptp_u4(obj ptnod, val ub4,    aty ptaty);
  208.   procedure ptp_u2(obj ptnod, val ub2,    aty ptaty);
  209.   procedure ptp_u1(obj ptnod, val ub1,    aty ptaty);
  210.   procedure ptp_s4(obj ptnod, val sb4,    aty ptaty);
  211.   procedure ptp_s2(obj ptnod, val sb2,    aty ptaty);
  212.   procedure ptp_b4(obj ptnod, val byte4,  aty ptaty);
  213.   procedure ptp_pt(obj ptnod, val ptr_t,  aty ptaty);
  214.  
  215. --  procedure ptpsnd(obj ptnod, val ptseqnd, aty ptaty);
  216.  
  217.   ----------------------------------------------------------------------------
  218.   -- Sequence element-indexing functions.
  219.   ----------------------------------------------------------------------------
  220.   function ptgetx(obj ptseqtx, ndx ub2) return varchar2;
  221.   function ptgend(obj ptseqnd, ndx ub2) return ptnod;
  222.   function ptgeu4(obj ptsequ4, ndx ub2) return ub4;
  223.   function ptgeu2(obj ptsequ2, ndx ub2) return ub2;
  224.   function ptgeu1(obj ptsequ1, ndx ub2) return ub1;
  225.   function ptges4(obj ptseqs4, ndx ub2) return sb4;
  226.   function ptges2(obj ptseqs2, ndx ub2) return sb2;
  227.   function ptgeb4(obj ptseqb4, ndx ub2) return b4;
  228.   function ptgept(obj ptseqpt, ndx ub2) return ptr_t;
  229.  
  230. -- NYI
  231. --  procedure ptpetx(obj ptseqtx, ndx ub2, val varchar2);
  232. --  procedure ptpend(obj ptseqnd, ndx ub2, val ptnod);
  233. --  procedure ptpeu4(obj ptsequ4, ndx ub2, val ub4);
  234. --  procedure ptpeu2(obj ptsequ2, ndx ub2, val ub2);
  235. --  procedure ptpeu1(obj ptsequ1, ndx ub2, val ub1);
  236. --  procedure ptpes4(obj ptseqs4, ndx ub2, val sb4);
  237. --  procedure ptpes2(obj ptseqs2, ndx ub2, val sb2);
  238. --  procedure ptpeb4(obj ptseqb4, ndx ub2, val b4);
  239.  
  240. end pidl;
  241.  
  242. /
  243. create or replace package body sys.PIDL is
  244.  
  245.  
  246.   function pig_tx(obj ptnod, aty ptaty) return varchar2;
  247.     pragma interface(c,pig_tx);
  248.   function pig_nd(obj ptnod, aty ptaty) return ptnod;
  249.     pragma interface(c,pig_nd);
  250.   function pig_u4(obj ptnod, aty ptaty) return ub4;
  251.     pragma interface(c,pig_u4);
  252.   function pig_u2(obj ptnod, aty ptaty) return ub2;
  253.     pragma interface(c,pig_u2);
  254.   function pig_u1(obj ptnod, aty ptaty) return ub1;
  255.     pragma interface(c,pig_u1);
  256.   function pig_s4(obj ptnod, aty ptaty) return sb4;
  257.     pragma interface(c,pig_s4);
  258.   function pig_s2(obj ptnod, aty ptaty) return sb2;
  259.     pragma interface(c,pig_s2);
  260.   function pig_b4(obj ptnod, aty ptaty) return byte4;
  261.     pragma interface(c,pig_b4);
  262.   function pig_pt(obj ptnod, aty ptaty) return ptr_t;
  263.     pragma interface(c,pig_pt);
  264.   function pigsnd(obj ptnod, aty ptaty) return ptseqnd;
  265.     pragma interface(c,pigsnd);
  266.  
  267.   procedure pip_tx(obj ptnod, val varchar2,   aty ptaty);
  268.     pragma interface(c,pip_tx);
  269.   procedure pip_nd(obj ptnod, val ptnod, aty ptaty);
  270.     pragma interface(c,pip_nd);
  271.   procedure pip_u4(obj ptnod, val ub4,    aty ptaty);
  272.     pragma interface(c,pip_u4);
  273.   procedure pip_u2(obj ptnod, val ub2,    aty ptaty);
  274.     pragma interface(c,pip_u2);
  275.   procedure pip_u1(obj ptnod, val ub1,    aty ptaty);
  276.     pragma interface(c,pip_u1);
  277.   procedure pip_s4(obj ptnod, val sb4,    aty ptaty);
  278.     pragma interface(c,pip_s4);
  279.   procedure pip_s2(obj ptnod, val sb2,    aty ptaty);
  280.     pragma interface(c,pip_s2);
  281.   procedure pip_b4(obj ptnod, val byte4,  aty ptaty);
  282.     pragma interface(c,pip_b4);
  283.   procedure pip_pt(obj ptnod, val ptr_t,  aty ptaty);
  284.     pragma interface(c,pip_pt);
  285. --  procedure pipsnd(obj ptnod, val ptseqnd, aty ptaty);
  286. --    pragma interface(c,pipsnd);
  287.  
  288.   -- pigeXX : Get sequence element.
  289.   function pigetx(obj ptseqtx, ndx ub2) return varchar2;
  290.     pragma interface(c,pigetx);
  291.   function pigend(obj ptseqnd, ndx ub2) return ptnod;
  292.     pragma interface(c,pigend);
  293.   function pigeu4(obj ptsequ4, ndx ub2) return ub4;
  294.     pragma interface(c,pigeu4);
  295.   function pigeu2(obj ptsequ2, ndx ub2) return ub2;
  296.     pragma interface(c,pigeu2);
  297.   function pigeu1(obj ptsequ1, ndx ub2) return ub1;
  298.     pragma interface(c,pigeu1);
  299.   function piges4(obj ptseqs4, ndx ub2) return sb4;
  300.     pragma interface(c,piges4);
  301.   function piges2(obj ptseqs2, ndx ub2) return sb2;
  302.     pragma interface(c,piges2);
  303.   function pigeb4(obj ptseqb4, ndx ub2) return b4;
  304.     pragma interface(c,pigeb4);
  305.   function pigept(obj ptseqpt, ndx ub2) return ptr_t;
  306.     pragma interface(c,pigept);
  307.  
  308.   -- pipeXX : Put sequence element.
  309.   -- Following put sequence element funcs not yet implemented;
  310. --  procedure pipetx(obj ptseqtx, ndx ub2, val varchar2);
  311. --    pragma interface(c,pipetx);
  312. --  procedure pipend(obj ptseqnd, ndx ub2, val ptnod);
  313. --    pragma interface(c,pipend);
  314. --  procedure pipeu4(obj ptsequ4, ndx ub2, val ub4);
  315. --    pragma interface(c,pipeu4);
  316. --  procedure pipeu2(obj ptsequ2, ndx ub2, val ub2);
  317. --    pragma interface(c,pipeu2);
  318. --  procedure pipeu1(obj ptsequ1, ndx ub2, val ub1);
  319. --    pragma interface(c,pipeu1);
  320. --  procedure pipes4(obj ptseqs4, ndx ub2, val sb4);
  321. --    pragma interface(c,pipes4);
  322. --  procedure pipes2(obj ptseqs2, ndx ub2, val sb2);
  323. --    pragma interface(c,pipes2);
  324. --  procedure pipeb4(obj ptseqb4, ndx ub2, val b4);
  325. --    pragma interface(c,pipeb4);
  326. --  procedure pipept(obj ptseqpt, ndx ub2, val ptr_t);
  327. --    pragma interface(c,pipept);
  328.  
  329.   -- misc
  330.   function pidkin(obj ptnod) return ptnty;
  331.     pragma interface(c,pidkin);
  332.   function pidtin(root ptnod) return private_ptr_t;
  333.     pragma interface(c,pidtin);
  334.   function pidnxt(traversal private_ptr_t, node ptnod) return ptnod;
  335.     pragma interface(c,pidnxt);
  336.   function pidbod(def_id ptnod) return ptnod;
  337.     pragma interface(c,pidbod);
  338.   function pidacn(node_enum ptnty) return ub2;
  339.     pragma interface(c,pidacn);
  340.   function pidaty(node_enum ptnty, nth ub2) return ptaty;
  341.     pragma interface(c,pidaty);
  342.   function pidnnm(node_enum ptnty) return varchar2;
  343.     pragma interface(c,pidnnm);
  344.   function pidanm(attr_enum ptaty) return varchar2;
  345.     pragma interface(c,pidanm);
  346.   function pidbty(node_enum ptnty, attr_enum ptaty) return ptbty;
  347.     pragma interface(c,pidbty);
  348.   function pidrty(node_enum ptnty, attr_enum ptaty) return ptrty;
  349.     pragma interface(c,pidrty);
  350.   function pigsln(seq ptseqnd) return ub2;
  351.     pragma interface(c,pigsln);
  352.  
  353.   function ptkin(obj ptnod) return ptnty is
  354.   begin
  355.     return pidkin(obj);
  356.   end;
  357.  
  358.   function ptftin(root ptnod) return ptftrvrsl is
  359.     val ptftrvrsl;
  360.   begin
  361.     val.private_ptr := pidtin(root);
  362.     return val;
  363.   end;
  364.  
  365.   function ptfnxt(traversal ptftrvrsl, node ptnod) return ptnod is
  366.   begin
  367.     return pidnxt(traversal.private_ptr,node);
  368.   end;
  369.  
  370.   function hshbod(def_id ptnod) return ptnod is
  371.   begin
  372.     return pidbod(def_id);
  373.   end;
  374.  
  375.   function ptattcnt(node_enum ptnty) return ub2 is
  376.   begin
  377.     return pidacn(node_enum);
  378.   end;
  379.  
  380.   function ptatttyp(node_enum ptnty, nth ub2) return ptaty is
  381.   begin
  382.     return pidaty(node_enum, nth);
  383.   end;
  384.  
  385.   function ptattnnm(node_enum ptnty) return varchar2 is
  386.   begin
  387.     return pidnnm(node_enum);
  388.   end;
  389.  
  390.   function ptattanm(attr_enum ptaty) return varchar2 is
  391.   begin
  392.     return pidanm(attr_enum);
  393.   end;
  394.  
  395.   function ptattbty(node_enum ptnty, attr_enum ptaty) return ptbty is
  396.   begin
  397.     return pidbty(node_enum, attr_enum);
  398.   end;
  399.  
  400.   function ptattrty(node_enum ptnty, attr_enum ptaty) return ptrty is
  401.   begin
  402.     return pidrty(node_enum, attr_enum);
  403.   end;
  404.  
  405.   function ptg_tx(obj ptnod, aty ptaty) return varchar2 is
  406.   begin
  407.     return pig_tx(obj,aty);
  408.   end;
  409.  
  410.   function ptg_nd(obj ptnod, aty ptaty) 
  411.     return ptnod is
  412.   begin
  413.     return pig_nd(obj,aty);
  414.   end;
  415.  
  416.   function ptg_u4(obj ptnod, aty ptaty) return ub4 is
  417.   begin
  418.     return pig_u4(obj,aty);
  419.   end;
  420.  
  421.   function ptg_u2(obj ptnod, aty ptaty) return ub2 is
  422.   begin
  423.     return pig_u2(obj,aty);
  424.   end;
  425.  
  426.   function ptg_u1(obj ptnod, aty ptaty) return ub1 is
  427.   begin
  428.     return pig_u1(obj,aty);
  429.   end;
  430.  
  431.   function ptg_s4(obj ptnod, aty ptaty) return sb4 is
  432.   begin
  433.     return pig_s4(obj,aty);
  434.   end;
  435.  
  436.   function ptg_s2(obj ptnod, aty ptaty) return sb2 is
  437.   begin
  438.     return pig_s2(obj,aty);
  439.   end;
  440.  
  441.   function ptg_b4(obj ptnod, aty ptaty) 
  442.     return byte4 is
  443.   begin
  444.     return pig_b4(obj,aty);
  445.   end;
  446.  
  447.   function ptg_pt(obj ptnod, 
  448.     aty ptaty) return ptr_t is
  449.   begin
  450.     return pig_pt(obj,aty);
  451.   end;
  452.  
  453.   function ptgsnd(obj ptnod, 
  454.     aty ptaty) return ptseqnd is
  455.   begin
  456.     return pigsnd(obj,aty);
  457.   end;
  458.  
  459.   function ptslen(seq ptseqnd) return ub2 is
  460.   begin
  461.     return pigsln(seq);
  462.   end;
  463.  
  464.  
  465.   procedure ptp_tx(obj ptnod, val varchar2,   
  466.     aty ptaty) is
  467.   begin
  468.     pip_tx(obj,val,aty);
  469.   end;
  470.  
  471.   procedure ptp_nd(obj ptnod, val ptnod, 
  472.     aty ptaty) is
  473.   begin
  474.     pip_nd(obj,val,aty);
  475.   end;
  476.  
  477.   procedure ptp_u4(obj ptnod, val ub4,    
  478.     aty ptaty) is
  479.   begin
  480.     pip_u4(obj,val,aty);
  481.   end;
  482.  
  483.   procedure ptp_u2(obj ptnod, val ub2,    
  484.     aty ptaty) is
  485.   begin
  486.     pip_u2(obj,val,aty);
  487.   end;
  488.  
  489.   procedure ptp_u1(obj ptnod, val ub1,    
  490.     aty ptaty) is
  491.   begin
  492.     pip_u1(obj,val,aty);
  493.   end;
  494.  
  495.   procedure ptp_s4(obj ptnod, val sb4,    
  496.     aty ptaty) is
  497.   begin
  498.     pip_s4(obj,val,aty);
  499.   end;
  500.  
  501.   procedure ptp_s2(obj ptnod, val sb2,    
  502.     aty ptaty) is
  503.   begin
  504.     pip_s2(obj,val,aty);
  505.   end;
  506.  
  507.   procedure ptp_b4(obj ptnod, val byte4,  
  508.     aty ptaty) is
  509.   begin
  510.     pip_b4(obj,val,aty);
  511.   end;
  512.  
  513.   procedure ptp_pt(obj ptnod, val ptr_t,  
  514.     aty ptaty) is
  515.   begin
  516.     pip_pt(obj,val,aty);
  517.   end;
  518.  
  519. --  procedure ptpsnd(obj ptnod, val ptseqnd, 
  520. --    aty ptaty) is
  521. --  begin
  522. --    pipsnd(obj,val,aty);
  523. --  end;
  524.  
  525.   function ptgetx(obj ptseqtx, ndx ub2) return varchar2 is 
  526.   begin
  527.     return pigetx(obj,ndx);
  528.   end;
  529.  
  530.   function ptgend(obj ptseqnd, ndx ub2) return ptnod is 
  531.   begin
  532.     return pigend(obj,ndx);
  533.   end;
  534.  
  535.   function ptgeu4(obj ptsequ4, ndx ub2) return ub4 is 
  536.   begin
  537.     return pigeu4(obj,ndx);
  538.   end;
  539.  
  540.   function ptgeu2(obj ptsequ2, ndx ub2) return ub2 is 
  541.   begin
  542.     return pigeu2(obj,ndx);
  543.   end;
  544.  
  545.   function ptgeu1(obj ptsequ1, ndx ub2) return ub1 is 
  546.   begin
  547.     return pigeu1(obj,ndx);
  548.   end;
  549.  
  550.   function ptges4(obj ptseqs4, ndx ub2) return sb4 is 
  551.   begin
  552.     return piges4(obj,ndx);
  553.   end;
  554.  
  555.   function ptges2(obj ptseqs2, ndx ub2) return sb2 is 
  556.   begin
  557.     return piges2(obj,ndx);
  558.   end;
  559.  
  560.   function ptgeb4(obj ptseqb4, ndx ub2) return b4 is 
  561.   begin
  562.     return pigeb4(obj,ndx);
  563.   end;
  564.  
  565.   function ptgept(obj ptseqpt, ndx ub2) return ptr_t is 
  566.   begin
  567.     return pigept(obj,ndx);
  568.   end;
  569.  
  570. --  procedure ptpetx(obj ptseqtx, ndx ub2, val varchar2) is
  571. --  begin
  572. --    pipetx(obj,ndx,val);
  573. --  end;
  574.  
  575. --  procedure ptpend(obj ptseqnd, ndx ub2, val ptnod) is
  576. --  begin
  577. --    pipend(obj,ndx,val);
  578. --  end;
  579.  
  580. --  procedure ptpeu4(obj ptsequ4, ndx ub2, val ub4) is
  581. --  begin
  582. --    pipeu4(obj,ndx,val);
  583. --  end;
  584.  
  585. --  procedure ptpeu2(obj ptsequ2, ndx ub2, val ub2) is
  586. --  begin
  587. --    pipeu2(obj,ndx,val);
  588. --  end;
  589.  
  590. --  procedure ptpeu1(obj ptsequ1, ndx ub2, val ub1) is
  591. --  begin
  592. --    pipeu1(obj,ndx,val);
  593. --  end;
  594.  
  595. --  procedure ptpes4(obj ptseqs4, ndx ub2, val sb4) is
  596. --  begin
  597. --    pipes4(obj,ndx,val);
  598. --  end;
  599.  
  600. --  procedure ptpes2(obj ptseqs2, ndx ub2, val sb2) is
  601. --  begin
  602. --    pipes2(obj,ndx,val);
  603. --  end;
  604.  
  605. --  procedure ptpeb4(obj ptseqb4, ndx ub2, val b4) is
  606. --  begin
  607. --    pipeb4(obj,ndx,val);
  608. --  end;
  609.  
  610. --  procedure ptpept(obj ptseqpt, ndx ub2, val ptr_t) is
  611. --  begin
  612. --    pipept(obj,ndx,val);
  613. --  end;
  614.  
  615. end pidl;
  616. /
  617.