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

Dashboard filter options lookup produces query that references non-existent column when linked question aggregates values #42829

Open
kfriend opened this issue May 17, 2024 · 0 comments
Labels
.Frontend Priority:P2 Average run of the mill bug Querying/Parameters & Variables Filter widgets, field filters, variables etc. .Team/QueryingComponents Type:Bug Product defects

Comments

@kfriend
Copy link

kfriend commented May 17, 2024

Describe the bug

When you have a dashboard filter, which is linked to a question that aggregates results, the request to get possible filtering options fails with a 500 error. The query it generates references a column that does not exist, as it is structure in a way that attempts to get possible values after aggregating, instead of prior.

To Reproduce

  1. Standup a MB instance with sample data (H2) and default configuration
  2. Create an SQL model against the sample data, with the following query: select * from people
  3. Create a UI builder question that uses the model
  4. Add a "Distinct values of State" under "Summarize", then save the question
  5. Add the question to a new dashboard
  6. Add a new "Text or Category" filter
  7. Select "Is" for filter type
  8. Select "State" on the question's "Column to filter on" -- this should configure the filter to pull values from connected fields
  9. Save the dashboard
  10. Open the browser developer tools, then the network tab
  11. Click the filter field, and inspect the failed request

Expected behavior

The request should not fail, and should return values that can be selected for filtering.

Logs

JS logs:

Screenshot 2024-05-17 at 9 26 17 AM

Error response:

