alloc.diff
text/x-diff
Filename: alloc.diff
Type: text/x-diff
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| contrib/pg_upgrade/info.c | 0 | 0 |
| contrib/pg_upgrade/pg_upgrade.h | 0 | 0 |
| src/bin/initdb/initdb.c | 0 | 0 |
diff --git a/contrib/pg_upgrade/info.c b/contrib/pg_upgrade/info.c
new file mode 100644
index 2250442..5cb9b61
*** a/contrib/pg_upgrade/info.c
--- b/contrib/pg_upgrade/info.c
*************** static void get_db_infos(ClusterInfo *cl
*** 23,29 ****
static void get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo);
static void free_rel_infos(RelInfoArr *rel_arr);
static void print_db_infos(DbInfoArr *dbinfo);
! static void print_rel_infos(RelInfoArr *arr);
/*
--- 23,29 ----
static void get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo);
static void free_rel_infos(RelInfoArr *rel_arr);
static void print_db_infos(DbInfoArr *dbinfo);
! static void print_rel_infos(RelInfoArr *rel_arr);
/*
*************** create_rel_filename_map(const char *old_
*** 127,134 ****
map->new_relfilenode = new_rel->relfilenode;
/* used only for logging and error reporing, old/new are identical */
! snprintf(map->nspname, sizeof(map->nspname), "%s", old_rel->nspname);
! snprintf(map->relname, sizeof(map->relname), "%s", old_rel->relname);
}
--- 127,134 ----
map->new_relfilenode = new_rel->relfilenode;
/* used only for logging and error reporing, old/new are identical */
! map->nspname = old_rel->nspname;
! map->relname = old_rel->relname;
}
*************** get_db_infos(ClusterInfo *cluster)
*** 220,227 ****
for (tupnum = 0; tupnum < ntups; tupnum++)
{
dbinfos[tupnum].db_oid = atooid(PQgetvalue(res, tupnum, i_oid));
! snprintf(dbinfos[tupnum].db_name, sizeof(dbinfos[tupnum].db_name), "%s",
! PQgetvalue(res, tupnum, i_datname));
snprintf(dbinfos[tupnum].db_tblspace, sizeof(dbinfos[tupnum].db_tblspace), "%s",
PQgetvalue(res, tupnum, i_spclocation));
}
--- 220,226 ----
for (tupnum = 0; tupnum < ntups; tupnum++)
{
dbinfos[tupnum].db_oid = atooid(PQgetvalue(res, tupnum, i_oid));
! dbinfos[tupnum].db_name = pg_strdup(PQgetvalue(res, tupnum, i_datname));
snprintf(dbinfos[tupnum].db_tblspace, sizeof(dbinfos[tupnum].db_tblspace), "%s",
PQgetvalue(res, tupnum, i_spclocation));
}
*************** get_rel_infos(ClusterInfo *cluster, DbIn
*** 346,355 ****
curr->reloid = atooid(PQgetvalue(res, relnum, i_oid));
nspname = PQgetvalue(res, relnum, i_nspname);
! strlcpy(curr->nspname, nspname, sizeof(curr->nspname));
relname = PQgetvalue(res, relnum, i_relname);
! strlcpy(curr->relname, relname, sizeof(curr->relname));
curr->relfilenode = atooid(PQgetvalue(res, relnum, i_relfilenode));
--- 345,354 ----
curr->reloid = atooid(PQgetvalue(res, relnum, i_oid));
nspname = PQgetvalue(res, relnum, i_nspname);
! curr->nspname = pg_strdup(nspname);
relname = PQgetvalue(res, relnum, i_relname);
! curr->relname = pg_strdup(relname);
curr->relfilenode = atooid(PQgetvalue(res, relnum, i_relfilenode));
*************** free_db_and_rel_infos(DbInfoArr *db_arr)
*** 377,383 ****
--- 376,385 ----
int dbnum;
for (dbnum = 0; dbnum < db_arr->ndbs; dbnum++)
+ {
free_rel_infos(&db_arr->dbs[dbnum].rel_arr);
+ pg_free(db_arr->dbs[dbnum].db_name);
+ }
pg_free(db_arr->dbs);
db_arr->dbs = NULL;
db_arr->ndbs = 0;
*************** free_db_and_rel_infos(DbInfoArr *db_arr)
*** 387,392 ****
--- 389,401 ----
static void
free_rel_infos(RelInfoArr *rel_arr)
{
+ int relnum;
+
+ for (relnum = 0; relnum < rel_arr->nrels; relnum++)
+ {
+ pg_free(rel_arr->rels[relnum].nspname);
+ pg_free(rel_arr->rels[relnum].relname);
+ }
pg_free(rel_arr->rels);
rel_arr->nrels = 0;
}
*************** print_db_infos(DbInfoArr *db_arr)
*** 407,418 ****
static void
! print_rel_infos(RelInfoArr *arr)
{
int relnum;
! for (relnum = 0; relnum < arr->nrels; relnum++)
pg_log(PG_VERBOSE, "relname: %s.%s: reloid: %u reltblspace: %s\n",
! arr->rels[relnum].nspname, arr->rels[relnum].relname,
! arr->rels[relnum].reloid, arr->rels[relnum].tablespace);
}
--- 416,427 ----
static void
! print_rel_infos(RelInfoArr *rel_arr)
{
int relnum;
! for (relnum = 0; relnum < rel_arr->nrels; relnum++)
pg_log(PG_VERBOSE, "relname: %s.%s: reloid: %u reltblspace: %s\n",
! rel_arr->rels[relnum].nspname, rel_arr->rels[relnum].relname,
! rel_arr->rels[relnum].reloid, rel_arr->rels[relnum].tablespace);
}
diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
new file mode 100644
index 972e8e9..cae1e46
*** a/contrib/pg_upgrade/pg_upgrade.h
--- b/contrib/pg_upgrade/pg_upgrade.h
*************** extern char *output_files[];
*** 114,121 ****
*/
typedef struct
{
! char nspname[NAMEDATALEN]; /* namespace name */
! char relname[NAMEDATALEN]; /* relation name */
Oid reloid; /* relation oid */
Oid relfilenode; /* relation relfile node */
/* relation tablespace path, or "" for the cluster default */
--- 114,122 ----
*/
typedef struct
{
! /* Can't use NAMEDATALEN; not guaranteed to fit on client */
! char *nspname; /* namespace name */
! char *relname; /* relation name */
Oid reloid; /* relation oid */
Oid relfilenode; /* relation relfile node */
/* relation tablespace path, or "" for the cluster default */
*************** typedef struct
*** 143,150 ****
Oid old_relfilenode;
Oid new_relfilenode;
/* the rest are used only for logging and error reporting */
! char nspname[NAMEDATALEN]; /* namespaces */
! char relname[NAMEDATALEN];
} FileNameMap;
/*
--- 144,151 ----
Oid old_relfilenode;
Oid new_relfilenode;
/* the rest are used only for logging and error reporting */
! char *nspname; /* namespaces */
! char *relname;
} FileNameMap;
/*
*************** typedef struct
*** 153,159 ****
typedef struct
{
Oid db_oid; /* oid of the database */
! char db_name[NAMEDATALEN]; /* database name */
char db_tblspace[MAXPGPATH]; /* database default tablespace path */
RelInfoArr rel_arr; /* array of all user relinfos */
} DbInfo;
--- 154,160 ----
typedef struct
{
Oid db_oid; /* oid of the database */
! char *db_name; /* database name */
char db_tblspace[MAXPGPATH]; /* database default tablespace path */
RelInfoArr rel_arr; /* array of all user relinfos */
} DbInfo;
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
new file mode 100644
index 40740dc..3e05ac3
*** a/src/bin/initdb/initdb.c
--- b/src/bin/initdb/initdb.c
*************** setup_collation(void)
*** 1836,1842 ****
#if defined(HAVE_LOCALE_T) && !defined(WIN32)
int i;
FILE *locale_a_handle;
! char localebuf[NAMEDATALEN];
int count = 0;
PG_CMD_DECL;
--- 1836,1842 ----
#if defined(HAVE_LOCALE_T) && !defined(WIN32)
int i;
FILE *locale_a_handle;
! char localebuf[NAMEDATALEN]; /* we assume ASCII so this is fine */
int count = 0;
PG_CMD_DECL;