MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/catxdbpi.sql

Rem
Rem $Header: rdbms/admin/catxdbpi.sql /main/17 2016/06/13 13:44:45 qyu Exp $
Rem
Rem catxdbpi.sql
Rem
Rem Copyright (c) 2001, 2016, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      catxdbpi.sql - XDB Path Index
Rem
Rem    DESCRIPTION
Rem      This file contains the indextype information needed to support 
Rem    the PATH INDEX
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/catxdbpi.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/catxdbpi.sql
Rem SQL_PHASE: CATXDBPI
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: rdbms/admin/catqm_int.sql
Rem END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    qyu         06/08/16 - do not grant exec on XDB_PITRIG_PKG_01 to public 
Rem    surman      01/23/14 - 13922626: Update SQL metadata
Rem    qyu         03/18/13 - Common start and end scripts
Rem    traney      04/05/11 - 35209: long identifiers dictionary upgrade
Rem    samane      05/28/09 - Security fixes: added authid current_user 
Rem    abagrawa    04/13/04 - Add pi upd, del for metadata 
Rem    najain      05/28/03 - create XDB_PITRIG_PKG under sys
Rem    najain      05/22/03 - pass current user in pitrig_upd
Rem    njalali     09/04/02 - removing references to PATH_INDEX until 10i
Rem    njalali     08/13/02 - no ORA errors during migration
Rem    fge         06/25/02 - fix bug 2285601
Rem    fge         06/13/02 - rename prvtpidx.sql to prvtxdbp.sql
Rem    sichandr    01/16/02 - remove getref from pathindex pkg
Rem    fge         01/08/02 - rename prvtxdbpi.sql to prvtpidx.sql
Rem    spannala    01/11/02 - making all systems types have standard TOIDs
Rem    sichandr    01/02/02 - fix xdbhi_im
Rem    spannala    12/27/01 - run setup connected as sys
Rem    spannala    12/13/01 - removing connect
Rem    najain      11/14/01 - get_ref signature change
Rem    nagarwal    11/12/01 - Merged nagarwal_xdb_pathindex_fix
Rem    nagarwal    11/12/01 - grant exempt access policy to xdb
Rem    nagarwal    11/08/01 - move the raise_error procedure to prvtxdbz
Rem    nagarwal    11/05/01 - some reorg & cleanup
Rem    najain      11/03/01 - use triggers for hierarchy
Rem    najain      10/31/01 - fix compilation errors
Rem    najain      10/30/01 - define indices
Rem    najain      10/23/01 - define truncate/drop triggers
Rem    nagarwal    10/08/01 - Created
Rem

@@?/rdbms/admin/sqlsessstart.sql


/* drop objects */
Rem drop indextype xdb.path_index;
drop type xdb.xdbpi_im;
drop table xdb.xdb$path_index_params;

/*-----------------------------------------------------------------------*/
/*  LIBRARY & DICT TABLE                                                 */
/*-----------------------------------------------------------------------*/
create or replace library xdb.path_index_lib trusted as static;
/
create table xdb.xdb$path_index_params
( mount_point      varchar2(2000),
  enum_col_clause  varchar2(2000),
  name             varchar2(128),
  connect_clause   varchar2(2000)
);

/*------------------------------------------------------------------------*/
/* Index TRIGGER BODY                                                     */
/*------------------------------------------------------------------------*/
-- XDB Path Index TRIGger PacKaGE
create or replace package xdb.XDB_PITRIG_PKG_01 authid definer AS
  procedure pitrig_del(owner varchar2, name varchar2, deloid raw, tbloid raw);
  procedure pitrig_upd(owner varchar2, name varchar2, deloid raw, tbloid raw,
                       cuser varchar2);
  procedure pitrig_delmetadata(owner varchar2, name varchar2, deloid raw,
                               tbloid raw, resid raw, cuser varchar2);
  procedure pitrig_updmetadata(owner varchar2, name varchar2, deloid raw,
                               tbloid raw, resid raw, cuser varchar2);
end XDB_PITRIG_PKG_01;
/

create or replace package xdb.XDB_PITRIG_PKG authid current_user AS 
  procedure pitrig_del(owner varchar2, name varchar2, deloid raw, tbloid raw);
  procedure pitrig_upd(owner varchar2, name varchar2, deloid raw, tbloid raw,
                       cuser varchar2);
  procedure pitrig_drop(owner varchar2, name varchar2);
  procedure pitrig_truncate(owner varchar2, name varchar2);
  procedure pitrig_delmetadata(owner varchar2, name varchar2, deloid raw, 
                               tbloid raw, resid raw, cuser varchar2);
  procedure pitrig_updmetadata(owner varchar2, name varchar2, deloid raw, 
                               tbloid raw, resid raw, cuser varchar2);
  procedure pitrig_dropmetadata(owner varchar2, name varchar2);
end XDB_PITRIG_PKG;
/

grant execute on xdb.XDB_PITRIG_PKG to public;

show errors;

