Skip to content

Commit a3af0b1

Browse files
committed
fixed bug in convert_text_type
1 parent 02a5bff commit a3af0b1

File tree

4 files changed

+37
-4
lines changed

4 files changed

+37
-4
lines changed

dbt/adapters/iris/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = "1.9.3"
1+
version = "1.9.8"

dbt/adapters/iris/impl.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ def date_function(cls):
3737
@classmethod
3838
def convert_text_type(cls, agate_table, col_idx):
3939
column = agate_table.columns[col_idx]
40-
lens = (len(d.encode("utf-8")) for d in column.values_without_nulls())
41-
max_len = max(lens) if lens else 64
40+
lengths = [len(d.encode("utf-8")) for d in column.values_without_nulls()]
41+
max_len = max(lengths) if lengths else 64
4242
length = max_len if max_len > 16 else 16
4343
return "varchar({})".format(length)
4444

requirements-iris.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
https://github.com/intersystems-community/intersystems-irispython/releases/download/3.8.0/intersystems_iris-3.8.0-py3-none-any.whl
1+
https://github.com/intersystems-community/intersystems-irispython/releases/download/3.9.2/intersystems_iris-3.9.2-py3-none-any.whl

tests/functional/basic/test_adapter_methods.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,39 @@ def test_adapter_methods(self, project, equal_tables):
112112
assert len(result) == 3
113113
check_relations_equal(project.adapter, equal_tables)
114114

115+
def test_convert_text_type(self, project):
116+
class DummyColumn:
117+
def __init__(self, values=[]):
118+
self.values = values
119+
120+
def values_without_nulls(self):
121+
return self.values
122+
123+
class DummyTable:
124+
def __init__(self, columns):
125+
self.columns = columns
126+
127+
table = DummyTable(
128+
columns=[
129+
DummyColumn(),
130+
DummyColumn(
131+
[
132+
"short",
133+
]
134+
),
135+
DummyColumn(
136+
[
137+
"a bit longer text",
138+
]
139+
),
140+
]
141+
)
142+
# default length is 64
143+
assert project.adapter.convert_text_type(table, 0) == "varchar(64)"
144+
# minimum length is 16
145+
assert project.adapter.convert_text_type(table, 1) == "varchar(16)"
146+
assert project.adapter.convert_text_type(table, 2) == "varchar(17)"
147+
115148

116149
class TestBaseCaching(BaseAdapterMethod):
117150
pass

0 commit comments

Comments
 (0)