{
  "via": [
    {
      "type": "clojure.lang.ExceptionInfo",
      "message": "Error executing query: Column \"source.STATE\" not found; SQL statement:\nSELECT \"source\".\"STATE\" AS \"STATE\" FROM (SELECT count(distinct \"source\".\"STATE\") AS \"count\" FROM (select * from people) AS \"source\") AS \"source\" WHERE \"source\".\"STATE\" IS NOT NULL GROUP BY \"source\".\"STATE\" ORDER BY \"source\".\"STATE\" ASC LIMIT 1000 [42122-214]",
      "data": {
        "driver": "h2",
        "sql": [
          "-- Metabase",
          "SELECT",
          "  \"source\".\"STATE\" AS \"STATE\"",
          "FROM",
          "  (",
          "    SELECT",
          "      count(distinct \"source\".\"STATE\") AS \"count\"",
          "    FROM",
          "      (",
          "        select",
          "          *",
          "        from",
          "          people",
          "      ) AS \"source\"",
          "  ) AS \"source\"",
          "WHERE",
          "  \"source\".\"STATE\" IS NOT NULL",
          "GROUP BY",
          "  \"source\".\"STATE\"",
          "ORDER BY",
          "  \"source\".\"STATE\" ASC",
          "LIMIT",
          "  1000"
        ],
        "params": null,
        "type": "invalid-query"
      },
      "at": [
        "metabase.driver.sql_jdbc.execute$execute_reducible_query$fn__79490$fn__79491",
        "invoke",
        "execute.clj",
        702
      ]
    },
    {
      "type": "org.h2.jdbc.JdbcSQLSyntaxErrorException",
      "message": "Column \"source.STATE\" not found; SQL statement:\nSELECT \"source\".\"STATE\" AS \"STATE\" FROM (SELECT count(distinct \"source\".\"STATE\") AS \"count\" FROM (select * from people) AS \"source\") AS \"source\" WHERE \"source\".\"STATE\" IS NOT NULL GROUP BY \"source\".\"STATE\" ORDER BY \"source\".\"STATE\" ASC LIMIT 1000 [42122-214]",
      "at": [
        "org.h2.message.DbException",
        "getJdbcSQLException",
        "DbException.java",
        502
      ]
    }
  ],
  "trace": [
    [
      "org.h2.message.DbException",
      "getJdbcSQLException",
      "DbException.java",
      502
    ],
    [
      "org.h2.message.DbException",
      "getJdbcSQLException",
      "DbException.java",
      477
    ],
    [
      "org.h2.message.DbException",
      "get",
      "DbException.java",
      223
    ],
    [
      "org.h2.message.DbException",
      "get",
      "DbException.java",
      199
    ],
    [
      "org.h2.expression.ExpressionColumn",
      "getColumnException",
      "ExpressionColumn.java",
      244
    ],
    [
      "org.h2.expression.ExpressionColumn",
      "optimizeOther",
      "ExpressionColumn.java",
      226
    ],
    [
      "org.h2.expression.ExpressionColumn",
      "optimize",
      "ExpressionColumn.java",
      213
    ],
    [
      "org.h2.expression.Alias",
      "optimize",
      "Alias.java",
      52
    ],
    [
      "org.h2.command.query.Select",
      "prepareExpressions",
      "Select.java",
      1170
    ],
    [
      "org.h2.command.query.Query",
      "prepare",
      "Query.java",
      218
    ],
    [
      "org.h2.command.Parser",
      "prepareCommand",
      "Parser.java",
      575
    ],
    [
      "org.h2.engine.SessionLocal",
      "prepareLocal",
      "SessionLocal.java",
      631
    ],
    [
      "org.h2.engine.SessionLocal",
      "prepareCommand",
      "SessionLocal.java",
      554
    ],
    [
      "org.h2.jdbc.JdbcConnection",
      "prepareCommand",
      "JdbcConnection.java",
      1116
    ],
    [
      "org.h2.jdbc.JdbcStatement",
      "executeInternal",
      "JdbcStatement.java",
      237
    ],
    [
      "org.h2.jdbc.JdbcStatement",
      "execute",
      "JdbcStatement.java",
      223
    ],
    [
      "com.mchange.v2.c3p0.impl.NewProxyStatement",
      "execute",
      "NewProxyStatement.java",
      75
    ],
    [
      "metabase.driver.sql_jdbc.execute$fn__79409",
      "invokeStatic",
      "execute.clj",
      561
    ],
    [
      "metabase.driver.sql_jdbc.execute$fn__79409",
      "invoke",
      "execute.clj",
      559
    ],
    [
      "clojure.lang.MultiFn",
      "invoke",
      "MultiFn.java",
      239
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_statement_or_prepared_statement_BANG_",
      "invokeStatic",
      "execute.clj",
      569
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_statement_or_prepared_statement_BANG_",
      "invoke",
      "execute.clj",
      566
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_reducible_query$fn__79490$fn__79491",
      "invoke",
      "execute.clj",
      700
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_reducible_query$fn__79490",
      "invoke",
      "execute.clj",
      699
    ],
    [
      "metabase.driver.h2$fn__81730$fn__81732",
      "invoke",
      "h2.clj",
      535
    ],
    [
      "metabase.driver.sql_jdbc.execute$do_with_resolved_connection",
      "invokeStatic",
      "execute.clj",
      335
    ],
    [
      "metabase.driver.sql_jdbc.execute$do_with_resolved_connection",
      "invoke",
      "execute.clj",
      318
    ],
    [
      "metabase.driver.h2$fn__81730",
      "invokeStatic",
      "h2.clj",
      526
    ],
    [
      "metabase.driver.h2$fn__81730",
      "invoke",
      "h2.clj",
      522
    ],
    [
      "clojure.lang.MultiFn",
      "invoke",
      "MultiFn.java",
      244
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_reducible_query",
      "invokeStatic",
      "execute.clj",
      693
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_reducible_query",
      "invoke",
      "execute.clj",
      679
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_reducible_query",
      "invokeStatic",
      "execute.clj",
      690
    ],
    [
      "metabase.driver.sql_jdbc.execute$execute_reducible_query",
      "invoke",
      "execute.clj",
      679
    ],
    [
      "metabase.driver.sql_jdbc$fn__106839",
      "invokeStatic",
      "sql_jdbc.clj",
      78
    ],
    [
      "metabase.driver.sql_jdbc$fn__106839",
      "invoke",
      "sql_jdbc.clj",
      76
    ],
    [
      "metabase.driver.h2$fn__81571",
      "invokeStatic",
      "h2.clj",
      272
    ],
    [
      "metabase.driver.h2$fn__81571",
      "invoke",
      "h2.clj",
      268
    ],
    [
      "clojure.lang.MultiFn",
      "invoke",
      "MultiFn.java",
      244
    ],
    [
      "metabase.query_processor.context$executef",
      "invokeStatic",
      "context.clj",
      60
    ],
    [
      "metabase.query_processor.context$executef",
      "invoke",
      "context.clj",
      49
    ],
    [
      "metabase.query_processor.context.default$default_runf",
      "invokeStatic",
      "default.clj",
      44
    ],
    [
      "metabase.query_processor.context.default$default_runf",
      "invoke",
      "default.clj",
      42
    ],
    [
      "metabase.query_processor.context$runf",
      "invokeStatic",
      "context.clj",
      46
    ],
    [
      "metabase.query_processor.context$runf",
      "invoke",
      "context.clj",
      40
    ],
    [
      "metabase.query_processor.reducible$identity_qp",
      "invokeStatic",
      "reducible.clj",
      39
    ],
    [
      "metabase.query_processor.reducible$identity_qp",
      "invoke",
      "reducible.clj",
      36
    ],
    [
      "metabase.query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___72307",
      "invoke",
      "cache.clj",
      229
    ],
    [
      "metabase.query_processor.middleware.permissions$check_query_permissions$fn__66656",
      "invoke",
      "permissions.clj",
      140
    ],
    [
      "metabase.query_processor.middleware.enterprise$check_download_permissions_middleware$fn__72128",
      "invoke",
      "enterprise.clj",
      51
    ],
    [
      "metabase.query_processor.middleware.enterprise$maybe_apply_column_level_perms_check_middleware$fn__72138",
      "invoke",
      "enterprise.clj",
      64
    ],
    [
      "metabase.query_processor.middleware.mbql_to_native$mbql__GT_native$fn__71570",
      "invoke",
      "mbql_to_native.clj",
      24
    ],
    [
      "metabase.query_processor$fn__73475$combined_post_process__73480$combined_post_process_STAR___73481",
      "invoke",
      "query_processor.clj",
      262
    ],
    [
      "metabase.query_processor$fn__73475$combined_pre_process__73476$combined_pre_process_STAR___73477",
      "invoke",
      "query_processor.clj",
      259
    ],
    [
      "metabase.query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__66753",
      "invoke",
      "fetch_source_query.clj",
      299
    ],
    [
      "metabase.query_processor.middleware.resolve_database_and_driver$resolve_driver_and_database_local_values$fn__72218$fn__72222",
      "invoke",
      "resolve_database_and_driver.clj",
      77
    ],
    [
      "metabase.driver$do_with_driver",
      "invokeStatic",
      "driver.clj",
      97
    ],
    [
      "metabase.driver$do_with_driver",
      "invoke",
      "driver.clj",
      92
    ],
    [
      "metabase.query_processor.middleware.resolve_database_and_driver$resolve_driver_and_database_local_values$fn__72218",
      "invoke",
      "resolve_database_and_driver.clj",
      76
    ],
    [
      "metabase.query_processor.middleware.store$initialize_store$fn__67380$fn__67381",
      "invoke",
      "store.clj",
      14
    ],
    [
      "metabase.query_processor.store$do_with_metadata_provider",
      "invokeStatic",
      "store.clj",
      169
    ],
    [
      "metabase.query_processor.store$do_with_metadata_provider",
      "invoke",
      "store.clj",
      150
    ],
    [
      "metabase.query_processor.store$do_with_metadata_provider",
      "invokeStatic",
      "store.clj",
      158
    ],
    [
      "metabase.query_processor.store$do_with_metadata_provider",
      "invoke",
      "store.clj",
      150
    ],
    [
      "metabase.query_processor.middleware.store$initialize_store$fn__67380",
      "invoke",
      "store.clj",
      13
    ],
    [
      "metabase.query_processor.middleware.resolve_database_and_driver$resolve_database$fn__72215",
      "invoke",
      "resolve_database_and_driver.clj",
      60
    ],
    [
      "metabase.query_processor.middleware.normalize_query$normalize$fn__72520",
      "invoke",
      "normalize_query.clj",
      38
    ],
    [
      "metabase.query_processor.middleware.enterprise$fn__72155$handle_audit_app_internal_queries__72156$fn__72158",
      "invoke",
      "enterprise.clj",
      96
    ],
    [
      "metabase.query_processor.middleware.enterprise$handle_audit_app_internal_queries_middleware$fn__72166",
      "invoke",
      "enterprise.clj",
      103
    ],
    [
      "metabase.query_processor.reducible$async_qp$qp_STAR___62893$thunk__62895",
      "invoke",
      "reducible.clj",
      126
    ],
    [
      "metabase.query_processor.reducible$async_qp$qp_STAR___62893",
      "invoke",
      "reducible.clj",
      132
    ],
    [
      "clojure.lang.AFn",
      "applyToHelper",
      "AFn.java",
      160
    ],
    [
      "clojure.lang.AFn",
      "applyTo",
      "AFn.java",
      144
    ],
    [
      "clojure.core$apply",
      "invokeStatic",
      "core.clj",
      667
    ],
    [
      "clojure.core$apply",
      "invoke",
      "core.clj",
      662
    ],
    [
      "metabase.query_processor.reducible$sync_qp$qp_STAR___62905",
      "doInvoke",
      "reducible.clj",
      153
    ],
    [
      "clojure.lang.RestFn",
      "invoke",
      "RestFn.java",
      436
    ],
    [
      "metabase.query_processor$process_query",
      "invokeStatic",
      "query_processor.clj",
      311
    ],
    [
      "metabase.query_processor$process_query",
      "invoke",
      "query_processor.clj",
      291
    ],
    [
      "metabase.query_processor$process_query",
      "invokeStatic",
      "query_processor.clj",
      299
    ],
    [
      "metabase.query_processor$process_query",
      "invoke",
      "query_processor.clj",
      291
    ],
    [
      "metabase.query_processor$process_query",
      "invokeStatic",
      "query_processor.clj",
      296
    ],
    [
      "metabase.query_processor$process_query",
      "invoke",
      "query_processor.clj",
      291
    ],
    [
      "metabase.models.params.custom_values$values_from_card",
      "invokeStatic",
      "custom_values.clj",
      97
    ],
    [
      "metabase.models.params.custom_values$values_from_card",
      "invoke",
      "custom_values.clj",
      76
    ],
    [
      "metabase.models.params.custom_values$values_from_card",
      "invokeStatic",
      "custom_values.clj",
      91
    ],
    [
      "metabase.models.params.custom_values$values_from_card",
      "invoke",
      "custom_values.clj",
      76
    ],
    [
      "metabase.api.dashboard$filter_values_from_field_refs$iter__95151__95155$fn__95156",
      "invoke",
      "dashboard.clj",
      973
    ],
    [
      "clojure.lang.LazySeq",
      "sval",
      "LazySeq.java",
      42
    ],
    [
      "clojure.lang.LazySeq",
      "seq",
      "LazySeq.java",
      51
    ],
    [
      "clojure.lang.RT",
      "seq",
      "RT.java",
      535
    ],
    [
      "clojure.core$seq__5467",
      "invokeStatic",
      "core.clj",
      139
    ],
    [
      "clojure.core$map$fn__5935",
      "invoke",
      "core.clj",
      2763
    ],
    [
      "clojure.lang.LazySeq",
      "sval",
      "LazySeq.java",
      42
    ],
    [
      "clojure.lang.LazySeq",
      "seq",
      "LazySeq.java",
      51
    ],
    [
      "clojure.lang.RT",
      "seq",
      "RT.java",
      535
    ],
    [
      "clojure.core$seq__5467",
      "invokeStatic",
      "core.clj",
      139
    ],
    [
      "clojure.core$apply",
      "invokeStatic",
      "core.clj",
      662
    ],
    [
      "clojure.core$mapcat",
      "invokeStatic",
      "core.clj",
      2800
    ],
    [
      "clojure.core$mapcat",
      "doInvoke",
      "core.clj",
      2800
    ],
    [
      "clojure.lang.RestFn",
      "invoke",
      "RestFn.java",
      423
    ],
    [
      "metabase.api.dashboard$filter_values_from_field_refs",
      "invokeStatic",
      "dashboard.clj",
      974
    ],
    [
      "metabase.api.dashboard$filter_values_from_field_refs",
      "invoke",
      "dashboard.clj",
      963
    ],
    [
      "metabase.api.dashboard$chain_filter",
      "invokeStatic",
      "dashboard.clj",
      999
    ],
    [
      "metabase.api.dashboard$chain_filter",
      "invoke",
      "dashboard.clj",
      983
    ],
    [
      "metabase.api.dashboard$param_values$fn__95189",
      "invoke",
      "dashboard.clj",
      1045
    ],
    [
      "metabase.models.params.custom_values$parameter__GT_values",
      "invokeStatic",
      "custom_values.clj",
      134
    ],
    [
      "metabase.models.params.custom_values$parameter__GT_values",
      "invoke",
      "custom_values.clj",
      119
    ],
    [
      "metabase.api.dashboard$param_values",
      "invokeStatic",
      "dashboard.clj",
      1042
    ],
    [
      "metabase.api.dashboard$param_values",
      "invoke",
      "dashboard.clj",
      1022
    ],
    [
      "metabase.api.dashboard$param_values",
      "invokeStatic",
      "dashboard.clj",
      1030
    ],
    [
      "metabase.api.dashboard$param_values",
      "invoke",
      "dashboard.clj",
      1022
    ],
    [
      "metabase.api.dashboard$fn__95192$fn__95194",
      "invoke",
      "dashboard.clj",
      1058
    ],
    [
      "metabase.api.dashboard$fn__95192",
      "invokeStatic",
      "dashboard.clj",
      1057
    ],
    [
      "metabase.api.dashboard$fn__95192",
      "invoke",
      "dashboard.clj",
      1047
    ],
    [
      "compojure.core$wrap_response$fn__44694",
      "invoke",
      "core.clj",
      160
    ],
    [
      "compojure.core$wrap_route_middleware$fn__44678",
      "invoke",
      "core.clj",
      132
    ],
    [
      "compojure.core$wrap_route_info$fn__44683",
      "invoke",
      "core.clj",
      139
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      151
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      153
    ],
    [
      "clojure.lang.Var",
      "invoke",
      "Var.java",
      393
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706",
      "invoke",
      "core.clj",
      200
    ],
    [
      "metabase.server.middleware.auth$enforce_authentication$fn__94049",
      "invoke",
      "auth.clj",
      17
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706",
      "invoke",
      "core.clj",
      200
    ],
    [
      "compojure.core$make_context$handler__44734",
      "invoke",
      "core.clj",
      290
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      300
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      301
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "metabase.api.routes$fn__102082$fn__102085",
      "invoke",
      "routes.clj",
      67
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706",
      "invoke",
      "core.clj",
      200
    ],
    [
      "clojure.lang.AFn",
      "applyToHelper",
      "AFn.java",
      160
    ],
    [
      "clojure.lang.AFn",
      "applyTo",
      "AFn.java",
      144
    ],
    [
      "clojure.core$apply",
      "invokeStatic",
      "core.clj",
      667
    ],
    [
      "clojure.core$apply",
      "invoke",
      "core.clj",
      662
    ],
    [
      "metabase.server.routes$fn__102247$fn__102248",
      "doInvoke",
      "routes.clj",
      72
    ],
    [
      "clojure.lang.RestFn",
      "invoke",
      "RestFn.java",
      436
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706",
      "invoke",
      "core.clj",
      200
    ],
    [
      "compojure.core$make_context$handler__44734",
      "invoke",
      "core.clj",
      290
    ],
    [
      "compojure.core$make_context$fn__44738",
      "invoke",
      "core.clj",
      300
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "compojure.core$wrap_route_matches$fn__44687",
      "invoke",
      "core.clj",
      152
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706$f__44707$respond_SINGLEQUOTE___44708",
      "invoke",
      "core.clj",
      197
    ],
    [
      "metabase.server.routes$fn__102232$fn__102234",
      "invoke",
      "routes.clj",
      49
    ],
    [
      "compojure.core$routes$fn__44706$f__44707",
      "invoke",
      "core.clj",
      198
    ],
    [
      "compojure.core$routes$fn__44706",
      "invoke",
      "core.clj",
      200
    ],
    [
      "metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__98793",
      "invoke",
      "exceptions.clj",
      108
    ],
    [
      "metabase.server.middleware.exceptions$catch_api_exceptions$fn__98790",
      "invoke",
      "exceptions.clj",
      96
    ],
    [
      "metabase.server.middleware.log$log_api_call$fn__102524$fn__102525$fn__102526",
      "invoke",
      "log.clj",
      230
    ],
    [
      "metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info",
      "invokeStatic",
      "diagnostic.clj",
      18
    ],
    [
      "metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info",
      "invoke",
      "diagnostic.clj",
      12
    ],
    [
      "metabase.server.middleware.log$log_api_call$fn__102524$fn__102525",
      "invoke",
      "log.clj",
      222
    ],
    [
      "toucan2.execute$do_with_call_counts",
      "invokeStatic",
      "execute.clj",
      112
    ],
    [
      "toucan2.execute$do_with_call_counts",
      "invoke",
      "execute.clj",
      103
    ],
    [
      "metabase.server.middleware.log$log_api_call$fn__102524",
      "invoke",
      "log.clj",
      221
    ],
    [
      "metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__104589",
      "invoke",
      "browser_cookie.clj",
      40
    ],
    [
      "metabase.server.middleware.security$add_security_headers$fn__98749",
      "invoke",
      "security.clj",
      182
    ],
    [
      "metabase.server.middleware.json$wrap_json_body$fn__46051",
      "invoke",
      "json.clj",
      67
    ],
    [
      "metabase.server.middleware.offset_paging$handle_paging$fn__84947",
      "invoke",
      "offset_paging.clj",
      43
    ],
    [
      "metabase.server.middleware.json$wrap_streamed_json_response$fn__46069",
      "invoke",
      "json.clj",
      103
    ],
    [
      "ring.middleware.keyword_params$wrap_keyword_params$fn__104856",
      "invoke",
      "keyword_params.clj",
      55
    ],
    [
      "ring.middleware.params$wrap_params$fn__104875",
      "invoke",
      "params.clj",
      77
    ],
    [
      "metabase.server.middleware.misc$maybe_set_site_url$fn__67295",
      "invoke",
      "misc.clj",
      61
    ],
    [
      "metabase.server.middleware.session$reset_session_timeout$fn__72726",
      "invoke",
      "session.clj",
      546
    ],
    [
      "metabase.server.middleware.session$bind_current_user$fn__72692$fn__72693",
      "invoke",
      "session.clj",
      440
    ],
    [
      "metabase.server.middleware.session$do_with_current_user",
      "invokeStatic",
      "session.clj",
      419
    ],
    [
      "metabase.server.middleware.session$do_with_current_user",
      "invoke",
      "session.clj",
      403
    ],
    [
      "metabase.server.middleware.session$bind_current_user$fn__72692",
      "invoke",
      "session.clj",
      439
    ],
    [
      "metabase.server.middleware.session$wrap_current_user_info$fn__72675",
      "invoke",
      "session.clj",
      378
    ],
    [
      "metabase.server.middleware.session$wrap_session_id$fn__72647",
      "invoke",
      "session.clj",
      257
    ],
    [
      "metabase.server.middleware.auth$wrap_static_api_key$fn__94057",
      "invoke",
      "auth.clj",
      30
    ],
    [
      "ring.middleware.cookies$wrap_cookies$fn__104776",
      "invoke",
      "cookies.clj",
      194
    ],
    [
      "metabase.server.middleware.misc$add_content_type$fn__67277",
      "invoke",
      "misc.clj",
      29
    ],
    [
      "metabase.server.middleware.misc$disable_streaming_buffering$fn__67303",
      "invoke",
      "misc.clj",
      78
    ],
    [
      "ring.middleware.gzip$wrap_gzip$fn__104818",
      "invoke",
      "gzip.clj",
      86
    ],
    [
      "metabase.server.middleware.misc$bind_request$fn__67306",
      "invoke",
      "misc.clj",
      95
    ],
    [
      "metabase.server.middleware.ssl$redirect_to_https_middleware$fn__104605",
      "invoke",
      "ssl.clj",
      41
    ],
    [
      "metabase.server$async_proxy_handler$fn__67717",
      "invoke",
      "server.clj",
      78
    ],
    [
      "metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a",
      "handle",
      null,
      -1
    ],
    [
      "org.eclipse.jetty.server.handler.StatisticsHandler",
      "handle",
      "StatisticsHandler.java",
      173
    ],
    [
      "org.eclipse.jetty.server.handler.HandlerWrapper",
      "handle",
      "HandlerWrapper.java",
      122
    ],
    [
      "org.eclipse.jetty.server.Server",
      "handle",
      "Server.java",
      563
    ],
    [
      "org.eclipse.jetty.server.HttpChannel$RequestDispatchable",
      "dispatch",
      "HttpChannel.java",
      1598
    ],
    [
      "org.eclipse.jetty.server.HttpChannel",
      "dispatch",
      "HttpChannel.java",
      753
    ],
    [
      "org.eclipse.jetty.server.HttpChannel",
      "handle",
      "HttpChannel.java",
      501
    ],
    [
      "org.eclipse.jetty.server.HttpConnection",
      "onFillable",
      "HttpConnection.java",
      287
    ],
    [
      "org.eclipse.jetty.io.AbstractConnection$ReadCallback",
      "succeeded",
      "AbstractConnection.java",
      314
    ],
    [
      "org.eclipse.jetty.io.FillInterest",
      "fillable",
      "FillInterest.java",
      100
    ],
    [
      "org.eclipse.jetty.io.SelectableChannelEndPoint$1",
      "run",
      "SelectableChannelEndPoint.java",
      53
    ],
    [
      "org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy",
      "runTask",
      "AdaptiveExecutionStrategy.java",
      421
    ],
    [
      "org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy",
      "consumeTask",
      "AdaptiveExecutionStrategy.java",
      390
    ],
    [
      "org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy",
      "tryProduce",
      "AdaptiveExecutionStrategy.java",
      277
    ],
    [
      "org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy",
      "run",
      "AdaptiveExecutionStrategy.java",
      199
    ],
    [
      "org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread",
      "run",
      "ReservedThreadExecutor.java",
      411
    ],
    [
      "org.eclipse.jetty.util.thread.QueuedThreadPool",
      "runJob",
      "QueuedThreadPool.java",
      969
    ],
    [
      "org.eclipse.jetty.util.thread.QueuedThreadPool$Runner",
      "doRunJob",
      "QueuedThreadPool.java",
      1194
    ],
    [
      "org.eclipse.jetty.util.thread.QueuedThreadPool$Runner",
      "run",
      "QueuedThreadPool.java",
      1149
    ],
    [
      "java.lang.Thread",
      "run",
      null,
      -1
    ]
  ],
  "cause": "Column \"source.STATE\" not found; SQL statement:\nSELECT \"source\".\"STATE\" AS \"STATE\" FROM (SELECT count(distinct \"source\".\"STATE\") AS \"count\" FROM (select * from people) AS \"source\") AS \"source\" WHERE \"source\".\"STATE\" IS NOT NULL GROUP BY \"source\".\"STATE\" ORDER BY \"source\".\"STATE\" ASC LIMIT 1000 [42122-214]",
  "message": "Error executing query: Column \"source.STATE\" not found; SQL statement:\nSELECT \"source\".\"STATE\" AS \"STATE\" FROM (SELECT count(distinct \"source\".\"STATE\") AS \"count\" FROM (select * from people) AS \"source\") AS \"source\" WHERE \"source\".\"STATE\" IS NOT NULL GROUP BY \"source\".\"STATE\" ORDER BY \"source\".\"STATE\" ASC LIMIT 1000 [42122-214]",
  "driver": "h2",
  "sql": [
    "-- Metabase",
    "SELECT",
    "  \"source\".\"STATE\" AS \"STATE\"",
    "FROM",
    "  (",
    "    SELECT",
    "      count(distinct \"source\".\"STATE\") AS \"count\"",
    "    FROM",
    "      (",
    "        select",
    "          *",
    "        from",
    "          people",
    "      ) AS \"source\"",
    "  ) AS \"source\"",
    "WHERE",
    "  \"source\".\"STATE\" IS NOT NULL",
    "GROUP BY",
    "  \"source\".\"STATE\"",
    "ORDER BY",
    "  \"source\".\"STATE\" ASC",
    "LIMIT",
    "  1000"
  ],
  "params": null
}

