[jira] [Assigned] (IGNITE-16987) JDBC driver for 3.0: connection channel usage refactoring

2022-06-10 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16987:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: connection channel usage refactoring
> -
>
> Key: IGNITE-16987
> URL: https://issues.apache.org/jira/browse/IGNITE-16987
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc, sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> 1 part:
> In 3.0 JDBC all queries go through ReliableChannel, which can do reconnects, 
> retries, etc.
> This is wrong for things like SQL_NEXT, SQL_QUERY_META, SQL_CURSOR_CLOSE, and 
> so on, which should be executed strictly on the same connection. To do this, 
> there's PayloadInputChannel.clientChannel , which you can keep when a 
> query/cursor is initiated.
>  
> 2 part:
> We have to close resources on the server after client is disconnected. To do 
> this, there is a ClientResourceRegistry , it is cleared when you disconnect. 
> If that doesn't work, see ClientInboundMessageHandler#channelInactive



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-17034) Thin 3.0: Rename JDBC packages and classes to separate them from Ignite SQL API

2022-05-25 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-17034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542212#comment-17542212
 ] 

Vladimir Ermakov commented on IGNITE-17034:
---

LGTM

> Thin 3.0: Rename JDBC packages and classes to separate them from Ignite SQL 
> API
> ---
>
> Key: IGNITE-17034
> URL: https://issues.apache.org/jira/browse/IGNITE-17034
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc, sql, thin client
>Affects Versions: 3.0.0-alpha4
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha5
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Rename client operation names, request handlers, and their packages from Sql 
> to Jdbc.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16987) JDBC driver for 3.0: connection channel usage refactoring

2022-05-16 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16987:
--
Remaining Estimate: (was: 5m)
 Original Estimate: (was: 5m)

> JDBC driver for 3.0: connection channel usage refactoring
> -
>
> Key: IGNITE-16987
> URL: https://issues.apache.org/jira/browse/IGNITE-16987
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc, sql
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> 1 part:
> In 3.0 JDBC all queries go through ReliableChannel, which can do reconnects, 
> retries, etc.
> This is wrong for things like SQL_NEXT, SQL_QUERY_META, SQL_CURSOR_CLOSE, and 
> so on, which should be executed strictly on the same connection. To do this, 
> there's PayloadInputChannel.clientChannel , which you can keep when a 
> query/cursor is initiated.
>  
> 2 part:
> We have to close resources on the server after client is disconnected. To do 
> this, there is a ClientResourceRegistry , it is cleared when you disconnect. 
> If that doesn't work, see ClientInboundMessageHandler#channelInactive



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16987) JDBC driver for 3.0: connection channel usage refactoring

2022-05-16 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16987:
--
Remaining Estimate: 5m
 Original Estimate: 5m

> JDBC driver for 3.0: connection channel usage refactoring
> -
>
> Key: IGNITE-16987
> URL: https://issues.apache.org/jira/browse/IGNITE-16987
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc, sql
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>   Original Estimate: 5m
>  Remaining Estimate: 5m
>
> 1 part:
> In 3.0 JDBC all queries go through ReliableChannel, which can do reconnects, 
> retries, etc.
> This is wrong for things like SQL_NEXT, SQL_QUERY_META, SQL_CURSOR_CLOSE, and 
> so on, which should be executed strictly on the same connection. To do this, 
> there's PayloadInputChannel.clientChannel , which you can keep when a 
> query/cursor is initiated.
>  
> 2 part:
> We have to close resources on the server after client is disconnected. To do 
> this, there is a ClientResourceRegistry , it is cleared when you disconnect. 
> If that doesn't work, see ClientInboundMessageHandler#channelInactive



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (IGNITE-16987) JDBC driver for 3.0: connection channel usage refactoring

2022-05-16 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16987:
-

 Summary: JDBC driver for 3.0: connection channel usage refactoring
 Key: IGNITE-16987
 URL: https://issues.apache.org/jira/browse/IGNITE-16987
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov


1 part:

In 3.0 JDBC all queries go through ReliableChannel, which can do reconnects, 
retries, etc.

This is wrong for things like SQL_NEXT, SQL_QUERY_META, SQL_CURSOR_CLOSE, and 
so on, which should be executed strictly on the same connection. To do this, 
there's PayloadInputChannel.clientChannel , which you can keep when a 
query/cursor is initiated.

 

2 part:

We have to close resources on the server after client is disconnected. To do 
this, there is a ClientResourceRegistry , it is cleared when you disconnect. If 
that doesn't work, see ClientInboundMessageHandler#channelInactive



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-14636) Calcite engine. Support for LISTAGG (aka GROUP_CONCAT, STRING_AGG) aggregate function

2022-04-26 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17528086#comment-17528086
 ] 

Vladimir Ermakov commented on IGNITE-14636:
---

[~ivandasch] I don't mind if you assign and finish the task. 

> Calcite engine. Support for LISTAGG (aka GROUP_CONCAT, STRING_AGG) aggregate 
> function
> -
>
> Key: IGNITE-14636
> URL: https://issues.apache.org/jira/browse/IGNITE-14636
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite2-required, calcite3-required
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Tests:
> {{aggregate/aggregates/test_aggregate_types.test}}
> {{aggregate/aggregates/test_aggregate_types_scalar.test}}
> {{aggregate/aggregates/test_distinct_string_agg.test_ignore}}
> {{aggregate/aggregates/test_string_agg.test_ignore}}
> {{aggregate/aggregates/test_string_agg_big.test_ignore}}
> {{aggregate/aggregates/test_string_agg_many_groups.test_slow_ignored}}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-16683) Ignite-3 enable jdbc tests

2022-03-24 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17511720#comment-17511720
 ] 

Vladimir Ermakov commented on IGNITE-16683:
---

LGTM!

