Slice tags can be managed from AddSlice/UpdateSlice/GetSlices
[plcapi.git] / PLC / Table.py
index e3f550f..f37f206 100644 (file)
@@ -280,18 +280,19 @@ class Row(dict):
         """
         returns a SQL sentence that creates a view named after the primary_key and tagname, 
         with 2 columns
-        (*) column 1: name=self.primary_key 
-        (*) column 2: name=tagname value=tagvalue
+        (*) column 1: primary_key 
+        (*) column 2: actual tag value, renamed into tagname
         """
 
-        if not cls.view_tags_name: return ""
+        if not cls.view_tags_name: 
+            raise Exception, 'WARNING: class %s needs to set view_tags_name'%cls.__name__
 
         table_name=cls.table_name
         primary_key=cls.primary_key
         view_tags_name=cls.view_tags_name
         tagvalue_view_name=cls.tagvalue_view_name(tagname)
         return 'CREATE OR REPLACE VIEW %(tagvalue_view_name)s ' \
-            'as SELECT %(table_name)s.%(primary_key)s,%(view_tags_name)s.tagvalue as "%(tagname)s" ' \
+            'as SELECT %(table_name)s.%(primary_key)s,%(view_tags_name)s.value as "%(tagname)s" ' \
             'from %(table_name)s right join %(view_tags_name)s using (%(primary_key)s) ' \
             'WHERE tagname = \'%(tagname)s\';'%locals()
 
@@ -404,7 +405,7 @@ class Table(list):
             tag_columns={}
         else:
             (columns,tag_columns,rejected) = classobj.parse_columns(columns)
-            if not columns:
+            if not columns and not tag_columns:
                 raise PLCInvalidArgument, "No valid return fields specified for class %s"%classobj.__name__
             if rejected:
                 raise PLCInvalidArgument, "unknown column(s) specified %r in %s"%(rejected,classobj.__name__)