Information about your Metabase installation

{
  "browser-info": {
    "language": "en-US",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.23+9",
    "java.vendor": "Eclipse Adoptium",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "11.0.23",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.23+9",
    "os.name": "Linux",
    "os.version": "6.6.26-linuxkit",
    "user.language": "en",
    "user.timezone": "GMT"
  },
  "metabase-info": {
    "databases": [
      "postgres",
      "h2"
    ],
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "15.2 (Debian 15.2-1.pgdg110+1)"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.7.2"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2024-05-16",
      "tag": "v0.49.11",
      "hash": "b894f2d"
    },
    "settings": {
      "report-timezone": null
    }
  }
}

Severity

blocking usage of Metabase (almost) entirely

Additional context

This bug is not specific to version 0.49.11, and has been seen on other versions, including prior to the 0.49.x branch.

Attempted to aggregate using both "distinct values of" and "average of" summarization. Did not test others.

Tested with both the sample database, as well as a Postgres database.

Also attempted with a UI builder model (essentially the same query) with similar, but slightly different behavior. The options endpoint still fails, but when selecting a question field to link, I had to select a field other than STATE, as it was not in the selectable list (not sure if this is expected behavior, or a bug).

@kfriend kfriend added .Needs Triage Type:Bug Product defects labels May 17, 2024
@alxnddr alxnddr added Priority:P2 Average run of the mill bug Querying/Parameters & Variables Filter widgets, field filters, variables etc. .Frontend .Team/QueryingComponents and removed .Needs Triage labels May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
.Frontend Priority:P2 Average run of the mill bug Querying/Parameters & Variables Filter widgets, field filters, variables etc. .Team/QueryingComponents Type:Bug Product defects
Projects
None yet
Development

No branches or pull requests

2 participants