Sfoglia il codice sorgente

wxGUI/dbmgr: get sample/all values tuning

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@72537 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 7 anni fa
parent
commit
5f76b9d697
1 ha cambiato i file con 11 aggiunte e 10 eliminazioni
  1. 11 10
      gui/wxpython/dbmgr/sqlbuilder.py

+ 11 - 10
gui/wxpython/dbmgr/sqlbuilder.py

@@ -359,10 +359,12 @@ class SQLBuilder(wx.Frame):
 
 
         self.list_values.Clear()
         self.list_values.Clear()
 
 
+        sql = "SELECT DISTINCT {column} FROM {table} ORDER BY {column}".format(
+            column=column, table=self.tablename)
+        if justsample:
+            sql += " LIMIT {}".format(255)
         data = grass.db_select(
         data = grass.db_select(
-            sql="SELECT %s FROM %s" %
-            (column,
-             self.tablename),
+            sql=sql,
             database=self.database,
             database=self.database,
             driver=self.driver,
             driver=self.driver,
             sep='{_sep_}')
             sep='{_sep_}')
@@ -373,17 +375,16 @@ class SQLBuilder(wx.Frame):
             self.dbInfo.GetTable(self.layer))[column]
             self.dbInfo.GetTable(self.layer))[column]
 
 
         i = 0
         i = 0
-        for item in sorted(set(map(lambda x: desc['ctype'](x[0]), data))):
-            if justsample and i > 255:
-                break
-
+        items = []
+        for item in data: #sorted(set(map(lambda x: desc['ctype'](x[0]), data))):
             if desc['type'] not in ('character', 'text'):
             if desc['type'] not in ('character', 'text'):
-                item = str(item)
+                items.append(str(item[0]))
             else:
             else:
-                item = u"'{}'".format(GetUnicodeValue(item))
-            self.list_values.Append(item)
+                items.append(u"'{}'".format(GetUnicodeValue(item[0])))
             i += 1
             i += 1
 
 
+        self.list_values.AppendItems(items)
+        
     def OnSampleValues(self, event):
     def OnSampleValues(self, event):
         """Get sample values"""
         """Get sample values"""
         self.OnUniqueValues(None, True)
         self.OnUniqueValues(None, True)