[
https://issues.apache.org/jira/browse/IGNITE-20651?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Evgeny Stanilovsky updated IGNITE-20651:
----------------------------------------
Fix Version/s: 3.2
(was: 3.1)
> Table API. It is not possible to create a single column RecordView
> ------------------------------------------------------------------
>
> Key: IGNITE-20651
> URL: https://issues.apache.org/jira/browse/IGNITE-20651
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Reporter: Maksim Zhuravkov
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
> Fix For: 3.2
>
>
> It is not possible to create a single column RecordView:
> {code:java}
> @Test
> public void singleColumnMapper() {
> Ignite ignite = CLUSTER_NODES.get(0);
> IgniteTables tables = ignite.tables();
> sql("CREATE TABLE vals (id INTEGER PRIMARY KEY, val VARCHAR)");
> sql("INSERT INTO vals VALUES(1, '1')");
> RecordView<Integer> idView =
> tables.table("vals").recordView(Mapper.of(Integer.class, "id"));
> assertNotNull(idView.get(null, 1));
> }
> {code}
> Error:
> {noformat}
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535
> TraceId:30b4df56-49ff-4e79-8035-f13f9acd2bc1
> at
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
> at
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
> at
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
> at
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
> at
> org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
> at
> org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
> at org.apache.ignite.internal.util.ViewUtils.sync(ViewUtils.java:54)
> at
> org.apache.ignite.internal.table.RecordViewImpl.get(RecordViewImpl.java:106)
> at
> org.apache.ignite.internal.table.PublicApiThreadingRecordView.lambda$get$0(PublicApiThreadingRecordView.java:56)
> at
> org.apache.ignite.internal.thread.PublicApiThreading.executeWithRole(PublicApiThreading.java:144)
> at
> org.apache.ignite.internal.thread.PublicApiThreading.execUserSyncOperation(PublicApiThreading.java:102)
> at
> org.apache.ignite.internal.table.PublicApiThreadingViewBase.executeSyncOp(PublicApiThreadingViewBase.java:107)
> at
> org.apache.ignite.internal.table.PublicApiThreadingRecordView.get(PublicApiThreadingRecordView.java:56)
> at
> org.apache.ignite.internal.restart.RestartProofRecordView.lambda$get$0(RestartProofRecordView.java:54)
> at
> org.apache.ignite.internal.restart.RestartProofApiObject.lambda$attached$0(RestartProofApiObject.java:46)
> at
> org.apache.ignite.internal.restart.IgniteAttachmentLock.attached(IgniteAttachmentLock.java:59)
> at
> org.apache.ignite.internal.restart.RestartProofApiObject.attached(RestartProofApiObject.java:46)
> at
> org.apache.ignite.internal.restart.RestartProofRecordView.get(RestartProofRecordView.java:54)
> at
> org.apache.ignite.internal.sql.engine.ItDynamicParameterTest.singleColumnMapper(ItDynamicParameterTest.java:87)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535
> TraceId:30b4df56-49ff-4e79-8035-f13f9acd2bc1
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$mapToPublicException$2(IgniteExceptionMapperUtil.java:88)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:110)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:88)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$convertToPublicFuture$3(IgniteExceptionMapperUtil.java:178)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
> at
> java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.convertToPublicFuture(IgniteExceptionMapperUtil.java:176)
> at
> org.apache.ignite.internal.table.AbstractTableView.doOperation(AbstractTableView.java:111)
> at
> org.apache.ignite.internal.table.RecordViewImpl.getAsync(RecordViewImpl.java:114)
> ... 15 more
> Caused by: java.lang.AssertionError
> at
> org.apache.ignite.internal.schema.marshaller.reflection.RecordMarshallerImpl.<init>(RecordMarshallerImpl.java:66)
> at
> org.apache.ignite.internal.table.RecordViewImpl.lambda$new$0(RecordViewImpl.java:100)
> at
> org.apache.ignite.internal.table.RecordViewImpl.marshaller(RecordViewImpl.java:436)
> at
> org.apache.ignite.internal.table.RecordViewImpl.marshalKey(RecordViewImpl.java:504)
> at
> org.apache.ignite.internal.table.RecordViewImpl.lambda$getAsync$2(RecordViewImpl.java:115)
> at
> org.apache.ignite.internal.table.AbstractTableView.lambda$withSchemaSync$1(AbstractTableView.java:142)
> at
> java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
> at
> java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
> at
> org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:142)
> at
> org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:133)
> ... 17 more
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)