/*-----------------------------------------------------------------------*/
/*  IMPLEMENTATION TYPE                                                  */
/*-----------------------------------------------------------------------*/
create or replace type xdb.xdbpi_im OID '00000000000000000000000000020116'
   authid definer as object(
  notused    RAW(4),

  
  static function ODCIGetInterfaces (ilist OUT sys.ODCIObjectList) return number,

  static function ODCIIndexCreate(ia sys.odciindexinfo, parms varchar2,
      env sys.odcienv)  return number,

  static function ODCIIndexDrop(ia sys.odciindexinfo, env sys.ODCIEnv)
    return number, 

  STATIC FUNCTION ODCIIndexTruncate(ia sys.odciindexinfo, env sys.ODCIEnv) 
    RETURN NUMBER,

  static function ODCIIndexInsert(ia sys.odciindexinfo, rid varchar2, 
        newval sys.xmltype, env sys.ODCIEnv) return number,

  static function ODCIIndexDelete(ia sys.odciindexinfo, rid varchar2, 
    oldval sys.xmltype, env sys.ODCIEnv) return number,

  static function ODCIIndexUpdate(ia sys.odciindexinfo, rid varchar2, 
    oldval sys.xmltype, newval sys.xmltype, env sys.ODCIEnv) 
    return number, 

  static function ODCIIndexStart(sctx IN OUT xdb.xdbpi_im, 
      ia sys.odciindexinfo, op sys.odcipredinfo, qi sys.odciqueryinfo,
      strt number, stop number, pathstr varchar2, env sys.odcienv)  
      return number,

  member function ODCIIndexFetch(nrows number, rids OUT sys.odciridlist, 
     env sys.odcienv) return number,

  member function ODCIIndexClose (env sys.odcienv) return number 
);
/
show errors;

/*------------------------------------------------------------------------*/
/* IMPLEMENTATION TYPE BODY                                              */
/*------------------------------------------------------------------------*/
create or replace type body xdb.xdbpi_im
is 
  static function ODCIGetInterfaces(ilist OUT sys.ODCIObjectList) 
    return number is 
  begin 
    ilist := sys.ODCIObjectList(sys.ODCIObject('SYS', 'ODCIINDEX2'));
    return ODCICONST.SUCCESS;
  end ODCIGetInterfaces;

  static function ODCIIndexCreate(ia sys.odciindexinfo, parms varchar2,
    env sys.ODCIEnv) return number as 
  begin 
    return ODCICONST.SUCCESS;
  end ODCIIndexCreate;

  static function ODCIIndexDrop(ia sys.odciindexinfo, env sys.ODCIEnv) 
    return number
  is 
  begin 
    -- drop all the rows in the resource_view
    -- The drop is handled via the trigger xdb_pi_trig
    return ODCICONST.SUCCESS;
  end ODCIIndexDrop;

  STATIC FUNCTION ODCIIndexTruncate(ia sys.odciindexinfo, env sys.ODCIEnv) 
    RETURN NUMBER
  is 
  begin 
    -- drop all the rows in the resource_view
    -- The truncate is handled via the trigger xdb_pi_trig
    return ODCICONST.SUCCESS;
  end ODCIIndexTruncate;

  static function ODCIIndexInsert(ia sys.ODCIIndexInfo, rid varchar2,
    newval sys.xmltype, env sys.ODCIEnv) return number 
  is 
  begin 
    return ODCICONST.SUCCESS;
  end ODCIIndexInsert;

  static function ODCIIndexDelete(ia sys.ODCIIndexInfo, rid varchar2, 
    oldval sys.xmltype, env sys.ODCIEnv) return number
  is
  begin 
    -- For delete/update a trigger will be created per table when the table is
    -- enabled for hierarchy. The name of the trigger: <table_name>_XDB_PITRIG
    -- This is done is prvtxdbz.sql
    return ODCICONST.SUCCESS;
  end ODCIIndexDelete;

  static function ODCIIndexUpdate(ia sys.ODCIIndexInfo, rid varchar2,
    oldval sys.xmltype, newval sys.xmltype, env sys.ODCIEnv)
    return number 
  is
  begin 
    return ODCICONST.SUCCESS;
  end ODCIIndexUpdate;

  static function ODCIIndexStart(sctx IN OUT xdb.xdbpi_im, 
      ia sys.odciindexinfo, op sys.odcipredinfo, qi sys.odciqueryinfo,
      strt number, stop number, pathstr varchar2, env sys.odcienv)  
      return number 
  is
  begin
    return ODCICONST.SUCCESS;
  end ODCIIndexStart;

  member function ODCIIndexFetch(nrows number, rids OUT sys.odciridlist, 
     env sys.odcienv) return number 
  is
  begin
    return ODCICONST.SUCCESS;
  end ODCIIndexFetch;

  member function ODCIIndexClose (env sys.odcienv) return number 
  is
  begin
    return ODCICONST.SUCCESS;
  end ODCIIndexClose;

end;
/
show errors;
grant execute on xdb.xdbpi_im to public;

/*------------------------------------------------------------------------*/
/*  OPERATORS and INDEXTYPES                                              */
/*------------------------------------------------------------------------*/
/* primary operator */
create or replace package xdb.xdbpi_funcimpl as
  function noop_func(res sys.xmltype) return number;
end;
/

create or replace package body xdb.xdbpi_funcimpl as
  function noop_func(res sys.xmltype) return number is
  begin
   return 0;
  end;
end;
/


-- dummy operator
Rem create or replace operator xdb.xdbpi_noop binding (sys.xmltype) 
Rem return number 
Rem using xdb.xdbpi_funcimpl.noop_func;

Rem grant execute on xdb.xdbpi_noop to public;

-- indextype
Rem create indextype xdb.path_index for xdb.xdbpi_noop(sys.xmltype) 
Rem  using xdb.xdbpi_im;

-- The body for catxdbpi i.e. prvtxdbp is invoked from catxdbr.sql because of 
-- the dependency of the package body on resource_view

@?/rdbms/admin/sqlsessend.sql

OHA YOOOO