humlab-sead / sead_query_api

.NET Core port of Query SEAD API
Other
2 stars 0 forks source link

Facet "Dataset methods" fails to load #85

Closed roger-mahler closed 5 months ago

roger-mahler commented 4 years ago

Error log:

[2020-04-30 05:52:33.591 +00:00 INF] [Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] [0HLVC816GDFV2:00000001] Executed action SeadQueryAPI.Controllers.FacetsController.Load (sead.query.api) in 139.1783ms
[2020-04-30 05:52:33.591 +00:00 INF] [Microsoft.AspNetCore.Routing.EndpointMiddleware] [0HLVC816GDFV2:00000001] Executed endpoint 'SeadQueryAPI.Controllers.FacetsController.Load (sead.query.api)'
[2020-04-30 05:52:33.591 +00:00 ERR] [Microsoft.AspNetCore.Server.Kestrel] [0HLVC816GDFV2:00000001] Connection id "0HLVC816GDFV2", Request id "0HLVC816GDFV2:00000001": An unhandled exception was thrown by the application.
Npgsql.PostgresException (0x80004005): 42P01: missing FROM-clause entry for table "tbl_methods"
   at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
   at Npgsql.NpgsqlDataReader.NextResult()
   at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.RDFacadeExtensions.ExecuteSqlQuery(DatabaseFacade databaseFacade, String sql, Object[] parameters) in /src/sead.query.infra/Repository/DbExecuteSql.cs:line 34
   at SeadQueryInfra.DatabaseQueryProxy.QueryRows[T](String sql, Func`2 selector) in /src/sead.query.infra/Repository/DatabaseQueryProxy.cs:line 42
   at SeadQueryCore.CategoryCountService.Query(String sql) in /src/sead.query.core/Services/CategoryCount/Services/CategoryCountService.cs:line 43
   at SeadQueryCore.CategoryCountService.Load(String facetCode, FacetsConfig2 facetsConfig, String intervalQuery) in /src/sead.query.core/Services/CategoryCount/Services/CategoryCountService.cs:line 32
   at SeadQueryCore.FacetContentService.Load(FacetsConfig2 facetsConfig) in /src/sead.query.core/Services/FacetContent/Services/FacetContentService.cs:line 32
   at SeadQueryAPI.Services.LoadFacetService.Load(FacetsConfig2 facetsConfig) in /src/sead.query.api/Services/LoadFacetService.cs:line 30
   at SeadQueryAPI.Controllers.FacetsController.Load(FacetsConfig2 facetsConfig) in /src/sead.query.api/Controllers/FacetsController.cs:line 106
   at lambda_method(Closure , Object , Object[] )
   at ...
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
  Exception data:
    Severity: ERROR
    SqlState: 42P01
    MessageText: missing FROM-clause entry for table "tbl_methods"
    Position: 95
    File: parse_relation.c
    Line: 3240
roger-mahler commented 4 years ago

SQL query:

SELECT category, count(value) AS count
FROM (
    SELECT tbl_methods.method_id  AS category, tbl_datasets.dataset_id AS value
    FROM tbl_datasets
    INNER JOIN tbl_dataset_masters
      ON tbl_dataset_masters."master_set_id" = tbl_datasets."master_set_id"
    WHERE 1 = 1
    GROUP BY tbl_methods.method_id , tbl_datasets.dataset_id
) AS x
GROUP BY category
roger-mahler commented 4 years ago

Cause: No graph edge exists between tables 182 and 89.

select *
from facet.table_relation r
join facet.table a on a.table_id = r.source_table_id
join facet.table b on b.table_id = r.target_table_id
where source_table_id in (162, 89)
roger-mahler commented 4 years ago

Table tbl_dataset_methods is empty.

johanvonboer commented 1 year ago

Har tagit bort detta filtret från klienten tills vidare.