Julia 0.7 Upgrade issues with ODBC


#1

Hi,

I’m currently in the process of upgrading our Julia 0.6 codebase to Julia 0.7, however I’m hitting a very weird issue with ODBC.

If I call a method, any method prior to issuing a sql query the julia process starts consuming vast quantities of memory, and the query never returns, doesn’t seem to happen julia 1.0.

The sample below causes the issue in Julia 0.7 but not 1.02, but I’m tring to use 0.7 to transition to 1.02.

import ODBC

function hello_world()
    
    println("hello")
end

hello_world()

# Sample query, seems only happen there are a lot of columns in the resultset.
sql_query = """
SELECT CAST('Text' AS NVARCHAR(200)) AS Text1
	   ,CAST('Text' AS NVARCHAR(200)) AS Text2
	   ,CAST('Text' AS NVARCHAR(200)) AS Text3
	   ,CAST('Text' AS NVARCHAR(200)) AS Text4
	   ,CAST('Text' AS NVARCHAR(200)) AS Text5
	   ,CAST('Text' AS NVARCHAR(200)) AS Text6
	   ,CAST('Text' AS NVARCHAR(200)) AS Text7
	   ,CAST('Text' AS NVARCHAR(200)) AS Text8
	   ,CAST('Text' AS NVARCHAR(200)) AS Text9
	   ,CAST('Text' AS NVARCHAR(200)) AS Text11
	   ,CAST('Text' AS NVARCHAR(200)) AS Text12
	   ,CAST('Text' AS NVARCHAR(200)) AS Text13
	   ,CAST('Text' AS NVARCHAR(200)) AS Text14
	   ,CAST('Text' AS NVARCHAR(200)) AS Text15
	   ,CAST('Text' AS NVARCHAR(200)) AS Text131
	   ,CAST('Text' AS NVARCHAR(200)) AS Text142
	   ,CAST('Text' AS NVARCHAR(200)) AS Text153
	   ,CAST('Text' AS NVARCHAR(200)) AS Text134
	   ,CAST('Text' AS NVARCHAR(200)) AS Text145
	   ,CAST('Text' AS NVARCHAR(200)) AS Text156
	   ,CAST('Text' AS NVARCHAR(200)) AS Text137
	   ,CAST('Text' AS NVARCHAR(200)) AS Text148
	   ,CAST('Text' AS NVARCHAR(200)) AS Text159
	   ,CAST(5 AS BIGINT) AS Number1
	   ,CAST(5 AS BIGINT) AS Number2
	   ,CAST(5 AS BIGINT) AS Number3
	   ,CAST(5 AS BIGINT) AS Number4
	   ,CAST(5 AS BIGINT) AS Number5
	   ,CAST(5 AS BIGINT) AS Number6
	   ,CAST(5 AS BIGINT) AS Number7
	   ,CAST(5 AS BIGINT) AS Number8
	   ,CAST(5 AS BIGINT) AS Number9
	   ,CAST(5 AS BIGINT) AS Number11
	   ,CAST(5 AS BIGINT) AS Number22
	   ,CAST(5 AS BIGINT) AS Number33
	   ,CAST(5 AS BIGINT) AS Number44
	   ,CAST(5 AS BIGINT) AS Number55
	   ,CAST(5 AS BIGINT) AS Number66
	   ,CAST(5 AS BIGINT) AS Number77
	   ,CAST(5 AS BIGINT) AS Number88
	   ,CAST(5 AS BIGINT) AS Number99
	   ,CAST(5 AS BIGINT) AS Number111
"""

 dsn = ODBC.DSN("Driver={SQL Server};Server=sqlserver;Database=DB;Trusted_Connection=True;", prompt=false)

df = ODBC.query(dsn, sql_query)

Thanks,
Adrian.


#2

This is just a guess, but deprecation warnings can be quite expensive, so perhaps you’re seeing a very large number of deprecation warnings which are, for some reason, slowing down the code so much that they don’t even get printed within a reasonable amount of time. This guess would be easy to check by running Julia with julia --depwarn=error


#3

Thanks, I just tried that, doesn’t seem to make a difference, I’ll just try and to my upgrade direct in 1.0.2