11import re
2+ from decimal import Decimal
23import intersystems_iris .dbapi ._DBAPI as dbapi
3- import intersystems_iris ._IRISNative as IRISNative
44from . import information_schema as ischema
55from sqlalchemy import exc
66from sqlalchemy .orm import aliased
@@ -888,6 +888,8 @@ class IRISDialect(default.DefaultDialect):
888888
889889 supports_vectors = None
890890
891+ supports_cte = True
892+
891893 colspecs = colspecs
892894
893895 ischema_names = ischema_names
@@ -949,8 +951,8 @@ def on_connect(conn):
949951 self .supports_vectors = False
950952 self ._dictionary_access = False
951953 with conn .cursor () as cursor :
952- cursor .execute ("%CHECKPRIV SELECT ON %Dictionary.PropertyDefinition" )
953- self ._dictionary_access = cursor . sqlcode == 0
954+ res = cursor .execute ("%CHECKPRIV SELECT ON %Dictionary.PropertyDefinition" )
955+ self ._dictionary_access = res == 0
954956
955957 # if not self.supports_vectors:
956958 # util.warn("No native support for VECTOR or not activated by license")
@@ -1061,14 +1063,14 @@ def create_connect_args(self, url):
10611063 _debug_queries = False
10621064 # _debug_queries = True
10631065
1064- def _debug (self , query , params , many = False ):
1065- from decimal import Decimal
1066-
1066+ def _debug (self , query , params , many = False , wrap = True ):
10671067 if not self ._debug_queries :
10681068 return
10691069 if many :
1070+ print ("-" * 120 )
10701071 for p in params :
1071- self ._debug (query , p )
1072+ self ._debug (query , p , wrap = False )
1073+ print ("-" * 120 )
10721074 return
10731075 for p in params :
10741076 if isinstance (p , Decimal ):
@@ -1078,21 +1080,11 @@ def _debug(self, query, params, many=False):
10781080 else :
10791081 v = "%r" % (p ,)
10801082 query = query .replace ("?" , v , 1 )
1081- print ("--" )
1083+ if wrap :
1084+ print ("-" * 120 )
10821085 print (query + ";" )
1083- print ("--" )
1084-
1085- def _debug_pre (self , query , params , many = False ):
1086- print ("-- do_execute" + "many" if many else "" )
1087- if not self ._debug_queries :
1088- return
1089- for line in query .split ("\n " ):
1090- print ("-- " , line )
1091- if many :
1092- print (params )
1093- else :
1094- for p in params :
1095- print ("-- @param = %r" % (p ,))
1086+ if wrap :
1087+ print ("-" * 120 )
10961088
10971089 def do_execute (self , cursor , query , params , context = None ):
10981090 if query .endswith (";" ):
@@ -1746,8 +1738,10 @@ def get_multi_columns(
17461738 coltype = coltype (** kwargs )
17471739
17481740 default = "" if default == "$c(0)" else default
1749- if default and default .startswith ('"' ):
1750- default = "'%s'" % (default [1 :- 1 ].replace ("'" , "''" ),)
1741+ if default :
1742+ default = str (default )
1743+ if default .startswith ('"' ):
1744+ default = "'%s'" % (default [1 :- 1 ].replace ("'" , "''" ),)
17511745
17521746 cdict = {
17531747 "name" : name ,
0 commit comments