thingsboard-memoizeit

Details

diff --git a/dao/src/main/resources/cassandra/schema.cql b/dao/src/main/resources/cassandra/schema.cql
index f03122a..bdd413d 100644
--- a/dao/src/main/resources/cassandra/schema.cql
+++ b/dao/src/main/resources/cassandra/schema.cql
@@ -638,3 +638,45 @@ CREATE TABLE IF NOT EXISTS  thingsboard.rule_node (
     additional_info text,
     PRIMARY KEY (id)
 );
+
+CREATE TABLE IF NOT EXISTS thingsboard.entity_views (
+    id timeuuid,
+    entity_id timeuuid,
+    tenant_id timeuuid,
+    customer_id timeuuid,
+    name text,
+    keys text,
+    ts_begin bigint,
+    ts_end bigint,
+    search_text text,
+    additional_info text,
+    PRIMARY KEY (id, entity_id, tenant_id, customer_id)
+);
+
+CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.entity_views_by_tenant_and_name AS
+    SELECT *
+    from thingsboard.entity_views
+    WHERE entity_id IS NOT NULL AND tenant_id IS NOT NULL AND customer_id IS NOT NULL AND keys IS NOT NULL AND ts_begin IS NOT NULL AND ts_end IS NOT NULL AND name IS NOT NULL AND id IS NOT NULL
+    PRIMARY KEY (tenant_id, name, id, entity_id, customer_id)
+    WITH CLUSTERING ORDER BY (name ASC, id DESC, entity_id DESC, customer_id DESC);
+
+CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.entity_views_by_tenant_and_entity AS
+    SELECT *
+    from thingsboard.entity_views
+    WHERE entity_id IS NOT NULL AND tenant_id IS NOT NULL AND customer_id IS NOT NULL AND keys IS NOT NULL AND ts_begin IS NOT NULL AND ts_end IS NOT NULL AND name IS NOT NULL AND id IS NOT NULL
+    PRIMARY KEY (tenant_id, entity_id, id, customer_id, name)
+    WITH CLUSTERING ORDER BY (entity_id ASC, customer_id ASC, id DESC, name DESC);
+
+CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.entity_views_by_tenant_and_customer AS
+    SELECT *
+    from thingsboard.entity_views
+    WHERE entity_id IS NOT NULL AND tenant_id IS NOT NULL AND customer_id IS NOT NULL AND keys IS NOT NULL AND ts_begin IS NOT NULL AND ts_end IS NOT NULL AND name IS NOT NULL AND id IS NOT NULL
+    PRIMARY KEY (tenant_id, customer_id, id, entity_id, name)
+    WITH CLUSTERING ORDER BY (customer_id ASC, id DESC, entity_id DESC, name DESC);
+
+CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.entity_views_by_tenant_and_customer_and_entity AS
+    SELECT *
+    from thingsboard.entity_views
+    WHERE entity_id IS NOT NULL AND tenant_id IS NOT NULL AND customer_id IS NOT NULL AND keys IS NOT NULL AND ts_begin IS NOT NULL AND ts_end IS NOT NULL AND name IS NOT NULL AND id IS NOT NULL
+    PRIMARY KEY (tenant_id, customer_id, entity_id, id, name)
+    WITH CLUSTERING ORDER BY (customer_id ASC, entity_id DESC, id DESC, name DESC);
diff --git a/dao/src/main/resources/sql/schema.sql b/dao/src/main/resources/sql/schema.sql
index 91e77da..8e21e72 100644
--- a/dao/src/main/resources/sql/schema.sql
+++ b/dao/src/main/resources/sql/schema.sql
@@ -251,3 +251,16 @@ CREATE TABLE IF NOT EXISTS rule_node (
     debug_mode boolean,
     search_text varchar(255)
 );
+
+CREATE TABLE IF NOT EXISTS entity_views (
+    id varchar(31) NOT NULL CONSTRAINT entity_view_pkey PRIMARY KEY,
+    additional_info varchar,
+    customer_id varchar(31),
+    keys varchar(255),
+    ts_begin varchar(255),
+    ts_end varchar(255),
+    name varchar(255),
+    search_text varchar(255),
+    entity_id varchar(31),
+    tenant_id varchar(31)
+);