Hello GoodData support. I’d like to raise a bug an...
# gooddata-cloud
e
Hello GoodData support. I’d like to raise a bug and ask for advice on how to work around it. The bug: GoodData visualizations throw an error when trying to filter attributes that have emojis. (More details under this thread.)
We facilitate emojis as valid field characters in our product, to allow for ‘traffic-light’-type multi-choice fields. GoodData’s visualization designer can display the emojis in both visualization content and filter options, as in this example:
However if one or more of the filter options are selected, there is an error:
Raw response for that error:
Copy code
{
  "title": "Bad Request",
  "status": 400,
  "detail": "An error has occurred while calculating the result",
  "resultId": "9c4942fe2e71176dc981e2ec3162e8a0ad948575",
  "reason": "General error",
  "traceId": "78b7c640f22bfd305c1a0b525746bbe3"
}
I’ve used the
/debug
approach to extract the underlying SQL generated for this query:
Copy code
SELECT "a_label_project_fields_43161a5d21cd42cca74526a3_350ac179c9badd" AS "a_label_project_fields_43161a5d21cd42cca74526a3_fbf5f9953e2cf3", 1 AS "m_1"
FROM (
    SELECT "project_status" AS "a_label_project_fields_43161a5d21cd42cca74526a3_350ac179c9badd"
    FROM "wksp_{wksp_id}"."project_fields_43161a5d21cd42cca74526a3c4a5cdd0"
    GROUP BY "project_status"
) AS "t1"
WHERE "a_label_project_fields_43161a5d21cd42cca74526a3_350ac179c9badd" = ('On Hold ' || CHR(STRTOL('d83d', 16)::INT) || CHR(STRTOL('dfe1', 16)::INT));
(I’ve redacted the workspace id in that SQL)
The
('On Hold ' || CHR(STRTOL('d83d', 16)::INT) || CHR(STRTOL('dfe1', 16)::INT))
portion seems to be the root cause. When I try to run just this portion directly in our Redshift db, i.e:
Copy code
SELECT 'On Hold ' || CHR(STRTOL('d83d', 16)::INT) || CHR(STRTOL('dfe1', 16)::INT);
It returns a unicode error:
Copy code
ERROR: invalid unicode codepoint
So, can the GoodData team please: 1. file this as a bug 2. suggest a workaround other than building a custom MAQL calculation to use as a filter
m
Hi Eogan, thank you for bring this to us. First of all I would like to know how exactly are you passing the emoji on your data... for example>
Active <unicode?>
On hold <🟡>
Could you please confirm, I can see 'd83d' but I would like to confirm?
e
Hi Mauricio. Our Redshift data source for GoodData stores emojis like your second example, i.e. ‘On hold 🟡’ - it stores the character, not a serialized version of the underlying unicode value.
m
Hi Eoghan, Thank you for your patience and for bringing this issue to our attention. We have submitted it as a bug. While we currently do not have an estimated time for a fix, I will keep you updated as soon as we receive any information. We are also still exploring possible workarounds internally.
e
Thank you Mauricio!