MINI MINI MANI MO
rem
rem $Header: ctx_src_2/src/dr/admin/dr0query.pkh /main/70 2017/04/20 18:12:13 pkosaraj Exp $
rem
rem Copyright (c) 1991, 2017, Oracle and/or its affiliates.
rem All rights reserved.
rem NAME
rem dr0query.pkb - DR Query
rem DESCRIPTION
rem This package contains the text query services.
rem
rem PUBLIC FUNCTION(S)
rem store_sqe - create a stored query
rem remove_sqe - delete a stored query
rem pkencode - encode composite textkey list
rem feedback - feedback via Query Execution Plan
rem browse_word - display dictionary word
rem NOTES
rem
rem
rem BEGIN SQL_FILE_METADATA
rem SQL_SOURCE_FILE: ctx_src_2/src/dr/admin/dr0query.pkh
rem SQL_SHIPPED_FILE: ctx/admin/dr0query.pkh
rem SQL_PHASE: DR0QUERY_PKH
rem SQL_STARTUP_MODE: NORMAL
rem SQL_IGNORABLE_ERRORS: NONE
rem SQL_CALLING_FILE: ctx/admin/ctxpkh.sql
rem END SQL_FILE_METADATA
rem
rem MODIFIED (MM/DD/YY)
rem pkosaraj 03/09/17 - Bug 24309387: non const global var
rem surman 01/23/15 - 20411134: Add SQL metadata tags
rem shuroy 07/23/14 - Bug 19175176: Adding store_ctxin_cursor
rem surman 03/15/13 - 16473661: Common start and end scripts
rem hsarkar 11/21/11 - Bug 12928151
rem hsarkar 06/08/11 - Logical Standby Support
rem nenarkhe 08/20/09 - gen_rs_only_on_last_seq &
rem gen_rs_only_if_last_seq_reached
rem nenarkhe 08/18/09 - result set descriptor in query template
rem rpalakod 05/19/08 - Bug 7044603: Session Duration SQE
rem wclin 12/04/06 - CLOB query support
rem ymatsuda 09/21/06 - result set interface
rem wclin 05/09/06 - remove temp. ODCI CDI interface
rem wclin 10/25/05 - CDI temporary interface
rem wclin 02/08/05 - add sav_incmplt_prg_hitcnt
rem wclin 09/18/03 - add disable_transactional_query
rem ehuang 03/04/03 - add token_type to browse_word
rem gkaminag 07/15/02 - security phase 2
rem ymatsuda 10/17/01 - functional contains
rem wclin 09/25/01 - add chk_xpath()
rem gkaminag 08/22/00 - partitioning support
rem wclin 06/22/99 - remove workspace threshold
rem gkaminag 04/08/99 - nocopy on word browse for performance
rem gkaminag 03/18/99 - browse_word -> browse_words, per spec, fix diff
rem ehuang 03/09/99 - make resarr the 3rd arg
rem ehuang 02/23/99 - add browse_word
rem gkaminag 11/19/98 - optimizer improvements obsolete in-memory query
rem wclin 11/05/98 - add postfilter_batch preference
rem gkaminag 10/19/98 - count hits
rem mfaisal 09/24/98 - Hierarchical Query Feedback priv. fix
rem gkaminag 07/02/98 - independent sqe's
rem ymatsuda 06/09/98 - add workspace threshold
rem mfaisal 05/14/98 - make EXPLAIN non-commital
rem gkaminag 05/13/98 - remove contains
rem ymatsuda 05/08/98 - add preference package variable for benchmarking
rem gkaminag 05/07/98 - remove score_sorted
rem gkaminag 05/01/98 - fetch_hit return rowid
rem mfaisal 04/06/98 - more Hierarchical Query Feedback
rem mfaisal 04/01/98 - Adding Hierarchical Query Feedback
rem ehuang 03/30/98 - policy->index
rem gkaminag 03/26/98 - debugging
rem ehuang 03/23/98 - new in-memory query API
rem ehuang 03/20/98 - remove dead code
rem gkaminag 03/05/98 - remove gettab/reltab
rem mfaisal 07/21/97 - More feedback
rem mfaisal 07/14/97 - Add feedback via Query Execution Plan
rem ehuang 05/23/97 - Bug 495711
rem gkaminag 05/14/97 - struct query IMQ
rem yucheng 05/13/97 - add count_last
rem syang 01/13/97 - add pkdecode
rem ymatsuda 12/16/96 - change default param for contains
rem ymatsuda 12/13/96 - add struct to count_hits
rem syang 12/18/96 - support comp. textkeys in gettab
rem gkaminag 10/16/96 - remove floorid parameter
rem ymatsuda 10/02/96 - add struct_query
rem gkaminag 10/03/96 - add floorid to two-step contains
rem gkaminag 09/27/96 - add floorid to cursor contains
rem gkaminag 09/09/96 - multiple columns in fetch_hit
rem gkaminag 08/16/96 - estimate hits
rem ymatsuda 08/09/96 - user defined markup tags
rem gkaminag 07/30/96 - enable parallel contains
rem gkaminag 07/26/96 - parallel contains (disabled)
rem gkaminag 07/23/96 - add sorted concur
rem gkaminag 07/19/96 - cursor interface
rem gkaminag 07/03/96 - add ctx_query.count_hits
rem ymatsuda 07/02/96 - add sqe services
rem qtran 10/13/94 - Creation
@@?/rdbms/admin/sqlsessstart.sql
create or replace package ctx_query authid current_user as
-- PREFERENCES FOR QUERY PROCESSING (INTERNAL USE ONLY)
always_batch constant number := 1;
order_by constant number := 2;
postfilter_batch constant number := 4;
sav_incmplt_prg_hitcnt constant number := 32;
-- PUBLIC DATA STRUCTURES
type BROWSE_REC is record
(
word VARCHAR2(256) NULL,
doc_count NUMBER(38,0) NULL
);
type BROWSE_TAB is table of BROWSE_REC index by binary_integer;
-- PUBLIC CONSTANTS
BROWSE_BEFORE constant varchar2(10) := 'BEFORE';
BROWSE_AROUND constant varchar2(10) := 'AROUND';
BROWSE_AFTER constant varchar2(10) := 'AFTER';
-- PUBLIC VARIABLES
result_set_document clob := NULL;
/*------------------------------- count_hits ----------------------------*/
/*
NAME
count_hits - get quick count of text results
DESCRIPTION
count text hits
ARGUMENTS
index_name (IN) index name being queried
text_query (IN) text query string
exact (IN) exact count or upper bound
part_name (IN) index partition name
NOTES
none
RETURNS
number of hits
*/
FUNCTION count_hits (
index_name in varchar2
,text_query in varchar2
,exact in boolean default TRUE
,part_name in varchar2 default NULL
) return number;
FUNCTION count_hits_clob_query (
index_name in varchar2
,text_query in clob
,exact in boolean default TRUE
,part_name in varchar2 default NULL
) return number;
/*------------------------------- chk_xpath ----------------------------*/
/*
NAME
chk_xpath - check xpath expression
DESCRIPTION
takes an xpath expression and return an expression context can
process.
ARGUMENTS
index_name (IN) index name being queried
text_query (IN) xpath expression
part_name (IN) index partition name
NOTES
none
RETURNS
number of hits
*/
FUNCTION chk_xpath (
index_name in varchar2
,text_query in varchar2
,part_name in varchar2 default NULL
) return varchar2;
/*------------------------------- fcontains ----------------------------*/
/*
NAME
fcontains - functional contains
DESCRIPTION
ARGUMENTS
text_value (IN) text to search
text_query (IN) text query
policy_name (IN) policy name
NOTES
none
RETURNS
score
*/
FUNCTION fcontains (
text_value in varchar2
,text_query in varchar2
,policy_name in varchar2
) return number;
/*---------------------- chk_txnqry_disbl_switch --------------------------*/
/*
NAME
chk_txnqry_disbl_switch
DESCRIPTION
ARGUMENTS
NOTES
none
RETURNS
0 or 1
*/
FUNCTION chk_txnqry_disbl_switch
return number;
/*------------------------------- store_sqe ----------------------------*/
/*
NAME
store_sqe
DESCRIPTION
Create a stored query
ARGUMENTS
query_name (IN) name of a stored query
text_query (IN) text query string
duration (IN) session or persistent duration
NOTES
EXCEPTIONS
ORA-20000 - application error ( with an textile error stack)
RETURNS
none
*/
DURATION_PERSISTENT constant number := 0;
DURATION_SESSION constant number := 1;
PROCEDURE store_sqe(
query_name in varchar2
,text_query in varchar2
,duration in number default DURATION_PERSISTENT
);
PROCEDURE store_sqe_clob_query(
query_name in varchar2
,text_query in clob
,duration in number default DURATION_PERSISTENT
);
/*------------------------------- remove_sqe ----------------------------*/
/*
NAME
remove_sqe
DESCRIPTION
Delete a stored query
ARGUMENTS
query_name (IN) name of a stored query
NOTES
EXCEPTIONS
ORA-20000 - application error ( with an textile error stack)
RETURNS
none
*/
PROCEDURE remove_sqe(
query_name in varchar2
);
/*---------------------------------store_ctxin_cursor-----------------------*/
FUNCTION store_ctxin_cursor(
ctxin_cursor in out SYS_REFCURSOR
)return SYS_REFCURSOR;
/*------------------------------ explain ----------------------------------*/
/*
NAME
explain
DESCRIPTION
Evaluate the query specified in 'text_query' parameter and return
the Query Execution Plan in the feedback table. Do NOT execute the
query.
ARGUMENTS
index_name (IN) index name being queried
text_query (IN) ConText query string
explain_table (IN) the result table to receive the feedback result
sharelevel (IN) feedback table share options:
0 = single-use, 1 = multiple-use.
explain_id (IN) ID to identify results returned
part_name (IN) index partition name
NOTES
none
EXCEPTIONS
ORA-20000 - application error (with a textile error stack)
RETURNS
none
*/
PROCEDURE explain(
index_name in varchar2,
text_query in varchar2,
explain_table in varchar2,
sharelevel in number default 0,
explain_id in varchar2 default NULL,
part_name in varchar2 default NULL
);
PRAGMA SUPPLEMENTAL_LOG_DATA(explain, AUTO);
PROCEDURE explain_clob_query(
index_name in varchar2,
text_query in clob,
explain_table in varchar2,
sharelevel in number default 0,
explain_id in varchar2 default NULL,
part_name in varchar2 default NULL
);
/*------------------------------ hfeedback ----------------------------------*/
/*
NAME
hfeedback
DESCRIPTION
Evaluate the query specified in 'text_query' parameter and return
the Hierarchical Query Feedback in the feedback table. Do NOT execute the
query.
ARGUMENTS
index_name (IN) index name being queried
text_query (IN) ConText query string
feedback_table (IN) the result table to receive the feedback result
sharelevel (IN) feedback table share options:
0 = single-use, 1 = multiple-use.
feedback_id (IN) ID to identify results returned
part_name (IN) index partition name
NOTES
none
EXCEPTIONS
ORA-20000 - application error (with a textile error stack)
RETURNS
none
*/
PROCEDURE hfeedback(
index_name in varchar2,
text_query in varchar2,
feedback_table in varchar2,
sharelevel in number default 0,
feedback_id in varchar2 default NULL,
part_name in varchar2 default NULL
);
PRAGMA SUPPLEMENTAL_LOG_DATA(hfeedback, AUTO);
PROCEDURE hfeedback_clob_query(
index_name in varchar2,
text_query in clob,
feedback_table in varchar2,
sharelevel in number default 0,
feedback_id in varchar2 default NULL,
part_name in varchar2 default NULL
);
PRAGMA SUPPLEMENTAL_LOG_DATA(hfeedback_clob_query, AUTO);
/*------------------------------ browse_words ------------------------------*/
/*
NAME
browse_words
DESCRIPTION
ARGUMENTS
index_name (IN) index name being queried
seed (IN) seed word
restab (IN) the result table
browse_id (IN) ID to identify results returned
numwords (IN) length of the produced list
direction (IN) direction of the browse
part_name (IN) index partition name
token_type (IN) token type
NOTES
EXCEPTIONS
RETURNS
*/
PROCEDURE browse_words(
index_name in varchar2,
seed in varchar2,
restab in varchar2,
browse_id in number default 0,
numwords in number default 10,
direction in varchar2 default BROWSE_AROUND,
part_name in varchar2 default NULL,
token_type in number default 0
);
/*------------------------------ browse_words ------------------------------*/
/*
NAME
browse_words
DESCRIPTION
ARGUMENTS
index_name (IN) index name being queried
seed (IN) seed word
resarr (IN OUT) PL/SQL array
numwords (IN) length of the produced list
direction (IN) direction of the browse
part_name (IN) index partition name
token_type (IN) token type
NOTES
EXCEPTIONS
RETURNS
*/
PROCEDURE browse_words(
index_name in varchar2,
seed in varchar2,
resarr in out NOCOPY BROWSE_TAB,
numwords in number default 10,
direction in varchar2 default BROWSE_AROUND,
part_name in varchar2 default NULL,
token_type in number default 0
);
/*------------------------------ result_set ---------------------------------*/
/*
NAME
result_set
DESCRIPTION
ARGUMENTS
index_name (IN) index name being queried
query (IN) text query
result_set_descriptor (IN) result set descriptor
result_set (IN OUT) result set
part_name (IN) index partition name
NOTES
EXCEPTIONS
RETURNS
*/
PROCEDURE result_set(
index_name in varchar2,
query in varchar2,
result_set_descriptor in clob,
result_set in out nocopy clob,
part_name in varchar2 default NULL,
parallel_degree in number default 1
);
FUNCTION result_set_px(
xp_cur in drvddl.popcurtyp,
idxid in number,
idxownid in number,
idxowner in varchar2,
idxname in varchar2,
query in varchar2,
rs_dsp in clob
) return sys.odcivarchar2list
pipelined parallel_enable (partition xp_cur by hash (num));
PROCEDURE result_set_clob_query(
index_name in varchar2,
query in clob,
result_set_descriptor in clob,
result_set in out nocopy clob,
part_name in varchar2 default NULL,
parallel_degree in number default 1
);
/*------------------------------ preference -------------------------------*/
/*
NAME
preference
DESCRIPTION
returns the query preference
*/
FUNCTION preference return number;
/*------------------------------ preference -------------------------------*/
/*
NAME
preference
ARGUMENTS
val (IN) number
DESCRIPTION
sets the query preference to the passed in value
*/
PROCEDURE preference(val in number);
/*------------------------- disable_transactional ---------------------------*/
/*
NAME
disable_transactional
DESCRIPTION
returns the value of the flag 'disable_transactional_query'
*/
FUNCTION disable_transactional return boolean;
/*------------------------- disable_transactional ---------------------------*/
/*
NAME
disable_transactional
ARGUMENTS
val (IN) boolean
DESCRIPTION
sets/resets disable_transactional_query flag
*/
PROCEDURE disable_transactional(val in boolean);
/*----------------------- gen_rs_only_on_last_seq -------------------------*/
/*
NAME
gen_rs_only_on_last_seq
ARGUMENTS
val (IN) boolean
DESCRIPTION
sets / resets the rs_on_last_seq flag
*/
PROCEDURE gen_rs_only_on_last_seq(val in boolean);
/*----------------------- gen_rs_only_on_last_seq -------------------------*/
/*
NAME
gen_rs_only_on_last_seq
DESCRIPTION
returns the value of rs_on_last_seq flag
*/
FUNCTION gen_rs_only_on_last_seq return integer;
/*----------------------- gen_rs_only_if_last_seq -------------------------*/
/*
NAME
gen_rs_only_if_last_seq
ARGUMENTS
val (IN) boolean
DESCRIPTION
sets / resets the rs_if_last_seq flag
*/
PROCEDURE gen_rs_only_if_last_seq(val in boolean);
/*----------------------- gen_rs_only_if_last_seq -------------------------*/
/*
NAME
gen_rs_only_if_last_seq
DESCRIPTION
returns the value of rs_if_last_seq flag
*/
FUNCTION gen_rs_only_if_last_seq return integer;
end ctx_query;
/
@?/rdbms/admin/sqlsessend.sql
OHA YOOOO