[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-14 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-4636:


Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/2118


> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-14 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn commented on IGNITE-4636:


Looks good, merged to master: {{b6ad6c055a1870945222b4b6a49ca7b670a829fe}}.
Gread job, [~GuruStron]!

> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-13 Thread Sergey Stronchinskiy (JIRA)

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

Sergey Stronchinskiy commented on IGNITE-4636:
--

[~ptupitsyn],

Please take a look, I've committed few style fixes and launched build jobs 
again.

Current implementation supports joining with collections of "simple" types 
(which can be directly mapped to SQL types). The {{Join}} clause with local 
collections can be used in compiled query when the collection is constant (not 
passed as a parameter). When IGNITE-5404 will be fixed, local join should 
support collections passed as parameter to compiled query(with one limitation 
compared to other cases - subqueries will not be supported). Also local joins 
support left outer join via {{DefaultIfEmpty}} operator.

> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-13 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-4636:


GitHub user gurustron opened a pull request:

https://github.com/apache/ignite/pull/2118

IGNITE-4636 .NET Support local collection joins in LINQ



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gurustron/ignite IGNITE-4636

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/2118.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #2118


commit 05c2562f1b00a53702df000f59b31075d8566736
Author: gurustron 
Date:   2017-05-29T17:27:40Z

Start implementaion of join with local collections + test

commit 47f7c8dae26b8d74b1804da827c08b38cf36befc
Author: gurustron 
Date:   2017-05-30T15:58:02Z

merge from master

commit acfcc3e1a544b07c799d2402c72259f176b8d6d0
Author: gurustron 
Date:   2017-05-30T16:43:56Z

fix tabulation

commit a737f075fc24cfcd4656f1dcb5aa22f72e32c9c1
Author: gurustron 
Date:   2017-05-31T19:03:21Z

Started compiled query

commit 4823d81fda553a2915bf012bffc2daf0f94e5afe
Author: gurustron 
Date:   2017-06-01T14:58:13Z

tests: - compiled query with local collection as parameter
- outer join

commit d41d10decbb492b3dba9ca81b3b4e6fcc7f9e113
Author: gurustron 
Date:   2017-06-02T10:33:07Z

trying to implement

commit 133f146473f022dabb8830303981abab60007a6c
Author: gurustron 
Date:   2017-06-07T17:56:09Z

- implement outer join for local collections
- ignore compiled query join with local collection as parameter

commit a114d6fa0fedaaf54ad70623c150dadae3643870
Author: gurustron 
Date:   2017-06-07T17:56:19Z

SqlTypes Handling

commit c204b5ac8defb00935b710a0d01e4340565ad252
Author: gurustron 
Date:   2017-06-07T18:09:42Z

Revert "SqlTypes Handling"

This reverts commit a114d6fa0fedaaf54ad70623c150dadae3643870.

commit e9db4168122363475eb207bb0b7d15309f062859
Author: gurustron 
Date:   2017-06-10T22:34:51Z

CleanUp

commit 44b15cc0f3c2e314700fcb94821c89af88c40e9e
Author: gurustron 
Date:   2017-06-10T22:35:09Z

---

commit e5210d4d37dce6fc861d99606fe62f0c393286cb
Author: gurustron 
Date:   2017-06-10T22:39:29Z

tests

commit 8b0e81e47164b27ddb5f93fa4ec72e47f32e0965
Author: gurustron 
Date:   2017-06-10T22:53:16Z

Get CacheQueriable only for join clauses in VisitQuerySourceReference

commit 09372bd11245f3b479b92fe05ad1fd618042bf55
Author: gurustron 
Date:   2017-06-11T11:12:52Z

merge from IGNITE-4636

commit ab2e621e58d969e318bffeed324f643e4445bce9
Author: gurustron 
Date:   2017-06-11T11:13:02Z

fix after merge

commit dce2f782eab824914b7ce6ceeaa50d45a9d9257e
Author: gurustron 
Date:   2017-06-11T21:10:25Z

Implement JoinInnerSequenceParameterTransformingExpressionVisitor

commit 259af16676eeea0b81a8a46519ddc7479f25deb4
Author: gurustron 
Date:   2017-06-11T22:21:21Z

comments

commit f267e075b39b66a43d2fbd9282ebd97e3ab0c0fb
Author: gurustron 
Date:   2017-06-11T22:23:52Z

---

commit b8c2f4b618285fb5e3e3e7eea61f692eaac18690
Author: gurustron 
Date:   2017-06-11T22:26:53Z

comments

commit a6dfe634950d11e9e993ac7d78722e7db7835ea3
Author: gurustron 
Date:   2017-06-12T18:50:42Z

DefaultIfEmpty handling for compiled parameter local collection in join

commit f58224e940c0b202ee4ebfc73ad1ffcfaa3b92f8
Author: gurustron 
Date:   2017-06-12T18:56:18Z

clean up compiled query

commit 3edea2f62ff52306db3186db6673531a59a21a1c
Author: gurustron 
Date:   2017-06-12T19:00:09Z

fix method name




> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> 

[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-05 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn commented on IGNITE-4636:


I've filed the ticket: IGNITE-5404

If there is no easy way to convert user arrays to {{object[]}} for such 
queries, we should do the following:
1) Leave the implementation as is (local join in compiled query does not work)
2) Add a separate test for this, mark with {{[Ignore("IGNITE-5404")]}}

> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-02 Thread Sergey Stronchinskiy (JIRA)

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

Sergey Stronchinskiy commented on IGNITE-4636:
--

[~ptupitsyn],

Yes, it is one of the problems in implementation of join with local collections 
in compiled queries with collection passed as a parameter.

> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-02 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn commented on IGNITE-4636:


[~GuruStron] looks like a bug on Java side to me. I'll investigate and file it. 
Does it affect this task?

> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4636) .NET: Support local collection joins in LINQ

2017-06-02 Thread Sergey Stronchinskiy (JIRA)

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

Sergey Stronchinskiy commented on IGNITE-4636:
--

[~ptupitsyn],

While working on this feature found that {{SqlFieldsQuery}} fails if it is 
passed collection of {{int}}'s instead of {{objects}}:

{code}
employeeCache.QueryFields(new SqlFieldsQuery("select p.name, p.salary from 
Employee p join table(id bigint = ?) i on p.organizationid = i.id"
, new object[] { new [] { 1, 3 } }));
{code}

> .NET: Support local collection joins in LINQ
> 
>
> Key: IGNITE-4636
> URL: https://issues.apache.org/jira/browse/IGNITE-4636
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Assignee: Sergey Stronchinskiy
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> LINQ {{IN}} clause is implemented in IGNITE-4425 and maps from 
> {{ICollection.Contains}}.
> However, {{IN}} has some limitations in Ignite, and better alternative is 
> temporary table join:
> https://apacheignite.readme.io/docs/sql-performance-and-debugging#sql-performance-and-usability-considerations
> Example SQL:
> {code}
> new SqlFieldsQuery("select p.name from Person p join table(id bigint = ?) i 
> on p.OrgId = i.id", new object[] { new object[] {1,3}})
> {code}
> Add support in LINQ like this:
> {code}persons.AsCacheQueryable().Join(new[] {1, 3}, p => p.Value.OrgId, x => 
> x, (p, x) => p);{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)