Marked this approach as a preferred for Object access if the property is not Calculated and not Transient.
- Log in to post comments
Marked this approach as a preferred for Object access if the property is not Calculated and not Transient.
SQLCOMPUTECODE is for calculated properties only I believe.
And GetStored effectively bypasses any of these, right?
Do we have two types of getters?
I mean the one which you code a method like Class.PropertyGet()
Thanks, Danny!
good point on slow opening an instance with 100 properties and maybe lot more got swizzled.
Maybe getters could be considered as bad practice in general cause its not called with get stored and not called via SQL
Thanks, Ed! This is nice!
But this will approach will not execute getter method if any, right?
Hi David!
This should be automatic. We'll investigate.
Thanks, Anastasia!
Very helpful!
I believe we also have a series upon the number of accepted answers, like 10,25,50,100 accepted answers. Do we?
Like a feature map between versions? Would be great to have one.
Raising this again.
Suppose I changed how dimension A works.
How do I sure that none of the pivots were broken because of the change?
Yes, I can manually run all the pivots I have. But maybe somebody did a class for that?
Hi Jimmy!
401 means that Authenticated user is not authorized to reach the server.
To prove the fact you could grant the application a %ALL role (the second tab) and this should work then.
Hi Murillo!
Also this article by @Michael Broesdorf could be helpful.
IRIS 2019.2 is available on Docker Hub.
The line for Dockerfile is:
ARG IMAGE=store/intersystems/iris:2019.2.0.107.0-community
Thanks, Jeff!
When the Community version of InterSystems IRIS 2019.2 will be available on Docker Hub too?
You are welcome, Nikita! This was pretty random but must admit that WebTerminal is a really popular app. And looking forward to seeing the commit to make the repo considered as InterSystems ObjectScript application ;)
Perfect!
Thank you, Vitaly!
So, this is fixed. Thanks, Lexi!
I'd go with one namespace for one project approach. It's much more manageable in the long term.
Take a look at this video where I show the example of starting new ObjectScript project with Github, VSCode, and Docker, and which has an installer for a new namespace.
Notepad++ is an editor on steroids. So is VSCode, sort of. Why are you surprised?
Bravo, Ed! This deserves a standalone post
Good point, John!
Could be a good feature request. But do you want to add an extra option for “Results are hidden until you vote?”
And I think results are visible for everyone when the voting period is over, right?
For those who requested direct communication on DC -Developers Group is just for that: join, connect, and chat directly. It doesn't satisfy the request on direct messaging on DC, but it is something which could help.
What do you mean by "broken"? If this works for you?
Stores data on disk? Meaning, that if we create these persistent classes, the data is stored twice? Once in the global node and in some other format as defined (or not defined by the class)?
ANY data in Caché and IRIS is stored in global and it's not stored twice, everytime in a global, which is in the storage strategy of the persistent class.
Any SQL table in Caché and IRIS has the related persistent class in the metadata.
But just to reiterate, how does the DDL interpret a read definition into a write definition? The data stored in the global node and the definition do line up exactly (in our case, almost not at all).
Could you elaborate, please?
Just in case: you can deal with Caché and IRIS as with any relational DB: use DDL, SQL via ODBC/JDBC.
And yes, every time you call
CREATE TABLE A
the new persistent class A is being created on the backend to store data in ^AD global.
It's all about multi-model nature of IRIS and Caché.
Everything in Caché and InterSystems IRIS is being stored in globals - key-value sparse stored arrays.
Every persistent class (a class which stores data on disk) has the map of how the data should be stored in a particular global (globals).
ObjectScript Class definition provides the API of how the data will be stored and read from a global (globals) via Object Script or SQL access.
You can specify standard or custom storage strategy for a class.
The persistent 'SomeClass' class with standard storage strategy will provide the API to store data in ^SomeClassD data for data itself and ^SomeClassI global for indexes.
You can see the storage strategy of a class in the source code of a persistent class immediately after successful compilation - it will be visible in a related XML block at the bottom of the class.
In your case you have a custom storage strategy which could be everything. Check @Brendan Bannon's series on that which could be really helpful for you.
As @Eduard Lebedyuk mentioned, if you delete the class as source code (e.g. via Management Portal) it will not delete the data itself.
But! As @Robert Cemper mentioned if you delete it via SQL API with DROP statement it will delete data in a global too (because we suppose the data to be deleted if we DROP a table, right?).
HTH
Dmitry!
Thanks for your great work! And take my first donut of 1,000 rubles! :) Looking for new features ;)

Hi Rayana!
You are invited!
Hi Jaqueline!
This type of linkage should work. How does it look in DSW?
You can find the latest version on Open Exchange.
Submit an issue if something doesn't work for you.
Nice!
Just tried this with docker container on my local machine.
And got 1 million insertions(1,000,000) in 1,45 sec on my mac pro. Cool!
