Skip to content

Commit 6a29037

Browse files
authored
Fix left padding function to return strings with correct length (#226)
* fix left padding to return strings with correct length * unskip pad test
1 parent bcca753 commit 6a29037

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

mssql/compiler.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ def _as_sql_lpad(self, compiler, connection):
7676
params.extend(length_arg)
7777
params.extend(expression_arg)
7878
params.extend(expression_arg)
79-
template = ('LEFT(REPLICATE(%(fill_text)s, %(length)s), CASE WHEN %(length)s > LEN(%(expression)s) '
80-
'THEN %(length)s - LEN(%(expression)s) ELSE 0 END) + %(expression)s')
79+
params.extend(length_arg)
80+
template = ('LEFT(LEFT(REPLICATE(%(fill_text)s, %(length)s), CASE WHEN %(length)s > LEN(%(expression)s) '
81+
'THEN %(length)s - LEN(%(expression)s) ELSE 0 END) + %(expression)s, %(length)s)')
8182
return template % {'expression': expression, 'length': length, 'fill_text': fill_text}, params
8283

8384

testapp/settings.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@
137137
'schema.tests.SchemaTests.test_unique_together_with_fk_with_existing_index',
138138
'aggregation.tests.AggregateTestCase.test_count_star',
139139
'aggregation_regress.tests.AggregationTests.test_values_list_annotation_args_ordering',
140-
'db_functions.text.test_pad.PadTests.test_pad',
141140
'expressions.tests.FTimeDeltaTests.test_invalid_operator',
142141
'fixtures_regress.tests.TestFixtures.test_loaddata_raises_error_when_fixture_has_invalid_foreign_key',
143142
'invalid_models_tests.test_ordinary_fields.TextFieldTests.test_max_length_warning',

0 commit comments

Comments
 (0)