[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16026093#comment-16026093 ] Pavel Tupitsyn commented on IGNITE-4904: Merged to master ({{d38ca8b1004effefa5126981f434649d26db1e68}}). Ticket for {{UpdateAll}}: IGNITE-5298 > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ, important > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16026086#comment-16026086 ] ASF GitHub Bot commented on IGNITE-4904: Github user asfgit closed the pull request at: https://github.com/apache/ignite/pull/2009 > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ, important > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16026078#comment-16026078 ] Vladimir Ozerov commented on IGNITE-4904: - [~ptupitsyn], agree. > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ, important > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16025987#comment-16025987 ] Pavel Tupitsyn commented on IGNITE-4904: {{RemoveAll}} done, TC looks good. [~vozerov] please have a look. I think we should release {{RemoveAll}} now and implement {{UpdateAll}} later (it is a lot more complicated), do you agree? > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16024897#comment-16024897 ] ASF GitHub Bot commented on IGNITE-4904: GitHub user ptupitsyn opened a pull request: https://github.com/apache/ignite/pull/2009 IGNITE-4904 .NET: DML Delete via LINQ You can merge this pull request into a Git repository by running: $ git pull https://github.com/ptupitsyn/ignite ignite-4904 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/2009.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 #2009 commit 1c1ec13e28f91bd345f5262291e9c19d74fcdb3c Author: Pavel TupitsynDate: 2017-05-22T15:26:17Z IGNITE-4904 .NET: DML via LINQ commit 9fab0e7b7945102e94012c352fbf6f7b21195793 Author: Pavel Tupitsyn Date: 2017-05-22T15:39:26Z API and test added for DeleteAll commit e044a9ea028b1299f33f5b47da9f1b3929e4c9dc Author: Pavel Tupitsyn Date: 2017-05-22T15:41:40Z wip commit 00f6a6b9eaede6222db2cbd373a72af96be91460 Author: Pavel Tupitsyn Date: 2017-05-22T15:57:04Z wip commit 5af55be2fa778e88f9a725c361b06a673312324d Author: Pavel Tupitsyn Date: 2017-05-22T16:20:02Z wip adding ReLinq extensions commit 73e29df8db06b42dfdc76e7378f0ff28eae64a33 Author: Pavel Tupitsyn Date: 2017-05-22T16:26:48Z register new node in ReLinq commit 9fd511e26fc03253cf7f7ae9e0786d44f3cafdf6 Author: Pavel Tupitsyn Date: 2017-05-22T16:39:39Z wip commit 896bf6e58663412bcce77f00f3d02aeb6b14a6ee Author: Pavel Tupitsyn Date: 2017-05-22T16:49:35Z wip fix extension commit 042a4e48a482327ca86929c43526d657811acf00 Author: Pavel Tupitsyn Date: 2017-05-22T16:50:27Z wip commit 218a1decb79c364ca90c5b7289dffb5dde85e1ca Author: Pavel Tupitsyn Date: 2017-05-22T16:54:40Z Overload with predicate commit 70c4e4c761b921b8b30ec4d0fe7d07be115daba9 Author: Pavel Tupitsyn Date: 2017-05-22T17:30:22Z Add DeleteAll operator support to the engine commit 3e897fe0684f47395affdcf084048f14d5abee27 Author: Pavel Tupitsyn Date: 2017-05-22T17:31:37Z wip commit 5f1c4046214aac0e7cdeee8404c1e0e86e892919 Author: Pavel Tupitsyn Date: 2017-05-22T17:33:51Z Simple test works! commit c76157c714b0fa6ec6824601c2053abb32f37799 Author: Pavel Tupitsyn Date: 2017-05-22T17:36:11Z wip todos commit ce5cd5fbc02a807410a456d4db0349cf60fe00ee Author: Pavel Tupitsyn Date: 2017-05-23T12:36:57Z Rename DeleteAll to RemoveAll commit 496a832d46989c651da5f4b1db8fa06322753549 Author: Pavel Tupitsyn Date: 2017-05-23T13:02:56Z wip commit bcbd923fed2b1fd4ed6f1ec3710064d8724d7151 Author: Pavel Tupitsyn Date: 2017-05-23T13:04:05Z wip RemoveAll with predicate commit 69e49af97e7b5c2512228032f5e3c47706a6b667 Author: Pavel Tupitsyn Date: 2017-05-24T16:51:44Z Merge branch 'master' into ignite-4904 commit c75d867293293be1fe275512cc6f82c27b951ae6 Author: Pavel Tupitsyn Date: 2017-05-24T16:57:30Z tests with predicate commit b070cc3c0d96568f9d6dfde55526fffc85464212 Author: Pavel Tupitsyn Date: 2017-05-24T17:04:49Z add test with join commit 64c7bc71e3aee9efabd309798cc90810e4ea471e Author: Pavel Tupitsyn Date: 2017-05-24T17:08:23Z wip todos commit 4bbcfde8bad41d4982ecdeebbb26b6191051ab5d Author: Pavel Tupitsyn Date: 2017-05-25T12:37:31Z Merge branch 'master' into ignite-4904 commit ec8c0c908b79f88010f01ae3d0e4812685f118fe Author: Pavel Tupitsyn Date: 2017-05-25T14:22:36Z wip commit 765ba572bc0fa5445bcac02599146ac2433497c9 Author: Pavel Tupitsyn Date: 2017-05-25T14:25:52Z wip tests commit f49b057f12586b8d27195573dd2453b1c1272ce6 Author: Pavel Tupitsyn Date: 2017-05-25T14:35:28Z wip commit 42fa73cb648a6c92381a02f2c8764ef12240e76c Author: Pavel Tupitsyn Date: 2017-05-25T14:46:11Z wip tests commit 8d583a76694804ca0a239b1ac516ed7a5abac272 Author: Pavel Tupitsyn Date: 2017-05-25T14:48:56Z Tests done commit 4c35a5c8c107bd7f42eb05647e36fc30370a7305 Author: Pavel Tupitsyn Date: 2017-05-25T14:52:31Z Tests done commit 218c38843a738162e9cd60a5ccd358ea72b4d7ad Author: Pavel Tupitsyn
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16023242#comment-16023242 ] Pavel Tupitsyn commented on IGNITE-4904: Two {{RemoveAll}} methods added, with predicate and without. Simple tests work. Need to decide what to do when query contains joins. > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16021143#comment-16021143 ] Pavel Tupitsyn commented on IGNITE-4904: {{RemoveAll}} is a better name (since we have {{ICache.RemoveAll}} and there is {{List.RemoveAll}}), > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (IGNITE-4904) .NET: DML via LINQ
[ https://issues.apache.org/jira/browse/IGNITE-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16019722#comment-16019722 ] Pavel Tupitsyn commented on IGNITE-4904: {{CompiledQuery}} won't support this directly, since {{DeleteAll}} returns {{int}}, but we can invent something like {{CompileDelete}} as a separate task. > .NET: DML via LINQ > -- > > Key: IGNITE-4904 > URL: https://issues.apache.org/jira/browse/IGNITE-4904 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 1.9 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn > Labels: .NET, LINQ > Fix For: 2.1 > > > Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. > Insert can already be done on object level with {{ICache.PutAll}}. > 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method > like this: > {code} > public static int DeleteAll(this ICache cache, > IQueryable > items); > {code} > 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression > trees, and multi-line methods are not supported. We should come up with a way > to provide a list of columns and values, something like > {code} > public static int UpdateAll (this ICache cache, > IQueryable > items, params UpdateAction[] actions); > {code} > where UpdateAction can consist of a MemberExpression and a value for that > member. > We should probably do delete as a separate task first. -- This message was sent by Atlassian JIRA (v6.3.15#6346)