@@ -288,33 +288,35 @@ def dbapi(cls):
288288 def _add_default_dataset_to_job_config (job_config , project_id , dataset_id ):
289289 # If dataset_id is set, then we know the job_config isn't None
290290 if dataset_id :
291- # If project_id is missing, use default project_id
291+ # If project_id is missing, use default project_id for the current environment
292292 if not project_id :
293293 _ , project_id = auth .default ()
294294
295295 job_config .default_dataset = '{}.{}' .format (project_id , dataset_id )
296296
297297
298- def _create_client_from_credentials (self , credentials , default_query_job_config ):
298+ def _create_client_from_credentials (self , credentials , default_query_job_config , project_id ):
299+ if project_id is None :
300+ project_id = credentials .project_id
301+
299302 scopes = (
300303 'https://www.googleapis.com/auth/bigquery' ,
301304 'https://www.googleapis.com/auth/cloud-platform' ,
302305 'https://www.googleapis.com/auth/drive'
303306 )
304307 credentials = credentials .with_scopes (scopes )
305308
306- self ._add_default_dataset_to_job_config (default_query_job_config ,
307- credentials .project_id , self .dataset_id )
309+ self ._add_default_dataset_to_job_config (default_query_job_config , project_id , self .dataset_id )
308310
309311 return bigquery .Client (
310- project = credentials . project_id ,
312+ project = project_id ,
311313 credentials = credentials ,
312314 location = self .location ,
313315 default_query_job_config = default_query_job_config ,
314316 )
315317
316318 def create_connect_args (self , url ):
317- location , dataset_id , arraysize , credentials_path , default_query_job_config = parse_url (url )
319+ project_id , location , dataset_id , arraysize , credentials_path , default_query_job_config = parse_url (url )
318320
319321 self .arraysize = self .arraysize or arraysize
320322 self .location = location or self .location
@@ -323,18 +325,17 @@ def create_connect_args(self, url):
323325
324326 if self .credentials_path :
325327 credentials = service_account .Credentials .from_service_account_file (self .credentials_path )
326- client = self ._create_client_from_credentials (credentials , default_query_job_config )
328+ client = self ._create_client_from_credentials (credentials , default_query_job_config , project_id )
327329
328330 elif self .credentials_info :
329331 credentials = service_account .Credentials .from_service_account_info (self .credentials_info )
330- client = self ._create_client_from_credentials (credentials , default_query_job_config )
332+ client = self ._create_client_from_credentials (credentials , default_query_job_config , project_id )
331333
332334 else :
333- self ._add_default_dataset_to_job_config (default_query_job_config ,
334- url .host , dataset_id )
335+ self ._add_default_dataset_to_job_config (default_query_job_config , project_id , dataset_id )
335336
336337 client = bigquery .Client (
337- project = url . host ,
338+ project = project_id ,
338339 location = self .location ,
339340 default_query_job_config = default_query_job_config
340341 )
0 commit comments