perform 1 from londiste.table_info where queue_name = i_queue_name and table_name = fq_table_name;
     if found then
-        select 200, 'OK, already added: ' || fq_table_name into ret_code, ret_note;
+        select 200, 'Table already added: ' || fq_table_name into ret_code, ret_note;
         return;
     end if;
 
     insert into londiste.table_info (queue_name, table_name)
         values (i_queue_name, fq_table_name);
-    select 200, 'OK' into ret_code, ret_note;
+    select 200, 'Table added: ' || i_table_name
+        into ret_code, ret_note;
     return;
 end;
 $$ language plpgsql strict;
 
         where queue_name = i_queue_name
           and table_name = fq_table_name;
     if not found then
-        select 400, 'Not found: '||fq_table_name into ret_code, ret_note;
+        select 400, 'Table not found: ' || fq_table_name
+            into ret_code, ret_note;
         return;
     end if;
-    select 200, 'OK' into ret_code, ret_note;
+    select 200, 'Table removed: ' || i_table_name
+        into ret_code, ret_note;
     return;
 end;
 $$ language plpgsql strict;
 
         end if;
     end loop;
 
-    select 200, 'Sequences updated' into ret_code, ret_note;
+    select 100, 'Sequences updated' into ret_code, ret_note;
     return;
 end;
 $$ language plpgsql;
 
      where queue_name = i_queue_name
        and consumer_name = i_consumer_name;
     if found then
-        select 200, 'Ok' into ret_code, ret_note;
+        select 100, 'Consumer ' || i_consumer_name || ' compleded tick = ' || i_tick_id
+            into ret_code, ret_note;
     else
         select 404, 'Consumer not known: '
                || i_queue_name || '/' || i_consumer_name
 
                 and consumer_name = this.worker_name;
     end if;
 
-    select 200, 'Ok' into ret_code, ret_note;
+    select 200, 'Global watermark set to ' || _wm
+        into ret_code, ret_note;
     return;
 end;
 $$ language plpgsql security definer;
 
     end if;
 
     -- todo: check if wm sane?
+    if i_watermark < n.last_tick then
+        select 405, 'watermark must not be moved backwards'
+            into ret_code, ret_note;
+        return;
+    elsif i_watermark = n.last_tick then
+        select 100, 'watermark already set'
+            into ret_code, ret_note;
+        return;
+    end if;
 
     perform pgq.register_consumer_at(i_queue_name, wm_name, i_watermark);
 
-    select 200, 'Ok' into ret_code, ret_note;
+    select 200, wm_name || ' set to ' || i_watermark
+        into ret_code, ret_note;
     return;
 end;
 $$ language plpgsql security definer;