id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 29139,Aggregate functions failing when using Postgres JSON field KeyTransform,trik,ddio,"When annotating by a nested KeyTransform applied to a JSON field, aggregate functions fail: {{{#!python JSONModel.objects.annotate(history=KeyTransform('-1', 'field'))\ .annotate(last_state=KeyTransform('state', 'history'))\ .filter(last_state__gte=5).count() JSONModel.objects.annotate(history=KeyTransform('-1', 'field'))\ .annotate(last_state=KeyTransform('state', 'history'))\ .filter(last_state__isnull=False).aggregate(Sum('last_state')) }}} {{{ Traceback (most recent call last): File ""/Users/trik/Projects/3d_party/django/tests/postgres_tests/test_json.py"", line 305, in test_keytransform .filter(last_state__gte=5).count(), File ""/Users/trik/Projects/3d_party/django/django/db/models/query.py"", line 384, in count return self.query.get_count(using=self.db) File ""/Users/trik/Projects/3d_party/django/django/db/models/sql/query.py"", line 494, in get_count number = obj.get_aggregation(using, ['__count'])['__count'] File ""/Users/trik/Projects/3d_party/django/django/db/models/sql/query.py"", line 462, in get_aggregation outer_query.add_subquery(inner_query, using) File ""/Users/trik/Projects/3d_party/django/django/db/models/sql/subqueries.py"", line 193, in add_subquery self.subquery, self.sub_params = query.get_compiler(using).as_sql(with_col_aliases=True) File ""/Users/trik/Projects/3d_party/django/django/db/models/sql/compiler.py"", line 443, in as_sql extra_select, order_by, group_by = self.pre_sql_setup() File ""/Users/trik/Projects/3d_party/django/django/db/models/sql/compiler.py"", line 55, in pre_sql_setup group_by = self.get_group_by(self.select + extra_select, order_by) File ""/Users/trik/Projects/3d_party/django/django/db/models/sql/compiler.py"", line 130, in get_group_by if (sql, tuple(params)) not in seen: TypeError: unhashable type: 'list' }}} [[https://github.com/gnucoop/django/commit/34769e05be720792e8afc2aebdac0230a77e04c0|Failing test case]] ",Bug,closed,contrib.postgres,2.2,Normal,fixed,json keytransform unhashable,,Accepted,1,0,0,1,0,0