postgresql plugin: Check for and report query redefinitions.
authorSebastian Harl <sh@tokkee.org>
Tue, 26 Aug 2008 14:16:55 +0000 (16:16 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Tue, 26 Aug 2008 17:13:34 +0000 (19:13 +0200)
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/postgresql.c

index 409a5de..9438c57 100644 (file)
@@ -774,6 +774,20 @@ static int c_psql_config_query (oconfig_item_t *ci)
                        log_warn ("Ignoring unknown config key \"%s\".", c->key);
        }
 
+       for (i = 0; i < queries_num - 1; ++i) {
+               c_psql_query_t *q = queries + i;
+
+               if ((0 == strcasecmp (q->name, query->name))
+                               && (q->min_pg_version <= query->max_pg_version)
+                               && (query->min_pg_version <= q->max_pg_version)) {
+                       log_err ("Ignoring redefinition (with overlapping version ranges) "
+                                       "of query \"%s\".", query->name);
+                       c_psql_query_delete (query);
+                       --queries_num;
+                       return 1;
+               }
+       }
+
        if (query->min_pg_version > query->max_pg_version) {
                log_err ("Query \"%s\": MinPGVersion > MaxPGVersion.",
                                query->name);