@@ -139,8 +139,9 @@ def export_schema_as_string(self):
139139 def refresh (self , connection , timeout , target_type = None , change_type = None , fetch_size = None ,
140140 metadata_request_timeout = None , ** kwargs ):
141141
142- server_version = self .get_host (connection .original_endpoint ).release_version
143- dse_version = self .get_host (connection .original_endpoint ).dse_version
142+ host = self .get_host (connection .original_endpoint )
143+ server_version = host .release_version if host else None
144+ dse_version = host .dse_version if host else None
144145 parser = get_schema_parser (connection , server_version , dse_version , timeout , metadata_request_timeout , fetch_size )
145146
146147 if not target_type :
@@ -3410,7 +3411,21 @@ def __init__(
34103411
34113412
34123413def get_schema_parser (connection , server_version , dse_version , timeout , metadata_request_timeout , fetch_size = None ):
3413- version = Version (server_version )
3414+ if server_version is None and dse_version is None :
3415+ local_query = QueryMessage (
3416+ query = maybe_add_timeout_to_query (
3417+ "SELECT * FROM system.local WHERE key='local'" ,
3418+ metadata_request_timeout ),
3419+ consistency_level = ConsistencyLevel .ONE )
3420+ success , local_result = connection .wait_for_response (
3421+ local_query , timeout = timeout , fail_on_error = False )
3422+ if success and local_result .parsed_rows :
3423+ local_rows = dict_factory (local_result .column_names , local_result .parsed_rows )
3424+ local_row = local_rows [0 ]
3425+ server_version = local_row .get ("release_version" )
3426+ dse_version = local_row .get ("dse_version" )
3427+
3428+ version = Version (server_version or "0" )
34143429 if dse_version :
34153430 v = Version (dse_version )
34163431 if v >= Version ('6.8.0' ):
0 commit comments