Skip to content

Commit 7c7bcbc

Browse files
authored
Merge pull request #3109 from robertcv/fix_sql_char
[FIX] postgres: Fix wrong discrete values
2 parents 335db7c + 3b6272c commit 7c7bcbc

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Orange/data/sql/backend/postgres.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ def _guess_variable(self, field_name, field_metadata, inspect_table):
165165
if type_code in CHAR_TYPES:
166166
if inspect_table:
167167
values = self.get_distinct_values(field_name, inspect_table)
168+
# remove trailing spaces
169+
values = [v.rstrip() for v in values]
168170
if values:
169171
return DiscreteVariable.make(field_name, values)
170172

Orange/tests/sql/test_sql_table.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,14 @@ def test_discrete_char(self):
346346
sql_table = SqlTable(conn, table_name, inspect_values=True)
347347
self.assertFirstAttrIsInstance(sql_table, DiscreteVariable)
348348

349+
def test_discrete_bigger_char(self):
350+
"""Test if the discrete values are the same for bigger char fields"""
351+
table = np.array(['M', 'F', 'M', 'F', 'M', 'F']).reshape(-1, 1)
352+
conn, table_name = self.create_sql_table(table, ['char(10)'])
353+
354+
sql_table = SqlTable(conn, table_name, inspect_values=True)
355+
self.assertSequenceEqual(sql_table.domain[0].values, ['F', 'M'])
356+
349357
def test_meta_char(self):
350358
table = np.array(list('ABCDEFGHIJKLMNOPQRSTUVW')).reshape(-1, 1)
351359
conn, table_name = self.create_sql_table(table, ['char(1)'])

0 commit comments

Comments
 (0)