MINI MINI MANI MO
Rem
Rem $Header: sdo/admin/sdordfaggh.sql /main/8 2017/03/17 13:26:18 rjanders Exp $
Rem
Rem sdordfaggh.sql
Rem
Rem Copyright (c) 2012, 2017, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem sdordfaggh.sql - <one-line expansion of the name>
Rem
Rem DESCRIPTION
Rem <short description of component this file declares/defines>
Rem
Rem NOTES
Rem <other useful comments, qualifications, etc.>
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: sdo/admin/sdordfaggh.sql
Rem SQL_SHIPPED_FILE: md/admin/sdordfaggh.sql
Rem SQL_PHASE: SDORDFAGGH
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: sdo/admin/semrelod.sql
Rem END SQL_FILE_METADATA
Rem
Rem MODIFIED (MM/DD/YY)
Rem rjanders 03/09/17 - Add missing SQL_FILE_METADATA information
Rem matperry 12/05/13 - add varchar version of group_concat
Rem matperry 10/03/13 - add varchar versions of aggregates to enable
Rem parallel aggregation
Rem matperry 10/03/13 - cleanup and fix some parallel issues with
Rem ODCIAggregateMerge
Rem rjanders 03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem initialization
Rem jazarago 03/06/12 - Extend Group_Concat and Min/Max
Rem jazarago 01/31/12 - Created
Rem
Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@@?/rdbms/admin/sqlsessstart.sql
Rem ********************************************************************
/******** Aggregate Function defintion for SPAQRL Aggregate functions ********/
/*********************** Aggregate definition *******************************/
CREATE OR REPLACE TYPE SPARQL_Group_Concat authid current_user AS OBJECT(
return_term CLOB,
use_sep NUMBER,
l_delimiter VARCHAR2(4000),
language_type VARCHAR2(10),
literal_type VARCHAR2(120),
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_Group_Concat)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_Group_Concat
, value IN MDSYS.SDO_RDF_TERM)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_Group_Concat
,ctx2 IN SPARQL_Group_Concat)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_Group_Concat
,return_value OUT MDSYS.SDO_RDF_TERM
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
CREATE OR REPLACE TYPE SPARQL_Sample authid current_user AS OBJECT(
curr_val MDSYS.SDO_RDF_TERM,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_Sample)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_Sample
, value IN MDSYS.SDO_RDF_TERM)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_Sample
,ctx2 IN SPARQL_Sample)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_Sample
,return_value OUT MDSYS.SDO_RDF_TERM
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
CREATE OR REPLACE TYPE SPARQL_min authid current_user AS OBJECT(
curr_min NUMBER,
curr_val MDSYS.SDO_RDF_TERM,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_min)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_min
, value IN MDSYS.SDO_RDF_TERM)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_min
,ctx2 IN SPARQL_min)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_min
,return_value OUT MDSYS.SDO_RDF_TERM
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
CREATE OR REPLACE TYPE SPARQL_max authid current_user AS OBJECT(
curr_max NUMBER,
curr_val MDSYS.SDO_RDF_TERM,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_max)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_max
, value IN MDSYS.SDO_RDF_TERM)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_max
,ctx2 IN SPARQL_max)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_max
,return_value OUT MDSYS.SDO_RDF_TERM
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
/*************************** Function Definition *****************************/
CREATE OR REPLACE FUNCTION sparql_groupconcat (input MDSYS.SDO_RDF_TERM) RETURN MDSYS.SDO_RDF_TERM
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_Group_Concat;
/
show errors;
CREATE OR REPLACE FUNCTION sparql_sampleagg (input MDSYS.SDO_RDF_TERM) RETURN MDSYS.SDO_RDF_TERM
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_Sample;
/
show errors;
CREATE OR REPLACE FUNCTION sparql_minagg (input MDSYS.SDO_RDF_TERM) RETURN MDSYS.SDO_RDF_TERM
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_min;
/
show errors;
CREATE OR REPLACE FUNCTION sparql_maxagg (input MDSYS.SDO_RDF_TERM) RETURN MDSYS.SDO_RDF_TERM
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_max;
/
show errors;
/************************** Granting and Synonyms ****************************/
grant execute on sparql_groupconcat to public;
grant execute on sparql_sampleagg to public;
grant execute on sparql_minagg to public;
grant execute on sparql_maxagg to public;
create or replace public synonym SEM_APIS_GROUP_CONCAT for SPARQL_GROUPCONCAT;
create or replace public synonym SEM_APIS_SAMPLE for SPARQL_SAMPLEAGG;
create or replace public synonym SEM_APIS_MIN for SPARQL_MINAGG;
create or replace public synonym SEM_APIS_MAX for SPARQL_MAXAGG;
/***************** VARCHAR versions for parallel execution ******************/
/*********************** Aggregate definition *******************************/
/************************** GROUP_CONCAT ************************************/
CREATE OR REPLACE TYPE SPARQL_Group_Concat_VC authid current_user AS OBJECT(
return_term VARCHAR2(4000),
use_sep NUMBER,
l_delimiter VARCHAR2(4000),
language_type VARCHAR2(10),
literal_type VARCHAR2(120),
STATIC FUNCTION extractDelim(
value IN VARCHAR2)
RETURN VARCHAR2,
STATIC FUNCTION extractTerm(
value IN VARCHAR2)
RETURN VARCHAR2,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_Group_Concat_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_Group_Concat_VC
, value IN VARCHAR2)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_Group_Concat_VC
,ctx2 IN SPARQL_Group_Concat_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_Group_Concat_VC
,return_value OUT VARCHAR2
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
/************************** SAMPLE ************************************/
CREATE OR REPLACE TYPE SPARQL_Sample_VC authid current_user AS OBJECT(
curr_val MDSYS.SDO_RDF_TERM,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_Sample_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_Sample_VC
, value IN VARCHAR2)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_Sample_VC
,ctx2 IN SPARQL_Sample_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_Sample_VC
,return_value OUT VARCHAR2
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
/************************** MIN ***************************************/
CREATE OR REPLACE TYPE SPARQL_min_VC authid current_user AS OBJECT(
curr_min NUMBER,
curr_val MDSYS.SDO_RDF_TERM,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_min_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_min_VC
, value IN VARCHAR2)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_min_VC
,ctx2 IN SPARQL_min_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_min_VC
,return_value OUT VARCHAR2
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
/************************** MAX ****************************************/
CREATE OR REPLACE TYPE SPARQL_max_VC authid current_user AS OBJECT(
curr_max NUMBER,
curr_val MDSYS.SDO_RDF_TERM,
STATIC FUNCTION ODCIAggregateInitialize(
sctx IN OUT SPARQL_max_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(
self IN OUT SPARQL_max_VC
, value IN VARCHAR2)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(
self IN OUT SPARQL_max_VC
,ctx2 IN SPARQL_max_VC)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate (
self IN SPARQL_max_VC
,return_value OUT VARCHAR2
,flags IN NUMBER)
RETURN NUMBER
);
/
SHOW ERRORS;
/*************************** Function Definition *****************************/
CREATE OR REPLACE FUNCTION sparql_groupconcat_vc (input VARCHAR2) RETURN VARCHAR2
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_Group_Concat_VC;
/
show errors;
CREATE OR REPLACE FUNCTION sparql_sampleagg_vc (input VARCHAR2) RETURN VARCHAR2
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_Sample_VC;
/
show errors;
CREATE OR REPLACE FUNCTION sparql_minagg_vc (input VARCHAR2) RETURN VARCHAR2
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_min_VC;
/
show errors;
CREATE OR REPLACE FUNCTION sparql_maxagg_vc (input VARCHAR2) RETURN VARCHAR2
PARALLEL_ENABLE AGGREGATE USING MDSYS.SPARQL_max_VC;
/
show errors;
/************************** Granting and Synonyms ****************************/
grant execute on sparql_groupconcat_vc to public;
grant execute on sparql_sampleagg_vc to public;
grant execute on sparql_minagg_vc to public;
grant execute on sparql_maxagg_vc to public;
create or replace public synonym SEM_APIS_GROUP_CONCAT_VC for SPARQL_GROUPCONCAT_VC;
create or replace public synonym SEM_APIS_SAMPLE_VC for SPARQL_SAMPLEAGG_VC;
create or replace public synonym SEM_APIS_MIN_VC for SPARQL_MINAGG_VC;
create or replace public synonym SEM_APIS_MAX_VC for SPARQL_MAXAGG_VC;
Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@?/rdbms/admin/sqlsessend.sql
Rem ********************************************************************
OHA YOOOO