Grouping Error in Postres Setup

This is such a big problem with Frappe and ERPNext. This emerges when you want to see a link field in a parent doctype in its list view.

App Versions

{
	"frappe": "15.8.1",
	"frappe_system_monitor": "0.0.1",
	"raven": "1.3.2"
}

Route

List/Raven Channel Member/List

Traceback

Error in query:
column "tabRaven Channel_1.channel_name" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: ...user_id", "tabRaven Channel Member"."channel_id", "tabRaven ...
                                                             ^

Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 110, in application
    response = frappe.api.handle(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/__init__.py", line 49, in handle
    data = endpoint(**arguments)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/v1.py", line 36, in handle_rpc_call
    return frappe.handler.handle()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 49, in handle
    data = execute_cmd(cmd)
           ^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 85, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/__init__.py", line 1689, in call
    return fn(*args, **newargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/__init__.py", line 854, in wrapper_fn
    retval = fn(*args, **get_newargs(fn, kwargs))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/desk/reportview.py", line 28, in get
    data = compress(execute(**args), args=args)
                    ^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/desk/reportview.py", line 64, in execute
    return DatabaseQuery(doctype).execute(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/db_query.py", line 203, in execute
    result = self.build_and_run()
             ^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/db_query.py", line 243, in build_and_run
    return frappe.db.sql(
           ^^^^^^^^^^^^^^
  File "apps/frappe/frappe/database/postgres/database.py", line 203, in sql
    return super().sql(modify_query(query), modify_values(values), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/database/database.py", line 217, in sql
    self._cursor.execute(query, values)
psycopg2.errors.GroupingError: column "tabRaven Channel_1.channel_name" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: ...user_id", "tabRaven Channel Member"."channel_id", "tabRaven ...
                                                             ^


Request Data

{
	"type": "POST",
	"args": {
		"doctype": "Raven Channel Member",
		"fields": "[\"`tabRaven Channel Member`.`name`\",\"`tabRaven Channel Member`.`owner`\",\"`tabRaven Channel Member`.`creation`\",\"`tabRaven Channel Member`.`modified`\",\"`tabRaven Channel Member`.`modified_by`\",\"`tabRaven Channel Member`.`_user_tags`\",\"`tabRaven Channel Member`.`_comments`\",\"`tabRaven Channel Member`.`_assign`\",\"`tabRaven Channel Member`.`_liked_by`\",\"`tabRaven Channel Member`.`docstatus`\",\"`tabRaven Channel Member`.`idx`\",\"`tabRaven Channel Member`.`user_id`\",\"`tabRaven Channel Member`.`channel_id`\",\"channel_id.channel_name as channel_id_channel_name\"]",
		"filters": "[]",
		"order_by": "`tabRaven Channel Member`.`modified` DESC",
		"start": 0,
		"page_length": 20,
		"view": "List",
		"group_by": "`tabRaven Channel Member`.`name`",
		"with_comment_count": 1
	},
	"freeze": false,
	"freeze_message": "Loading...",
	"headers": {},
	"error_handlers": {},
	"url": "/api/method/frappe.desk.reportview.get",
	"request_id": null
}

Response Data

{
	"exception": "",
	"exc_type": "GroupingError"
}

@NCP @revant_one @rmehta This error occurs when we have the link field name set to int i.e: auto increment. I would love to help in fixing of this bug being a developer myself can you please look into this and assign someone to help out. In the core of RDBMS i want to keep the Ids of most of my masters as auto-increment but this is stopping me to do so and im sure many other. Indexing is getting hampered because of this.

This has been an issue faced by users.

@Parth_Vashista Postgres support is not first-class in the Frappe ecosystem.

This problem specifically is with the Raven app, please raise an issue on their GitHub

1 Like

Dear Rushab sir the problem is not with the raven app its is with how the postgres queries are being handled, I have raised the issue on frappe github and will raise a pull request after resolving it.