2017-05-31 18:55:59 +03:00
--
2020-01-06 16:52:41 +02:00
-- Copyright © 2016-2020 The Thingsboard Authors
2017-05-31 18:55:59 +03:00
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
2017-06-01 16:50:37 +03:00
2020-08-03 11:09:13 +03:00
CREATE TABLE IF NOT EXISTS tb_schema_settings
(
schema_version bigint NOT NULL ,
CONSTRAINT tb_schema_settings_pkey PRIMARY KEY ( schema_version )
) ;
2020-08-03 12:25:33 +03:00
CREATE OR REPLACE PROCEDURE insert_tb_schema_settings ( )
LANGUAGE plpgsql AS
$ $
BEGIN
IF ( SELECT COUNT ( * ) FROM tb_schema_settings ) = 0 THEN
2020-08-21 13:34:10 +03:00
INSERT INTO tb_schema_settings ( schema_version ) VALUES ( 3002000 ) ;
2020-08-03 12:25:33 +03:00
END IF ;
END ;
$ $ ;
call insert_tb_schema_settings ( ) ;
2017-05-31 18:55:59 +03:00
CREATE TABLE IF NOT EXISTS admin_settings (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT admin_settings_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-01 20:39:00 +03:00
json_value varchar ,
2017-07-17 17:32:32 +03:00
key varchar ( 255 )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS alarm (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT alarm_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-05-31 18:55:59 +03:00
ack_ts bigint ,
clear_ts bigint ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2017-05-31 18:55:59 +03:00
end_ts bigint ,
2020-06-22 11:10:28 +03:00
originator_id uuid ,
2017-05-31 18:55:59 +03:00
originator_type integer ,
propagate boolean ,
2017-07-17 17:32:32 +03:00
severity varchar ( 255 ) ,
2017-05-31 18:55:59 +03:00
start_ts bigint ,
2017-07-17 17:32:32 +03:00
status varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2019-12-08 23:52:29 +02:00
propagate_relation_types varchar ,
2017-07-17 17:32:32 +03:00
type varchar ( 255 )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS asset (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT asset_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2020-06-22 11:10:28 +03:00
customer_id uuid ,
2017-07-17 17:32:32 +03:00
name varchar ( 255 ) ,
2019-10-17 18:25:05 +03:00
label varchar ( 255 ) ,
2017-07-17 17:32:32 +03:00
search_text varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2019-11-22 15:47:54 +02:00
type varchar ( 255 ) ,
CONSTRAINT asset_name_unq_key UNIQUE ( tenant_id , name )
2017-05-31 18:55:59 +03:00
) ;
2018-02-09 17:17:44 +02:00
CREATE TABLE IF NOT EXISTS audit_log (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT audit_log_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
tenant_id uuid ,
customer_id uuid ,
entity_id uuid ,
2018-02-09 17:17:44 +02:00
entity_type varchar ( 255 ) ,
entity_name varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
user_id uuid ,
2018-02-09 17:17:44 +02:00
user_name varchar ( 255 ) ,
action_type varchar ( 255 ) ,
2018-02-21 20:05:03 +02:00
action_data varchar ( 1000000 ) ,
2018-02-09 17:17:44 +02:00
action_status varchar ( 255 ) ,
2018-02-21 20:05:03 +02:00
action_failure_details varchar ( 1000000 )
2018-02-09 17:17:44 +02:00
) ;
2017-06-13 16:29:40 +03:00
CREATE TABLE IF NOT EXISTS attribute_kv (
2017-07-17 17:32:32 +03:00
entity_type varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
entity_id uuid ,
2017-07-17 17:32:32 +03:00
attribute_type varchar ( 255 ) ,
attribute_key varchar ( 255 ) ,
2017-06-09 19:52:26 +03:00
bool_v boolean ,
2017-08-17 16:38:13 +03:00
str_v varchar ( 10000000 ) ,
2017-06-09 19:52:26 +03:00
long_v bigint ,
dbl_v double precision ,
2020-02-14 19:18:18 +02:00
json_v json ,
2017-06-09 19:52:26 +03:00
last_update_ts bigint ,
2018-12-20 14:53:16 +01:00
CONSTRAINT attribute_kv_pkey PRIMARY KEY ( entity_type , entity_id , attribute_type , attribute_key )
2017-06-09 19:52:26 +03:00
) ;
2017-05-31 18:55:59 +03:00
CREATE TABLE IF NOT EXISTS component_descriptor (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT component_descriptor_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-17 17:32:32 +03:00
actions varchar ( 255 ) ,
2018-10-30 13:32:55 +02:00
clazz varchar UNIQUE ,
2017-07-01 20:39:00 +03:00
configuration_descriptor varchar ,
2017-07-17 17:32:32 +03:00
name varchar ( 255 ) ,
scope varchar ( 255 ) ,
search_text varchar ( 255 ) ,
type varchar ( 255 )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS customer (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT customer_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2017-07-17 17:32:32 +03:00
address varchar ,
address2 varchar ,
city varchar ( 255 ) ,
country varchar ( 255 ) ,
email varchar ( 255 ) ,
phone varchar ( 255 ) ,
search_text varchar ( 255 ) ,
state varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2017-07-17 17:32:32 +03:00
title varchar ( 255 ) ,
zip varchar ( 255 )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS dashboard (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT dashboard_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2020-02-21 13:26:03 +02:00
configuration varchar ( 10000000 ) ,
2018-02-27 18:30:23 +02:00
assigned_customers varchar ( 1000000 ) ,
2017-07-17 17:32:32 +03:00
search_text varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2017-07-17 17:32:32 +03:00
title varchar ( 255 )
2017-05-31 18:55:59 +03:00
) ;
2020-09-04 12:53:22 +03:00
CREATE TABLE IF NOT EXISTS rule_chain (
id uuid NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
additional_info varchar ,
configuration varchar ( 10000000 ) ,
name varchar ( 255 ) ,
first_rule_node_id uuid ,
root boolean ,
debug_mode boolean ,
search_text varchar ( 255 ) ,
tenant_id uuid
) ;
CREATE TABLE IF NOT EXISTS rule_node (
id uuid NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
rule_chain_id uuid ,
additional_info varchar ,
configuration varchar ( 10000000 ) ,
type varchar ( 255 ) ,
name varchar ( 255 ) ,
debug_mode boolean ,
search_text varchar ( 255 )
) ;
2020-10-02 17:55:40 +03:00
CREATE TABLE IF NOT EXISTS rule_node_state (
id uuid NOT NULL CONSTRAINT rule_node_state_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
rule_node_id uuid NOT NULL ,
entity_type varchar ( 32 ) NOT NULL ,
entity_id uuid NOT NULL ,
state_data varchar ( 16384 ) NOT NULL ,
CONSTRAINT rule_node_state_unq_key UNIQUE ( rule_node_id , entity_id ) ,
CONSTRAINT fk_rule_node_state_node_id FOREIGN KEY ( rule_node_id ) REFERENCES rule_node ( id ) ON DELETE CASCADE
) ;
2020-08-18 18:58:53 +03:00
CREATE TABLE IF NOT EXISTS device_profile (
id uuid NOT NULL CONSTRAINT device_profile_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
name varchar ( 255 ) ,
2020-08-20 19:44:29 +03:00
type varchar ( 255 ) ,
2020-09-02 18:52:59 +03:00
transport_type varchar ( 255 ) ,
2020-09-03 11:52:25 +03:00
profile_data jsonb ,
2020-08-18 18:58:53 +03:00
description varchar ,
search_text varchar ( 255 ) ,
is_default boolean ,
tenant_id uuid ,
default_rule_chain_id uuid ,
2020-09-04 12:53:22 +03:00
CONSTRAINT device_profile_name_unq_key UNIQUE ( tenant_id , name ) ,
CONSTRAINT fk_default_rule_chain_device_profile FOREIGN KEY ( default_rule_chain_id ) REFERENCES rule_chain ( id )
2020-08-18 18:58:53 +03:00
) ;
2017-05-31 18:55:59 +03:00
CREATE TABLE IF NOT EXISTS device (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT device_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2020-06-22 11:10:28 +03:00
customer_id uuid ,
2020-08-20 19:44:29 +03:00
device_profile_id uuid NOT NULL ,
2020-09-03 11:52:25 +03:00
device_data jsonb ,
2017-07-17 17:32:32 +03:00
type varchar ( 255 ) ,
name varchar ( 255 ) ,
2019-06-24 12:34:40 +03:00
label varchar ( 255 ) ,
2017-07-17 17:32:32 +03:00
search_text varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2020-08-20 19:44:29 +03:00
CONSTRAINT device_name_unq_key UNIQUE ( tenant_id , name ) ,
CONSTRAINT fk_device_profile FOREIGN KEY ( device_profile_id ) REFERENCES device_profile ( id )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS device_credentials (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT device_credentials_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-17 17:32:32 +03:00
credentials_id varchar ,
credentials_type varchar ( 255 ) ,
2017-07-17 21:19:31 +03:00
credentials_value varchar ,
2020-06-22 11:10:28 +03:00
device_id uuid ,
2020-07-21 15:04:24 +03:00
CONSTRAINT device_credentials_id_unq_key UNIQUE ( credentials_id ) ,
CONSTRAINT device_credentials_device_id_unq_key UNIQUE ( device_id )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS event (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT event_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2019-02-14 16:08:57 +02:00
body varchar ( 10000000 ) ,
2020-06-22 11:10:28 +03:00
entity_id uuid ,
2017-07-17 17:32:32 +03:00
entity_type varchar ( 255 ) ,
event_type varchar ( 255 ) ,
event_uid varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2020-04-22 16:16:58 +03:00
ts bigint NOT NULL ,
2017-06-26 19:19:17 +03:00
CONSTRAINT event_unq_key UNIQUE ( tenant_id , entity_type , entity_id , event_type , event_uid )
2017-05-31 18:55:59 +03:00
) ;
2017-06-14 19:27:35 +03:00
CREATE TABLE IF NOT EXISTS relation (
2020-06-22 11:10:28 +03:00
from_id uuid ,
2017-07-17 17:32:32 +03:00
from_type varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
to_id uuid ,
2017-07-17 17:32:32 +03:00
to_type varchar ( 255 ) ,
relation_type_group varchar ( 255 ) ,
relation_type varchar ( 255 ) ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2018-12-20 14:53:16 +01:00
CONSTRAINT relation_pkey PRIMARY KEY ( from_id , from_type , relation_type_group , relation_type , to_id , to_type )
2020-07-16 18:35:03 +03:00
) ;
-- ) PARTITION BY LIST (relation_type_group);
--
-- CREATE TABLE other_relations PARTITION OF relation DEFAULT;
-- CREATE TABLE common_relations PARTITION OF relation FOR VALUES IN ('COMMON');
-- CREATE TABLE alarm_relations PARTITION OF relation FOR VALUES IN ('ALARM');
-- CREATE TABLE dashboard_relations PARTITION OF relation FOR VALUES IN ('DASHBOARD');
-- CREATE TABLE rule_relations PARTITION OF relation FOR VALUES IN ('RULE_CHAIN', 'RULE_NODE');
2017-06-14 19:27:35 +03:00
2017-05-31 18:55:59 +03:00
CREATE TABLE IF NOT EXISTS tb_user (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT tb_user_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2017-07-17 17:32:32 +03:00
authority varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
customer_id uuid ,
2017-07-17 17:32:32 +03:00
email varchar ( 255 ) UNIQUE ,
first_name varchar ( 255 ) ,
last_name varchar ( 255 ) ,
search_text varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid
2017-05-31 18:55:59 +03:00
) ;
2020-08-20 19:44:29 +03:00
CREATE TABLE IF NOT EXISTS tenant_profile (
id uuid NOT NULL CONSTRAINT tenant_profile_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
name varchar ( 255 ) ,
2020-09-03 11:52:25 +03:00
profile_data jsonb ,
2020-08-20 19:44:29 +03:00
description varchar ,
search_text varchar ( 255 ) ,
is_default boolean ,
isolated_tb_core boolean ,
isolated_tb_rule_engine boolean ,
CONSTRAINT tenant_profile_name_unq_key UNIQUE ( name )
) ;
2017-05-31 18:55:59 +03:00
CREATE TABLE IF NOT EXISTS tenant (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT tenant_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-01 20:39:00 +03:00
additional_info varchar ,
2020-08-18 18:58:53 +03:00
tenant_profile_id uuid NOT NULL ,
2017-07-17 17:32:32 +03:00
address varchar ,
address2 varchar ,
city varchar ( 255 ) ,
country varchar ( 255 ) ,
email varchar ( 255 ) ,
phone varchar ( 255 ) ,
region varchar ( 255 ) ,
search_text varchar ( 255 ) ,
state varchar ( 255 ) ,
title varchar ( 255 ) ,
2020-04-13 10:24:40 +03:00
zip varchar ( 255 ) ,
2020-08-20 19:44:29 +03:00
CONSTRAINT fk_tenant_profile FOREIGN KEY ( tenant_profile_id ) REFERENCES tenant_profile ( id )
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS user_credentials (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT user_credentials_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-17 17:32:32 +03:00
activate_token varchar ( 255 ) UNIQUE ,
2017-05-31 18:55:59 +03:00
enabled boolean ,
2017-07-17 17:32:32 +03:00
password varchar ( 255 ) ,
reset_token varchar ( 255 ) UNIQUE ,
2020-06-22 11:10:28 +03:00
user_id uuid UNIQUE
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS widget_type (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT widget_type_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-17 17:32:32 +03:00
alias varchar ( 255 ) ,
bundle_alias varchar ( 255 ) ,
2017-07-03 11:34:11 +03:00
descriptor varchar ( 1000000 ) ,
2017-07-17 17:32:32 +03:00
name varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid
2017-05-31 18:55:59 +03:00
) ;
CREATE TABLE IF NOT EXISTS widgets_bundle (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT widgets_bundle_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2017-07-17 17:32:32 +03:00
alias varchar ( 255 ) ,
search_text varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
2017-07-17 17:32:32 +03:00
title varchar ( 255 )
2018-03-12 12:28:16 +02:00
) ;
2018-10-09 18:51:10 +03:00
CREATE TABLE IF NOT EXISTS entity_view (
2020-06-22 11:10:28 +03:00
id uuid NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
entity_id uuid ,
2018-09-05 19:29:42 +03:00
entity_type varchar ( 255 ) ,
2020-06-22 11:10:28 +03:00
tenant_id uuid ,
customer_id uuid ,
2018-10-09 18:51:10 +03:00
type varchar ( 255 ) ,
2018-09-05 19:29:42 +03:00
name varchar ( 255 ) ,
2018-11-09 12:49:51 +02:00
keys varchar ( 10000000 ) ,
2018-09-11 15:59:00 +03:00
start_ts bigint ,
end_ts bigint ,
2018-09-03 19:26:42 +03:00
search_text varchar ( 255 ) ,
2018-09-05 19:29:42 +03:00
additional_info varchar
2018-09-03 19:26:42 +03:00
) ;
2020-04-22 13:03:53 +03:00
2020-07-07 18:02:29 +03:00
CREATE TABLE IF NOT EXISTS ts_kv_latest
(
entity_id uuid NOT NULL ,
key int NOT NULL ,
ts bigint NOT NULL ,
bool_v boolean ,
str_v varchar ( 10000000 ) ,
long_v bigint ,
dbl_v double precision ,
json_v json ,
CONSTRAINT ts_kv_latest_pkey PRIMARY KEY ( entity_id , key )
) ;
CREATE TABLE IF NOT EXISTS ts_kv_dictionary
(
key varchar ( 255 ) NOT NULL ,
key_id serial UNIQUE ,
CONSTRAINT ts_key_id_pkey PRIMARY KEY ( key )
) ;
2020-10-01 17:22:17 +03:00
CREATE TABLE IF NOT EXISTS oauth2_client_registration_info (
id uuid NOT NULL CONSTRAINT oauth2_client_registration_info_pkey PRIMARY KEY ,
2020-09-23 13:15:56 +03:00
enabled boolean ,
2020-08-05 17:35:36 +03:00
created_time bigint NOT NULL ,
additional_info varchar ,
client_id varchar ( 255 ) ,
client_secret varchar ( 255 ) ,
authorization_uri varchar ( 255 ) ,
token_uri varchar ( 255 ) ,
scope varchar ( 255 ) ,
user_info_uri varchar ( 255 ) ,
user_name_attribute_name varchar ( 255 ) ,
jwk_set_uri varchar ( 255 ) ,
client_authentication_method varchar ( 255 ) ,
login_button_label varchar ( 255 ) ,
login_button_icon varchar ( 255 ) ,
allow_user_creation boolean ,
activate_user boolean ,
type varchar ( 31 ) ,
basic_email_attribute_key varchar ( 31 ) ,
basic_first_name_attribute_key varchar ( 31 ) ,
basic_last_name_attribute_key varchar ( 31 ) ,
basic_tenant_name_strategy varchar ( 31 ) ,
basic_tenant_name_pattern varchar ( 255 ) ,
basic_customer_name_pattern varchar ( 255 ) ,
basic_default_dashboard_name varchar ( 255 ) ,
basic_always_full_screen boolean ,
custom_url varchar ( 255 ) ,
custom_username varchar ( 255 ) ,
2020-08-13 14:14:38 +03:00
custom_password varchar ( 255 ) ,
custom_send_token boolean
2020-08-05 17:35:36 +03:00
) ;
2020-10-01 17:22:17 +03:00
CREATE TABLE IF NOT EXISTS oauth2_client_registration (
id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
domain_name varchar ( 255 ) ,
domain_scheme varchar ( 31 ) ,
client_registration_info_id uuid
) ;
2020-08-12 17:31:34 +03:00
CREATE TABLE IF NOT EXISTS oauth2_client_registration_template (
id uuid NOT NULL CONSTRAINT oauth2_client_registration_template_pkey PRIMARY KEY ,
created_time bigint NOT NULL ,
2020-08-13 18:21:26 +03:00
additional_info varchar ,
2020-08-12 17:31:34 +03:00
provider_id varchar ( 255 ) ,
authorization_uri varchar ( 255 ) ,
token_uri varchar ( 255 ) ,
scope varchar ( 255 ) ,
user_info_uri varchar ( 255 ) ,
user_name_attribute_name varchar ( 255 ) ,
jwk_set_uri varchar ( 255 ) ,
client_authentication_method varchar ( 255 ) ,
basic_email_attribute_key varchar ( 31 ) ,
basic_first_name_attribute_key varchar ( 31 ) ,
basic_last_name_attribute_key varchar ( 31 ) ,
basic_tenant_name_strategy varchar ( 31 ) ,
basic_tenant_name_pattern varchar ( 255 ) ,
basic_customer_name_pattern varchar ( 255 ) ,
basic_default_dashboard_name varchar ( 255 ) ,
basic_always_full_screen boolean ,
2020-08-13 11:48:14 +03:00
comment varchar ,
2020-09-17 11:35:42 +03:00
login_button_icon varchar ( 255 ) ,
login_button_label varchar ( 255 ) ,
2020-08-13 18:21:26 +03:00
help_link varchar ( 255 ) ,
2020-08-12 17:31:34 +03:00
CONSTRAINT oauth2_template_provider_id_unq_key UNIQUE ( provider_id )
) ;
2020-04-22 16:16:58 +03:00
CREATE OR REPLACE PROCEDURE cleanup_events_by_ttl ( IN ttl bigint , IN debug_ttl bigint , INOUT deleted bigint )
2020-04-22 13:03:53 +03:00
LANGUAGE plpgsql AS
$ $
DECLARE
ttl_ts bigint ;
2020-04-22 16:16:58 +03:00
debug_ttl_ts bigint ;
ttl_deleted_count bigint DEFAULT 0 ;
debug_ttl_deleted_count bigint DEFAULT 0 ;
2020-04-22 13:03:53 +03:00
BEGIN
2020-04-22 16:16:58 +03:00
IF ttl > 0 THEN
ttl_ts : = ( EXTRACT ( EPOCH FROM current_timestamp ) * 1000 - ttl : : bigint * 1000 ) : : bigint ;
2020-04-22 13:03:53 +03:00
EXECUTE format (
2020-04-22 16:16:58 +03:00
' WITH deleted AS (DELETE FROM event WHERE ts < %L::bigint AND (event_type != %L::varchar AND event_type != %L::varchar) RETURNING *) SELECT count(*) FROM deleted ' , ttl_ts , ' DEBUG_RULE_NODE ' , ' DEBUG_RULE_CHAIN ' ) into ttl_deleted_count ;
2020-04-22 13:03:53 +03:00
END IF ;
2020-04-22 16:16:58 +03:00
IF debug_ttl > 0 THEN
debug_ttl_ts : = ( EXTRACT ( EPOCH FROM current_timestamp ) * 1000 - debug_ttl : : bigint * 1000 ) : : bigint ;
EXECUTE format (
' WITH deleted AS (DELETE FROM event WHERE ts < %L::bigint AND (event_type = %L::varchar OR event_type = %L::varchar) RETURNING *) SELECT count(*) FROM deleted ' , debug_ttl_ts , ' DEBUG_RULE_NODE ' , ' DEBUG_RULE_CHAIN ' ) into debug_ttl_deleted_count ;
END IF ;
RAISE NOTICE ' Events removed by ttl: % ' , ttl_deleted_count ;
RAISE NOTICE ' Debug Events removed by ttl: % ' , debug_ttl_deleted_count ;
deleted : = ttl_deleted_count + debug_ttl_deleted_count ;
2020-04-22 13:03:53 +03:00
END
$ $ ;
2020-07-07 18:02:29 +03:00
CREATE OR REPLACE FUNCTION to_uuid ( IN entity_id varchar , OUT uuid_id uuid ) AS
$ $
BEGIN
uuid_id : = substring ( entity_id , 8 , 8 ) | | ' - ' | | substring ( entity_id , 4 , 4 ) | | ' -1 ' | | substring ( entity_id , 1 , 3 ) | |
' - ' | | substring ( entity_id , 16 , 4 ) | | ' - ' | | substring ( entity_id , 20 , 12 ) ;
END ;
$ $ LANGUAGE plpgsql ;
2020-08-03 11:09:13 +03:00