@@ -321,59 +321,53 @@ func (db Database) getTableInsensitive(ctx *sql.Context, head *doltdb.Commit, ds
321321 // at runtime
322322 switch {
323323 case strings .HasPrefix (lwrName , doltdb .DoltDiffTablePrefix ):
324- if resolve .UseSearchPath && db .schemaName == "" {
325- schemaName , err := resolve .FirstExistingSchemaOnSearchPath (ctx , root )
324+ if head == nil {
325+ var err error
326+ head , err = ds .GetHeadCommit (ctx , db .RevisionQualifiedName ())
327+
326328 if err != nil {
327329 return nil , false , err
328330 }
329- db .schemaName = schemaName
330331 }
331332
332- if head == nil {
333+ baseTableName := tblName [len (doltdb .DoltDiffTablePrefix ):]
334+ tname := doltdb.TableName {Name : baseTableName , Schema : db .schemaName }
335+ if resolve .UseSearchPath && db .schemaName == "" {
333336 var err error
334- head , err = ds .GetHeadCommit (ctx , db .RevisionQualifiedName ())
335-
337+ tname , _ , _ , err = resolve .Table (ctx , root , baseTableName )
336338 if err != nil {
337339 return nil , false , err
338340 }
339341 }
340342
341- tableName := tblName [len (doltdb .DoltDiffTablePrefix ):]
342- dt , err := dtables .NewDiffTable (ctx , db .Name (), doltdb.TableName {Name : tableName , Schema : db .schemaName }, db .ddb , root , head )
343+ dt , err := dtables .NewDiffTable (ctx , db .Name (), tname , db .ddb , root , head )
343344 if err != nil {
344345 return nil , false , err
345346 }
346347 return dt , true , nil
347348
348349 case strings .HasPrefix (lwrName , doltdb .DoltCommitDiffTablePrefix ):
350+ baseTableName := tblName [len (doltdb .DoltCommitDiffTablePrefix ):]
351+ tname := doltdb.TableName {Name : baseTableName , Schema : db .schemaName }
349352 if resolve .UseSearchPath && db .schemaName == "" {
350- schemaName , err := resolve .FirstExistingSchemaOnSearchPath (ctx , root )
353+ var err error
354+ tname , _ , _ , err = resolve .Table (ctx , root , baseTableName )
351355 if err != nil {
352356 return nil , false , err
353357 }
354- db .schemaName = schemaName
355358 }
356359
357- suffix := tblName [len (doltdb .DoltCommitDiffTablePrefix ):]
358360 ws , err := ds .WorkingSet (ctx , db .RevisionQualifiedName ())
359361 if err != nil {
360362 return nil , false , err
361363 }
362- dt , err := dtables .NewCommitDiffTable (ctx , db .Name (), doltdb. TableName { Name : suffix , Schema : db . schemaName } , db .ddb , root , ws .StagedRoot ())
364+ dt , err := dtables .NewCommitDiffTable (ctx , db .Name (), tname , db .ddb , root , ws .StagedRoot ())
363365 if err != nil {
364366 return nil , false , err
365367 }
366368 return dt , true , nil
367369
368370 case strings .HasPrefix (lwrName , doltdb .DoltHistoryTablePrefix ):
369- if resolve .UseSearchPath && db .schemaName == "" {
370- schemaName , err := resolve .FirstExistingSchemaOnSearchPath (ctx , root )
371- if err != nil {
372- return nil , false , err
373- }
374- db .schemaName = schemaName
375- }
376-
377371 baseTableName := tblName [len (doltdb .DoltHistoryTablePrefix ):]
378372 baseTable , ok , err := db .getTable (ctx , root , baseTableName )
379373 if err != nil {
@@ -401,50 +395,45 @@ func (db Database) getTableInsensitive(ctx *sql.Context, head *doltdb.Commit, ds
401395 }
402396
403397 case strings .HasPrefix (lwrName , doltdb .DoltConfTablePrefix ):
398+ baseTableName := tblName [len (doltdb .DoltConfTablePrefix ):]
399+ tname := doltdb.TableName {Name : baseTableName , Schema : db .schemaName }
404400 if resolve .UseSearchPath && db .schemaName == "" {
405- schemaName , err := resolve .FirstExistingSchemaOnSearchPath (ctx , root )
401+ var err error
402+ tname , _ , _ , err = resolve .Table (ctx , root , baseTableName )
406403 if err != nil {
407404 return nil , false , err
408405 }
409- db .schemaName = schemaName
410406 }
411407
412- suffix := tblName [len (doltdb .DoltConfTablePrefix ):]
413- srcTable , ok , err := db .getTableInsensitive (ctx , head , ds , root , suffix , asOf )
408+ srcTable , ok , err := db .getTableInsensitive (ctx , head , ds , root , tname .Name , asOf )
414409 if err != nil {
415410 return nil , false , err
416411 } else if ! ok {
417412 return nil , false , nil
418413 }
419- dt , err := dtables .NewConflictsTable (ctx , doltdb. TableName { Name : suffix , Schema : db . schemaName } , srcTable , root , dtables .RootSetter (db ))
414+ dt , err := dtables .NewConflictsTable (ctx , tname , srcTable , root , dtables .RootSetter (db ))
420415 if err != nil {
421416 return nil , false , err
422417 }
423418 return dt , true , nil
424419
425420 case strings .HasPrefix (lwrName , doltdb .DoltConstViolTablePrefix ):
421+ baseTableName := tblName [len (doltdb .DoltConstViolTablePrefix ):]
422+ tname := doltdb.TableName {Name : baseTableName , Schema : db .schemaName }
426423 if resolve .UseSearchPath && db .schemaName == "" {
427- schemaName , err := resolve .FirstExistingSchemaOnSearchPath (ctx , root )
424+ var err error
425+ tname , _ , _ , err = resolve .Table (ctx , root , baseTableName )
428426 if err != nil {
429427 return nil , false , err
430428 }
431- db .schemaName = schemaName
432429 }
433430
434- suffix := tblName [len (doltdb .DoltConstViolTablePrefix ):]
435- dt , err := dtables .NewConstraintViolationsTable (ctx , doltdb.TableName {Name : suffix , Schema : db .schemaName }, root , dtables .RootSetter (db ))
431+ dt , err := dtables .NewConstraintViolationsTable (ctx , tname , root , dtables .RootSetter (db ))
436432 if err != nil {
437433 return nil , false , err
438434 }
439435 return dt , true , nil
440436 case strings .HasPrefix (lwrName , doltdb .DoltWorkspaceTablePrefix ):
441- if resolve .UseSearchPath && db .schemaName == "" {
442- schemaName , err := resolve .FirstExistingSchemaOnSearchPath (ctx , root )
443- if err != nil {
444- return nil , false , err
445- }
446- db .schemaName = schemaName
447- }
448437 sess := dsess .DSessFromSess (ctx .Session )
449438
450439 ws , err := sess .WorkingSet (ctx , db .RevisionQualifiedName ())
@@ -455,9 +444,21 @@ func (db Database) getTableInsensitive(ctx *sql.Context, head *doltdb.Commit, ds
455444 roots , _ := sess .GetRoots (ctx , db .RevisionQualifiedName ())
456445 head := roots .Head
457446
458- userTable := tblName [len (doltdb .DoltWorkspaceTablePrefix ):]
447+ baseTableName := tblName [len (doltdb .DoltWorkspaceTablePrefix ):]
448+ tname := doltdb.TableName {Name : baseTableName , Schema : db .schemaName }
449+ if resolve .UseSearchPath && db .schemaName == "" {
450+ var err error
451+ baseName , _ , exists , err := resolve .Table (ctx , root , baseTableName )
452+ if err != nil {
453+ return nil , false , err
454+ }
455+ // Only set tname if table exists so that emptyWorkspaceTable is used if the table does not exist
456+ if exists {
457+ tname = baseName
458+ }
459+ }
459460
460- dt , err := dtables .NewWorkspaceTable (ctx , tblName , doltdb. TableName { Name : userTable , Schema : db . schemaName } , head , ws )
461+ dt , err := dtables .NewWorkspaceTable (ctx , tblName , tname , head , ws )
461462 if err != nil {
462463 return nil , false , err
463464 }
0 commit comments