> Ignite-3 enable jdbc tests
> --
>
> Key: IGNITE-16683
> URL: https://issues.apache.org/jira/browse/IGNITE-16683
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 3.0.0-alpha5
>Reporter: Evgeny Stanilovsky
>Assignee: Vladislav Pyatkov
>Priority: Major
>  Labels: ignite-3
> Attachments: _Integration_Tests_Module_Runner_2077.log.zip, 
> _Integration_Tests_Module_Runner_2083.log.zip, screenshot-1.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> For now tests disabled under IGNITE-15655, seems we can enable them.
> Locally it`s all ok there.
> ---
> After enabling tests raised additional problem (seems differ than described 
> in IGNITE-15655) [1] Tests from ItJdbcStatementSelfTest randomly failed, with 
> :
> *IgniteInternalException: Failed to INSERT some keys because they are already 
> in cache*
> Possibly this is due to gc pause, check for example in logs:
> {noformat}
> [13:29:17]W: [org.apache.ignite:ignite-runner] 2022-03-14 
> 13:29:17:381 +0300 [INFO][Thread-58290][RaftGroupService] Start the 
> RaftGroupService successfully <48b22e85-6917-47e1-b9ad-
> bb4a26516dc5_part_19/172.17.0.6:47500>
> [13:29:17]W: [org.apache.ignite:ignite-runner] 2022-03-14 
> 13:29:17:682 +0300 
> [INFO][%ItJdbcStatementSelfTest_null_47500%JRaft-FSMCaller-Disruptor-_stripe_18-0][StateMachineAdapter]
> onLeaderStart: term=1.
> [13:30:40]W: [org.apache.ignite:ignite-runner] 2022-03-14 
> 13:30:32:060 +0300 
> [WARNING][%ItJdbcStatementSelfTest_null_47500%sqlExec-2][QueryTaskExecutorImpl]
>  Uncaught exception
> [13:30:40]W: [org.apache.ignite:ignite-runner] class 
> org.apache.ignite.lang.IgniteInternalException: Unexpected exception
> {noformat}
> I suppose that *public void afterEach()* not raised due to gc and further 
> start become on already filled db.
>  !screenshot-1.png! 
> [1] 
> https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_IntegrationTests_ModuleRunner?branch=pull%2F718=builds



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16468) Extend test coverage for RecordBinaryView

2022-03-14 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16468:
-

Assignee: Vladimir Ermakov

> Extend test coverage for RecordBinaryView
> -
>
> Key: IGNITE-16468
> URL: https://issues.apache.org/jira/browse/IGNITE-16468
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3, tech-debt
>
> As of now we have few tests at RecordBinaryViewOperationsTest for simple 
> cases. Let’s think about expanding the test coverage at least for 
> get/put/removeAll.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16219) JDBC driver for 3.0: ItJdbcJoinsSelfTest test fix

2022-03-11 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17504980#comment-17504980
 ] 

Vladimir Ermakov commented on IGNITE-16219:
---

LGTM

> JDBC driver for 3.0: ItJdbcJoinsSelfTest test fix
> -
>
> Key: IGNITE-16219
> URL: https://issues.apache.org/jira/browse/IGNITE-16219
> Project: Ignite
>  Issue Type: Bug
>  Components: jdbc, sql
>Reporter: Vladimir Ermakov
>Assignee: Evgeny Stanilovsky
>Priority: Major
>  Labels: ignite-3
>
> ItJdbcJoinsSelfTest1.testJoin runs correctly in local, but in teamcity 
> java.lang.AssertionError is appeared. Should be investigated. Logs: 
> https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_IntegrationTests_ModuleRunner/6343350
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16620) Flacky test LocalSnapshotCopierTest#testInterrupt

2022-02-22 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16620:
-

 Summary: Flacky test LocalSnapshotCopierTest#testInterrupt
 Key: IGNITE-16620
 URL: https://issues.apache.org/jira/browse/IGNITE-16620
 Project: Ignite
  Issue Type: Bug
Reporter: Vladimir Ermakov


org.apache.ignite.raft.jraft.storage.snapshot.local.LocalSnapshotCopierTest#testInterrupt

test seems flacky.

To reproduce: run the test cyclically until it failure.

Reason:

Code in LocalSnashotCopier#loadMetaTable
{code:java}
if (!session.status().isOk() && isOk()) {code}
doesn't expect that the LocalSnashotCopier object's internal state (which is 
checked in isOk() method) could be changed by another thread, and is set to 
interrupted.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16292) Calcite. Unstable alterTableServerAndClient test.

2022-02-10 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16292?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16292:
-

Assignee: (was: Vladimir Ermakov)

> Calcite. Unstable alterTableServerAndClient test.
> -
>
> Key: IGNITE-16292
> URL: https://issues.apache.org/jira/browse/IGNITE-16292
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Evgeny Stanilovsky
>Priority: Major
>  Labels: calcite, calcite2-required
>
> alterTableServerAndClient test periodically fails with:
> {code:java}
> java.lang.ArrayIndexOutOfBoundsException: 4
>   at 
> org.apache.ignite.internal.processors.query.calcite.schema.CacheTableDescriptorImpl.rowType(CacheTableDescriptorImpl.java:550)
>   at 
> org.apache.ignite.internal.processors.query.calcite.schema.CacheTableImpl.getRowType(CacheTableImpl.java:78)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.deriveRowType(ProjectableFilterableTableScan.java:147)
>   at 
> org.apache.calcite.rel.AbstractRelNode.getRowType(AbstractRelNode.java:173)
>   at org.apache.calcite.rel.SingleRel.deriveRowType(SingleRel.java:89)
>   at 
> org.apache.calcite.rel.AbstractRelNode.getRowType(AbstractRelNode.java:173)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:160)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:110)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.IgniteSender.accept(IgniteSender.java:100)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:658)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.go(LogicalRelImplementor.java:673)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeFragment(ExecutionServiceImpl.java:591)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:652)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$init$2(ExecutionServiceImpl.java:387)
>   at 
> org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:276)
>   at 
> org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:254)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:68)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16292) Calcite. Unstable alterTableServerAndClient test.

2022-02-10 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16292?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16292:
-

Assignee: Vladimir Ermakov

> Calcite. Unstable alterTableServerAndClient test.
> -
>
> Key: IGNITE-16292
> URL: https://issues.apache.org/jira/browse/IGNITE-16292
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Evgeny Stanilovsky
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite, calcite2-required
>
> alterTableServerAndClient test periodically fails with:
> {code:java}
> java.lang.ArrayIndexOutOfBoundsException: 4
>   at 
> org.apache.ignite.internal.processors.query.calcite.schema.CacheTableDescriptorImpl.rowType(CacheTableDescriptorImpl.java:550)
>   at 
> org.apache.ignite.internal.processors.query.calcite.schema.CacheTableImpl.getRowType(CacheTableImpl.java:78)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.deriveRowType(ProjectableFilterableTableScan.java:147)
>   at 
> org.apache.calcite.rel.AbstractRelNode.getRowType(AbstractRelNode.java:173)
>   at org.apache.calcite.rel.SingleRel.deriveRowType(SingleRel.java:89)
>   at 
> org.apache.calcite.rel.AbstractRelNode.getRowType(AbstractRelNode.java:173)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:160)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:110)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.IgniteSender.accept(IgniteSender.java:100)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:658)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.go(LogicalRelImplementor.java:673)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeFragment(ExecutionServiceImpl.java:591)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:652)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$init$2(ExecutionServiceImpl.java:387)
>   at 
> org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:276)
>   at 
> org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:254)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:68)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16489) Calcite integration. MERGE statement support: merge to 3.0

2022-02-07 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16489:
-

 Summary: Calcite integration. MERGE statement support: merge to 3.0
 Key: IGNITE-16489
 URL: https://issues.apache.org/jira/browse/IGNITE-16489
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Vladimir Ermakov
 Fix For: 3.0.0-alpha5


Adopt the MERGE statement patch 
([IGNITE-12695|https://issues.apache.org/jira/browse/IGNITE-12695]) for the 
Ignite 3.0.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16201) JDBC driver for 3.0: Batch execution.

2022-02-02 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16201:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Batch execution.
> -
>
> Key: IGNITE-16201
> URL: https://issues.apache.org/jira/browse/IGNITE-16201
> Project: Ignite
>  Issue Type: New Feature
>  Components: jdbc
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Let's implement batch execution in JDBC driver.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16328) Sql. Correlated queries with ORDER and LIMIT can't be planned. AssertionError: Input not sorted for some ORDER BY containing requests.

2022-02-01 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17485332#comment-17485332
 ] 

Vladimir Ermakov commented on IGNITE-16328:
---

[~zstan] , LGTM too. 

> Sql. Correlated queries with ORDER and LIMIT can't be planned. 
> AssertionError: Input not sorted for some ORDER BY containing requests.
> --
>
> Key: IGNITE-16328
> URL: https://issues.apache.org/jira/browse/IGNITE-16328
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Evgeny Stanilovsky
>Assignee: Evgeny Stanilovsky
>Priority: Major
>  Labels: calcite3-required, ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Merge IGNITE-15992, IGNITE-16138



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16389) Fix flacky test StopCalciteModuleTest#testStopQueryOnNodeStop

2022-01-31 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17484862#comment-17484862
 ] 

Vladimir Ermakov commented on IGNITE-16389:
---

[~zstan] LGTM!

> Fix flacky test StopCalciteModuleTest#testStopQueryOnNodeStop
> -
>
> Key: IGNITE-16389
> URL: https://issues.apache.org/jira/browse/IGNITE-16389
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Evgeny Stanilovsky
>Priority: Blocker
>  Labels: ignite-3
> Attachments: image (1).png
>
>
> Test 
> org.apache.ignite.internal.sql.engine.StopCalciteModuleTest#testStopQueryOnNodeStop
> is flacky. To reproduce: repeat the test until NPE appears.
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16201) JDBC driver for 3.0: Batch execution.

2022-01-31 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16201:
--
Environment: (was: Let's implement batch execution in JDBC driver.)

> JDBC driver for 3.0: Batch execution.
> -
>
> Key: IGNITE-16201
> URL: https://issues.apache.org/jira/browse/IGNITE-16201
> Project: Ignite
>  Issue Type: New Feature
>  Components: jdbc
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Let's implement batch execution in JDBC driver.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16201) JDBC driver for 3.0: Batch execution.

2022-01-31 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16201:
--
Description: Let's implement batch execution in JDBC driver.

> JDBC driver for 3.0: Batch execution.
> -
>
> Key: IGNITE-16201
> URL: https://issues.apache.org/jira/browse/IGNITE-16201
> Project: Ignite
>  Issue Type: New Feature
>  Components: jdbc
> Environment: Let's implement batch execution in JDBC driver.
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Let's implement batch execution in JDBC driver.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16432) JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction support is done

2022-01-31 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16432:
--
Component/s: sql
 Labels: ignite-3  (was: )

> JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction 
> support is done
> --
>
> Key: IGNITE-16432
> URL: https://issues.apache.org/jira/browse/IGNITE-16432
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> It is necessary to add "COMMIT" and "ROLLBACK" calls in JdbcConnection#commit 
> and JdbcConnection#rollback methods after transaction support for sql engine 
> is done.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16432) JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction support is done

2022-01-31 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16432:
--
Description: It is necessary to add "COMMIT" and "ROLLBACK" calls in 
JdbcConnection#commit and JdbcConnection#rollback methods after transaction 
support for sql engine is done.

> JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction 
> support is done
> --
>
> Key: IGNITE-16432
> URL: https://issues.apache.org/jira/browse/IGNITE-16432
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> It is necessary to add "COMMIT" and "ROLLBACK" calls in JdbcConnection#commit 
> and JdbcConnection#rollback methods after transaction support for sql engine 
> is done.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16432) JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction support is done

2022-01-31 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16432:
-

 Summary: JDBC driver for 3.0: Call COMMIT and ROLLBACK queries 
when sql transaction support is done
 Key: IGNITE-16432
 URL: https://issues.apache.org/jira/browse/IGNITE-16432
 Project: Ignite
  Issue Type: Improvement
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16432) JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction support is done

2022-01-31 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16432:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Call COMMIT and ROLLBACK queries when sql transaction 
> support is done
> --
>
> Key: IGNITE-16432
> URL: https://issues.apache.org/jira/browse/IGNITE-16432
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16422) Calcite: ArrayOutOfBoundException on row update

2022-01-31 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17484588#comment-17484588
 ] 

Vladimir Ermakov commented on IGNITE-16422:
---

[~amashenkov] [~zstan] please, take a look.

> Calcite: ArrayOutOfBoundException on row update
> ---
>
> Key: IGNITE-16422
> URL: https://issues.apache.org/jira/browse/IGNITE-16422
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Blocker
>  Labels: ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After IGNITE-16296 new bug with row update logic is appeared.
> To reproduce run ItJdbcStatementSelfTest#testExecuteUpdate().
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16422) Calcite: ArrayOutOfBoundException on row update

2022-01-28 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16422:
--
Description: 
After IGNITE-16296 new bug with row update logic is appeared.
To reproduce run ItJdbcStatementSelfTest#testExecuteUpdate().

 

> Calcite: ArrayOutOfBoundException on row update
> ---
>
> Key: IGNITE-16422
> URL: https://issues.apache.org/jira/browse/IGNITE-16422
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Critical
>  Labels: ignite-3
>
> After IGNITE-16296 new bug with row update logic is appeared.
> To reproduce run ItJdbcStatementSelfTest#testExecuteUpdate().
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16422) Calcite: ArrayOutOfBoundException on row update

2022-01-28 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16422:
--
Priority: Critical  (was: Major)

> Calcite: ArrayOutOfBoundException on row update
> ---
>
> Key: IGNITE-16422
> URL: https://issues.apache.org/jira/browse/IGNITE-16422
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Critical
>  Labels: ignite-3
>




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16422) Calcite: ArrayOutOfBoundException on row update

2022-01-28 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16422:
-

 Summary: Calcite: ArrayOutOfBoundException on row update
 Key: IGNITE-16422
 URL: https://issues.apache.org/jira/browse/IGNITE-16422
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Vladimir Ermakov
Assignee: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16411) NPE in org.apache.ignite.internal.jdbc.JdbcDatabaseMetadata.getColumns

2022-01-27 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16411?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16411:
-

Assignee: Vladimir Ermakov

> NPE in org.apache.ignite.internal.jdbc.JdbcDatabaseMetadata.getColumns
> --
>
> Key: IGNITE-16411
> URL: https://issues.apache.org/jira/browse/IGNITE-16411
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Fedor Malchikov 
>Assignee: Vladimir Ermakov
>Priority: Blocker
>  Labels: ignite-3
>
> {code:java}
> [INFO ] 2022-01-26 18:39:46,803 [main]  com.oltpbenchmark.DBWorkload main - 
> Finished creating new YCSB database...
> Exception in thread "main" java.util.concurrent.CompletionException: class 
> org.apache.ignite.client.IgniteClientException: null
>     at 
> java.base/java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:412)
>     at 
> java.base/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2044)
>     at 
> org.apache.ignite.internal.jdbc.JdbcDatabaseMetadata.getColumns(JdbcDatabaseMetadata.java:975)
>     at com.oltpbenchmark.util.SQLUtil.getCatalogDirect(SQLUtil.java:458)
>     at com.oltpbenchmark.util.SQLUtil.getCatalog(SQLUtil.java:411)
>     at 
> com.oltpbenchmark.api.BenchmarkModule.refreshCatalog(BenchmarkModule.java:233)
>     at com.oltpbenchmark.DBWorkload.main(DBWorkload.java:416)
> Caused by: class org.apache.ignite.client.IgniteClientException: null
>     at 
> org.apache.ignite.internal.client.TcpClientChannel.convertException(TcpClientChannel.java:241)
>     at 
> org.apache.ignite.internal.client.TcpClientChannel.send(TcpClientChannel.java:197)
>     at 
> org.apache.ignite.internal.client.TcpClientChannel.serviceAsync(TcpClientChannel.java:143)
>     at 
> org.apache.ignite.internal.client.ReliableChannel.handleServiceAsync(ReliableChannel.java:188)
>     at 
> org.apache.ignite.internal.client.ReliableChannel.serviceAsync(ReliableChannel.java:144)
>     at 
> org.apache.ignite.internal.client.TcpIgniteClient.sendRequestAsync(TcpIgniteClient.java:145)
>     at 
> org.apache.ignite.internal.client.query.JdbcClientQueryEventHandler.columnsMetaAsync(JdbcClientQueryEventHandler.java:103)
>     at 
> org.apache.ignite.internal.jdbc.JdbcDatabaseMetadata.getColumns(JdbcDatabaseMetadata.java:974)
>     ... 4 more
> Caused by: java.lang.NullPointerException
>     at io.netty.buffer.ByteBufUtil.utf8MaxBytes(ByteBufUtil.java:948)
>     at 
> org.apache.ignite.internal.client.proto.ClientMessagePacker.packString(ClientMessagePacker.java:292)
>     at 
> org.apache.ignite.client.proto.query.event.JdbcMetaColumnsRequest.writeBinary(JdbcMetaColumnsRequest.java:89)
>     at 
> org.apache.ignite.internal.client.TcpIgniteClient.lambda$sendRequestAsync$1(TcpIgniteClient.java:145)
>     at 
> org.apache.ignite.internal.client.TcpClientChannel.send(TcpClientChannel.java:182)
>     ... 10 more {code}
> after create table:
> {code:sql}
> CREATE TABLE usertable (
> ycsb_key int PRIMARY KEY,
> field1 varchar(100),
> field2 varchar(100),
> field3 varchar(100),
> field4 varchar(100),
> field5 varchar(100),
> field6 varchar(100),
> field7 varchar(100),
> field8 varchar(100),
> field9 varchar(100),
> field10 varchar(100)
> );{code}
> Reproduced on:
> {code:java}
> private static AbstractCatalog getCatalogDirect(DatabaseType databaseType, 
> Connection connection) throws SQLException {
> DatabaseMetaData md = connection.getMetaData();
> String separator = md.getIdentifierQuoteString();
> String catalog = connection.getCatalog();
> String schema = connection.getSchema();
> Map tables = new HashMap<>();
> List excludedColumns = new ArrayList<>();
> try (ResultSet table_rs = md.getTables(catalog, schema, null, new 
> String[]{"TABLE"})) {
> while (table_rs.next()) {
> String table_type = table_rs.getString("TABLE_TYPE");
> if (!table_type.equalsIgnoreCase("TABLE")) {
> continue;
> }
> String table_name = table_rs.getString("TABLE_NAME");
> Table catalog_tbl = new Table(table_name, separator);
> try (ResultSet col_rs = md.getColumns(catalog, schema, 
> table_name, null)) {
> while (col_rs.next()) {
> String col_name = col_rs.getString("COLUMN_NAME");
> if (excludedColumns.contains(col_name.toUpperCase())) {
> LOG.debug("found excluded column [{}] for in database 
> type [{}].  Skipping...", col_name, databaseType);
> continue;
> }
> int col_type = col_rs.getInt("DATA_TYPE");
> Integer col_size = 

[jira] [Commented] (IGNITE-16269) JDBC. Support for Statement#maxRows

2022-01-26 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17482321#comment-17482321
 ] 

Vladimir Ermakov commented on IGNITE-16269:
---

[~korlov] could you please take a look?

> JDBC. Support for Statement#maxRows
> ---
>
> Key: IGNITE-16269
> URL: https://issues.apache.org/jira/browse/IGNITE-16269
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> A {{maxRows}} attribute is stored into statement and passed to the 
> QueryExecuteRequest, but ignored on the server side.
> Let's add support for this.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16269) JDBC. Support for Statement#maxRows

2022-01-25 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16269:
-

Assignee: Vladimir Ermakov

> JDBC. Support for Statement#maxRows
> ---
>
> Key: IGNITE-16269
> URL: https://issues.apache.org/jira/browse/IGNITE-16269
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> A {{maxRows}} attribute is stored into statement and passed to the 
> QueryExecuteRequest, but ignored on the server side.
> Let's add support for this.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16268) JDBC. Validation of statement type should be done before its execution

2022-01-25 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16268:
-

Assignee: Vladimir Ermakov

> JDBC. Validation of statement type should be done before its execution
> --
>
> Key: IGNITE-16268
> URL: https://issues.apache.org/jira/browse/IGNITE-16268
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Currently, it's possible to execute DML statement such as INSERT, UPDATE, or 
> DELETE with {{Statement#executeQuery}} method. The statement will be 
> executed, and exception will be thrown after result of the execution will be 
> received.
> {code:java}
> class JdbcStatement {
> public ResultSet executeQuery(String sql) throws SQLException {
> ...
> ResultSet rs = getResultSet();
> if (rs == null) {
> throw new SQLException("The query isn't SELECT query: " + sql, 
> SqlStateCode.PARSING_EXCEPTION);
> }
> ...
> }
> public ResultSet getResultSet() throws SQLException {
> ...
> JdbcResultSet rs = resSets.get(curRes);
> if (!rs.isQuery()) {
> return null;
> }
> ...
> }
> {code}
> Let's validate the type of the statement before its execution. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16389) Fix flacky test StopCalciteModuleTest#testStopQueryOnNodeStop

2022-01-25 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16389:
--
Attachment: image (1).png

> Fix flacky test StopCalciteModuleTest#testStopQueryOnNodeStop
> -
>
> Key: IGNITE-16389
> URL: https://issues.apache.org/jira/browse/IGNITE-16389
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Priority: Blocker
>  Labels: ignite-3
> Attachments: image (1).png
>
>
> Test 
> org.apache.ignite.internal.sql.engine.StopCalciteModuleTest#testStopQueryOnNodeStop
> is flacky. To reproduce: repeat the test until NPE appears.
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16389) Fix flacky test StopCalciteModuleTest#testStopQueryOnNodeStop

2022-01-25 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16389:
-

 Summary: Fix flacky test 
StopCalciteModuleTest#testStopQueryOnNodeStop
 Key: IGNITE-16389
 URL: https://issues.apache.org/jira/browse/IGNITE-16389
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Vladimir Ermakov


Test 
org.apache.ignite.internal.sql.engine.StopCalciteModuleTest#testStopQueryOnNodeStop

is flacky. To reproduce: repeat the test until NPE appears.

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16192) Calcite. Support hidden columns

2022-01-18 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16192?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16192:
-

Assignee: Vladimir Ermakov

> Calcite. Support hidden columns
> ---
>
> Key: IGNITE-16192
> URL: https://issues.apache.org/jira/browse/IGNITE-16192
> Project: Ignite
>  Issue Type: New Feature
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Vladimir Ermakov
>Priority: Critical
>  Labels: calcite2-required, calcite3-required, ignite-3
>
> We should have ability to hide some columns. At first glance it's *_key* 
> column. It really important for autogenerated PK.
> Such columns couldn't be accessed for 'select * ' query, but available for 
> explicit use in select statement. 
> Another example of hidden column is Oracle *rownum*.
> Also another databases (Oracle, SQLSERVER, MySQL) have support hidden 
> (invisible) columns which could be created user explicitly and amend the 
> visibility through ALTER statement.  Maybe we should consider possible 
> extension it for future to support one.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16311) Revise and remove resolved tickets (IGNITE-15188,IGNITE-15443) mentions in code

2022-01-18 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17477836#comment-17477836
 ] 

Vladimir Ermakov commented on IGNITE-16311:
---

[~amashenkov], could you please take a look?

> Revise and remove resolved tickets (IGNITE-15188,IGNITE-15443) mentions in 
> code
> ---
>
> Key: IGNITE-16311
> URL: https://issues.apache.org/jira/browse/IGNITE-16311
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Tickets IGNITE-15188,IGNITE-15443 are marked as resolved, but still have 
> mentions in code. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15983) Regression when using SELECT (EXISTS (...)) part 2

2022-01-18 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-15983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17477831#comment-17477831
 ] 

Vladimir Ermakov commented on IGNITE-15983:
---

[~korlov], could you please take a look? 

> Regression when using SELECT (EXISTS (...)) part 2
> --
>
> Key: IGNITE-15983
> URL: https://issues.apache.org/jira/browse/IGNITE-15983
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> In the task https://issues.apache.org/jira/browse/IGNITE-14354 erroneous 
> queries were not fully corrected.
> So, a query like
> {code:java}
> CREATE TABLE t (i int PRIMARY KEY, j int);
> SELECT (EXISTS (SELECT 1 FROM t WHERE t.i = 1));  {code}
> now passes, when a query
> {code:java}
> CREATE TABLE t (i int PRIMARY KEY, j int);
> SELECT (EXISTS (SELECT i FROM t WHERE t.i = 1));  {code}
> still fails. 
> The original cause of the error must be fixed.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16311) Revise and remove resolved tickets (IGNITE-15188,IGNITE-15443) mentions in code

2022-01-17 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16311:
-

Assignee: Vladimir Ermakov

> Revise and remove resolved tickets (IGNITE-15188,IGNITE-15443) mentions in 
> code
> ---
>
> Key: IGNITE-16311
> URL: https://issues.apache.org/jira/browse/IGNITE-16311
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Tickets IGNITE-15188,IGNITE-15443 are marked as resolved, but still have 
> mentions in code. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16311) Revise and remove resolved tickets (IGNITE-15188,IGNITE-15443) mentions in code

2022-01-17 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16311:
-

 Summary: Revise and remove resolved tickets 
(IGNITE-15188,IGNITE-15443) mentions in code
 Key: IGNITE-16311
 URL: https://issues.apache.org/jira/browse/IGNITE-16311
 Project: Ignite
  Issue Type: Task
  Components: sql
Reporter: Vladimir Ermakov


Tickets IGNITE-15188,IGNITE-15443 are marked as resolved, but still have 
mentions in code. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-15810) Rename ignite-calcite module to ignite-sql-engine at Ignite 3.0

2021-12-29 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15810?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15810:
-

Assignee: Vladimir Ermakov

> Rename  ignite-calcite module to ignite-sql-engine at Ignite 3.0
> 
>
> Key: IGNITE-15810
> URL: https://issues.apache.org/jira/browse/IGNITE-15810
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite, calcite3-required, ignite-3
>
> Let's rename the ignite-calcite module to ignite-sql-engine at Ignite 3.0



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16219) JDBC driver for 3.0: ItJdbcJoinsSelfTest test fix

2021-12-27 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16219:
--
Component/s: jdbc
 Labels: ignite-3  (was: )

> JDBC driver for 3.0: ItJdbcJoinsSelfTest test fix
> -
>
> Key: IGNITE-16219
> URL: https://issues.apache.org/jira/browse/IGNITE-16219
> Project: Ignite
>  Issue Type: Bug
>  Components: jdbc
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> ItJdbcJoinsSelfTest1.testJoin runs correctly in local, but in teamcity 
> java.lang.AssertionError is appeared. Should be investigated. Logs: 
> https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_IntegrationTests_ModuleRunner/6343350
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16219) JDBC driver for 3.0: ItJdbcJoinsSelfTest test fix

2021-12-27 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16219:
-

 Summary: JDBC driver for 3.0: ItJdbcJoinsSelfTest test fix
 Key: IGNITE-16219
 URL: https://issues.apache.org/jira/browse/IGNITE-16219
 Project: Ignite
  Issue Type: Bug
Reporter: Vladimir Ermakov


ItJdbcJoinsSelfTest1.testJoin runs correctly in local, but in teamcity 
java.lang.AssertionError is appeared. Should be investigated. Logs: 
https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_IntegrationTests_ModuleRunner/6343350
 
 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16207) JDBC driver for 3.0: Calcite throws class cast exception

2021-12-23 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16207:
-

 Summary: JDBC driver for 3.0: Calcite throws class cast exception
 Key: IGNITE-16207
 URL: https://issues.apache.org/jira/browse/IGNITE-16207
 Project: Ignite
  Issue Type: New Feature
  Components: jdbc
Reporter: Vladimir Ermakov


Calcite throws
java.lang.ClassCastException: class java.lang.String cannot be cast to class 
java.lang.Integer (java.lang.String and java.lang.Integer are in module 
java.base of loader 'bootstrap')

when

ItJdbcComplexDmlDdlSelfTest#testCreateSelectDrop() test running after

ItJdbcInsertStatementSelfTest#testDuplicateKeys().

However, single run passed correctly.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16205) Calcite integration: Add JDBC tests when query cancelation is supported.

2021-12-23 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16205:
-

 Summary: Calcite integration: Add JDBC tests when query 
cancelation is supported.
 Key: IGNITE-16205
 URL: https://issues.apache.org/jira/browse/IGNITE-16205
 Project: Ignite
  Issue Type: New Feature
  Components: jdbc
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16204) Calcite integration. Add JDBC tests when INDEX support is appeared

2021-12-23 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16204:
-

 Summary: Calcite integration. Add JDBC tests when INDEX support is 
appeared
 Key: IGNITE-16204
 URL: https://issues.apache.org/jira/browse/IGNITE-16204
 Project: Ignite
  Issue Type: New Feature
  Components: jdbc
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16203) JDBC driver for 3.0: Parameter metadata.

2021-12-23 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16203:
-

 Summary: JDBC driver for 3.0: Parameter metadata.
 Key: IGNITE-16203
 URL: https://issues.apache.org/jira/browse/IGNITE-16203
 Project: Ignite
  Issue Type: New Feature
  Components: jdbc
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16201) JDBC driver for 3.0: Batch execution.

2021-12-23 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16201:
-

 Summary: JDBC driver for 3.0: Batch execution.
 Key: IGNITE-16201
 URL: https://issues.apache.org/jira/browse/IGNITE-16201
 Project: Ignite
  Issue Type: New Feature
  Components: jdbc
 Environment: Let's implement batch execution in JDBC driver.
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16057) Second read of array field from BinaryObject fail

2021-12-10 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16057:
--
Description: 
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream.

Root cause:

In the previous patch, handlers were added to allow to cache values that have 
already been read. Handles were added for objects, but not for arrays. When 
reading an array, it first creates a new array instance and then reads the 
objects in that array in the order in which they appear in the array.

The problem is that when an object is read, the position of the next object in 
the binary array is set. This way we can always continue reading objects in 
order. But now we just return a cached object, and don't calculate next 
position. So we read garbage, or we get an error when we try to read the next 
item because we don't know its real position.

Siggestion fix:

We need to add handle logic when reading arrays. Then when you try to read the 
array again, a cached copy will be returned.

It is also necessary to consider the deserialization flag. If it is set, it is 
necessary to re-read the array and fill it with deserialized copies of objects.

 

BinaryObjectBuilderAdditionalSelfTest
{code:java}
/** */
@Test
public void testArrayFieldSeveralRead() throws Exception {
try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));

for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();

for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}
finally {
clearBinaryMeta();
}
}

/** Test class with array. */
public static class TestClsWithArray {
/** */
private final Object[] arr;

/** */
public TestClsWithArray(TestClass1[] arr) {
this.arr = arr;
}
}
{code}

  was:
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream.

BinaryObjectBuilderAdditionalSelfTest
{code:java}
/** */
@Test
public void testArrayFieldSeveralRead() throws Exception {
try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));

for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();

for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}
finally {
clearBinaryMeta();
}
}

/** Test class with array. */
public static class TestClsWithArray {
/** */
private final Object[] arr;

/** */
public TestClsWithArray(TestClass1[] arr) {
this.arr = arr;
}
}
{code}


> Second read of array field from BinaryObject fail
> -
>
> Key: IGNITE-16057
> URL: https://issues.apache.org/jira/browse/IGNITE-16057
> Project: Ignite
>  Issue Type: Bug
>Reporter: Nikolay Izhikov
>Assignee: Vladimir Ermakov
>Priority: Blocker
>  Labels: ise
>
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream.
> Root cause:
> In the previous patch, handlers were added to allow to cache values that have 
> already been read. Handles were added for objects, but not for arrays. When 
> reading an array, it first creates a new array instance and then reads the 
> objects in that array in the order in which they appear in the array.
> The 

[jira] [Commented] (IGNITE-16057) Second read of array field from BinaryObject fail

2021-12-10 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17457064#comment-17457064
 ] 

Vladimir Ermakov commented on IGNITE-16057:
---

Hello [~nizhikov] [~tledkov-gridgain]! Could you please have a look at the 
patch?

> Second read of array field from BinaryObject fail
> -
>
> Key: IGNITE-16057
> URL: https://issues.apache.org/jira/browse/IGNITE-16057
> Project: Ignite
>  Issue Type: Bug
>Reporter: Nikolay Izhikov
>Assignee: Vladimir Ermakov
>Priority: Blocker
>  Labels: ise
>
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream.
> BinaryObjectBuilderAdditionalSelfTest
> {code:java}
> /** */
> @Test
> public void testArrayFieldSeveralRead() throws Exception {
> try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }
> finally {
> clearBinaryMeta();
> }
> }
> /** Test class with array. */
> public static class TestClsWithArray {
> /** */
> private final Object[] arr;
> /** */
> public TestClsWithArray(TestClass1[] arr) {
> this.arr = arr;
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Resolved] (IGNITE-16062) Support binary HANLDEs: Unable read object array twice.

2021-12-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov resolved IGNITE-16062.
---
Resolution: Duplicate

> Support binary HANLDEs: Unable read object array twice.
> ---
>
> Key: IGNITE-16062
> URL: https://issues.apache.org/jira/browse/IGNITE-16062
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> "Looks like this commit introduce a blocker.
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream."
>  
> Reproducer:
> {code:java}
> /** */
> @Test
> public void testArrayFieldSeveralRead() throws Exception {
> try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }
> finally {
> clearBinaryMeta();
> }
> }
> /** Test class with array. */
> public static class TestClsWithArray {
> /** */
> private final Object[] arr;
> /** */
> public TestClsWithArray(TestClass1[] arr) {
> this.arr = arr;
> }
> } {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16057) Second read of array field from BinaryObject fail

2021-12-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16057:
-

Assignee: Vladimir Ermakov

> Second read of array field from BinaryObject fail
> -
>
> Key: IGNITE-16057
> URL: https://issues.apache.org/jira/browse/IGNITE-16057
> Project: Ignite
>  Issue Type: Bug
>Reporter: Nikolay Izhikov
>Assignee: Vladimir Ermakov
>Priority: Blocker
>  Labels: ise
>
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream.
> BinaryObjectBuilderAdditionalSelfTest
> {code:java}
> /** */
> @Test
> public void testArrayFieldSeveralRead() throws Exception {
> try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }
> finally {
> clearBinaryMeta();
> }
> }
> /** Test class with array. */
> public static class TestClsWithArray {
> /** */
> private final Object[] arr;
> /** */
> public TestClsWithArray(TestClass1[] arr) {
> this.arr = arr;
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16062) Support binary HANLDEs: Unable read object array twice.

2021-12-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-16062:
-

Assignee: Vladimir Ermakov

> Support binary HANLDEs: Unable read object array twice.
> ---
>
> Key: IGNITE-16062
> URL: https://issues.apache.org/jira/browse/IGNITE-16062
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> "Looks like this commit introduce a blocker.
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream."
>  
> Reproducer:
> {code:java}
> /** */
> @Test
> public void testArrayFieldSeveralRead() throws Exception {
> try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }
> finally {
> clearBinaryMeta();
> }
> }
> /** Test class with array. */
> public static class TestClsWithArray {
> /** */
> private final Object[] arr;
> /** */
> public TestClsWithArray(TestClass1[] arr) {
> this.arr = arr;
> }
> } {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16062) Support binary HANLDEs: Unable read object array twice.

2021-12-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16062:
--
Description: 
"Looks like this commit introduce a blocker.
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream."

 

Reproducer:
{code:java}
/** */
@Test
public void testArrayFieldSeveralRead() throws Exception {
try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));

for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();

for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}
finally {
clearBinaryMeta();
}
}

/** Test class with array. */
public static class TestClsWithArray {
/** */
private final Object[] arr;

/** */
public TestClsWithArray(TestClass1[] arr) {
this.arr = arr;
}
} {code}

  was:
"Looks like this commit introduce a blocker.
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream."

 

Reproducer:
/** */@Testpublic void testArrayFieldSeveralRead() throws Exception 
{try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}finally \{
clearBinaryMeta();
}
}/** Test class with array. */public static class TestClsWithArray {
/** */private final Object[] arr;/** */public 
TestClsWithArray(TestClass1[] arr) {this.arr = arr;
}
}


> Support binary HANLDEs: Unable read object array twice.
> ---
>
> Key: IGNITE-16062
> URL: https://issues.apache.org/jira/browse/IGNITE-16062
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Ermakov
>Priority: Major
>
> "Looks like this commit introduce a blocker.
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream."
>  
> Reproducer:
> {code:java}
> /** */
> @Test
> public void testArrayFieldSeveralRead() throws Exception {
> try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();
> for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }
> finally {
> clearBinaryMeta();
> }
> }
> /** Test class with array. */
> public static class TestClsWithArray {
> /** */
> private final Object[] arr;
> /** */
> public TestClsWithArray(TestClass1[] arr) {
> this.arr = arr;
> }
> } {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16062) Support binary HANLDEs: Unable read object array twice.

2021-12-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16062:
--
Description: 
"Looks like this commit introduce a blocker.
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream."

 

Reproducer:
/** */@Testpublic void testArrayFieldSeveralRead() throws Exception 
{try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}finally \{
clearBinaryMeta();
}
}/** Test class with array. */public static class TestClsWithArray {
/** */private final Object[] arr;/** */public 
TestClsWithArray(TestClass1[] arr) {this.arr = arr;
}
}

  was:
"Looks like this commit introduce a blocker.
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream."

 

Reproducer:

 
/** */@Testpublic void testArrayFieldSeveralRead() throws Exception 
{try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}finally \{
clearBinaryMeta();
}
}/** Test class with array. */public static class TestClsWithArray {
/** */private final Object[] arr;/** */public 
TestClsWithArray(TestClass1[] arr) {this.arr = arr;
}
}


> Support binary HANLDEs: Unable read object array twice.
> ---
>
> Key: IGNITE-16062
> URL: https://issues.apache.org/jira/browse/IGNITE-16062
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Ermakov
>Priority: Major
>
> "Looks like this commit introduce a blocker.
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream."
>  
> Reproducer:
> /** */@Testpublic void testArrayFieldSeveralRead() throws 
> Exception {try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }finally \{
> clearBinaryMeta();
> }
> }/** Test class with array. */public static class TestClsWithArray {  
>   /** */private final Object[] arr;/** */public 
> TestClsWithArray(TestClass1[] arr) {this.arr = arr;
> }
> }



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16062) Support binary HANLDEs: Unable read object array twice.

2021-12-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16062:
--
Description: 
"Looks like this commit introduce a blocker.
Second read of array field fail and read some garbage.
This happen because when object read with handle stream position don't move to 
the end of already deserialized object.
So second array element is just random bytes from the middle of the stream."

 

Reproducer:

 
/** */@Testpublic void testArrayFieldSeveralRead() throws Exception 
{try (Ignite ignite = startGrid(1)) {
TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
TestClass1()};

BinaryObject arrObj = ignite.binary().toBinary(new 
TestClsWithArray(expArr));for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));

arrObj = 
ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
expArr).build();for (int i = 0; i < 10; i++)
Assert.assertArrayEquals(i + " iteration", expArr, 
PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
}finally \{
clearBinaryMeta();
}
}/** Test class with array. */public static class TestClsWithArray {
/** */private final Object[] arr;/** */public 
TestClsWithArray(TestClass1[] arr) {this.arr = arr;
}
}

> Support binary HANLDEs: Unable read object array twice.
> ---
>
> Key: IGNITE-16062
> URL: https://issues.apache.org/jira/browse/IGNITE-16062
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vladimir Ermakov
>Priority: Major
>
> "Looks like this commit introduce a blocker.
> Second read of array field fail and read some garbage.
> This happen because when object read with handle stream position don't move 
> to the end of already deserialized object.
> So second array element is just random bytes from the middle of the stream."
>  
> Reproducer:
>  
> /** */@Testpublic void testArrayFieldSeveralRead() throws 
> Exception {try (Ignite ignite = startGrid(1)) {
> TestClass1[] expArr = new TestClass1[] {new TestClass1(), new 
> TestClass1()};
> BinaryObject arrObj = ignite.binary().toBinary(new 
> TestClsWithArray(expArr));for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> arrObj = 
> ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", 
> expArr).build();for (int i = 0; i < 10; i++)
> Assert.assertArrayEquals(i + " iteration", expArr, 
> PlatformUtils.unwrapBinariesInArray(arrObj.field("arr")));
> }finally \{
> clearBinaryMeta();
> }
> }/** Test class with array. */public static class TestClsWithArray {  
>   /** */private final Object[] arr;/** */public 
> TestClsWithArray(TestClass1[] arr) {this.arr = arr;
> }
> }



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16062) Support binary HANLDEs: Unable read object array twice.

2021-12-06 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16062:
-

 Summary: Support binary HANLDEs: Unable read object array twice.
 Key: IGNITE-16062
 URL: https://issues.apache.org/jira/browse/IGNITE-16062
 Project: Ignite
  Issue Type: Bug
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15978) Support binary HANLDEs by BinaryObjectBuilder

2021-12-06 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-15978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17453978#comment-17453978
 ] 

Vladimir Ermakov commented on IGNITE-15978:
---

Hello [~nizhikov] Thanks for the bug report. I successfully reproduced it and 
working on a fix. I will create a separate task for the fix.

> Support binary HANLDEs by BinaryObjectBuilder
> -
>
> Key: IGNITE-15978
> URL: https://issues.apache.org/jira/browse/IGNITE-15978
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> We have to support binary HANLDEs by BinaryObjectBuilder.
> Now, the binary object is created by marshaling the java object may contain 
> filed that is represented by the HANDLE (reference) to the other member of 
> the upper object.e.g.
>  
> {code:java}
> class MyClass {
>List lst0;
>List lst1;
> }
> MyClass var = new MyClass();
> var.lst0 = ...;
> var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers 
> to the lst0 {code}
> But the same layout of the binary object cannot be built by 
> BinaryObjectBuilder.e.g.:
> {code:java}
> BinaryObjectBuilder bob = builder("MyClass");
> List lst = ...;
> bob.setField("lst0", lst);
> bob.setField("lst1", lst);
> BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
> collections will be marshaled independently, {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16041) Fix for comparing BinaryObjects when searching for POJO keys in the index tree.

2021-12-01 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16041:
-

 Summary: Fix for comparing BinaryObjects when searching for POJO 
keys in the index tree.
 Key: IGNITE-16041
 URL: https://issues.apache.org/jira/browse/IGNITE-16041
 Project: Ignite
  Issue Type: Bug
Reporter: Vladimir Ermakov
Assignee: Vladimir Ermakov


Sometimes (pretty rarely) a certain combination of keys in the index with POJO 
keys produces index corruption.

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16028) Node failure with ClassNotFoundException: wrong validation for Object type

2021-12-01 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16028:
--
Description: 
After implementing the fix for IGNITE-13553, we have an issue that Object type 
can't be used for any other type except the Object one.

 

The cache object type can be declared as java.lang.Object. For example,
{code:java}
.addQueryField("val_obj", Object.class.getName(), null){code}
But, we can use BinaryObjectBuilder to build BinaryObject and put it as 
'val_obj'.

For example, 
{code:java}
BinaryObjectBuilder bobInner = grid().binary().builder("inner");
///
bob.setField("val_obj", bobInner.build());{code}
So, we will have an object with 'inner' class name. But a class with that name 
never existed.

During type validation (introduced in IGNITE-13553) the binaryObject's typeId 
and the java.lang.Object typeId will not match. Then we will try to get the 
class of the object by 'inner' class name, and will definitely face with 
ClassNotFoundException.

QueryTypeDescriptorImpl#730 line of code.

 

Please, see BasicIndexTest#testCacheSecondaryCompositeIndex reproducer for more 
details.

  was:
After implementing the fix for IGNITE-13553, we have an issue that Object type 
can't be used for any other type except the Object one.

 

The cache object type can be declared as java.lang.Object. For example,
{code:java}
.addQueryField("val_obj", Object.class.getName(), null){code}
But, we can use BinaryObjectBuilder to build BinaryObject and put it as 
'val_obj'.

For example, 
{code:java}
BinaryObjectBuilder bobInner = grid().binary().builder("inner");
///
bob.setField("val_obj", bobInner.build());{code}
So, we will have an object with 'inner' class name. But a class with that name 
never existed.

During type validation (introduced in IGNITE-13553) the binaryObject's typeId 
and the java.lang.Object typeId will not match. Then we will try to get the 
class of the object by 'inner' class name, and will definitely face with 
ClassNotFoundException.

 

Please, see BasicIndexTest#testCacheSecondaryCompositeIndex reproducer for more 
details.


> Node failure with ClassNotFoundException: wrong validation for Object type
> --
>
> Key: IGNITE-16028
> URL: https://issues.apache.org/jira/browse/IGNITE-16028
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After implementing the fix for IGNITE-13553, we have an issue that Object 
> type can't be used for any other type except the Object one.
>  
> The cache object type can be declared as java.lang.Object. For example,
> {code:java}
> .addQueryField("val_obj", Object.class.getName(), null){code}
> But, we can use BinaryObjectBuilder to build BinaryObject and put it as 
> 'val_obj'.
> For example, 
> {code:java}
> BinaryObjectBuilder bobInner = grid().binary().builder("inner");
> ///
> bob.setField("val_obj", bobInner.build());{code}
> So, we will have an object with 'inner' class name. But a class with that 
> name never existed.
> During type validation (introduced in IGNITE-13553) the binaryObject's typeId 
> and the java.lang.Object typeId will not match. Then we will try to get the 
> class of the object by 'inner' class name, and will definitely face with 
> ClassNotFoundException.
> QueryTypeDescriptorImpl#730 line of code.
>  
> Please, see BasicIndexTest#testCacheSecondaryCompositeIndex reproducer for 
> more details.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16028) Node failure with ClassNotFoundException: wrong validation for Object type

2021-12-01 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17451843#comment-17451843
 ] 

Vladimir Ermakov commented on IGNITE-16028:
---

[~nizhikov] I added more details to the description, as well as the link to the 
reproducer test. 
Please let me know if the case is still unclear. I will try to add more details.

> Node failure with ClassNotFoundException: wrong validation for Object type
> --
>
> Key: IGNITE-16028
> URL: https://issues.apache.org/jira/browse/IGNITE-16028
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After implementing the fix for IGNITE-13553, we have an issue that Object 
> type can't be used for any other type except the Object one.
>  
> The cache object type can be declared as java.lang.Object. For example,
> {code:java}
> .addQueryField("val_obj", Object.class.getName(), null){code}
> But, we can use BinaryObjectBuilder to build BinaryObject and put it as 
> 'val_obj'.
> For example, 
> {code:java}
> BinaryObjectBuilder bobInner = grid().binary().builder("inner");
> ///
> bob.setField("val_obj", bobInner.build());{code}
> So, we will have an object with 'inner' class name. But a class with that 
> name never existed.
> During type validation (introduced in IGNITE-13553) the binaryObject's typeId 
> and the java.lang.Object typeId will not match. Then we will try to get the 
> class of the object by 'inner' class name, and will definitely face with 
> ClassNotFoundException.
>  
> Please, see BasicIndexTest#testCacheSecondaryCompositeIndex reproducer for 
> more details.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16028) Node failure with ClassNotFoundException: wrong validation for Object type

2021-12-01 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-16028:
--
Description: 
After implementing the fix for IGNITE-13553, we have an issue that Object type 
can't be used for any other type except the Object one.

 

The cache object type can be declared as java.lang.Object. For example,
{code:java}
.addQueryField("val_obj", Object.class.getName(), null){code}
But, we can use BinaryObjectBuilder to build BinaryObject and put it as 
'val_obj'.

For example, 
{code:java}
BinaryObjectBuilder bobInner = grid().binary().builder("inner");
///
bob.setField("val_obj", bobInner.build());{code}
So, we will have an object with 'inner' class name. But a class with that name 
never existed.

During type validation (introduced in IGNITE-13553) the binaryObject's typeId 
and the java.lang.Object typeId will not match. Then we will try to get the 
class of the object by 'inner' class name, and will definitely face with 
ClassNotFoundException.

 

Please, see BasicIndexTest#testCacheSecondaryCompositeIndex reproducer for more 
details.

  was:After implementing the fix for IGNITE-13553, we have an issue that Object 
type can't be used for any other type except the Object one.


> Node failure with ClassNotFoundException: wrong validation for Object type
> --
>
> Key: IGNITE-16028
> URL: https://issues.apache.org/jira/browse/IGNITE-16028
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After implementing the fix for IGNITE-13553, we have an issue that Object 
> type can't be used for any other type except the Object one.
>  
> The cache object type can be declared as java.lang.Object. For example,
> {code:java}
> .addQueryField("val_obj", Object.class.getName(), null){code}
> But, we can use BinaryObjectBuilder to build BinaryObject and put it as 
> 'val_obj'.
> For example, 
> {code:java}
> BinaryObjectBuilder bobInner = grid().binary().builder("inner");
> ///
> bob.setField("val_obj", bobInner.build());{code}
> So, we will have an object with 'inner' class name. But a class with that 
> name never existed.
> During type validation (introduced in IGNITE-13553) the binaryObject's typeId 
> and the java.lang.Object typeId will not match. Then we will try to get the 
> class of the object by 'inner' class name, and will definitely face with 
> ClassNotFoundException.
>  
> Please, see BasicIndexTest#testCacheSecondaryCompositeIndex reproducer for 
> more details.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16028) Node failure with ClassNotFoundException: wrong validation for Object type

2021-12-01 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-16028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17451749#comment-17451749
 ] 

Vladimir Ermakov commented on IGNITE-16028:
---

Hello, [~tledkov-gridgain] [~NIzhikov].

Could you, please, take a look at my changes?

> Node failure with ClassNotFoundException: wrong validation for Object type
> --
>
> Key: IGNITE-16028
> URL: https://issues.apache.org/jira/browse/IGNITE-16028
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After implementing the fix for IGNITE-13553, we have an issue that Object 
> type can't be used for any other type except the Object one.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16028) Node failure with ClassNotFoundException: wrong validation for Object type

2021-11-30 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-16028:
-

 Summary: Node failure with ClassNotFoundException: wrong 
validation for Object type
 Key: IGNITE-16028
 URL: https://issues.apache.org/jira/browse/IGNITE-16028
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Vladimir Ermakov
Assignee: Vladimir Ermakov


After implementing the fix for IGNITE-13553, we have an issue that Object type 
can't be used for any other type except the Object one.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-15983) Regression when using SELECT (EXISTS (...)) part 2

2021-11-24 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15983:
-

 Summary: Regression when using SELECT (EXISTS (...)) part 2
 Key: IGNITE-15983
 URL: https://issues.apache.org/jira/browse/IGNITE-15983
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Vladimir Ermakov
Assignee: Vladimir Ermakov


In the task https://issues.apache.org/jira/browse/IGNITE-14354 erroneous 
queries were not fully corrected.

So, a query like
{code:java}
CREATE TABLE t (i int PRIMARY KEY, j int);
SELECT (EXISTS (SELECT 1 FROM t WHERE t.i = 1));  {code}
now passes, when a query
{code:java}
CREATE TABLE t (i int PRIMARY KEY, j int);
SELECT (EXISTS (SELECT i FROM t WHERE t.i = 1));  {code}
still fails. 

The original cause of the error must be fixed.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-15978) Support binary HANLDEs by BinaryObjectBuilder

2021-11-23 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-15978:
--
Description: 
We have to support binary HANLDEs by BinaryObjectBuilder.

Now, the binary object is created by marshaling the java object may contain 
filed that is represented by the HANDLE (reference) to the other member of the 
upper object.e.g.

 
{code:java}
class MyClass {
   List lst0;
   List lst1;
}
MyClass var = new MyClass();
var.lst0 = ...;
var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers to 
the lst0 {code}
But the same layout of the binary object cannot be built by 
BinaryObjectBuilder.e.g.:
{code:java}
BinaryObjectBuilder bob = builder("MyClass");
List lst = ...;
bob.setField("lst0", lst);
bob.setField("lst1", lst);
BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
collections will be marshaled independently, {code}

  was:
We have to support binary HANLDEs by BinaryObjectBuilder.

Now, the binary object is created by marshaling the java object may contain 
filed that is represented by the HANDLE (reference) to the other member of the 
upper object.e.g.

 

{{class MyClass \{
   List lst0;
   List lst1;
}
MyClass var = new MyClass();
var.lst0 = ...;
var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers to 
the lst0}}

 

But the same layout of the binary object cannot be built by 
BinaryObjectBuilder.e.g.:

BinaryObjectBuilder bob = builder("MyClass");
List lst = ...;
bob.setField("lst0", lst);
bob.setField("lst1", lst);
BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
collections will be marshaled independently,
.


> Support binary HANLDEs by BinaryObjectBuilder
> -
>
> Key: IGNITE-15978
> URL: https://issues.apache.org/jira/browse/IGNITE-15978
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> We have to support binary HANLDEs by BinaryObjectBuilder.
> Now, the binary object is created by marshaling the java object may contain 
> filed that is represented by the HANDLE (reference) to the other member of 
> the upper object.e.g.
>  
> {code:java}
> class MyClass {
>List lst0;
>List lst1;
> }
> MyClass var = new MyClass();
> var.lst0 = ...;
> var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers 
> to the lst0 {code}
> But the same layout of the binary object cannot be built by 
> BinaryObjectBuilder.e.g.:
> {code:java}
> BinaryObjectBuilder bob = builder("MyClass");
> List lst = ...;
> bob.setField("lst0", lst);
> bob.setField("lst1", lst);
> BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
> collections will be marshaled independently, {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-15978) Support binary HANLDEs by BinaryObjectBuilder

2021-11-23 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-15978:
--
Description: 
We have to support binary HANLDEs by BinaryObjectBuilder.

Now, the binary object is created by marshaling the java object may contain 
filed that is represented by the HANDLE (reference) to the other member of the 
upper object.e.g.

 

{{class MyClass \{
   List lst0;
   List lst1;
}
MyClass var = new MyClass();
var.lst0 = ...;
var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers to 
the lst0}}

 

But the same layout of the binary object cannot be built by 
BinaryObjectBuilder.e.g.:

BinaryObjectBuilder bob = builder("MyClass");
List lst = ...;
bob.setField("lst0", lst);
bob.setField("lst1", lst);
BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
collections will be marshaled independently,
.

  was:
We have to support binary HANLDEs by BinaryObjectBuilder.

Now, the binary object is created by marshaling the java object may contain 
filed that is represented by the HANDLE (reference) to the other member of the 
upper object.e.g.

class MyClass {
   List lst0;
   List lst1;
}
MyClass var = new MyClass();
var.lst0 = ...;
var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers to 
the lst0

But the same layout of the binary object cannot be built by 
BinaryObjectBuilder.e.g.:

BinaryObjectBuilder bob = builder("MyClass");
List lst = ...;
bob.setField("lst0", lst);
bob.setField("lst1", lst);
BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
collections will be marshaled independently,
.


> Support binary HANLDEs by BinaryObjectBuilder
> -
>
> Key: IGNITE-15978
> URL: https://issues.apache.org/jira/browse/IGNITE-15978
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> We have to support binary HANLDEs by BinaryObjectBuilder.
> Now, the binary object is created by marshaling the java object may contain 
> filed that is represented by the HANDLE (reference) to the other member of 
> the upper object.e.g.
>  
> {{class MyClass \{
>List lst0;
>List lst1;
> }
> MyClass var = new MyClass();
> var.lst0 = ...;
> var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers 
> to the lst0}}
>  
> But the same layout of the binary object cannot be built by 
> BinaryObjectBuilder.e.g.:
> BinaryObjectBuilder bob = builder("MyClass");
> List lst = ...;
> bob.setField("lst0", lst);
> bob.setField("lst1", lst);
> BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
> collections will be marshaled independently,
> .



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-15978) Support binary HANLDEs by BinaryObjectBuilder

2021-11-23 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15978:
-

 Summary: Support binary HANLDEs by BinaryObjectBuilder
 Key: IGNITE-15978
 URL: https://issues.apache.org/jira/browse/IGNITE-15978
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Vladimir Ermakov
Assignee: Vladimir Ermakov


We have to support binary HANLDEs by BinaryObjectBuilder.

Now, the binary object is created by marshaling the java object may contain 
filed that is represented by the HANDLE (reference) to the other member of the 
upper object.e.g.

class MyClass {
   List lst0;
   List lst1;
}
MyClass var = new MyClass();
var.lst0 = ...;
var.lst1 = lst0; // Will be serialized as the HANDLE with offset that refers to 
the lst0

But the same layout of the binary object cannot be built by 
BinaryObjectBuilder.e.g.:

BinaryObjectBuilder bob = builder("MyClass");
List lst = ...;
bob.setField("lst0", lst);
bob.setField("lst1", lst);
BinaryObject bo = bob.build(); // Binary object will not contain HANDLE. The 
collections will be marshaled independently,
.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-14354) Regression when using SELECT (EXISTS (...))

2021-11-18 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14354:
-

Assignee: Vladimir Ermakov

> Regression when using SELECT (EXISTS (...))
> ---
>
> Key: IGNITE-14354
> URL: https://issues.apache.org/jira/browse/IGNITE-14354
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.10
>Reporter: Lukas Eder
>Assignee: Vladimir Ermakov
>Priority: Major
>
> This worked as expected in 2.9.1:
>  
> {code:java}
> CREATE TABLE t (i int PRIMARY KEY, j int);
> SELECT (EXISTS (SELECT 1 FROM t WHERE t.i = 1)); 
> {code}
> In version 2.10, I'm getting:
> {code:java}
> SQL Error [1001] [42000]: Failed to parse query. Column "EXISTS1" not found; 
> SQL statement:
> SELECT
> (EXISTS1)
> FROM SYSTEM_RANGE(1, 1) __Z0 
>  LEFT OUTER JOIN PUBLIC.T __Z1 
>  ON __Z1.I = 1 [42122-197]{code}
> The workaround is to project an asterisk:
> {code:java}
> SELECT (EXISTS (SELECT * FROM t WHERE t.i = 1));{code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-15700) Rename 'Table#tableName' method to 'name'

2021-11-18 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15700:
-

Assignee: Vladimir Ermakov

> Rename 'Table#tableName' method to 'name'
> -
>
> Key: IGNITE-15700
> URL: https://issues.apache.org/jira/browse/IGNITE-15700
> Project: Ignite
>  Issue Type: Bug
>Reporter: Valentin Kulichenko
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> The {{table}} prefix seems redundant here.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-15846) Provide Interface for external table

2021-11-08 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15846?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15846:
-

Assignee: Vladimir Ermakov

> Provide Interface for external table
> 
>
> Key: IGNITE-15846
> URL: https://issues.apache.org/jira/browse/IGNITE-15846
> Project: Ignite
>  Issue Type: Sub-task
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite, calcite3-required, ignite-3
>
> In order to provide interfaces for SQL Extension API need to expose an 
> interface for external table (IgniteExternalTable). It could be reduced 
> IgniteTable.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15443) Add Map with primitive keys implementations.

2021-11-03 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-15443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17438054#comment-17438054
 ] 

Vladimir Ermakov commented on IGNITE-15443:
---

Based on the article 
([http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/)]
 and the tests attached to it ([https://github.com/mikvor/hashmapTest]), I made 
a comparison of different map implementations(including IntMap from Ignite 2, 
FastUtils, Netty, Trove, JDK and OpenHFT).

The fastest in the tests were Ignite 2 and FastUtils implementations.

After reviewing the code, it became clear that the implementation of the maps 
is quite similar. However, in FastUtils library some parts of the code are more 
optimal due to less creation of objects.
 
Given that FastUtils library may contain other useful data structures, it was 
decided to add it as dependency to the project using the maven-shading plugin.
 
The dependency will be added in the IGNITE-15462 task.

> Add Map with primitive keys implementations.
> 
>
> Key: IGNITE-15443
> URL: https://issues.apache.org/jira/browse/IGNITE-15443
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3, newbie, perfomance
>
> There are a number of places where Map and Map Object> are used.
> Let's add an optimized Map with a primitive key (IntMap, IntIntMap) to the 
> ignite-core module.
> Let's benchmark next candidates and choose one
> * IntMap from Ignite 2 with robinhood hashing.
> * FastUtils
> * Netty
> * OpenHFT



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-15870) Calcite. Replace usages of Lists and Sets of int to IntList\IntSet where possible

2021-11-03 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov updated IGNITE-15870:
--
Description: Currently there is a number of List\Set 
usages in {{ignite-calcite}} module. Better to replace them with more optimal 
fastUtils List\Set for int primitives.

> Calcite. Replace usages of Lists and Sets of int to IntList\IntSet where 
> possible
> -
>
> Key: IGNITE-15870
> URL: https://issues.apache.org/jira/browse/IGNITE-15870
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: calcite, calcite2-required, calcite3-required, ignite-3, 
> tech-debt
>
> Currently there is a number of List\Set usages in 
> {{ignite-calcite}} module. Better to replace them with more optimal fastUtils 
> List\Set for int primitives.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15870) Calcite. Replace usages of Lists and Sets of int to IntList\IntSet where possible

2021-11-03 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15870:
-

 Summary: Calcite. Replace usages of Lists and Sets of int to 
IntList\IntSet where possible
 Key: IGNITE-15870
 URL: https://issues.apache.org/jira/browse/IGNITE-15870
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Affects Versions: 3.0.0-alpha3
Reporter: Vladimir Ermakov






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15462) Calcite. Replace usages of map of int to IntMap where possible

2021-10-27 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15462:
-

Assignee: Vladimir Ermakov

> Calcite. Replace usages of map of int to IntMap where possible
> --
>
> Key: IGNITE-15462
> URL: https://issues.apache.org/jira/browse/IGNITE-15462
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite, calcite2-required, calcite3-required, ignite-3, 
> tech-debt
>
> Currently there is a number of {{Map}} usages in 
> {{ignite-calcite}} module. Better to replace them with more optimal 
> {{org.apache.ignite.internal.util.collection.IntMap}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15443) Add Map with primitive keys implementations.

2021-10-20 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15443:
-

Assignee: Vladimir Ermakov  (was: Anton Kholodkov)

> Add Map with primitive keys implementations.
> 
>
> Key: IGNITE-15443
> URL: https://issues.apache.org/jira/browse/IGNITE-15443
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3, newbie, perfomance
>
> There are a number of places where Map and Map Object> are used.
> Let's add an optimized Map with a primitive key (IntMap, IntIntMap) to the 
> ignite-core module.
> Let's benchmark next candidates and choose one
> * IntMap from Ignite 2 with robinhood hashing.
> * FastUtils
> * Netty
> * OpenHFT



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15648) JDBC driver for 3.0: Add integration tests that depend on the data layer.

2021-09-30 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15648:
-

 Summary: JDBC driver for 3.0: Add integration tests that depend on 
the data layer. 
 Key: IGNITE-15648
 URL: https://issues.apache.org/jira/browse/IGNITE-15648
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov
Assignee: Vladimir Ermakov


Subj



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14358) Regression when referencing aliased constant from derived table

2021-09-24 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14358:
-

Assignee: Vladimir Ermakov

> Regression when referencing aliased constant from derived table
> ---
>
> Key: IGNITE-14358
> URL: https://issues.apache.org/jira/browse/IGNITE-14358
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.10
>Reporter: Lukas Eder
>Assignee: Vladimir Ermakov
>Priority: Major
>
> This used to work in 2.9.1 but no longer does in 2.10.0:
>  
> {code:java}
> CREATE TABLE t (i int PRIMARY KEY, j int);
> INSERT INTO t VALUES (1, 1);
> SELECT u.x
> FROM (
>  SELECT 1 AS x
>  FROM t
> ) u;
> {code}
>  
> The error I'm getting is:
> {noformat}
> SQL Error [1001] [42000]: Failed to parse query. Column "U__Z0.X" not found; 
> SQL statement:
> SELECT
> U__Z0.X
> FROM PUBLIC.T U__Z0 [42122-197]{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14356) Regression when using derived table in LEFT JOIN

2021-09-24 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14356?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14356:
-

Assignee: Vladimir Ermakov

> Regression when using derived table in LEFT JOIN
> 
>
> Key: IGNITE-14356
> URL: https://issues.apache.org/jira/browse/IGNITE-14356
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.10
>Reporter: Lukas Eder
>Assignee: Vladimir Ermakov
>Priority: Major
>
> This used to work in 2.9.1 and no longer does in 2.10.0:
>  
> {code:java}
> CREATE TABLE t (i int PRIMARY KEY, j int);
> INSERT INTO t VALUES (1, 1);
> SELECT * 
> FROM t AS t1
> LEFT JOIN (SELECT * FROM t WHERE false) AS t2
> ON t1.i = t2.i
> {code}
>  
> It should result in 1 row as the LEFT JOIN should have no effect, but the 
> result set is empty as if t2 were inner joined.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15545) [Ignite 3] Create SQL example(s)

2021-09-22 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15545:
-

Assignee: Vladimir Ermakov

> [Ignite 3] Create SQL example(s)
> 
>
> Key: IGNITE-15545
> URL: https://issues.apache.org/jira/browse/IGNITE-15545
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Valentin Kulichenko
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha3
>
>
> Need to add an example (or a set of examples) for the SQL functionality added 
> to alpha 3. Since there is no native API for SQL yet, let's use JDBC.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15508) JDBC driver for 3.0: Support JDBC driver loading by ServiceLoader

2021-09-22 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15508:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Support JDBC driver loading by ServiceLoader
> -
>
> Key: IGNITE-15508
> URL: https://issues.apache.org/jira/browse/IGNITE-15508
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc, sql
>Reporter: Vladimir Ermakov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Support JDBC driver loading by ServiceLoader.
> All is needed is to add classname to META_INF/services/java.sql.Driver file.
> It is also necessary to check whether the driver needs to be registered 
> additionally via a static block.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15362) Fix SchemaChange integration tests.

2021-09-21 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15362:
-

Assignee: Vladimir Ermakov  (was: Andrey Mashenkov)

> Fix SchemaChange integration tests.
> ---
>
> Key: IGNITE-15362
> URL: https://issues.apache.org/jira/browse/IGNITE-15362
> Project: Ignite
>  Issue Type: Bug
>Reporter: Andrey Mashenkov
>Assignee: Vladimir Ermakov
>Priority: Blocker
>  Labels: iep-54, ignite-3
> Fix For: 3.0.0-alpha3
>
>
> We have a number of tests muted with the ticket (IGNITE-14581) that is 
> already done:
> SchemaChangeKVViewTest
> SchemaChangeTableViewTest
> LiveSchemaChangeTableTest
> LiveSchemaChangeKVViewTest
> # These tests hang forever and must be fixed.
> # Integration tests names must start from "IT"



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (IGNITE-15314) JDBC driver for 3.0: ClientInboundMessageHandler refactoring.

2021-09-20 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15314?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov resolved IGNITE-15314.
---
Resolution: Invalid

> JDBC driver for 3.0: ClientInboundMessageHandler refactoring.
> -
>
> Key: IGNITE-15314
> URL: https://issues.apache.org/jira/browse/IGNITE-15314
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc, sql
>Reporter: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha3
>
>
> ClientInboundMessageHandler should use Ignite interface sql api appears there.
> Protected constructor should be removed from IgniteImpl as well.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15529) JDBC driver for 3.0: list all supported sql functions

2021-09-16 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15529:
-

 Summary: JDBC driver for 3.0: list all supported sql functions
 Key: IGNITE-15529
 URL: https://issues.apache.org/jira/browse/IGNITE-15529
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov


DatabaseMetadata#getFunctions method should return all sql functions supported 
by Calcite.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15527) Check ANSI92 entry level SQL support.

2021-09-16 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15527:
-

 Summary: Check ANSI92 entry level SQL support.
 Key: IGNITE-15527
 URL: https://issues.apache.org/jira/browse/IGNITE-15527
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Reporter: Vladimir Ermakov


Since we are claiming full support for ANSI92 sql, compatibility tests for at 
least ANSI92 entry level should be added.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15525) JDBC driver for 3.0: Add view filter support

2021-09-16 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15525:
-

 Summary: JDBC driver for 3.0: Add view filter support
 Key: IGNITE-15525
 URL: https://issues.apache.org/jira/browse/IGNITE-15525
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov


Filter by table type must be added after 'view' type will appear.

See JdbcMetadataCatalog.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15508) JDBC driver for 3.0: Support JDBC driver loading by ServiceLoader

2021-09-14 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15508:
-

 Summary: JDBC driver for 3.0: Support JDBC driver loading by 
ServiceLoader
 Key: IGNITE-15508
 URL: https://issues.apache.org/jira/browse/IGNITE-15508
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov


Support JDBC driver loading by ServiceLoader.

All is needed is to add classname to META_INF/services/java.sql.Driver file.

It is also necessary to check whether the driver needs to be registered 
additionally via a static block.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15507) JDBC driver for 3.0: Implements Time API support

2021-09-14 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15507:
-

 Summary: JDBC driver for 3.0: Implements Time API support
 Key: IGNITE-15507
 URL: https://issues.apache.org/jira/browse/IGNITE-15507
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov
 Fix For: 3.0.0-alpha3


Calcite currently works with old java Date API in queries only. After 
integration with new java Time API will be implemented, it is necessary to 
support it in JDBC driver.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14679) Implement schema history serialization.

2021-09-09 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14679:
-

Assignee: Vladimir Ermakov

> Implement schema history serialization.
> ---
>
> Key: IGNITE-14679
> URL: https://issues.apache.org/jira/browse/IGNITE-14679
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: iep-54, ignite-3
> Fix For: 3.0.0-alpha3
>
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> As for now, we store history in distributed metastorage as Serializable 
> objects just for simplicity.
> Let's serialize these objects for better portability and for compaction 
> purpose.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15428) JDBC driver for 3.0: Implements SSL connection

2021-09-02 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15428:
-

 Summary: JDBC driver for 3.0: Implements SSL connection
 Key: IGNITE-15428
 URL: https://issues.apache.org/jira/browse/IGNITE-15428
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov
 Fix For: 3.0.0-alpha3






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15187) JDBC driver for 3.0: Implements ResultSetMetadata

2021-09-01 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15187:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Implements ResultSetMetadata
> -
>
> Key: IGNITE-15187
> URL: https://issues.apache.org/jira/browse/IGNITE-15187
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Taras Ledkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha3
>
>
> Implements ResultSetMetadata.
> Extends 
> [IEP-76|https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0]
>  with new commands.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15188) JDBC driver for 3.0: Implements DatabaseMetadata

2021-08-30 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15188:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Implements DatabaseMetadata
> 
>
> Key: IGNITE-15188
> URL: https://issues.apache.org/jira/browse/IGNITE-15188
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Taras Ledkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: ignite-3
>
> Implements DatabaseMetadata.
> Extends 
> [IEP-76|https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0]
>  with new commands.
> Take a look at the common approach for the metadata / view at the Ignite 2.x:
> {{SystemViewRowAttributeWalker}}, {{SchemaManager}}. Looks like we should use 
> best practice from Ignite 2.x.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-15314) JDBC driver for 3.0: ClientInboundMessageHandler refactoring.

2021-08-16 Thread Vladimir Ermakov (Jira)
Vladimir Ermakov created IGNITE-15314:
-

 Summary: JDBC driver for 3.0: ClientInboundMessageHandler 
refactoring.
 Key: IGNITE-15314
 URL: https://issues.apache.org/jira/browse/IGNITE-15314
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc, sql
Reporter: Vladimir Ermakov
 Fix For: 3.0.0-alpha3


ClientInboundMessageHandler should use Ignite interface sql api appears there.

Protected constructor should be removed from IgniteImpl as well.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15186) JDBC driver for 3.0: Implements Statements

2021-08-05 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15186:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Implements Statements
> --
>
> Key: IGNITE-15186
> URL: https://issues.apache.org/jira/browse/IGNITE-15186
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Taras Ledkov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> Implements Statement, PreparedStatement and ResultSet.
> Extends 
> [IEP-76|https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0]
>  with new commands.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-15185) JDBC driver for 3.0: Implements Driver & Connection

2021-07-29 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-15185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-15185:
-

Assignee: Vladimir Ermakov

> JDBC driver for 3.0: Implements Driver & Connection
> ---
>
> Key: IGNITE-15185
> URL: https://issues.apache.org/jira/browse/IGNITE-15185
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Taras Ledkov
>Assignee: Vladimir Ermakov
>Priority: Major
>
> Implements JDBC driver & Connection according with 
> [IEP-76|https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0].
> See more at Ignite 2.x: 
> - driver implementation: {{IgniteJdbcThinDriver}}
> - connection properties: {{ConnectionPropertiesImpl}}
> Create ticket to documentation JDBC connection string & connection properties 
> (for now it will only be network properties).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-13668) Implement Number(n) and Decimal native types

2021-07-12 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-13668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-13668:
-

Assignee: Vladimir Ermakov

> Implement Number(n) and Decimal native types
> 
>
> Key: IGNITE-13668
> URL: https://issues.apache.org/jira/browse/IGNITE-13668
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexey Goncharuk
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: iep-54, ignite-3
> Fix For: 3.0.0-alpha3
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Let's extend native support for Numeric types.
> * Number( n ) is an {{n}}-bytes two-complement integer signed value encoded 
> in the varlong style 
> (so that Number(4) can be mapped to integer and Number(8) can be mapped to 
> long during (de)serialization). 
> * Larger numbers can be represented as {{BigInteger}}.
> * The Number( n ) is a varlen type, so it will take two additional bytes in 
> the varlen table, so types smaller than Number(4) are better represented by 
> {{byte}} and {{short}} and {{int}} types as their fixlen encoding takes 
> exactly 1, 2, 4 bytes respectively.
> * Decimal is a direct mapping to BigDecimal value.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14861) Live-schema. Detect new row version.

2021-07-06 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14861:
-

Assignee: Vladimir Ermakov

> Live-schema. Detect new row version.
> 
>
> Key: IGNITE-14861
> URL: https://issues.apache.org/jira/browse/IGNITE-14861
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Andrey Mashenkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: iep-54, ignite-3
> Fix For: 3.0.0-alpha3
>
>
> Let's detect schema change and trigger registering a new schema version.
> Valid changes are:
> * adding a new column
> * changing column type to a wider one. (e.g. int -> long)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14636) Calcite engine. Support for LISTAGG (aka GROUP_CONCAT, STRING_AGG) aggregate function

2021-06-28 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14636:
-

Assignee: Vladimir Ermakov

> Calcite engine. Support for LISTAGG (aka GROUP_CONCAT, STRING_AGG) aggregate 
> function
> -
>
> Key: IGNITE-14636
> URL: https://issues.apache.org/jira/browse/IGNITE-14636
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite2-required, calcite3-required
>
> Tests:
> {{aggregate/aggregates/test_aggregate_types.test}}
> {{aggregate/aggregates/test_aggregate_types_scalar.test}}
> {{aggregate/aggregates/test_distinct_string_agg.test_ignore}}
> {{aggregate/aggregates/test_string_agg.test_ignore}}
> {{aggregate/aggregates/test_string_agg_big.test_ignore}}
> {{aggregate/aggregates/test_string_agg_many_groups.test_slow_ignored}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14589) Calcite engine. Numerous problem with type Decimal

2021-06-18 Thread Vladimir Ermakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ermakov reassigned IGNITE-14589:
-

Assignee: Vladimir Ermakov

> Calcite engine. Numerous problem with type Decimal
> --
>
> Key: IGNITE-14589
> URL: https://issues.apache.org/jira/browse/IGNITE-14589
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Vladimir Ermakov
>Priority: Major
>  Labels: calcite2-required, calcite3-required
>
> There are numerous problem with a decimal types:
> * very big numbers printed in scientific notation
> * leading and trailing zeros are truncated when converting to string
> * casting to precise scale is not working( {{select cast('0.01' as 
> decimal(10, 1)) * 10}} returns 0.1 instead of 0)
> Affected tests:
> {{src/test/sql/types/decimal}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14120) select count * returns multiple rows

2021-06-11 Thread Vladimir Ermakov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17361538#comment-17361538
 ] 

Vladimir Ermakov commented on IGNITE-14120:
---

My changes are not related to a possible blocker. As I see in teamcity, RDD 
tests will fail almost universally with exit code 130. The problem is mentioned 
in devlist. 

> select count * returns multiple rows
> 
>
> Key: IGNITE-14120
> URL: https://issues.apache.org/jira/browse/IGNITE-14120
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.8.1
>Reporter: Isaac Zhu
>Assignee: Vladimir Ermakov
>Priority: Major
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> I have a partitioned table which has 1 backup, the *queryParallelism* is set 
> to 4.
> The table primary key is column "ID", 
> If I do this query:
>         select count( * ) from my_table where ID = 1000;
> It will return 4 rows:
>         1
>          0
>          0
>          0
>  
> If I query by other not primary-key columns of this table, the result is 
> good, like:
>         select count( *) from my_table where name = 'abcd'
> result is:
>         0



--
This message was sent by Atlassian Jira
(v8.3.4#803005)