diff --git a/persistence/0122_2.15.1_groups_interval.sql b/persistence/0122_2.15.1_groups_interval.sql new file mode 100644 index 00000000..8241d476 --- /dev/null +++ b/persistence/0122_2.15.1_groups_interval.sql @@ -0,0 +1,41 @@ +/** + * NEURON IIoT System for Industry 4.0 + * Copyright (C) 2020-2026 EMQ Technologies Co., Ltd All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + **/ +PRAGMA foreign_keys = OFF; + +BEGIN TRANSACTION; + +CREATE TABLE IF NOT EXISTS + groups_new ( + driver_name TEXT NOT NULL, + name TEXT NULL check(length(name) <= 128), + interval INTEGER NOT NULL check(interval >= 10), + context TEXT NULL check(length(context) <= 512), + UNIQUE (driver_name, name), + FOREIGN KEY (driver_name) REFERENCES nodes (name) ON UPDATE CASCADE ON DELETE CASCADE + ); + +INSERT INTO groups_new (driver_name, name, interval, context) +SELECT driver_name, name, interval, context FROM groups; + +DROP TABLE groups; +ALTER TABLE groups_new RENAME TO groups; + +COMMIT; + +PRAGMA foreign_keys = ON; diff --git a/plugins/restful/adapter_handle.c b/plugins/restful/adapter_handle.c index e8b8b556..c7980c77 100644 --- a/plugins/restful/adapter_handle.c +++ b/plugins/restful/adapter_handle.c @@ -577,7 +577,7 @@ static int send_drivers(nng_aio *aio, neu_json_drivers_req_t *req) ret = NEU_ERR_GROUP_NAME_TOO_LONG; goto check_end; } - if (driver->gtags.gtags[j].interval < NEU_DEFAULT_GROUP_INTERVAL) { + if (driver->gtags.gtags[j].interval < NEU_GROUP_INTERVAL_LIMIT) { ret = NEU_ERR_GROUP_PARAMETER_INVALID; goto check_end; } diff --git a/plugins/restful/datatag_handle.c b/plugins/restful/datatag_handle.c index 9d6fef90..11aa3019 100644 --- a/plugins/restful/datatag_handle.c +++ b/plugins/restful/datatag_handle.c @@ -171,7 +171,7 @@ void handle_add_gtags(nng_aio *aio) err_type = NEU_ERR_GROUP_NAME_TOO_LONG; goto error; } - if (req->groups[i].interval < NEU_DEFAULT_GROUP_INTERVAL) { + if (req->groups[i].interval < NEU_GROUP_INTERVAL_LIMIT) { err_type = NEU_ERR_GROUP_PARAMETER_INVALID; goto error; }