go to post Dmitry Maslennikov · Nov 14, 2022 Implemented it this way, as a workaround. But not sure in it. def visit_delete(self, delete_stmt, **kw): if not delete_stmt._where_criteria and delete_stmt.table.foreign_keys: table = delete_stmt.table nocheck = False for fk in table.foreign_keys: nocheck = not fk.ondelete and fk.parent.table == table if not nocheck: break if nocheck is True: delete_stmt = delete_stmt.prefix_with('%NOCHECK', dialect='iris') text = super().visit_delete(delete_stmt, **kw) return text
go to post Dmitry Maslennikov · Nov 14, 2022 And looks like, I have no way to check if I could add %NOCHECK for a particular DELETE query. It may cause integrity issues, in case if it uses another table, not the same one.
go to post Dmitry Maslennikov · Nov 14, 2022 Yes, it will work, but it will just ignore the checks and will be an issue if I have where If I add %NOCHECK, it will delete these items, while it should fail DELETE %NOCHECK FROM nodes where name in ('n11', 'n12', 'n13');
go to post Dmitry Maslennikov · Nov 11, 2022 Nope, it's it will require changes in the language itself. And I'm sure there is no reasons for it.
go to post Dmitry Maslennikov · Nov 8, 2022 Well, looks like the result of getGeneratedKeys() exactly the same as LAST_IDENTITY()
go to post Dmitry Maslennikov · Nov 8, 2022 Great news about RETURNING, yeah, that will help a lot, especially for external adapters. And thanks for the tip with getGeneratedKeys
go to post Dmitry Maslennikov · Nov 8, 2022 "scheme": "https", Are you sure, that you need https, not plain http? Seems like, it's the issue
go to post Dmitry Maslennikov · Nov 7, 2022 Well, then, the latest 2022.2, should be able to start on up to 20 cores.
go to post Dmitry Maslennikov · Nov 7, 2022 Save it as file ObjectScript.RightTriangle.cls, and do the command Do $system.OBJ.Load("ObjectScript.RightTriangle.cls", "ck") Where, c - compile k - keep generated code, INT routines
go to post Dmitry Maslennikov · Nov 5, 2022 So, home edition could be an issue. But not sure. And AMD itself should be be an issue at all, the issue mostly like in some software already installed. Depends on in what stage it hangs, at some point it should start the installing IRIS, and I would look at its log (<installdir>/mgr/messages.log). Probably it may got something there
go to post Dmitry Maslennikov · Nov 5, 2022 Right, but from that point of code, I have no idea what the primary key is, I may get the table name, and that's it. And I don't want to do any extra queries, to find it out. Even the to do query with LAST_IDENTITY() seems too much for performance reasons. It's a part of Python SQLAlchemy ORM Dialect in my development right now.
go to post Dmitry Maslennikov · Nov 4, 2022 Hmm, it's system-wide, and now I see, that it's the wrong way. I can't use this. Are there any possibilities to have such option just for a process?
go to post Dmitry Maslennikov · Nov 4, 2022 InterSystems DB-API Driver does not support it, yet, But yeah, this can solve it, and I like this way more. sqlalchemy.exc.InterfaceError: (iris.dbapi._DBAPI.InterfaceError) Error parsing statement 'SET OPTION PKEY_IS_IDKEY = TRUE':
go to post Dmitry Maslennikov · Nov 4, 2022 Found this way with IDENTITY and ALLOWIDENTITYINSERT=1 CREATE TABLE users ( id identity NOT NULL, name VARCHAR(30) NOT NULL, PRIMARY KEY (id) ) WITH %CLASSPARAMETER ALLOWIDENTITYINSERT = 1; INSERT INTO users (id, name) VALUES (2, 'fred'); SELECT LAST_IDENTITY(); INSERT INTO users (name) VALUES ('ed'); SELECT LAST_IDENTITY(); Not sure if actually a good way to solve the issue
go to post Dmitry Maslennikov · Nov 3, 2022 No reason to reinvent the wheel, just use imagemagick, no matter the OS, it works anywhere and with any format.
go to post Dmitry Maslennikov · Nov 2, 2022 I suggest, that InterSystems, would finally do something, and continue developing and improving their drivers. I could do such drivers too, and not just NodeJS only, any other languages as well. And I have my own realization for IRIS that way, but it's too simple.
go to post Dmitry Maslennikov · Nov 1, 2022 That way requires some sort of familiarity with IRIS, so, be able to load and run the server on the IRIS side. That's not what I expect, from drivers like this. You should be able to connect to any running instance, and it should not require installing something there, at maximum do some security configuration, such as adding users.
go to post Dmitry Maslennikov · Nov 1, 2022 I see it in difficulty explaining of how to start using IRIS with NodeJS (actually with any supported language). It's not even simpler for NodeJS Developers who already familiar with IRIS and the complexity of getting drivers. When on answer of how to start develop in NodeJS with IRIS, we could answer just install driver with npm and you are ready to go, then probably will be much more NodeJS based projects.