SQL64.xop crashes Igor after MacOS update

I've used Igor for many years with the SQL64.xop.  The company forced me to upgrade my MacOS from Monterey to Ventura.  Now, whenever any SQL command is executed, Igor quits unexpectedly.  I've done all the usual diagnostics, upgrading to the latest versions, etc.  I've looked for any MacOS settings that might apply, full disk access, etc.  I've looked at the IODBC drivers. No luck.  The unexpected quitting does not give any clues

Has anyone found a workaround that will work?

It probably will not shed much light but still, post a crash log:

DisplayHelpTopic "Crash Logs on Mac OS X"

Did you update your iODBC Administrator? For details execute this:

DisplayHelpTopic "Installing ODBC Driver Manager On Mac OS X"

What version of iODBC Administrator are you running?

What version of the MySQL ODBC driver are you running? For details execute:

DisplayHelpTopic "Installing ODBC Driver Manager On Mac OS X"

Are you running on an Intel or ARM Macintosh?



I should have mentioned that I've been discussing this with A.G. at WaveMetrics, We think that we've exhausted the usual diagnostics.  He was able to replicate the problem, but had no solution.  I'm glad to share the info below

iODBC ver 3.52.16
MYSQL ODBC ver 08.00.0028
Intel Mac

Crash Log

For the record:

Recent operating systems from Apple (starting around February 2023) include some changes that affect the SQL XOP.  The changes are evident in the error returned from the initialization call to SQLDriverConnect().  When the connection fails, the connection parameters are not properly initialized so any subsequent attempt to execute SQLHighLevelOp with bad parameters is likely to cause a crash.

There is currently no solution to this problem short of using compatible version of the operating system (https://www.wavemetrics.com/news/igor-pro-macos-1015-catalina) or running under Windows.



I believe that I have solved this problem.

The Issue

SQL XOP 1.60 and earlier rely on /usr/lib/libiodbc.dylib. That library is now installed in /usr/local/iODBC/lib. (I don't know if this is due to a change in the iODBC manager installer or due to a change in the OS.)

New Version

I have attached below SQL XOP version 1.61 which links with the iODBC framework instead of linking with /usr/lib/libiodbc.dylib (which is actually a soft link to /Frameworks/iODBC.framework/iODBC).

I have successfully tested version 1.61 on Mac OS 10.14.6 (Mojave), Mac OS 12.7.1 (Monterey), and Mac OS 13.6.1 (Ventura) with MySQL ODBC Connector 8.2 and iODBC Manager 3.52.16-macOS11.

Download the attached archive, unzip, and drag the SQL64.xop file and help file to your "Igor Extensions (x64)" folder, replacing any previous copy of or alias to SQL64.xop.

Blessing the XOP

Since I don't have an Apple developer account, I can not sign and notarize this version of the XOP. Consequently, MacOS requires that you jump through some hoops to run the XOP. Here is a procedure, tested on Mac OS 12.7.1 (Monterey) and Mac OS 13.6.1 (Ventura) to achieve this:

1. Quit Igor if you are running it.

2. Right-click the new SQL64.xop file to get a contextual menu including an Open With submenu.

3A. If Igor64.xop is available in the Open With submenu, choose it. The Finder displays the "MacOS Cannot Verify" dialog.

3B. If Igor64.xop is not available in the Open With submenu, choose Other. In the resulting Open File dialog, check the Always Open checkbox, locate and select your Igor64.app file, and click Open. (If the Always Open checkbox is not visible, click the Options button in the Open File dialog.) The Finder displays the "MacOS Cannot Verify" dialog.

4. Click the Open button. Igor will launch and the XOP will work going forward.