go to post Chris Sprague · Jan 16, 2019 https://community.oracle.com/thread/2245562And related thread also at Oracle.
go to post Chris Sprague · Jan 15, 2019 https://community.oracle.com/thread/2177655Oddly, oracle has a similar bug...
go to post Chris Sprague · Jan 15, 2019 It's been a while and this problem still exists. I reported it to intersystems and we had an email back and forth for a while before it became clear we were going nowhere.If anybody can offer any further insights on the issue please do. It becomes more and more of an inconvenience as time goes on.
go to post Chris Sprague · Jan 29, 2018 Thanks John,I don't think this will get fixed soon enough to be of any use to me, but I've emailed a link to this article to the support address you provided.Thank you for your comment.
go to post Chris Sprague · Jan 25, 2018 I'm holding off on answering this in hopes somebody who can direct me to the correct place to report the bug will stop by.
go to post Chris Sprague · Jan 25, 2018 Ok I think I can confirm this is a bug in Intersystems's query provider for Entity Framework.The order clause is being generated at the same level as the where containing the %VID. Instead, the ORDER BY should be moved inward to a query lower, along with the TOP ALL which it requires. I have an example of the broken and fixed queries below.How can I submit this as a bug fix? I can't find a project page or anything, is it internal, or on GitHub?-- This is the InterSystems query (with identifying values and some excess removed for clarity, but structurally intact):SELECT TOP (10) *FROM ( SELECT TOP ALL * FROM ( SELECT * FROM ( SELECT * FROM --Some view or table or sub query AS "Extent1" WHERE -- redacted client specific fields ) AS "Project1" ) AS "Project1" WHERE %VID > 1 ORDER BY "Project1". -- Some Sortable Field DESC) AS "top" -- This is the correct structure for the query (or something similar, the generator may add extra embedded queries...SELECT TOP (10) *FROM ( SELECT * FROM ( SELECT TOP ALL * FROM ( SELECT * FROM --Some view or table or sub query AS "Extent1" WHERE -- redacted client specific fields ) AS "Project1" ORDER BY "Project1". -- Some Sortable Field ) AS "Project1" WHERE %VID > 1 DESC) AS "top"
go to post Chris Sprague · Jan 23, 2018 Further, regarding Info on %VID, I'm not creating this SQL, it's being created by an Intersystems DLL (for Entity Framework).
go to post Chris Sprague · Jan 23, 2018 HI Alexander, thank you, I'm aware of this. I am achieving page number in code (note shown) such as follows: var page = int.Parse(Request.Query["page"].FirstOrDefault() ?? "1"); // page from query var skip = Math.Max(0, count * (page - 1)); // <-- number of records to skipThis doesn't address the original issue, unfortunately.
go to post Chris Sprague · Jan 23, 2018 Changing this query to work against a mapped SQL class (backed by a legacy global) without any UNION or VIEW still yields the same issue, so I believe this may have to do with the positioning of the filter clauses and the %VID.
go to post Chris Sprague · Oct 2, 2017 I just want to say that these features have been around for a very long time in some languages, one of them developed in Caché's neighborhood (Scheme).
go to post Chris Sprague · Jul 6, 2017 Intersting... I'll have to look into this. Why does the very introduction to XP mention that Caché has to be installed on the client machine in order to use this?
go to post Chris Sprague · Jul 6, 2017 From existing libraries, I think the answer is to script the human-readable telnet connection...https://github.com/agsh/boobst/blob/master/boobst.jsThis guy's written an interesting one in ECMAScript.
go to post Chris Sprague · Jul 6, 2017 I'm having a look at some of the implementations you've linked to. The node.js one looks close to what I would want to do in C#...
go to post Chris Sprague · Jul 6, 2017 Hi Evgeny,I use the EF.NET provider already. This is equivalent to using ODBC (I believe the provider is based upon, and uses, ODBC to connect to Caché.)I think this is the ideal tool for developers to use for Caché at the moment, but I'm interested in exploring a means of querying which won't require SQL and can be written in a style more idiomatic to Caché.
go to post Chris Sprague · Jul 6, 2017 Hi Dmitry,Thank you for your response. .Net Caché eXTreme was interesting... I've read through that page before. The main downside would be having to either implement software on the same server as Caché installation, or having to implement (and maintain, deploy, etc.) middleware and designing my own protocol for remote use.I'll have a look at the C++ binding. Do you happen to know if this uses telnet as if it was entered by a human user, or some other protocol? I'm not concerned with performance at this point, really, but I am hesitant to interact with the existing telnet in a way that simulates human input as that's not particularly what it was designed for.Thanks again for your answer, I'll have a look at the C++ code.
go to post Chris Sprague · Jul 4, 2017 Hi Mike,Declarative programming is not 'pie in the sky' programming, though I can understand how one might be doubtful as the promises are great without much useful proof often given.The 'killer app' for this kind of programming is manipulating collections, once you've used declarative programming in this context, it will become clear what the power really is. Luckily, 8 of the top 10 popular languages support this style of programming (https://www.tiobe.com/tiobe-index/). [Edit, changed to 8. Pretty sure C and ASM don't have anything like this.]I don't want to say this is you, but some people have no room for innovation in their work lives, and will never accept new things. That said, this style of programming is at least 40 years old, and comes from Massachusetts!
go to post Chris Sprague · Jul 4, 2017 (I'm assuming "this style of programming" is originating from Scheme, which is debatable at best...)
go to post Chris Sprague · Jul 4, 2017 I think the magic sword is more like a silver bullet (as in 'no silver bullet') when you know less of the subscripts, specifically the leftmost subscripts.
go to post Chris Sprague · Mar 28, 2017 For this to be interesting to production developers, Caché would need syntax support for anonymous functions with compiler support to generate objects (similar to the example) with fields for each free variable to implement the closure. Map, filter and reduce implementations in the build-in libraries would be nice but could also be implemented by the programmer.Interestingly, I would think this sort of thing would be incredibly useful in Caché because of how prominently arrays are used to represent complex data. Certainly, the first step is to get people interested and asking for it.This post reminded me of something... To paraphrase Anton van Straaten, closures are the poor man's object; objects are the poor man's closure. http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html