@@ -1371,7 +1371,6 @@ void make_pagemap_from_ptrack(parray *files)
1371
1371
size_t start_addr ;
1372
1372
Oid db_oid , rel_oid , tablespace_oid = 0 ;
1373
1373
int sep_iter , sep_count = 0 ;
1374
- tablespace = palloc0 (64 );
1375
1374
1376
1375
/* Find target path*/
1377
1376
for (sep_iter = (int )path_length ; sep_iter >= 0 ; sep_iter -- )
@@ -1380,16 +1379,17 @@ void make_pagemap_from_ptrack(parray *files)
1380
1379
{
1381
1380
sep_count ++ ;
1382
1381
}
1383
- if (sep_count == 3 )
1382
+ if (sep_count == 2 )
1384
1383
{
1385
1384
tmp_path += sep_iter + 1 ;
1386
1385
break ;
1387
1386
}
1388
1387
}
1389
1388
/* For unix only now */
1390
- sscanf (tmp_path , "%[^/]/%u/%u_ptrack" , tablespace , & db_oid , & rel_oid );
1391
- if (strcmp (tablespace , "base" ) != 0 && strcmp (tablespace , "global" ) != 0 )
1392
- sscanf (tablespace , "%i" , & tablespace_oid );
1389
+ sscanf (tmp_path , "%u/%u_ptrack" , & db_oid , & rel_oid );
1390
+ tablespace = strstr (p -> ptrack_path , "pg_tblspc" );
1391
+ if (tablespace != NULL )
1392
+ sscanf (tablespace + 10 , "%i/" , & tablespace_oid );
1393
1393
1394
1394
flat_memory = pg_ptrack_get_and_clear (tablespace_oid ,
1395
1395
db_oid ,
@@ -1401,7 +1401,6 @@ void make_pagemap_from_ptrack(parray *files)
1401
1401
p -> pagemap .bitmap = pg_malloc (p -> pagemap .bitmapsize );
1402
1402
memcpy (p -> pagemap .bitmap , flat_memory + start_addr , p -> pagemap .bitmapsize );
1403
1403
pg_free (flat_memory );
1404
- pg_free (tablespace );
1405
1404
}
1406
1405
}
1407
1406
}
0 commit comments