The GraphQL create tables step fails with an error
Step that does not work: https://stargate.io/docs/stargate/1.0/quickstart/quick_start-graphql.html#_creating_a_table
Seems that usage of the UDT is failing. Here is the response output and the server log as well:
{
"errors": [
{
"message": "Exception while fetching data (/reader) : org.apache.cassandra.stargate.exceptions.InvalidRequestException: Unknown type library.address_type",
"locations": [
{
"line": 3,
"column": 3
}
],
"path": [
"reader"
],
"extensions": {
"classification": "DataFetchingException"
}
}
],
"data": {
"book": true,
"reader": null
}
}
172.17.0.1 - - [17/Mar/2021:10:24:21 +0000] "POST /graphql-schema HTTP/1.1" 200 35260 "http://localhost:8080/playground" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0" 21
INFO [Native-Transport-Requests-2] 2021-03-17 10:24:22,943 MigrationManager.java:368 - Create new table: org.apache.cassandra.config.CFMetaData@7dc5e884[cfId=f11acbe0-870a-11eb-918b-d5f4ff3d208b,ksName=library,cfName=book,flags=[COMPOUND],params=TableParams{comment=, read_repair_chance=0.0, dclocal_read_repair_chance=0.1, bloom_filter_fp_chance=0.01, crc_check_chance=1.0, gc_grace_seconds=864000, default_time_to_live=0, memtable_flush_period_in_ms=0, min_index_interval=128, max_index_interval=2048, speculative_retry=99PERCENTILE, caching={'keys' : 'ALL', 'rows_per_partition' : 'NONE'}, compaction=CompactionParams{class=org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy, options={min_threshold=4, max_threshold=32}}, compression=org.apache.cassandra.schema.CompressionParams@31f79c1c, extensions={}, cdc=false},comparator=comparator(org.apache.cassandra.db.marshal.UTF8Type),partitionColumns=[[] | []],partitionKeyColumns=[title],clusteringColumns=[author],keyValidator=org.apache.cassandra.db.marshal.UTF8Type,columnMetadata=[title, author],droppedColumns={},triggers=[],indexes=[]]
INFO [MigrationStage:1] 2021-03-17 10:24:23,231 ColumnFamilyStore.java:427 - Initializing library.book
WARN [2021-03-17 10:24:23,290] notprivacysafe.graphql.execution.SimpleDataFetcherExceptionHandler: Exception while fetching data (/reader) : org.apache.cassandra.stargate.exceptions.InvalidRequestException: Unknown type library.address_type
! org.apache.cassandra.stargate.exceptions.InvalidRequestException: Unknown type library.address_type
! at io.stargate.db.cassandra.impl.Conversion.toExternal(Conversion.java:343)
! at io.stargate.db.cassandra.impl.Conversion.convertInternalException(Conversion.java:475)
! at io.stargate.db.cassandra.impl.CassandraPersistence$CassandraConnection.lambda$executeRequestOnExecutor$0(CassandraPersistence.java:446)
! at io.stargate.db.cassandra.impl.CassandraPersistence.lambda$runOnExecutor$1(CassandraPersistence.java:271)
! at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
! at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:165)
! at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:113)
! ... 1 common frames omitted
! Suppressed: org.apache.cassandra.exceptions.InvalidRequestException: Unknown type library.address_type
! at org.apache.cassandra.cql3.CQL3Type$Raw$RawUT.prepare(CQL3Type.java:770)
! at org.apache.cassandra.cql3.CQL3Type$Raw$RawCollection.prepare(CQL3Type.java:684)
! at org.apache.cassandra.cql3.CQL3Type$Raw$RawCollection.prepare(CQL3Type.java:651)
! at org.apache.cassandra.cql3.statements.CreateTableStatement$RawStatement.prepare(CreateTableStatement.java:225)
! at org.apache.cassandra.cql3.statements.CreateTableStatement$RawStatement.prepare(CreateTableStatement.java:201)
! at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:566)
! at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:421)
! at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:412)
! at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:406)
! at io.stargate.db.cassandra.impl.StargateQueryHandler.prepare(StargateQueryHandler.java:166)
! at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:78)
! at io.stargate.db.cassandra.impl.CassandraPersistence$CassandraConnection.lambda$executeRequestOnExecutor$0(CassandraPersistence.java:439)
! ... 5 common frames omitted
! Causing: java.util.concurrent.ExecutionException: org.apache.cassandra.stargate.exceptions.InvalidRequestException: Unknown type library.address_type
! at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
! at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
! at io.stargate.graphql.schema.cqlfirst.ddl.fetchers.DdlQueryFetcher.get(DdlQueryFetcher.java:56)
! at io.stargate.graphql.schema.cqlfirst.ddl.fetchers.DdlQueryFetcher.get(DdlQueryFetcher.java:41)
! at io.stargate.graphql.schema.CassandraFetcher.get(CassandraFetcher.java:50)
! at graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentation.lambda$instrumentDataFetcher$0(DataLoaderDispatcherInstrumentation.java:86)
! at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:270)
! at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:203)
! at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:60)
! at graphql.execution.Execution.executeOperation(Execution.java:165)
! at graphql.execution.Execution.execute(Execution.java:104)
! at graphql.GraphQL.execute(GraphQL.java:557)
! at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:482)
! at graphql.GraphQL.executeAsync(GraphQL.java:446)
! at io.stargate.graphql.web.resources.GraphqlResourceBase.executeAsync(GraphqlResourceBase.java:167)
! at io.stargate.graphql.web.resources.GraphqlResourceBase.postJson(GraphqlResourceBase.java:137)
! at io.stargate.graphql.web.resources.cqlfirst.GraphqlDdlResource.postJson(GraphqlDdlResource.java:66)
! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
! at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
! at java.lang.reflect.Method.invoke(Method.java:498)
! at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
! at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
! at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
! at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
! at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
! at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
! at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
! at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
! at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
! at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
! at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
! at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
! at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
! at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
! at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
! at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
! at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
! at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
! at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
! at io.dropwizard.jetty.NonblockingServletHolder.handle(NonblockingServletHolder.java:50)
! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1631)
! at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:35)
! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
! at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:47)
! at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:41)
! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
! at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:319)
! at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:273)
! at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
! at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)
! at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
! at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)
! at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
! at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)
! at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
! at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)
! at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
! at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
! at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:249)
! at io.dropwizard.jetty.ContextRoutingHandler.handle(ContextRoutingHandler.java:37)
! at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717)
! at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)
! at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
! at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
! at org.eclipse.jetty.server.Server.handle(Server.java:501)
! at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
! at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
! at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
! at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:272)
! at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
! at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
! at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
! at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
! at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
! at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
! at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
! at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
! at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
! at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
! at java.lang.Thread.run(Thread.java:748)
Right, the second table in the example uses a UDT, but it's not created anywhere. It says so under the example:
The second table, reader, also defines a column using a user-defined type (UDT).
"user-defined type" is a link, but it looks broken. /cc @polandll
Graphql example in Quickstart is incomplete but it is complete in developers guide https://stargate.io/docs/stargate/1.0/developers-guide/graphql-using.html
Yes, I'm in the midst of revising - coming soon!