[jira] [Created] (IGNITE-14623) Calcite. Sort out test scripts at: sql/aggregate/aggregates/*
Taras Ledkov created IGNITE-14623: - Summary: Calcite. Sort out test scripts at: sql/aggregate/aggregates/* Key: IGNITE-14623 URL: https://issues.apache.org/jira/browse/IGNITE-14623 Project: Ignite Issue Type: Task Reporter: Taras Ledkov Assignee: Taras Ledkov Calcite. Sort out test scripts at: {{sql/aggregate/aggregates/*}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14610) BinaryBuilderReader doesn't supports reference (HANDLE) to collection
Taras Ledkov created IGNITE-14610: - Summary: BinaryBuilderReader doesn't supports reference (HANDLE) to collection Key: IGNITE-14610 URL: https://issues.apache.org/jira/browse/IGNITE-14610 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.10 Environment: Steps to reproduce: 1. Create object with two objects collection fields, e.g. List 2. Assign the reference of the one field to the second. 3. Serialize object to BinaryObject 4. Create BinaryObjectBuiler from the object. 5. Add/change any field except collections. 6. Try to build new BinaryObject form the builer Exception is thrown: {code:java} class org.apache.ignite.binary.BinaryObjectException: Unsupported protocol version: 2 at org.apache.ignite.internal.binary.BinaryUtils.checkProtocolVersion(BinaryUtils.java:795) at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.(BinaryObjectBuilderImpl.java:139) at org.apache.ignite.internal.binary.builder.BinaryBuilderReader.parseValue(BinaryBuilderReader.java:522) at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:286) at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:100) at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:53) at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:293) at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:100) at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:53) at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:293) at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.build(BinaryObjectBuilderImpl.java:188) {code} Root cause: BinaryBuilderReader#parseValue doesn’t support handle to collection. Only handles to object are expected. Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.11 -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14548) BinaryThreadLocalContext must be cleaned when client is closed
Taras Ledkov created IGNITE-14548: - Summary: BinaryThreadLocalContext must be cleaned when client is closed Key: IGNITE-14548 URL: https://issues.apache.org/jira/browse/IGNITE-14548 Project: Ignite Issue Type: Bug Components: binary Affects Versions: 2.10 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.11 ThreadLocal {{BinaryThreadLocalContext#CTX}} must be cleaned when thin client and JDBC thin client are closed. Fail case: [Stack overflow|https://stackoverflow.com/questions/67086723/unable-to-remove-org-apache-ignite-internal-binary-binarythreadlocal-error-in-we?noredirect=1#comment118615654_67086723] Previous discussion: IGNITE-967 -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14546) Calcite engine. MIN/MAX aggregates doesn't support string types
Taras Ledkov created IGNITE-14546: - Summary: Calcite engine. MIN/MAX aggregates doesn't support string types Key: IGNITE-14546 URL: https://issues.apache.org/jira/browse/IGNITE-14546 Project: Ignite Issue Type: Bug Reporter: Taras Ledkov MIN/MAX aggregates doesn't support string types. e.g. {{CREATE TABLE TEST(val VARCHAR) }} {{INSERT INTO TEST VALUES ('A'), ('B'), ('C') }} {{ SELECT MIN(val), MAX(val) FROM TEST}} Test: {{src/test/sql/aggregate/aggregates/test_aggr_string.test}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14545) Calcite engine. Unicode literal not supported
Taras Ledkov created IGNITE-14545: - Summary: Calcite engine. Unicode literal not supported Key: IGNITE-14545 URL: https://issues.apache.org/jira/browse/IGNITE-14545 Project: Ignite Issue Type: Bug Reporter: Taras Ledkov Unicode literal not supported. e.g. {{SELECT }} Tests: {{aggregate/aggregates/test_aggr_string.test}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14544) Calcite engine. Implement DISTING aggregates
Taras Ledkov created IGNITE-14544: - Summary: Calcite engine. Implement DISTING aggregates Key: IGNITE-14544 URL: https://issues.apache.org/jira/browse/IGNITE-14544 Project: Ignite Issue Type: Bug Reporter: Taras Ledkov Now, DISTINCT aggregates not implemented. (e.g. {{SELECT COUNT (DISTINCT lastName) FROM person}}) Tests: {{aggregate/aggregates/test_count.test_ignored}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14543) Calcite engine. COUNT agregate on scalar values fails
Taras Ledkov created IGNITE-14543: - Summary: Calcite engine. COUNT agregate on scalar values fails Key: IGNITE-14543 URL: https://issues.apache.org/jira/browse/IGNITE-14543 Project: Ignite Issue Type: Bug Reporter: Taras Ledkov Failed queries: {{SELECT COUNT(*)}} {{SELECT COUNT(NULL)}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14542) Calcite engine. Need to support TableFunctions / SYSTEM_RANGE dynamic table
Taras Ledkov created IGNITE-14542: - Summary: Calcite engine. Need to support TableFunctions / SYSTEM_RANGE dynamic table Key: IGNITE-14542 URL: https://issues.apache.org/jira/browse/IGNITE-14542 Project: Ignite Issue Type: Bug Components: sql Reporter: Taras Ledkov A lot of cases require dynamic range data source. Tests: {{aggregate/aggregates/test_perfect_ht.test_ignored}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14541) Calcite engine. HAVING fails on scalar
Taras Ledkov created IGNITE-14541: - Summary: Calcite engine. HAVING fails on scalar Key: IGNITE-14541 URL: https://issues.apache.org/jira/browse/IGNITE-14541 Project: Ignite Issue Type: Bug Reporter: Taras Ledkov Query to reproduce: {{SELECT 42 HAVING 42 > 20}} Test: {{aggregate/having/test_scalar_having.test_ignore}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14540) Calcite engine. Support correlated subquery in having
Taras Ledkov created IGNITE-14540: - Summary: Calcite engine. Support correlated subquery in having Key: IGNITE-14540 URL: https://issues.apache.org/jira/browse/IGNITE-14540 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Correlated subquery in having isn't supported now. Test: {{aggregate/having/test_corel_subquery_in_having.test_ignored}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14539) Calcite engine. Support DISTINCT ON expression
Taras Ledkov created IGNITE-14539: - Summary: Calcite engine. Support DISTINCT ON expression Key: IGNITE-14539 URL: https://issues.apache.org/jira/browse/IGNITE-14539 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Now DISTINCT ON expression isn't supported. e.g.: {{SELECT DISTINCT ON (lastName) firstName, lastName FROM Person WHERE ... }} Test: {{aggregate/distinct/test_distinct_on.test_ignored}} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14537) Nested arbitrary queries hangs on optimizing
Taras Ledkov created IGNITE-14537: - Summary: Nested arbitrary queries hangs on optimizing Key: IGNITE-14537 URL: https://issues.apache.org/jira/browse/IGNITE-14537 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov The query with nested arbitrary subqueries aren't planned. Test: {{subquery/test_neumann.test_ignore}} See more: [Unnesting Arbitrary Queries|https://subs.emis.de/LNI/Proceedings/Proceedings241/383.pdf] -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14535) Caclite SQL engine capabilities
Taras Ledkov created IGNITE-14535: - Summary: Caclite SQL engine capabilities Key: IGNITE-14535 URL: https://issues.apache.org/jira/browse/IGNITE-14535 Project: Ignite Issue Type: Improvement Reporter: Taras Ledkov Umbrella ticket to track issues related to SQL logical tests. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14531) Calcite improvements. Support DISTINCT for aggregates call at the execution
Taras Ledkov created IGNITE-14531: - Summary: Calcite improvements. Support DISTINCT for aggregates call at the execution Key: IGNITE-14531 URL: https://issues.apache.org/jira/browse/IGNITE-14531 Project: Ignite Issue Type: Improvement Reporter: Taras Ledkov Now {{Accumulators#accumulatorFactory}} and all implementation of the {{Accumulator}} doesn't support DISTINCT (see {{AggregateCall#isDistinct}}). Must be implemented. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14508) Calcite integration: introduce SQL logical test runner
Taras Ledkov created IGNITE-14508: - Summary: Calcite integration: introduce SQL logical test runner Key: IGNITE-14508 URL: https://issues.apache.org/jira/browse/IGNITE-14508 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov New SQL engine functions must be tested a lot. We have to create suite / toolkit to run test SQL script that describes test statements. expected behavior and results. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14471) JDBCv2: query cursors leak when node to execute queries is specified
Taras Ledkov created IGNITE-14471: - Summary: JDBCv2: query cursors leak when node to execute queries is specified Key: IGNITE-14471 URL: https://issues.apache.org/jira/browse/IGNITE-14471 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Query cursors leak when node to execute queries is specified. In this case the query tasks are executed on the remote node instead of client node launched by the JDBC v2 client. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14461) Track down those who initiated a query
Taras Ledkov created IGNITE-14461: - Summary: Track down those who initiated a query Key: IGNITE-14461 URL: https://issues.apache.org/jira/browse/IGNITE-14461 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.11 We need to know and track who initiated a query. It could be useful for an IT guy to be able to find an application and ask the developers to change the code. It could be as part of {{LOCAL_SQL_RUNNING_QUERIES}} system view or may be better to have separate view which could be joined with running queries view. For first glance it should be : # ip, port, host name, user for thin clients. # for thick client - nodeId, clientId, ip, host name, # task name for compute -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14451) PK becomes corrupted after node restart
Taras Ledkov created IGNITE-14451: - Summary: PK becomes corrupted after node restart Key: IGNITE-14451 URL: https://issues.apache.org/jira/browse/IGNITE-14451 Project: Ignite Issue Type: Bug Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.11 PK index tree becomes corrupted after node restart in case it was created through SQL API and it's fields order differs from the one in field list. For example: CREATE TABLE t (id1 INTEGER, id2 INTEGER, val VARCHAR, CONSTRAINT PK PRIMARY KEY (id2, id1)) - this won't survive restart. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14441) Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy
Taras Ledkov created IGNITE-14441: - Summary: Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy Key: IGNITE-14441 URL: https://issues.apache.org/jira/browse/IGNITE-14441 Project: Ignite Issue Type: Bug Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.11 Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy. Now query parameters may be printed in the query plan. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14274) Calcite integration: refactoring aggregates converter rules: single and map/reduce
Taras Ledkov created IGNITE-14274: - Summary: Calcite integration: refactoring aggregates converter rules: single and map/reduce Key: IGNITE-14274 URL: https://issues.apache.org/jira/browse/IGNITE-14274 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov We have to use converter rules to create single & map+reduce aggregates instead of creates map/reduce aggregates on handle traits at the single aggregates. Now: SortAggregateConverterRule HashAggregateConverterRule Must be: SortSingleAggregateConverterRule SortMapReduceAggregateConverterRule HashSingleAggregateConverterRule HashMapReduceAggregateConverterRule -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14008) SQL tracing: add tag sql.query.id
Taras Ledkov created IGNITE-14008: - Summary: SQL tracing: add tag sql.query.id Key: IGNITE-14008 URL: https://issues.apache.org/jira/browse/IGNITE-14008 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.9.1 Reporter: Taras Ledkov Assignee: Taras Ledkov It's hard to find a trace fro specified query. I think we have to add new tag: {{sql.query.id}} for spans: - {{sql.command.query.execute}} - {{sql.dml.query.execute}} - {{sql.cursor.open}} In this case user can find a query bu nodeId & queryId. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13919) Calcite integration. Single group aggregates
Taras Ledkov created IGNITE-13919: - Summary: Calcite integration. Single group aggregates Key: IGNITE-13919 URL: https://issues.apache.org/jira/browse/IGNITE-13919 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Investigate the optimization for single group aggregates, e.g.: {{SELECT FROM }} Now the hash based aggregates are used for this case. We can obtain a little performance improvement. Also the special cases (e.g.: {{SELECT COUNT() FROM }}) may be optimized to use table/cache size. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13904) Don't use rows buffers by redce index for simple one-way reducer
Taras Ledkov created IGNITE-13904: - Summary: Don't use rows buffers by redce index for simple one-way reducer Key: IGNITE-13904 URL: https://issues.apache.org/jira/browse/IGNITE-13904 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.9 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.10 Now the reducer's index buffer {{AbstractReducer#fetched}} is used even for simple plain query. It is the cause of increased memory usage for plain query. Proposed fix: - don't use index buffer for simple reducer (for plain query). -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13849) Calcite Integration. Add unit tests for all IgniteRel nodes serialization / deserialization
Taras Ledkov created IGNITE-13849: - Summary: Calcite Integration. Add unit tests for all IgniteRel nodes serialization / deserialization Key: IGNITE-13849 URL: https://issues.apache.org/jira/browse/IGNITE-13849 Project: Ignite Issue Type: Bug Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov We have to check serialization for each node (child classes of the IgniteRel). -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13744) Use Table spool for IgniteNestedLoopJoin
Taras Ledkov created IGNITE-13744: - Summary: Use Table spool for IgniteNestedLoopJoin Key: IGNITE-13744 URL: https://issues.apache.org/jira/browse/IGNITE-13744 Project: Ignite Issue Type: Bug Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Now {{NestedLoopJoinNode}} uses internal buffer to save all rows of the right input. We have to do refactoring {{IgniteNestedLoopJoin}} to use rewind of the right input and use TableSpool for not rewindable inputs. This refactoring separates implementation the join logic from materialization of the right input if it is needed. In the future we can use disk offload for TableSpool etc. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13677) Calcite integration. TableSpool
Taras Ledkov created IGNITE-13677: - Summary: Calcite integration. TableSpool Key: IGNITE-13677 URL: https://issues.apache.org/jira/browse/IGNITE-13677 Project: Ignite Issue Type: Bug Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov The first step of the IGNITE-13545: adds TableSpool. We have to add new trait: {{CorretlationTrait}} to check stream correlation. Without check this trait Filter with correlated variables may be places under Exchange. So, {{IgniteCorrelatedNestedLoopJoin}} requires correlated stream from the right input and {{Exchange}} may produce only uncorrelated stream. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13403) Update JDBC metadata to match actual capabilities
Taras Ledkov created IGNITE-13403: - Summary: Update JDBC metadata to match actual capabilities Key: IGNITE-13403 URL: https://issues.apache.org/jira/browse/IGNITE-13403 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8.1 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.10 In our JDBC metadata some capabilities are reported not to be supported, while in fact they are. E.g. I see {code} /** {@inheritDoc} */ @Override public boolean supportsAlterTableWithAddColumn() throws SQLException { return false; } /** {@inheritDoc} */ @Override public boolean supportsAlterTableWithDropColumn() throws SQLException { return false; } {code} while in fact `ALTER TABLE ADD/DROP COLUMN` are supported. Need to go through the list of capabilities and correct them. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13339) Sql query fails with NullPointerException caused by calling CAST in order by clause
Taras Ledkov created IGNITE-13339: - Summary: Sql query fails with NullPointerException caused by calling CAST in order by clause Key: IGNITE-13339 URL: https://issues.apache.org/jira/browse/IGNITE-13339 Project: Ignite Issue Type: Test Components: sql Affects Versions: 2.8.1 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 Sql statements to reproduce: CREATE TABLE Person(ID INTEGER PRIMARY KEY, NAME VARCHAR(100)); INSERT INTO Person(ID, NAME) VALUES (1, 'Ed'), (2, 'Ann'), (3, 'Emma'); select name,id from Person order by CAST(id as long) Result: {code:java} javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: null at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2572) at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2505) at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2463) at org.apache.ignite.internal.visor.query.VisorQueryUtils.lambda$scheduleQueryStart$0(VisorQueryUtils.java:409) at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7157) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:826) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119) 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) Caused by: class org.apache.ignite.IgniteCheckedException: null at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3050) at org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$1(GridQueryProcessor.java:2531) at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2569) ... 9 more Caused by: java.lang.NullPointerException at org.apache.ignite.internal.processors.query.h2.sql.GridSqlFunction.getSQL(GridSqlFunction.java:124) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuery.getSortLimitSQL(GridSqlQuery.java:171) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlSelect.getSQL(GridSqlSelect.java:182) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.splitQuery(GridSqlQuerySplitter.java:371) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.split0(GridSqlQuerySplitter.java:280) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.split(GridSqlQuerySplitter.java:212) at org.apache.ignite.internal.processors.query.h2.QueryParser.parseH2(QueryParser.java:501) at org.apache.ignite.internal.processors.query.h2.QueryParser.parse0(QueryParser.java:173) at org.apache.ignite.internal.processors.query.h2.QueryParser.parse(QueryParser.java:132) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1115) at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2515) at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2511) at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:35) at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3027) ... 11 more {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13243) Add tests for commands to manage metadata
Taras Ledkov created IGNITE-13243: - Summary: Add tests for commands to manage metadata Key: IGNITE-13243 URL: https://issues.apache.org/jira/browse/IGNITE-13243 Project: Ignite Issue Type: Test Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Adds tests for commands to manage metadata (see GG-29247) -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13200) SQL create index on invalid data type
Taras Ledkov created IGNITE-13200: - Summary: SQL create index on invalid data type Key: IGNITE-13200 URL: https://issues.apache.org/jira/browse/IGNITE-13200 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8.1 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 *Reproduce* - Create cache with value class {code} private static class Value { @QuerySqlField int val_int; java.util.Date val_date; } {code} - alter table with command {{ALTER TABLE TEST ADD COLUMN (VAL_DATE DATE)}} - try to create index with command {{CREATE INDEX TEST_VAL_DATE_IDX ON TEST(VAL_DATE)}} {{CorruptedTreeException}} is thrown, the node is stopped. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13198) Calcite integration. Rework error / cancle login on execution
Taras Ledkov created IGNITE-13198: - Summary: Calcite integration. Rework error / cancle login on execution Key: IGNITE-13198 URL: https://issues.apache.org/jira/browse/IGNITE-13198 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Change error & cancel logic on query execution. *Error* - propagated from source to downstream nodes. - Always propagated to the RootNode; - RootNode receive an error and cancel all execution tree. *Cancel* - propagated from downstream to source; - any node may cancel its execution sub-tree; - (technical details) to prevent race on Inbox creation Outbox resend Cancel message to Inbox. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13186) Commands for control.sh to manage properties at the distributed metastore
Taras Ledkov created IGNITE-13186: - Summary: Commands for control.sh to manage properties at the distributed metastore Key: IGNITE-13186 URL: https://issues.apache.org/jira/browse/IGNITE-13186 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.8.1 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 Now we store some properties (e.g. all properties of the {{DistributedSqlConfiguration}}) at the distributed metastore. Now there is not way to change this properties for user. *Proposed fix:* adds command for {{CommandHandler}} to manage properties stored at the distibuted metastore. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13183) Query timeout redesign
Taras Ledkov created IGNITE-13183: - Summary: Query timeout redesign Key: IGNITE-13183 URL: https://issues.apache.org/jira/browse/IGNITE-13183 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.8.1 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 *Motivation:* Now the query timeout is set up for each node separately by the node configuration. This property isn't propagated for the all nodes of cluster. Also user cannot change / disable query timeout without restart all nodes of the cluster. *Proposal fix:* - Adds the default query timeout property to the {{DistributedSqlConfiguration}}. Use distributed metastore to store and manage the property. - Deprecates the {{SqlConfiguration#defaultQueryTimeout}} property and use it to set up initial value of new property {{DistributedSqlConfiguration#defaultQueryTimeout}} - Adds info about explicit query timeout to {{GridH2QueryRequest}} (boolean flag {{explicitTimeout=false}} by default). This is necessary so that the default timeout may be used for queries from old nodes. - When query timeout is set to zero by old node ({{explicitTimeout=false}}) we assume this is the default value and use default timeout for this queries. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13179) Calcite integration. Fix traits at the IgniteLimit
Taras Ledkov created IGNITE-13179: - Summary: Calcite integration. Fix traits at the IgniteLimit Key: IGNITE-13179 URL: https://issues.apache.org/jira/browse/IGNITE-13179 Project: Ignite Issue Type: Improvement Reporter: Taras Ledkov Assignee: Taras Ledkov Current implementation of {{IgniteLimit}} doesn't support distribution trait propagation. Limit must require singleton distribution. Now we cannot reproduce invalid behavior (see IGNITE-12819) and IgniteLimit isn't placed under the Exchange node. Also Limit must be propogated (copied) under Exchange to reduce unnecessary fetches. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13154) Introduce aility to manage manage binary types by the users
Taras Ledkov created IGNITE-13154: - Summary: Introduce aility to manage manage binary types by the users Key: IGNITE-13154 URL: https://issues.apache.org/jira/browse/IGNITE-13154 Project: Ignite Issue Type: Improvement Components: binary Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 We need a way to change schema (including unsupported changes, such as column type change) without cluster restart. This is for the case when all data associated with the binary type has been removed, so removing the old schema is safe. Now users must stop the cluster and remove the folder with binary metadata manually. The proposed way is to introduce internal API to manage binary types and public command line interface (via control.sh). That way one can remove a cache from the cluster, then unregister corresponding binary types, then launch a new version of an application that would register the new schema and reload the data. *The current implementation has restrictions:* - all cluster nodes must support remove type feature. - the cluster must not contains data with type to remove. - operation of the update type must not be launched on the cluster for the type to remove (operation examples: put into cache, BinaryObjectBuilder#build). - client nodes process metadata operation asynchronously so type may be removed at the client after any delay after the remove type operation is completed. - if the node that contains the old version of the type joins to the cluster where type was removed the type is propagated to cluster metadata (because metadata tombstone not supported). - if the node that contains the old version of the type cannot join to the cluster where type was removed and then updated to the new version (because metadata versioned tombstone not supported). So, user scenarios looks like: # Be sure that all server nodes supports remove type feature. # Remove caches contains the data with type to remove. # Stops the client node with older version. # Stops all operation with type to remove (don't create binary objects, don't run compute jobs with type to remove). # Remove the type on the stable topology (and production destination topolog). # Waits any delay (depends on the cluster size and clients count) # Produce operations with new version of the type. *Proposed command line interface* New commands (all commands are _experimental_ ): - {{--meta list}} prints info about all available binary types: {{typeId=, typeName=, fields=, schemas=, isEnum=}} - {{\-\-meta details (\-\- typeId | \-\-typeName )}} prints detailed info info about specified type. The type may be specified by type name or type ID. output example: {code} typeId=0x1FBFBC0C (532659212) typeName=TypeName1 Fields: name=fld3, type=long[], fieldId=0x2FFF95 (3145621) name=fld2, type=double, fieldId=0x2FFF94 (3145620) name=fld1, type=Date, fieldId=0x2FFF93 (3145619) name=fld0, type=int, fieldId=0x2FFF92 (3145618) Schemas: schemaId=0x6C5CC179 (1818018169), fields=[fld0] schemaId=0x70E46431 (1894016049), fields=[fld0, fld1, fld2, fld3] {code} - {{\-\-meta remove (\-\- typeId | \-\-typeName ) [\-\-out ]}} removes metadata for specified type form cluster and saves the removed metadata to the specified file. If the file name isn't specified the output file name is: {{.bin}} The command requires confirmation. *N.B.*: The all session of thin clients (ODBC, JDBC, thin client) are closed (to cleanup local cache of the binary metadata). - {{\-\-meta update \-\-in ]}} update cluster metadata from specified file (file name is required) The command requires confirmation. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13068) SQL: use cache.localSize instead of index scan to calculate row count statistic
Taras Ledkov created IGNITE-13068: - Summary: SQL: use cache.localSize instead of index scan to calculate row count statistic Key: IGNITE-13068 URL: https://issues.apache.org/jira/browse/IGNITE-13068 Project: Ignite Issue Type: Improvement Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 The scan of index is slow on big data set on setup where disc i/o requires warm up. This is the reason that restarting the node can take a long time. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12917) SQL: print warning log message when query's result is big
Taras Ledkov created IGNITE-12917: - Summary: SQL: print warning log message when query's result is big Key: IGNITE-12917 URL: https://issues.apache.org/jira/browse/IGNITE-12917 Project: Ignite Issue Type: Task Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 We have to track queries with big result set. Print warning log message when query's result is bigger than threshold specified by JMX. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12903) Fix ML + SQL examples
Taras Ledkov created IGNITE-12903: - Summary: Fix ML + SQL examples Key: IGNITE-12903 URL: https://issues.apache.org/jira/browse/IGNITE-12903 Project: Ignite Issue Type: Task Components: examples Reporter: Taras Ledkov Assignee: Taras Ledkov The examples {{DecisionTreeClassificationTrainerSQLInferenceExample}} {{DecisionTreeClassificationTrainerSQLTableExample}} are used CSVREAD function to initial load data into cluster. Must be changed because this function is disabled by default -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12887) Node stops on type mismatch error between index type and type of value from searched row
Taras Ledkov created IGNITE-12887: - Summary: Node stops on type mismatch error between index type and type of value from searched row Key: IGNITE-12887 URL: https://issues.apache.org/jira/browse/IGNITE-12887 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.8 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8.1 Steps to reproduce: 1. Create table with value fields types: (INT, OTHER) and create indexes for the fields: {code} CREATE TABLE TEST (ID INT PRIMARY KEY, val_int INT, VAL_OBJ OTHER) CREATE INDEX TEST_VAL_INT ON TEST(VAL_INT) CREATE INDEX TEST_VAL_OBJ ON TEST(VAL_OBJ) {code} 2. Add any data to the table: {code} INSERT INTO TEST VALUES (0, 0, ?) {code} 3. Any of the query below crushes and node stops: SELECT * FROM TEST WHERE VAL_OBJ < CURRENT_TIMESTAMP() SELECT * FROM TEST WHERE VAL_INT < CURRENT_TIMESTAMP() *Root cause*: all runtime exception inside {{Index.find}} is converted to {{CorruptedTreeException}} and stops the node, -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12886) Introduce separate SQL configuration
Taras Ledkov created IGNITE-12886: - Summary: Introduce separate SQL configuration Key: IGNITE-12886 URL: https://issues.apache.org/jira/browse/IGNITE-12886 Project: Ignite Issue Type: Task Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 A lot of SQL-related configuration parameter are placed at the root of the {{IgniteConfiguration}}. It would be better to move them to a separate configuration class, e.g. {{SqlConfiguration}}. Thread on [Ignite developers list|http://apache-ignite-developers.2346864.n4.nabble.com/Introduce-separate-SQL-configuration-td46636.html] -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12870) Fix test JdbcThinTransactionsLeaksMvccTest after connection manager refactoring
Taras Ledkov created IGNITE-12870: - Summary: Fix test JdbcThinTransactionsLeaksMvccTest after connection manager refactoring Key: IGNITE-12870 URL: https://issues.apache.org/jira/browse/IGNITE-12870 Project: Ignite Issue Type: Test Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 The test {{JdbcThinTransactionsLeaksMvccTest#testLeaks}} is broken by the patch IGNITE-12804. The method {{detachedConnectionCount}} must be change to check used connection after connection manager refactoring. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12848) SQL: H2Connection leaks on INSERT
Taras Ledkov created IGNITE-12848: - Summary: SQL: H2Connection leaks on INSERT Key: IGNITE-12848 URL: https://issues.apache.org/jira/browse/IGNITE-12848 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8.1 H2 connection leaks on INSERT query when one row is inserted and not constant values are used: e.g.: {{INSERT INTO T VALUES(1, CURRENT_TIMESTAM());}} *Root cause:* Query cursor isn't closed at the IgniteH2Indexing#executeUpdateNonTransactional after {{DmlUtils#processSelectResult}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12804) SQL: ConnectionManager refactoring
Taras Ledkov created IGNITE-12804: - Summary: SQL: ConnectionManager refactoring Key: IGNITE-12804 URL: https://issues.apache.org/jira/browse/IGNITE-12804 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.8 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 As of now ConnectionManager is a mess, really hard to understand. We should refactor it. AlsoThreadLocal connection is a root cause of complicated behavior of local queries & map queries. I guess we have to use simple connection pool. For better performance several striped by Thread ID connection pools may be used. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12800) SQL: local queries cursors must be closed or full read to unlock the GridH2Table.
Taras Ledkov created IGNITE-12800: - Summary: SQL: local queries cursors must be closed or full read to unlock the GridH2Table. Key: IGNITE-12800 URL: https://issues.apache.org/jira/browse/IGNITE-12800 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 *Root cause:* local queries cursors must be closed or full read to unlock the GridH2Table. *Proposal fix:* - modify {{H2ResultSetIterator}} to use "paged mode": iterator reads N records into internal buffer and unlock the tables (similar to {{MapQueryResult}}; later we have to refactor these classes. They must use one code base to fetch data and lok/unlock tables) - modify the state logic of the {{QueryCursorImpl}} for lazy mode. Now the real query cancellation isn't called when result set is gathered. It is not valid for lazy mode. - add wrapper for iterator at the {{RegisteredQueryCursor}} because the state of query isn't tracked when results are read via Iterator at the client code. - fix tests that doesn't close query cursor for local queries. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12740) Supports feature flags on index meta pages
Taras Ledkov created IGNITE-12740: - Summary: Supports feature flags on index meta pages Key: IGNITE-12740 URL: https://issues.apache.org/jira/browse/IGNITE-12740 Project: Ignite Issue Type: Task Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 Some changes on indexing e.g. inl;ine java objects, unwrap PK columns and several planned features (change inline pojo format, inline DECIMAL fields etc) break backward compatibility. We have to add metadata about index layout and format to index tree meta-page. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12717) SQL: indexing DB object creation refactoring
Taras Ledkov created IGNITE-12717: - Summary: SQL: indexing DB object creation refactoring Key: IGNITE-12717 URL: https://issues.apache.org/jira/browse/IGNITE-12717 Project: Ignite Issue Type: Task Components: sql Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 Do refactoring children of the H2 IndexBase to simplify the H2 upgrade. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12590) MERGE INTO query is failing on Ignite client node
Taras Ledkov created IGNITE-12590: - Summary: MERGE INTO query is failing on Ignite client node Key: IGNITE-12590 URL: https://issues.apache.org/jira/browse/IGNITE-12590 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.9 Precondition: server nodes (any amount), webconsole is running. 1. Create the table as following: CREATE TABLE USERPUBSTATICDATA (BOOK VARCHAR, DESK VARCHAR, TRADERS VARCHAR, REGION VARCHAR, LOB VARCHAR, EXCLUDE VARCHAR, TRANSIT VARCHAR, MAPBOOKTOTHISBOOK VARCHAR, CONSTRAINT USERPUBSTATICDATA_PK PRIMARY KEY (BOOK,DESK)) WITH "template=replicated" 2. Execute merge into query: MERGE INTO USERPUBSTATICDATA(BOOK, DESK, TRADERS, REGION, LOB, EXCLUDE, TRANSIT, MAPBOOKTOTHISBOOK) VALUES('CADOIS', 'FRT TOR', 'Robin Das/Dave Carlson', 'Toronto', 'FRT', null, null, 'CADOIS'); Step 2 is successfull on Web Console and called on IgniteCache from the server node, but fails when called from the Ignite client node with exception: {code} javax.cache.CacheException: Invalid column name in KEYS clause of MERGE - it may include only key and/or affinity columns: BOOK {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12537) Util DbH2ServerStartup failed
Taras Ledkov created IGNITE-12537: - Summary: Util DbH2ServerStartup failed Key: IGNITE-12537 URL: https://issues.apache.org/jira/browse/IGNITE-12537 Project: Ignite Issue Type: Bug Components: examples Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 {{DbH2ServerStartup}} fails with exception: {code:java}Exception in thread "main" class org.apache.ignite.IgniteException: Failed to start database TCP server at org.apache.ignite.examples.util.DbH2ServerStartup.main(DbH2ServerStartup.java:86) Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "mem:ExampleDb" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] at org.h2.message.DbException.getJdbcSQLException(DbException.java:617) at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) at org.h2.message.DbException.get(DbException.java:205) at org.h2.message.DbException.get(DbException.java:181) at org.h2.engine.Engine.openSession(Engine.java:67) at org.h2.engine.Engine.openSession(Engine.java:201) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:178) at org.h2.engine.Engine.createSession(Engine.java:161) at org.h2.server.TcpServerThread.run(TcpServerThread.java:160) at java.lang.Thread.run(Thread.java:748) at org.h2.message.DbException.getJdbcSQLException(DbException.java:617) at org.h2.engine.SessionRemote.done(SessionRemote.java:607) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:143) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:431) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:317) at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:169) at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:148) at org.h2.Driver.connect(Driver.java:69) at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:189) at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352) at org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:384) at org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:234) at org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:199) at org.apache.ignite.examples.util.DbH2ServerStartup.populateDatabase(DbH2ServerStartup.java:56) at org.apache.ignite.examples.util.DbH2ServerStartup.main(DbH2ServerStartup.java:74){code} This issue blocks all store examples -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12536) Inconsistency between cache data and indexes when cache operation is interrupted
Taras Ledkov created IGNITE-12536: - Summary: Inconsistency between cache data and indexes when cache operation is interrupted Key: IGNITE-12536 URL: https://issues.apache.org/jira/browse/IGNITE-12536 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 *Root cause:* Inconsistency between cache and indexes happens when cache operation put/remove is interrupted (e.g. thread is interrupted). The cache operation is finished, GridH2Table#lock(boolean) }} is interrupted because {{Lock#lockInterruptibly is used. *Possible fix:* Use not interruptible lock for cache operation and interruptible lock for SQL operation. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12484) Fix issues related to client cache stop and SQL metadata retrieval
Taras Ledkov created IGNITE-12484: - Summary: Fix issues related to client cache stop and SQL metadata retrieval Key: IGNITE-12484 URL: https://issues.apache.org/jira/browse/IGNITE-12484 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 After IGNITE-6173 the problem is appeared. We need to fix it by properly handling client cache stop. Main idea is that SQL schema metadata (tables, indexes, etc.) should not be removed on client cache.close(). But the implementation should be carefully designed as many factors should be taken into account, e.g. cache destroy, persistence, client reconnect and etc. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-11910) JDBC v2: adds 'schema' to URL parameters, makes 'cache' parameter is optional fpr the most cases
Taras Ledkov created IGNITE-11910: - Summary: JDBC v2: adds 'schema' to URL parameters, makes 'cache' parameter is optional fpr the most cases Key: IGNITE-11910 URL: https://issues.apache.org/jira/browse/IGNITE-11910 Project: Ignite Issue Type: Bug Components: jdbc Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 We have to do changes for the JDBC v2: - makes 'cache' parameter is optional. - add 'schema' parameter to URL. When cache and schema parameters are not defined 'PUBLIC' schema is used. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11755) Memory leak H2 connections at the ConnectionManager#detachedConns
Taras Ledkov created IGNITE-11755: - Summary: Memory leak H2 connections at the ConnectionManager#detachedConns Key: IGNITE-11755 URL: https://issues.apache.org/jira/browse/IGNITE-11755 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 {{ConnectionManager#detachedConns}} leaks on mvcc transnational SELECT. Reproduce: 1. CREATE TABLE with enabled MVCC 2. Do SELECTs. 3. Each query is executed at the new JDBC thin connection. A connection is closed after query. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11754) Memory leak on the GridCacheTxFinishSync#threadMap
Taras Ledkov created IGNITE-11754: - Summary: Memory leak on the GridCacheTxFinishSync#threadMap Key: IGNITE-11754 URL: https://issues.apache.org/jira/browse/IGNITE-11754 Project: Ignite Issue Type: Bug Components: general, mvcc Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 The {{GridCacheTxFinishSync#threadMap}} is not cleared when tx thread is terminated. So, memory leak happens when transactions are executed inside new start/stopped threads. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11726) SQL: don't store default precision and scale in the QueryEntity for CHAR/VARCHAR and DECIMAL types
Taras Ledkov created IGNITE-11726: - Summary: SQL: don't store default precision and scale in the QueryEntity for CHAR/VARCHAR and DECIMAL types Key: IGNITE-11726 URL: https://issues.apache.org/jira/browse/IGNITE-11726 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 If table is created by SQL query, e.g.: {{CREATE TABLE test (id INT, val_dec DECIMAL, val_char VARCHAR)}} and CHAR/VARCHAR and DECIMAL types are used with default precision (size for char/varchar) and scale the default precision and scale mustn't be passed into {{QueryEntity}} for created cache. This is cause of compatibility problems. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11720) Document new SQL system view "COLUMNS"
Taras Ledkov created IGNITE-11720: - Summary: Document new SQL system view "COLUMNS" Key: IGNITE-11720 URL: https://issues.apache.org/jira/browse/IGNITE-11720 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 See the ticket IGNITE-11434 for list of view's columns. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11694) Add documentation for SqlFieldsQuery.updateBatchSize into thin clients docs
Taras Ledkov created IGNITE-11694: - Summary: Add documentation for SqlFieldsQuery.updateBatchSize into thin clients docs Key: IGNITE-11694 URL: https://issues.apache.org/jira/browse/IGNITE-11694 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 The property {{SqlFieldsQuery.updateBatchSize}} is introduced by the patch IGNITE-11499. ODBC, thin JDBC, thin client documentation should be changed. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11693) Add support SqlFieldsQuery.updateBatchSize for ODBC client.
Taras Ledkov created IGNITE-11693: - Summary: Add support SqlFieldsQuery.updateBatchSize for ODBC client. Key: IGNITE-11693 URL: https://issues.apache.org/jira/browse/IGNITE-11693 Project: Ignite Issue Type: Task Components: odbc Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 Add support {{SqlFieldsQuery.updateBatchSize}} for ODBC client. The property {{SqlFieldsQuery.updateBatchSize}} is introduced by the patch IGNITE-11499. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11692) Add support SqlFieldsQuery.updateBatchSize for thin client protocol and java thin client
Taras Ledkov created IGNITE-11692: - Summary: Add support SqlFieldsQuery.updateBatchSize for thin client protocol and java thin client Key: IGNITE-11692 URL: https://issues.apache.org/jira/browse/IGNITE-11692 Project: Ignite Issue Type: Task Components: thin client Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 Add support {{SqlFieldsQuery.updateBatchSize}} for thin client protocol and java thin client. The property {{SqlFieldsQuery.updateBatchSize}} is introduced by the patch IGNITE-11499. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11656) The GridCacheMapEntry#lockEntry cannot be interrupted
Taras Ledkov created IGNITE-11656: - Summary: The GridCacheMapEntry#lockEntry cannot be interrupted Key: IGNITE-11656 URL: https://issues.apache.org/jira/browse/IGNITE-11656 Project: Ignite Issue Type: Improvement Components: cache Affects Versions: 2.7 Reporter: Taras Ledkov Now the method {{GridCacheMapEntry#lockEntry}} use {{ReentrantLock#lock}} to lock the entry. So, when deadlock happens the locked threads cannot be interrupted by {{Thread.interrupt()}}. In this case a test and the grid cannot be stoped without kill the process. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11537) SQL: enchanced log mode for SQL queries
Taras Ledkov created IGNITE-11537: - Summary: SQL: enchanced log mode for SQL queries Key: IGNITE-11537 URL: https://issues.apache.org/jira/browse/IGNITE-11537 Project: Ignite Issue Type: Task Reporter: Taras Ledkov Additional information about run queries are needed: - log each query start execution on H2 engine includes local queries and map parts of distributed query (needs to monitoring node SQL pressure); - EXPLAIN / ANALYZE for long running queries; - ResultSet cardinality for long running queries (e.g. by threshold); Enable / disable enhanced log mode may be managed by JMX, internal SQL command or other way. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11529) SQL: Deprecate SqlQuery for nodejs platform
Taras Ledkov created IGNITE-11529: - Summary: SQL: Deprecate SqlQuery for nodejs platform Key: IGNITE-11529 URL: https://issues.apache.org/jira/browse/IGNITE-11529 Project: Ignite Issue Type: Task Components: platforms Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 This API is very limited comparing to SqlFieldsQuery. Let's deprecate it with proper links to SqlFieldsQuery. This should be not only deprecation on public API, but removal from examples as well. Parent ticket: IGNITE-11334 Ticket for documentation: IGNITE-11370 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11528) SQL: Deprecate SqlQuery for python platform
Taras Ledkov created IGNITE-11528: - Summary: SQL: Deprecate SqlQuery for python platform Key: IGNITE-11528 URL: https://issues.apache.org/jira/browse/IGNITE-11528 Project: Ignite Issue Type: Task Components: platforms Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 This API is very limited comparing to SqlFieldsQuery. Let's deprecate it with proper links to SqlFieldsQuery. This should be not only deprecation on public API, but removal from examples as well. Parent ticket: IGNITE-11334 Ticket for documentation: IGNITE-11370 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11527) SQL: Deprecate SqlQuery for php platform
Taras Ledkov created IGNITE-11527: - Summary: SQL: Deprecate SqlQuery for php platform Key: IGNITE-11527 URL: https://issues.apache.org/jira/browse/IGNITE-11527 Project: Ignite Issue Type: Task Components: platforms Reporter: Taras Ledkov This API is very limited comparing to SqlFieldsQuery. Let's deprecate it with proper links to SqlFieldsQuery. This should be not only deprecation on public API, but removal from examples as well. Parent ticket: IGNITE-11334 Ticket for documentation: IGNITE-11370 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11526) SQL: Deprecate SqlQuery for c++ platform
Taras Ledkov created IGNITE-11526: - Summary: SQL: Deprecate SqlQuery for c++ platform Key: IGNITE-11526 URL: https://issues.apache.org/jira/browse/IGNITE-11526 Project: Ignite Issue Type: Task Components: platforms Reporter: Taras Ledkov Fix For: 2.8 This API is very limited comparing to SqlFieldsQuery. Let's deprecate it with proper links to SqlFieldsQuery. This should be not only deprecation on public API, but removal from examples as well. Parent ticket: IGNITE-11334 Ticket for documentation: IGNITE-11370 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11525) SQL: Deprecate SqlQuery for .NET platform
Taras Ledkov created IGNITE-11525: - Summary: SQL: Deprecate SqlQuery for .NET platform Key: IGNITE-11525 URL: https://issues.apache.org/jira/browse/IGNITE-11525 Project: Ignite Issue Type: Task Components: platforms Reporter: Taras Ledkov This API is very limited comparing to SqlFieldsQuery. Let's deprecate it with proper links to SqlFieldsQuery. This should be not only deprecation on public API, but removal from examples as well. Parent ticket: IGNITE-11334 Ticket for documentation: IGNITE-11370 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11473) SQL: check convert to ENUM type by functions CAST, CONVERT throws sane exception
Taras Ledkov created IGNITE-11473: - Summary: SQL: check convert to ENUM type by functions CAST, CONVERT throws sane exception Key: IGNITE-11473 URL: https://issues.apache.org/jira/browse/IGNITE-11473 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov CAST and CONVERT functions have the bug at the H2. It is fixed at H2 1.4.198. We have to check that the functions throws sane exception after H@ is upgraded. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11472) SQL: throw sane exception for unsupported features
Taras Ledkov created IGNITE-11472: - Summary: SQL: throw sane exception for unsupported features Key: IGNITE-11472 URL: https://issues.apache.org/jira/browse/IGNITE-11472 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov || Feature || Issue || Comments || | WITH RECURSIVE | IGNITE-7664 | can be fixed immediately | | DEFAULT value in the INSERT / MERGE | IGNITE-7664 | can be fixed immediately | | MEMORY, TEMPORARY, HIDDEN table types for CREATE TABLE | IGNITE-7664 | can be fixed immediately | | FIRST column position for ALTER TABLE ADD COLUMN | IGNITE-7664 | can be fixed immediately | | HELP / SHOW commands | IGNITE-7664 | can be fixed immediately | | GRANT / REVOKE commands | IGNITE-7664 | can be fixed immediately | | TIMESTAMP WITH TIME ZONE unsupported type | IGNITE-7664 | can be fixed immediately | | ENUM unsupported type | IGNITE-7664 | partially fixed, CAST and CONVERT function has the bug at the H2 fixed at 1.4.198 | | MERGE USING | IGNITE-11444 | cannot be fixed without patch to H2 | -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11453) SQL: command to wotk with permission must thrown clear exception witn UNSUPPORTED error code
Taras Ledkov created IGNITE-11453: - Summary: SQL: command to wotk with permission must thrown clear exception witn UNSUPPORTED error code Key: IGNITE-11453 URL: https://issues.apache.org/jira/browse/IGNITE-11453 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov The command to work with permissions may produce confused error when Ignite used with specified name is created. These command must be disabled and throw exception witn UNSUPPORTED error code: - GRANT / REVOKE ON TO ; - GRANT / REVOKE TO ; - GRANT ALTER ANY SCHEMA ; -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11450) SQL: HELP and SHOW commands must throw clear exception with UNSUPPORTED error code
Taras Ledkov created IGNITE-11450: - Summary: SQL: HELP and SHOW commands must throw clear exception with UNSUPPORTED error code Key: IGNITE-11450 URL: https://issues.apache.org/jira/browse/IGNITE-11450 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov SQL command SHOW SCHEMAS / TABLES / COLUMNS don't work properly. They must throw exception with UNSUPPORTED error code. SQL command HELP must be disabled and throw exception with UNSUPPORTED error code. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11444) SQL: MERGE USING throws unclear exception
Taras Ledkov created IGNITE-11444: - Summary: SQL: MERGE USING throws unclear exception Key: IGNITE-11444 URL: https://issues.apache.org/jira/browse/IGNITE-11444 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov The unsupported SQL statement MERGE USING throws unclear exception because H2 uses internal _ROWID_ column at MERGE USING implementation. Ignite tables doesn't contain _ROWID_ column. {code} Caused by: org.h2.jdbc.JdbcSQLException: Column count does not match; SQL statement: SELECT _ROWID_ FROM PARENT AS P WHERE (((P.ID = S.ID) AND (1 = 1)) AND (S.ID = P.ID)) [21002-197] at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) at org.h2.message.DbException.get(DbException.java:179) at org.h2.message.DbException.get(DbException.java:155) at org.h2.message.DbException.get(DbException.java:144) at org.h2.command.dml.MergeUsing.prepare(MergeUsing.java:403) at org.h2.command.Parser.prepareCommand(Parser.java:283) at org.h2.engine.Session.prepareLocal(Session.java:611) at org.h2.engine.Session.prepareCommand(Session.java:549) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247) at org.h2.jdbc.JdbcPreparedStatement.(JdbcPreparedStatement.java:76) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:694) at org.apache.ignite.internal.processors.query.h2.ConnectionManager.prepareStatementNoCache(ConnectionManager.java:363) at org.apache.ignite.internal.processors.query.h2.QueryParser.parseH2(QueryParser.java:264) {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11370) Doc: remove SqlQuery documentation
Taras Ledkov created IGNITE-11370: - Summary: Doc: remove SqlQuery documentation Key: IGNITE-11370 URL: https://issues.apache.org/jira/browse/IGNITE-11370 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Artem Budnikov Fix For: 2.8 Please remove [SqlQuery section|https://apacheignite-sql.readme.io/docs/java-sql-api#section-sqlquery} from documentation. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11369) Remove H2 console form documentation
Taras Ledkov created IGNITE-11369: - Summary: Remove H2 console form documentation Key: IGNITE-11369 URL: https://issues.apache.org/jira/browse/IGNITE-11369 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.7 Reporter: Taras Ledkov Fix For: 2.8 Please remove the [H2 console|https://apacheignite-sql.readme.io/docs/performance-and-debugging#using-h2-debug-console] section from documentation. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11193) MVCC TX: the query with specified explicit patririons fails
Taras Ledkov created IGNITE-11193: - Summary: MVCC TX: the query with specified explicit patririons fails Key: IGNITE-11193 URL: https://issues.apache.org/jira/browse/IGNITE-11193 Project: Ignite Issue Type: Bug Components: mvcc, sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 If the explicit partitions specified by {{SqlFieldsQuery#setPartitions}} are placed on the several nodes the query fails at the partition reservation ({{GridDhtTxQueryEnlistFuture.checkPartitions}}) with error: "{{Cannot run update query. Node must own all the necessary partitions.}}" *Root cause*: MVCC DML doesn't map the requests {{GridNearTxQueryEnlistRequest}}. Each node received the messages with all explicit partitions. *Proposal fix*: use the partitions/node mapping similar to SELECT queries. See more: - {{GridH2QueryRequest#partitions}} - {{ReducePartitionsSpecializer#ReducePartitionsSpecializer}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11143) SQL: Warning about long query execution should be printed by timeout (now is printed after query finished)
Taras Ledkov created IGNITE-11143: - Summary: SQL: Warning about long query execution should be printed by timeout (now is printed after query finished) Key: IGNITE-11143 URL: https://issues.apache.org/jira/browse/IGNITE-11143 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 Now the warning about the query execution time is too long is printed when the query is already finished. See {{IgniteH2Indexing#executeSqlQueryWithTimer}}. It looks strange: user has no information about really long query until it ends. In the worst case the info about infinite query is printed never. The warning should be printed by timeout. Additional info about query: lazy mode, distributed joins etc, should be printed with the warning. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11119) Test IgniteCacheQueryH2IndexingLeakTest#testLeaksInIgniteH2IndexingOnTerminatedThread is not stable
Taras Ledkov created IGNITE-9: - Summary: Test IgniteCacheQueryH2IndexingLeakTest#testLeaksInIgniteH2IndexingOnTerminatedThread is not stable Key: IGNITE-9 URL: https://issues.apache.org/jira/browse/IGNITE-9 Project: Ignite Issue Type: Bug Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 The test {{IgniteCacheQueryH2IndexingLeakTest#testLeaksInIgniteH2IndexingOnTerminatedThread}} is not stable. *Root cause:* the await period is too short. Fix: decrease the test's cleanup timeout and increase await interval. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10864) JDK11: fix check jdk version at the ignite.bat
Taras Ledkov created IGNITE-10864: - Summary: JDK11: fix check jdk version at the ignite.bat Key: IGNITE-10864 URL: https://issues.apache.org/jira/browse/IGNITE-10864 Project: Ignite Issue Type: Bug Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 THe JDK version check is invalid at the ignite.bat. *Root cause:* trailing space at the parsed JDK version. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10781) Add supportion findNext for H2TreeIndex to use H2 optimization for DISTINCT
Taras Ledkov created IGNITE-10781: - Summary: Add supportion findNext for H2TreeIndex to use H2 optimization for DISTINCT Key: IGNITE-10781 URL: https://issues.apache.org/jira/browse/IGNITE-10781 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Now {{H2TreeIndex}} doesn't implement the method {{BaseIndex#findNext}}. This method is used by H2 engine in the [optimization of the DISTINCT|https://www.h2database.com/javadoc/org/h2/engine/DbSettings.html#OPTIMIZE_DISTINCT]. To enable this optimization we have to implement the *findNext* method. Also we have provide selectivity info for the distinct column, because the optimization is enabled only when column selectivity < 0,2 (and column selectivity isn't default). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10580) H2 connection and statements are reused invalid for local sql queries
Taras Ledkov created IGNITE-10580: - Summary: H2 connection and statements are reused invalid for local sql queries Key: IGNITE-10580 URL: https://issues.apache.org/jira/browse/IGNITE-10580 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.7 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.8 The threadlocal connection & statement cache is used invalid for local queries. Steps to reproduce: # Open iterator for Query0 # In the same thread open one more iterator for Query1 (SQl statement must be equals to Query0 and doesn't contains query parameters) # Fetch from the first iterator. The exception {{The object is already closed [90007-197]}} will be thrown. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10224) JDBC thin: the statement must be removed from statements list when it is closed
Taras Ledkov created IGNITE-10224: - Summary: JDBC thin: the statement must be removed from statements list when it is closed Key: IGNITE-10224 URL: https://issues.apache.org/jira/browse/IGNITE-10224 Project: Ignite Issue Type: Bug Components: jdbc Affects Versions: 2.6 Reporter: Taras Ledkov {{JdbcThinConnection}} collects opened statements in the {{stmts}} list to close they on disconnect. But statements are not removed from the list on close. It is cause memory leaks. The statements must be removed from the {{JdbcThinConnection#stmts}} list when {{JdbcThinStatement#close}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10132) TC: the thin client suites (PHP, nodejs etc) must contains log of the Ignite node
Taras Ledkov created IGNITE-10132: - Summary: TC: the thin client suites (PHP, nodejs etc) must contains log of the Ignite node Key: IGNITE-10132 URL: https://issues.apache.org/jira/browse/IGNITE-10132 Project: Ignite Issue Type: Task Components: thin client Reporter: Taras Ledkov Assignee: Peter Ivanov It will be great to add the Ignite node's log to a build artifact for thin clients tests suites. It makes troubleshooting easier. If there is another way to publish node's log that is more convenient please use it (I know nothing about it). Test suites: - Thin client: Node.js; - Thin client: PHP; - Thin client: Python. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9933) SQL: lazy mode isn't used on reduce step
Taras Ledkov created IGNITE-9933: Summary: SQL: lazy mode isn't used on reduce step Key: IGNITE-9933 URL: https://issues.apache.org/jira/browse/IGNITE-9933 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov Lazy execution is introduced as default by IGNITE-9171. But queries are executed lazy only in map phase now. So, we have introduce lazy query execution on reduce step when merge table is user to prevent waits for fetch all results on reduce step and excessive allocate memory. It will be applicable for queries sorted by index. Attention: when reduce query is executed in lazy mode the release remote resource and query cancellation must be changed. See: - {{GridReduceQueryExecutor#query}} - {{GridReduceQueryExecutor#releaseRemoteResources}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9814) JDK11: HadoopClassLoader#nativeLibraries fails because has invalid assumption for ClassLoader type
Taras Ledkov created IGNITE-9814: Summary: JDK11: HadoopClassLoader#nativeLibraries fails because has invalid assumption for ClassLoader type Key: IGNITE-9814 URL: https://issues.apache.org/jira/browse/IGNITE-9814 Project: Ignite Issue Type: Bug Components: hadoop Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov Error: {code} [2018-10-08 08:43:40,204][ERROR][main][IgniteKernal%grid_secondary] Exception during start processors, node will be stopped and close connections java.lang.ClassCastException: class java.util.concurrent.ConcurrentHashMap cannot be cast to class java.util.Vector (java.util.concurrent.ConcurrentHashMap and java.util.Vector are in module java.base of loader 'bootstrap') at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.nativeLibraries(HadoopClassLoader.java:270) at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.initializeNativeLibraries0(HadoopClassLoader.java:216) at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.initializeNativeLibraries(HadoopClassLoader.java:172) at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.(HadoopClassLoader.java:141) at org.apache.ignite.internal.processors.hadoop.HadoopHelperImpl.commonClassLoader(HadoopHelperImpl.java:78) at org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker.start(HadoopJobTracker.java:163) at org.apache.ignite.internal.processors.hadoop.HadoopProcessor.start(HadoopProcessor.java:90) at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1692) at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1022) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2033) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1728) at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1156) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:676) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:601) at org.apache.ignite.Ignition.start(Ignition.java:323) at org.apache.ignite.internal.processors.igfs.IgfsAbstractBaseSelfTest.startGridWithIgfs(IgfsAbstractBaseSelfTest.java:394) at org.apache.ignite.internal.processors.hadoop.impl.igfs.Hadoop1DualAbstractTest.startUnderlying(Hadoop1DualAbstractTest.java:118) at org.apache.ignite.internal.processors.hadoop.impl.igfs.Hadoop1DualAbstractTest.createSecondaryFileSystemStack(Hadoop1DualAbstractTest.java:84) at org.apache.ignite.internal.processors.igfs.IgfsAbstractBaseSelfTest.beforeTestsStarted(IgfsAbstractBaseSelfTest.java:272) at org.apache.ignite.testframework.junits.GridAbstractTest.setUp(GridAbstractTest.java:621) at org.apache.ignite.testframework.junits.common.GridCommonAbstractTest.setUp(GridCommonAbstractTest.java:494) at junit.framework.TestCase.runBare(TestCase.java:139) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:255) at junit.framework.TestSuite.run(TestSuite.java:250) at junit.framework.TestSuite.runTest(TestSuite.java:255) {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9813) Unstablle behaviour in org.apache.ignite.internal.processors.query.GridQueryProcessor#processSchemaOperationLocal
Taras Ledkov created IGNITE-9813: Summary: Unstablle behaviour in org.apache.ignite.internal.processors.query.GridQueryProcessor#processSchemaOperationLocal Key: IGNITE-9813 URL: https://issues.apache.org/jira/browse/IGNITE-9813 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.6 Reporter: Taras Ledkov The test {{DynamicColumnsAbstractConcurrentSelfTest#testDropColumnCoordinatorChange}} periodically fails with exception {{SchemaOperationException: cache not found}} because we don't check the node state at the {{GridQueryProcessor#processSchemaOperationLocal}}. The node's stop must be checked here (e.g. by {{GridQueryProcessor#busyLock}}). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9791) Document: SQL query lazy mode is used by default
Taras Ledkov created IGNITE-9791: Summary: Document: SQL query lazy mode is used by default Key: IGNITE-9791 URL: https://issues.apache.org/jira/browse/IGNITE-9791 Project: Ignite Issue Type: Task Components: documentation, sql Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Artem Budnikov Fix For: 2.7 We need to document changes in 'lazy' mode SQL query execution: - since Ignite 2.7 the lazy mode is ON by default and user should use explicit {{lazy=false}} to disable it. - but for JDBC, ODBC drivers and thin clients with version less than 2.7 lazy mode is false by default because the the default value is kept on the client side too. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9781) JDK11: SSL handshake is failed
Taras Ledkov created IGNITE-9781: Summary: JDK11: SSL handshake is failed Key: IGNITE-9781 URL: https://issues.apache.org/jira/browse/IGNITE-9781 Project: Ignite Issue Type: Bug Affects Versions: 2.6 Environment: JDK11 Reporter: Taras Ledkov Fix For: 2.7 The problem is reproduced on JDK11 by the test {{GridNioSslSelfTest.testSimpleMessages}} Error on the Ignite node {code} java.util.NoSuchElementException: No value present at java.base/java.util.Optional.get(Optional.java:148) at java.base/sun.security.ssl.ServerHello$T13ServerHelloProducer.produce(ServerHello.java:551) at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1189) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1125) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:831) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:792) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1065) at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1052) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:999) at org.apache.ignite.internal.util.nio.ssl.GridNioSslHandler.runTasks(GridNioSslHandler.java:624) at org.apache.ignite.internal.util.nio.ssl.GridNioSslHandler.handshake(GridNioSslHandler.java:243) at org.apache.ignite.internal.util.nio.ssl.GridNioSslHandler.messageReceived(GridNioSslHandler.java:321) at org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter.onMessageReceived(GridNioSslFilter.java:330) at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) at org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3547) at org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175) at org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1132) at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2386) at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2153) at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.base/java.lang.Thread.run(Thread.java:834) [2018-10-03 14:35:08,033][ERROR][grid-nio-worker-0-#42%nio-test-grid%][root] Closing NIO session because of unhandled exception. class org.apache.ignite.internal.util.nio.GridNioException: No value present at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2412) at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2153) at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.util.NoSuchElementException: No value present at java.base/java.util.Optional.get(Optional.java:148) at java.base/sun.security.ssl.ServerHello$T13ServerHelloProducer.produce(ServerHello.java:551) at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1189) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1125) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:831) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:792) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) at
[jira] [Created] (IGNITE-9728) JDK11: external class loader problem
Taras Ledkov created IGNITE-9728: Summary: JDK11: external class loader problem Key: IGNITE-9728 URL: https://issues.apache.org/jira/browse/IGNITE-9728 Project: Ignite Issue Type: Task Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov A lot of tests fail with {{ClassNotFoundException}} because external class loader set up incorrect. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9727) JDK9/10/11: ignite run script must be works with JDK9/10/11
Taras Ledkov created IGNITE-9727: Summary: JDK9/10/11: ignite run script must be works with JDK9/10/11 Key: IGNITE-9727 URL: https://issues.apache.org/jira/browse/IGNITE-9727 Project: Ignite Issue Type: Task Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov {{ignite.sh/bat}} and other scripts must be works properly with JDK 9/10/11 versions. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9687) JDK9: JTA tests failed
Taras Ledkov created IGNITE-9687: Summary: JDK9: JTA tests failed Key: IGNITE-9687 URL: https://issues.apache.org/jira/browse/IGNITE-9687 Project: Ignite Issue Type: Task Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov JTA tests fail on JDK9 with error: {{java.lang.NoClassDefFoundError: javax/rmi/PortableRemoteObject}} the option {{--add-modules java.se.ee}} changes the error to: {{java.lang.NoClassDefFoundError: javax/transaction/UserTransaction}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9686) JDK9: pass JVM options to new process when start remote test node
Taras Ledkov created IGNITE-9686: Summary: JDK9: pass JVM options to new process when start remote test node Key: IGNITE-9686 URL: https://issues.apache.org/jira/browse/IGNITE-9686 Project: Ignite Issue Type: Task Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov The JVM options must be passed to new process when remote test node is started. See {{GridAbstractTest#startRemoteGrid}} Affects tests: {code} IgniteHadoopFileSystemClientBasedOpenTest {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9684) JDK9: pass JVM options to created process at HadoopCommandLineTest#createProcessBuilder
Taras Ledkov created IGNITE-9684: Summary: JDK9: pass JVM options to created process at HadoopCommandLineTest#createProcessBuilder Key: IGNITE-9684 URL: https://issues.apache.org/jira/browse/IGNITE-9684 Project: Ignite Issue Type: Task Reporter: Taras Ledkov Assignee: Taras Ledkov To support JDK9 the JVM options must be passed to created process: see {{HadoopCommandLineTest#createProcessBuilder}} Because lauched process fails with IllegalAccessException: class org.apache.ignite.internal.util.GridUnsafe cannot access class jdk.internal.misc.SharedSecrets (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9670) JDK9: supports hadoop Ignite module
Taras Ledkov created IGNITE-9670: Summary: JDK9: supports hadoop Ignite module Key: IGNITE-9670 URL: https://issues.apache.org/jira/browse/IGNITE-9670 Project: Ignite Issue Type: Task Components: hadoop Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.7 # Hadoop processor doens't start with error: {{class org.apache.ignite.IgniteCheckedException: Java version 9 and above is not supported.}} # Hadoop tests aren't run from IDEA because used classloaders chain is changed (related to IGNITE-8146). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9629) JDBCv2: JdbcThinResultSet must support types conversions
Taras Ledkov created IGNITE-9629: Summary: JDBCv2: JdbcThinResultSet must support types conversions Key: IGNITE-9629 URL: https://issues.apache.org/jira/browse/IGNITE-9629 Project: Ignite Issue Type: Bug Components: jdbc Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.7 Now {{JdbcResultSet}} doesn't support data types transformation. e.g.: if the attribute type is SHORT all the methods below must return valid value:: {{getByte, getShort, getInt, getLong, getFloat, getDouble, getBigDecimal, getBoolean, getString, getNString}} See the table B-6 at the JDBC spec (see also [8.9.5 and 8.9.6|http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/mapping.html#996857]). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9616) SQL: Introduce H2 factory for holder of aggregate result
Taras Ledkov created IGNITE-9616: Summary: SQL: Introduce H2 factory for holder of aggregate result Key: IGNITE-9616 URL: https://issues.apache.org/jira/browse/IGNITE-9616 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.6 Reporter: Taras Ledkov H2 collects aggregate results at the simple HashMap (groups set and values set). This causes an OOME error on large groups set and large group size with {{DISTINCT}}. We have to introduce way to use our own implementation of the aggregate result's container. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9546) Document GROUP_CONCAT aggregate function
Taras Ledkov created IGNITE-9546: Summary: Document GROUP_CONCAT aggregate function Key: IGNITE-9546 URL: https://issues.apache.org/jira/browse/IGNITE-9546 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.6 Reporter: Taras Ledkov Fix For: 2.7 We need to document GROUP_CONCAT aggregate function. # Explain users that {{DISTINCT}} and {{ORDER BY}} is supported only for collocated {{GROUP BY}}; # String concatenation expressions are separated by {{||}} (not by comma as described at the [draft|https://dash.readme.io/project/apacheignite-sql/v2.6/docs/group_concat]); e.g.: {{GROUP_CONCAT(valueId || '=' || value SEPARATOR '; ')}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9379) Ignite node hangs after OOM in a thread from thin client thread pool
Taras Ledkov created IGNITE-9379: Summary: Ignite node hangs after OOM in a thread from thin client thread pool Key: IGNITE-9379 URL: https://issues.apache.org/jira/browse/IGNITE-9379 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.7 OOM exception handler isn't set up for thin client thread pool. The issue is described in details at the [dev list|http://apache-ignite-evelopers.2346864.n4.nabble.com/Binary-Client-Protocol-client-hangs-in-case-of-OOM-on-server-td34224.html]. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9171) Use lazy mode with results pre-fetch
Taras Ledkov created IGNITE-9171: Summary: Use lazy mode with results pre-fetch Key: IGNITE-9171 URL: https://issues.apache.org/jira/browse/IGNITE-9171 Project: Ignite Issue Type: Improvement Components: sql Affects Versions: 2.6 Reporter: Taras Ledkov Assignee: Taras Ledkov Current implementation of the {{lazy}} mode always starts separate thread for {{MapQueryLazyWorker}}. It causes excessive overhead for requests that produces small results set. We have to begin execute query at the {{QUERY_POOL}} thread pool and fetch first page of the results. In case results set is bigger than one page {{MapQueryLazyWorker}} is started and link with {{MapNodeResults}} to handle next pages lazy. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-8541) Auth: username case sensitive/insensitive behavior is invalid
Taras Ledkov created IGNITE-8541: Summary: Auth: username case sensitive/insensitive behavior is invalid Key: IGNITE-8541 URL: https://issues.apache.org/jira/browse/IGNITE-8541 Project: Ignite Issue Type: Bug Components: jdbc, odbc, thin client Affects Versions: 2.4 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.6 JDBC thin driver, ODBC driver and Java thin client doesn't support case insensitive behavior for user name when authentication is enabled. The user name property already case insensitive. The username property must be handled as the *scheme* parameter: - quoted user name is case sensitive. - nonquoted user name is not case sensitive. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-8492) JDBC: Add a note about authentication for thin driver to docs
Taras Ledkov created IGNITE-8492: Summary: JDBC: Add a note about authentication for thin driver to docs Key: IGNITE-8492 URL: https://issues.apache.org/jira/browse/IGNITE-8492 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.4 Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.5 The authentication for thin client is not well documented. Add documentation for JDBC thin driver -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-8444) Authentication: add documentation about user management SQL command and authentication feature
Taras Ledkov created IGNITE-8444: Summary: Authentication: add documentation about user management SQL command and authentication feature Key: IGNITE-8444 URL: https://issues.apache.org/jira/browse/IGNITE-8444 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.5 Environment: Adds overview for authentication feature and documentation for SQL commands: - CREATE USER - ALTER USER - DROP USER Reporter: Taras Ledkov Assignee: Taras Ledkov Fix For: 2.5 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-8356) Possible race at the discovery on the start node
Taras Ledkov created IGNITE-8356: Summary: Possible race at the discovery on the start node Key: IGNITE-8356 URL: https://issues.apache.org/jira/browse/IGNITE-8356 Project: Ignite Issue Type: Bug Affects Versions: 2.4 Reporter: Taras Ledkov Fix For: 2.6 The problem was discovered on the IGNITE-8355. But root cause is the race on the start of the node discovery. -- This message was sent by Atlassian JIRA (v7.6.3#76005)