go to post Benjamin De Boe · Mar 11, 2020 FWIW, you can just put as many conditions as you want in the same SQL query. InterSystems IRIS includes an excellent SQL optimizer that will consider all the conditions (and other clauses) in your query and decide on the most efficient path to access the data.
go to post Benjamin De Boe · Mar 9, 2020 Indeed, that's the recommended SQL way of achieving what Eduard described about PPGs. Drawbacks are that queries on these tables cannot be parallelized (as that implies multiple processes, of course). Our TSQL support is meant for Sybase customers wishing to redeploy their TSQL applications on IRIS (especially now that SAP/Sybase is terminating support for those platforms). Just temporary table support by itself wouldn't be a reason to start building TSQL applications and abandon IRIS SQL/ObjectScript, of course :-). However, for a recent TSQL migration we did some work on our TSQL temp table support and were considering to roll that out to regular IRIS SQL, so this thread is a good place to share your experiences and requirements so we can make sure to do that properly, as needed.
go to post Benjamin De Boe · Feb 20, 2020 Hi Darko, LONGVARCHAR is actually storing the text as a stream, so to make LIKE work, you'll need to convert it to a string, e.g. using SUBSTRING(), in the expression you're serving to the LIKE operator. The following works fine for me: SELECT SUBSTRING(text, 1, 999999) FROM table WHERE SUBSTRING(text, 1, 9999999) LIKE '%abc%' This looks a little clumsy, but streams are really meant for huge data that wouldn't fit in a VARCHAR. Note that you can get a massive amount of text in VARCHAR (%String) columns these days, so maybe that's worth considering. Separately, when working with iFind, that'll provide faster search results and it also transparently takes care of the stream aspect.
go to post Benjamin De Boe · Feb 6, 2020 I didn't mind being lured into reading this excellent article, but the concept of "DataOps" is entirely different from what's being discussed here :-) You could also add the failed Ariana V 501 launch as an example of a case where conversion between units / data types caused somewhat costly trouble
go to post Benjamin De Boe · Feb 2, 2020 Hi Conor, We added a "cancel" button to the SMP in IRIS 2019.3 and are looking at an equally convenient mechanism from the shell.
go to post Benjamin De Boe · Jan 9, 2020 Also, which versions are you using (on the server and client sides)?
go to post Benjamin De Boe · Jan 2, 2020 That's what POSIXTIME does for you under the hood, so no need to require all your queries to be aware of this frugal innovation ;-)
go to post Benjamin De Boe · Jan 2, 2020 In addition to the suggestions made earlier (to provide more context such as full query & plan), you may also want to consider POSIXTIME as the data type for your date / time columns. It encodes dates as a simple 64-bit integer, which makes for efficient storage, indices and queries.
go to post Benjamin De Boe · Jan 2, 2020 Could you share the rest of the error message (hidden behind the alert) and more specifics on the ODBC connection type? And is there anything special about these tables or do you get this for each and every table?
go to post Benjamin De Boe · Nov 29, 2019 No, we indeed don't support that syntax feature. Like Evgeny said, this recursion is something we'd typically try to wrap inside ObjectScript methods, which you could then expose as a stored procedure.
go to post Benjamin De Boe · Nov 29, 2019 Besides the elaborate earlier answers about the actual interfaces under (or at) the hood, maybe a simple question to ask is which version you're on. If I'm not mistaking, that SELECT option was only added some 5 years ago and because the word "legacy" shows up on this page, I thought it's worth checking too ;-)
go to post Benjamin De Boe · Oct 28, 2019 We're working on support for OVER syntax (as part of SQL window functions) for a future release of IRIS. Feel free to reach out to me directly with more details on the specific requirements you have to see if they correspond to the feature set currently in the pipeline.
go to post Benjamin De Boe · Oct 25, 2019 @Anastasia Dyubaylo: Do we have a Playwright badge on Global Masters? :-)
go to post Benjamin De Boe · Oct 3, 2019 If you know which non-NoExtent (for lack of a YesExtent keyword :-) ) subclass of A you're targeting in B's subclass, you can override your property definition pointing to that subclass.
go to post Benjamin De Boe · Sep 13, 2019 The Jupyter support is very exciting, adding a neat and highly appropriate mechanism for exposing IRIS-side concepts to a typical Python environment (Jupyter). This release is introducing a first taste of such an interaction, but we're very interested in learning from your experiences and ideas on making this even more effective at adding process control to your Python work.
go to post Benjamin De Boe · Sep 9, 2019 how about CASE :path WHEN '' THEN 1 ELSE $LENGTH(:path,'.')+1 END
go to post Benjamin De Boe · Sep 6, 2019 InterSystems IRIS (and Caché before that) will indeed make this decision for you. The SQL optimizer will analyze all the conditions in your query and select the best query plan based on the available table statistics, which includes column selectivity. See also this article on collecting those stats with the TuneTable command.As a matter of fact, our development team is making some exciting enhancements to the cost functions used to turn those table statistics into the actual cost estimates for the possible query plans. More about that at our upcoming Global Summit!
go to post Benjamin De Boe · Aug 28, 2019 Thanks for sharing Dave, great article!As this is an area we'd like to develop further on the product end, we're very eager to hear customers' experiences and feedback on this.
go to post Benjamin De Boe · Jul 18, 2019 IRIS NLP, previously known as iKnow, is an embedded technology, meaning it's there in the form of APIs. These articles on building a domain and using the knowledge portal should be a helpful start, as is this series of step-by-step videos (which are a little older I'll admit; start with the "fundamentals" one) and of course other articles on the developer community tagged for iKnow.
go to post Benjamin De Boe · Jun 17, 2019 Hi Guillaume,iFind indices, like bitmap indices before, require a bitmap-friendly ID key (positive integer). When you make a table the child in a parent-child relationship, the underlying storage structure will use a composite key that therefore no longer satisfies the bitmap friendliness. We do plan to lift this limitation in a future release, as it's already the case for bitmap indices, but for now you'll have to review your schema and see if a one-to-many or (preferred) foreign key would work for you.Thanks,benjamin