mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-07-14 00:01:30 -04:00
205 lines
6.1 KiB
SQL
205 lines
6.1 KiB
SQL
create or replace view object_variables_view as
|
|
select v.object_id, n.name, v.type, v.value, -1 packed
|
|
from object_variables v, object_variable_names n
|
|
where v.name_id = n.id
|
|
and v.detached = 0
|
|
union all
|
|
select o.object_id, o.objvar_0_name, o.objvar_0_type, o.objvar_0_value, 0
|
|
from objects o
|
|
where o.objvar_0_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_1_name, o.objvar_1_type, o.objvar_1_value, 1
|
|
from objects o
|
|
where o.objvar_1_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_2_name, o.objvar_2_type, o.objvar_2_value, 2
|
|
from objects o
|
|
where o.objvar_2_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_3_name, o.objvar_3_type, o.objvar_3_value, 3
|
|
from objects o
|
|
where o.objvar_3_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_4_name, o.objvar_4_type, o.objvar_4_value, 4
|
|
from objects o
|
|
where o.objvar_4_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_5_name, o.objvar_5_type, o.objvar_5_value, 5
|
|
from objects o
|
|
where o.objvar_5_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_6_name, o.objvar_6_type, o.objvar_6_value, 6
|
|
from objects o
|
|
where o.objvar_6_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_7_name, o.objvar_7_type, o.objvar_7_value, 7
|
|
from objects o
|
|
where o.objvar_7_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_8_name, o.objvar_8_type, o.objvar_8_value, 8
|
|
from objects o
|
|
where o.objvar_8_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_9_name, o.objvar_9_type, o.objvar_9_value, 9
|
|
from objects o
|
|
where o.objvar_9_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_10_name, o.objvar_10_type, o.objvar_10_value, 10
|
|
from objects o
|
|
where o.objvar_10_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_11_name, o.objvar_11_type, o.objvar_11_value, 11
|
|
from objects o
|
|
where o.objvar_11_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_12_name, o.objvar_12_type, o.objvar_12_value, 12
|
|
from objects o
|
|
where o.objvar_12_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_13_name, o.objvar_13_type, o.objvar_13_value, 13
|
|
from objects o
|
|
where o.objvar_13_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_14_name, o.objvar_14_type, o.objvar_14_value, 14
|
|
from objects o
|
|
where o.objvar_14_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_15_name, o.objvar_15_type, o.objvar_15_value, 15
|
|
from objects o
|
|
where o.objvar_15_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_16_name, o.objvar_16_type, o.objvar_16_value, 16
|
|
from objects o
|
|
where o.objvar_16_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_17_name, o.objvar_17_type, o.objvar_17_value, 17
|
|
from objects o
|
|
where o.objvar_17_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_18_name, o.objvar_18_type, o.objvar_18_value, 18
|
|
from objects o
|
|
where o.objvar_18_type >= 0
|
|
union all
|
|
select o.object_id, o.objvar_19_name, o.objvar_19_type, o.objvar_19_value, 19
|
|
from objects o
|
|
where o.objvar_19_type >= 0;
|
|
|
|
alter table harvester_installation_objects add resource_type number(20);
|
|
|
|
update harvester_installation_objects
|
|
set resource_type = nvl((select resource_type from resource_pool_objects p where p.object_id = harvester_installation_objects.resource_pool),0);
|
|
|
|
alter table harvester_installation_objects drop column resource_pool;
|
|
|
|
create table resource_types
|
|
(
|
|
resource_id number(20), -- BIND_AS(DB::BindableNetworkId)
|
|
resource_name varchar2(100),
|
|
resource_class varchar2(100),
|
|
attributes varchar2(1024),
|
|
fractal_seeds varchar2(1024),
|
|
depleted_timestamp int,
|
|
constraint pk_resource_types primary key (resource_id) using index tablespace indexes
|
|
);
|
|
|
|
grant select on resource_types to public;
|
|
|
|
insert into resource_types (resource_id, resource_name, resource_class)
|
|
select t.object_id, t.resource_name, t.resource_class
|
|
from resource_type_objects t, objects o
|
|
where t.object_id = o.object_id
|
|
and o.deleted = 0;
|
|
|
|
commit;
|
|
analyze table resource_types estimate statistics;
|
|
|
|
create table temp_depleted_timestamps
|
|
as select resource_type, max(nvl(depleted_timestamp,0)) max_timestamp
|
|
from resource_pool_objects
|
|
where resource_type is not null
|
|
group by resource_type;
|
|
|
|
alter table temp_depleted_timestamps add constraint pk_tdt primary key (resource_type);
|
|
analyze table temp_depleted_timestamps estimate statistics;
|
|
|
|
update resource_types
|
|
set depleted_timestamp = nvl((select max_timestamp from temp_depleted_timestamps p where p.resource_type = resource_id),0);
|
|
|
|
drop table temp_depleted_timestamps;
|
|
|
|
-- build list of fractal seeds
|
|
declare
|
|
last_type number;
|
|
seed_string varchar2(1024);
|
|
begin
|
|
last_type := 0;
|
|
for x in (select planet, map_seed, resource_type from resource_pool_objects where planet <> 0 and resource_type <> 0 order by resource_type, planet)
|
|
loop
|
|
if (x.resource_type <> last_type and last_type <> 0) then
|
|
update resource_types
|
|
set fractal_seeds = seed_string
|
|
where resource_types.resource_id = last_type;
|
|
|
|
seed_string := NULL;
|
|
end if;
|
|
|
|
seed_string := seed_string || x.planet || ' ' || x.map_seed || ':';
|
|
last_type := x.resource_type;
|
|
end loop;
|
|
|
|
if (last_type <> 0) then
|
|
update resource_types
|
|
set fractal_seeds = seed_string
|
|
where resource_types.resource_id = last_type;
|
|
end if;
|
|
end;
|
|
/
|
|
|
|
commit;
|
|
|
|
-- copy resource attributes
|
|
|
|
declare
|
|
last_type number := 0;
|
|
attribute_string varchar2(1024);
|
|
begin
|
|
for x in (select v.object_id, substr(name,12) || ' ' || value || ':' value_string from object_variables_view v, resource_type_objects r where r.object_id = v.object_id and name like 'attributes.%' order by r.object_id, packed)
|
|
loop
|
|
if (x.object_id <> last_type and last_type <> 0) then
|
|
update resource_types
|
|
set attributes = attribute_string
|
|
where resource_types.resource_id = last_type;
|
|
|
|
attribute_string := NULL;
|
|
end if;
|
|
|
|
attribute_string := attribute_string || x.value_string;
|
|
last_type := x.object_id;
|
|
end loop;
|
|
|
|
if (last_type <> 0) then
|
|
update resource_types
|
|
set attributes = attribute_string
|
|
where resource_types.resource_id = last_type;
|
|
end if;
|
|
end;
|
|
/
|
|
|
|
commit;
|
|
|
|
-- delete objects
|
|
|
|
update objects
|
|
set deleted = 8, deleted_date = sysdate, load_with = null
|
|
where exists (select 1 from resource_pool_objects p where p.object_id = objects.object_id) and deleted = 0;
|
|
|
|
commit;
|
|
|
|
update objects
|
|
set deleted = 8, deleted_date = sysdate, load_with = null
|
|
where exists (select 1 from resource_type_objects t where t.object_id = objects.object_id) and deleted = 0;
|
|
|
|
commit;
|
|
|
|
update version_number set version_number=167, min_version_number=167;
|