Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PowerBI Desktop - Direct Query - Filter is not working - DB::Exception - ODBC Syntax error #462

Open
areshayevcaci opened this issue Dec 12, 2024 · 0 comments
Labels

Comments

@areshayevcaci
Copy link

The issue with filtering data in PowerBI Desktop was found in 2 scenarios - when we try filter Slicer and when we tried to apply Advanced Filter Contains in Table chart. Original issue was opened as PowerBI connector problem (ClickHouse/power-bi-clickhouse#19), but after investigation it looks like a problem with ODBC driver and setting parameters for query

Steps to reproduce

  1. Create one table
create table test_pbi_slicer_search (code String not null) Engine = MergeTree() order by (code);
insert into test_pbi_slicer_search values ('test_01'),('test_02'),('test_03'),('test_04'),('test_05');

  1. Try filter the data in slicer or via Contains Advanced Filter in table

Slicer - try to Search "Test" - DB::Exception: Syntax error
image

Table - try to Advanced Filter - Contains "Test" - DB::Exception: Syntax error
image

Expected behaviour

PowerBI uses query parameters, but according to ClickHouse's query_log table, a proper SET param_...=XX was never executed.

see more details in this comment ClickHouse/power-bi-clickhouse#19 (comment)

Error log

(version 24.1.2.5 (official build))
2024.02.16 11:42:50.431448 [ 1173 ]  
<Error> executeQuery: Code: 62. DB::Exception: Syntax error: failed at position 101 ('locate') (line 6, col 16): locate({odbc_positional_1:LowCardinality(String)}
,(case^M
        when `code` is not null^M
        then `code`^M
        else {odbc_positional_2:LowCardinality(S. Expected colon between name and type. (SYNTAX_ERROR) 
(version 24.1.2.5 (official build))  
(in query: select `code` from ( select `code` from `dev`.`test_pbi_slicer_search` where { fn locate({odbc_positional_1:LowCardinality(String)}, (case when `code` is not null then `code` else {odbc_positional_2:LowCardinality(String)} end), {odbc_positional_3:Nullable(Int32)}) } >= {odbc_positional_4:Nullable(Int32)} ) as `ITBL` group by `code` order by `code` limit 101), Stack trace (when copying this message, always include the lines below):

Query log

Configuration

Environment

  • Driver version: 1.03.00.55930
  • OS: Windows 10
    clickhouse 24.3.2.25. PowerBI 2.138.1452

ClickHouse server

  • ClickHouse Server version: tested on 2 versions: 24.3.2.25, 24.1.2.5
  • Linux (ubuntu 22.04)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant