Browse Source
* Created JsonDataEntry and added DataType JSON * Added json to ts and attributes, created sql schema-entities-hsql.sql (json_v varchar) * refactored * refactored * added json array support * Aggregation improvement * Changed in JsonDataEntry value type from JsonNode to String * fix AggregatePartitionsFunction Co-authored-by: Yevhen Bondarenko <56396344+YevhenBondarenko@users.noreply.github.com>pull/2419/head
committed by
GitHub
56 changed files with 713 additions and 324 deletions
@ -0,0 +1,69 @@ |
|||||
|
/** |
||||
|
* Copyright © 2016-2020 The Thingsboard Authors |
||||
|
* |
||||
|
* 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. |
||||
|
*/ |
||||
|
package org.thingsboard.server.common.data.kv; |
||||
|
|
||||
|
import java.util.Objects; |
||||
|
import java.util.Optional; |
||||
|
|
||||
|
public class JsonDataEntry extends BasicKvEntry { |
||||
|
private final String value; |
||||
|
|
||||
|
public JsonDataEntry(String key, String value) { |
||||
|
super(key); |
||||
|
this.value = value; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DataType getDataType() { |
||||
|
return DataType.JSON; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Optional<String> getJsonValue() { |
||||
|
return Optional.ofNullable(value); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public boolean equals(Object o) { |
||||
|
if (this == o) return true; |
||||
|
if (!(o instanceof JsonDataEntry)) return false; |
||||
|
if (!super.equals(o)) return false; |
||||
|
JsonDataEntry that = (JsonDataEntry) o; |
||||
|
return Objects.equals(value, that.value); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Object getValue() { |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int hashCode() { |
||||
|
return Objects.hash(super.hashCode(), value); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
return "JsonDataEntry{" + |
||||
|
"value=" + value + |
||||
|
"} " + super.toString(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String getValueAsString() { |
||||
|
return value; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,251 @@ |
|||||
|
-- |
||||
|
-- Copyright © 2016-2020 The Thingsboard Authors |
||||
|
-- |
||||
|
-- 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. |
||||
|
-- |
||||
|
|
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS admin_settings ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT admin_settings_pkey PRIMARY KEY, |
||||
|
json_value varchar, |
||||
|
key varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS alarm ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT alarm_pkey PRIMARY KEY, |
||||
|
ack_ts bigint, |
||||
|
clear_ts bigint, |
||||
|
additional_info varchar, |
||||
|
end_ts bigint, |
||||
|
originator_id varchar(31), |
||||
|
originator_type integer, |
||||
|
propagate boolean, |
||||
|
severity varchar(255), |
||||
|
start_ts bigint, |
||||
|
status varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
propagate_relation_types varchar, |
||||
|
type varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS asset ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT asset_pkey PRIMARY KEY, |
||||
|
additional_info varchar, |
||||
|
customer_id varchar(31), |
||||
|
name varchar(255), |
||||
|
label varchar(255), |
||||
|
search_text varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
type varchar(255), |
||||
|
CONSTRAINT asset_name_unq_key UNIQUE (tenant_id, name) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS audit_log ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT audit_log_pkey PRIMARY KEY, |
||||
|
tenant_id varchar(31), |
||||
|
customer_id varchar(31), |
||||
|
entity_id varchar(31), |
||||
|
entity_type varchar(255), |
||||
|
entity_name varchar(255), |
||||
|
user_id varchar(31), |
||||
|
user_name varchar(255), |
||||
|
action_type varchar(255), |
||||
|
action_data varchar(1000000), |
||||
|
action_status varchar(255), |
||||
|
action_failure_details varchar(1000000) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS attribute_kv ( |
||||
|
entity_type varchar(255), |
||||
|
entity_id varchar(31), |
||||
|
attribute_type varchar(255), |
||||
|
attribute_key varchar(255), |
||||
|
bool_v boolean, |
||||
|
str_v varchar(10000000), |
||||
|
long_v bigint, |
||||
|
dbl_v double precision, |
||||
|
json_v varchar(10000000), |
||||
|
last_update_ts bigint, |
||||
|
CONSTRAINT attribute_kv_pkey PRIMARY KEY (entity_type, entity_id, attribute_type, attribute_key) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS component_descriptor ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT component_descriptor_pkey PRIMARY KEY, |
||||
|
actions varchar(255), |
||||
|
clazz varchar UNIQUE, |
||||
|
configuration_descriptor varchar, |
||||
|
name varchar(255), |
||||
|
scope varchar(255), |
||||
|
search_text varchar(255), |
||||
|
type varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS customer ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT customer_pkey PRIMARY KEY, |
||||
|
additional_info varchar, |
||||
|
address varchar, |
||||
|
address2 varchar, |
||||
|
city varchar(255), |
||||
|
country varchar(255), |
||||
|
email varchar(255), |
||||
|
phone varchar(255), |
||||
|
search_text varchar(255), |
||||
|
state varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
title varchar(255), |
||||
|
zip varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS dashboard ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT dashboard_pkey PRIMARY KEY, |
||||
|
configuration varchar(10000000), |
||||
|
assigned_customers varchar(1000000), |
||||
|
search_text varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
title varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS device ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT device_pkey PRIMARY KEY, |
||||
|
additional_info varchar, |
||||
|
customer_id varchar(31), |
||||
|
type varchar(255), |
||||
|
name varchar(255), |
||||
|
label varchar(255), |
||||
|
search_text varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
CONSTRAINT device_name_unq_key UNIQUE (tenant_id, name) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS device_credentials ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT device_credentials_pkey PRIMARY KEY, |
||||
|
credentials_id varchar, |
||||
|
credentials_type varchar(255), |
||||
|
credentials_value varchar, |
||||
|
device_id varchar(31), |
||||
|
CONSTRAINT device_credentials_id_unq_key UNIQUE (credentials_id) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS event ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT event_pkey PRIMARY KEY, |
||||
|
body varchar(10000000), |
||||
|
entity_id varchar(31), |
||||
|
entity_type varchar(255), |
||||
|
event_type varchar(255), |
||||
|
event_uid varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
CONSTRAINT event_unq_key UNIQUE (tenant_id, entity_type, entity_id, event_type, event_uid) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS relation ( |
||||
|
from_id varchar(31), |
||||
|
from_type varchar(255), |
||||
|
to_id varchar(31), |
||||
|
to_type varchar(255), |
||||
|
relation_type_group varchar(255), |
||||
|
relation_type varchar(255), |
||||
|
additional_info varchar, |
||||
|
CONSTRAINT relation_pkey PRIMARY KEY (from_id, from_type, relation_type_group, relation_type, to_id, to_type) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS tb_user ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT tb_user_pkey PRIMARY KEY, |
||||
|
additional_info varchar, |
||||
|
authority varchar(255), |
||||
|
customer_id varchar(31), |
||||
|
email varchar(255) UNIQUE, |
||||
|
first_name varchar(255), |
||||
|
last_name varchar(255), |
||||
|
search_text varchar(255), |
||||
|
tenant_id varchar(31) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS tenant ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT tenant_pkey PRIMARY KEY, |
||||
|
additional_info varchar, |
||||
|
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), |
||||
|
zip varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS user_credentials ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT user_credentials_pkey PRIMARY KEY, |
||||
|
activate_token varchar(255) UNIQUE, |
||||
|
enabled boolean, |
||||
|
password varchar(255), |
||||
|
reset_token varchar(255) UNIQUE, |
||||
|
user_id varchar(31) UNIQUE |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS widget_type ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT widget_type_pkey PRIMARY KEY, |
||||
|
alias varchar(255), |
||||
|
bundle_alias varchar(255), |
||||
|
descriptor varchar(1000000), |
||||
|
name varchar(255), |
||||
|
tenant_id varchar(31) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS widgets_bundle ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT widgets_bundle_pkey PRIMARY KEY, |
||||
|
alias varchar(255), |
||||
|
search_text varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
title varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS rule_chain ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY, |
||||
|
additional_info varchar, |
||||
|
configuration varchar(10000000), |
||||
|
name varchar(255), |
||||
|
first_rule_node_id varchar(31), |
||||
|
root boolean, |
||||
|
debug_mode boolean, |
||||
|
search_text varchar(255), |
||||
|
tenant_id varchar(31) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS rule_node ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY, |
||||
|
rule_chain_id varchar(31), |
||||
|
additional_info varchar, |
||||
|
configuration varchar(10000000), |
||||
|
type varchar(255), |
||||
|
name varchar(255), |
||||
|
debug_mode boolean, |
||||
|
search_text varchar(255) |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE IF NOT EXISTS entity_view ( |
||||
|
id varchar(31) NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY, |
||||
|
entity_id varchar(31), |
||||
|
entity_type varchar(255), |
||||
|
tenant_id varchar(31), |
||||
|
customer_id varchar(31), |
||||
|
type varchar(255), |
||||
|
name varchar(255), |
||||
|
keys varchar(10000000), |
||||
|
start_ts bigint, |
||||
|
end_ts bigint, |
||||
|
search_text varchar(255), |
||||
|
additional_info varchar |
||||
|
); |
||||
Loading…
Reference in new issue