Skip to content
Snippets Groups Projects
Commit 97ae8350 authored by Fabian Franz's avatar Fabian Franz
Browse files

Issue #3280696: Remove unused sequences and default trigger code.

parent 8f10211a
Branches
Tags
No related merge requests found
......@@ -47,98 +47,6 @@ as
end;
function sequence_for_table(p_table varchar2, p_schema varchar2)
return varchar2
as
v_contraint_oname varchar2(127);
v_table_oname varchar2(127):= upper(get_for(p_table));
v_col_name varchar2(4000);
v_sequence_oname varchar2(127);
v_schema varchar2(127):= nvl(upper(p_schema),user);
begin
select constraint_name
into v_contraint_oname
from all_constraints
where constraint_type= 'P'
and table_name= v_table_oname
and owner= v_schema;
select column_name
into v_col_name
from all_cons_columns
where constraint_name= v_contraint_oname
and table_name= v_table_oname
and owner= v_schema;
if instr(v_col_name,long_identifier_prefix()) > 0 then
declare
v_id number;
begin
v_id:= to_number(substr(v_col_name,4));
select identifier
into v_col_name
from long_identifiers
where id= v_id;
end;
end if;
v_sequence_oname:= get_for('SEQ_'||upper(p_table)||'_'||v_col_name);
select sequence_name
into v_sequence_oname
from all_sequences
where sequence_name= v_sequence_oname
and sequence_owner= v_schema;
return '"'||v_schema||'"."'||v_sequence_oname||'"';
exception
WHEN TOO_MANY_ROWS THEN return NULL;
WHEN NO_DATA_FOUND THEN return NULL;
WHEN others THEN return NULL;
end;
function get_serial(p_table varchar2, p_schema varchar2)
return serial_info_tab
pipelined
as
v_serial serial_info;
v_table_oname varchar2(127):= upper(get_for(p_table));
v_schema varchar2(127):= nvl(upper(p_schema),user);
v_serial_re varchar2(255):= '\/\* serial\((\w+),(\w+),(\w+),(\w+)\) \*\/';
begin
select regexp_replace(s.text,v_serial_re,'\2'),
regexp_replace(s.text,v_serial_re,'\3'),
regexp_replace(s.text,v_serial_re,'\4')
into v_serial.trigger_name,
v_serial.sequence_name,
v_serial.field_name
from (select regexp_substr(text,v_serial_re) text
from all_source
where text like '%/* serial('||v_table_oname||',%'
and type= 'TRIGGER'
and line= 1
and owner= v_schema) s;
select last_number+1
into v_serial.sequence_restart
from all_sequences
where sequence_name= v_serial.sequence_name
and sequence_owner= v_schema;
pipe row(v_serial); -- WARN: assume 1 serial for table for now seems right
return;
exception
when others then
return;
end;
function check_db_prefix(p_db_prefix varchar2)
return varchar2
as pragma autonomous_transaction;
......@@ -163,26 +71,4 @@ as
return v_db_prefix;
end;
function longin(p_val vargst)
return vc_list
pipelined
as
v_arg vargs;
begin
for i in 1..p_val.count loop
v_arg:= p_val(i);
for j in 1..v_arg.count loop
pipe row(v_arg(j));
end loop;
end loop;
return;
end;
end identifier;
......@@ -2,18 +2,6 @@ create or replace package identifier
AUTHID CURRENT_USER
as
type serial_info is record
(
sequence_name varchar2(30),
field_name varchar2(30),
trigger_name varchar2(30),
sequence_restart number
);
type serial_info_tab is table of serial_info;
type vc_list is table of varchar2(4000 char);
type vc_arr is table of varchar2(4000 char) index by binary_integer;
function long_identifier_prefix
......@@ -28,19 +16,8 @@ as
function get_for(p_long_identifier varchar2)
return varchar2;
function sequence_for_table(p_table varchar2, p_schema varchar2)
return varchar2;
function get_serial(p_table varchar2, p_schema varchar2)
return serial_info_tab
pipelined;
function check_db_prefix(p_db_prefix varchar2)
return varchar2;
function longin(p_val vargst)
return vc_list
pipelined;
end identifier;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment