You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Thibaud Faurie (Jira)" <ji...@apache.org> on 2021/06/16 00:22:00 UTC

[jira] [Resolved] (IGNITE-14906) SQL GROUP BY Column not found issue

     [ https://issues.apache.org/jira/browse/IGNITE-14906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thibaud Faurie resolved IGNITE-14906.
-------------------------------------
    Release Note: Missclick : Duplicate of IGNITE-14905
      Resolution: Duplicate

> SQL GROUP BY Column not found issue
> -----------------------------------
>
>                 Key: IGNITE-14906
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14906
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache, sql, thin client
>    Affects Versions: 2.10
>         Environment: Ignite server nodes on linux docker containers.
> Application executed in linux docker container.
> Windows 10 pro : DBeaver, VSCode
> My application language : Scala with Apache Ignite Java official library
>            Reporter: Thibaud Faurie
>            Priority: Major
>
> I have a query that I want to execute through SQL API.
> I have no issue when I run my Query with DBeaver (via Ignite thin client).
> But as soon as I use it in my code with SQL API, it throws an error saying that column permission_id is not found.
> More stranger thing, if I pause execution of my code (which generates an instance of client node in my cluster) at the SqlFieldsQuery execution step, the same error can be thrown by DBeaver sometimes (not 100% accurate)
> However, I figured out this error only occurs when I use the GROUP BY clause and some aggregation functions such as GROUP_CONCAT. As soon as I remove those, it works like a charm. I suspect some bug with H2 and distributed caches.
> Here is my SQL query :
> SELECT app_id, app_label, app_version, app_universal_id, app_status, app_manifest_url, app_store_url, app_created_at, app_updated_at,
> CONCAT_WS('||', permission_id, GROUP_CONCAT(content SEPARATOR ';'), code, language_id, label, GROUP_CONCAT(text_id SEPARATOR ';')) AS info_data, 'PERMISSION_LANG_VARIANT' AS type_data
> FROM (
>     SELECT APP.id AS app_id, APP.label AS app_label, PERMISSION.id AS permission_id, TEXT.content, LANG.code, TEXT.language_id, LANG.label, TEXT.id AS text_id, APP.version AS app_version, APP.app_universal_id AS app_universal_id, APP.status AS app_status, APP.manifest_url AS app_manifest_url, APP.store_url AS app_store_url, APP.created_at AS app_created_at, APP.updated_at AS app_updated_at
>     FROM FUSION.APPLICATION AS APP
>     INNER JOIN FUSION.PERMISSION AS PERMISSION ON APP.id = PERMISSION.application_id
>     INNER JOIN FUSION.TEXT AS TEXT ON TEXT.id = PERMISSION.label_text_id
>     INNER JOIN FUSION.LANGUAGE AS LANG ON TEXT.language_id = LANG.id
>     UNION ALL
>     SELECT APP.id AS app_id, APP.label AS app_label, PERMISSION.id AS permission_id, TEXT.content, LANG.code, TEXT.language_id, LANG.label, TEXT.id AS text_id, APP.version AS app_version, APP.app_universal_id AS app_universal_id, APP.status AS app_status, APP.manifest_url AS app_manifest_url, APP.store_url AS app_store_url, APP.created_at AS app_created_at, APP.updated_at AS app_updated_at
>     FROM FUSION.APPLICATION AS APP
>     INNER JOIN FUSION.PERMISSION AS PERMISSION ON APP.id = PERMISSION.application_id
>     INNER JOIN FUSION.TEXT AS TEXT ON TEXT.id = PERMISSION.description_text_id
>     INNER JOIN FUSION.LANGUAGE AS LANG ON TEXT.language_id = LANG.id
> )
> GROUP BY permission_id, language_id
> Here is the code I use to execute:
> var igniteQuery = new SqlFieldsQuery(queryString)
> var query = igniteCache.query(igniteQuery)
> query.getAll()



--
This message was sent by Atlassian Jira
(v8.3.4#803005)