summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorPeter Eisentraut2013-10-13 04:09:18 +0000
committerPeter Eisentraut2013-10-13 04:09:18 +0000
commit5b6d08cd2992922b667564a49f19580f11676050 (patch)
tree4104a4255eeb88e78da71477b5f7b129f9a1b599 /contrib
parenta53dee43fe585e673658b01e7354892dcede957e (diff)
Add use of asprintf()
Add asprintf(), pg_asprintf(), and psprintf() to simplify string allocation and composition. Replacement implementations taken from NetBSD. Reviewed-by: Álvaro Herrera <alvherre@2ndquadrant.com> Reviewed-by: Asif Naeem <anaeem.it@gmail.com>
Diffstat (limited to 'contrib')
-rw-r--r--contrib/adminpack/adminpack.c3
-rw-r--r--contrib/oid2name/oid2name.c3
-rw-r--r--contrib/pg_upgrade/check.c21
-rw-r--r--contrib/pg_upgrade/tablespace.c7
-rw-r--r--contrib/pg_upgrade/util.c5
-rw-r--r--contrib/pg_upgrade/version_old_8_3.c4
-rw-r--r--contrib/spi/refint.c3
-rw-r--r--contrib/spi/timetravel.c3
8 files changed, 17 insertions, 32 deletions
diff --git a/contrib/adminpack/adminpack.c b/contrib/adminpack/adminpack.c
index ded89c60590..1ec0768289e 100644
--- a/contrib/adminpack/adminpack.c
+++ b/contrib/adminpack/adminpack.c
@@ -376,8 +376,7 @@ pg_logdir_ls(PG_FUNCTION_ARGS)
/* Seems the timestamp is OK; prepare and return tuple */
values[0] = timestampbuf;
- values[1] = palloc(strlen(fctx->location) + strlen(de->d_name) + 2);
- sprintf(values[1], "%s/%s", fctx->location, de->d_name);
+ values[1] = psprintf("%s/%s", fctx->location, de->d_name);
tuple = BuildTupleFromCStrings(funcctx->attinmeta, values);
diff --git a/contrib/oid2name/oid2name.c b/contrib/oid2name/oid2name.c
index cdec94205bc..ab92c637e59 100644
--- a/contrib/oid2name/oid2name.c
+++ b/contrib/oid2name/oid2name.c
@@ -508,8 +508,7 @@ sql_exec_searchtables(PGconn *conn, struct options * opts)
free(comma_filenodes);
/* now build the query */
- todo = (char *) pg_malloc(650 + strlen(qualifiers));
- snprintf(todo, 650 + strlen(qualifiers),
+ pg_asprintf(&todo,
"SELECT pg_catalog.pg_relation_filenode(c.oid) as \"Filenode\", relname as \"Table Name\" %s\n"
"FROM pg_catalog.pg_class c \n"
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace \n"
diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c
index 1a37b79a8b7..464bbe2604f 100644
--- a/contrib/pg_upgrade/check.c
+++ b/contrib/pg_upgrade/check.c
@@ -455,18 +455,13 @@ create_script_for_cluster_analyze(char **analyze_script_file_name)
FILE *script = NULL;
char *user_specification = "";
- if (os_info.user_specified)
- {
- user_specification = pg_malloc(strlen(os_info.user) + 7);
- sprintf(user_specification, "-U \"%s\" ", os_info.user);
- }
-
- *analyze_script_file_name = pg_malloc(MAXPGPATH);
-
prep_status("Creating script to analyze new cluster");
- snprintf(*analyze_script_file_name, MAXPGPATH, "analyze_new_cluster.%s",
- SCRIPT_EXT);
+ if (os_info.user_specified)
+ pg_asprintf(&user_specification, "-U \"%s\" ", os_info.user);
+
+ pg_asprintf(analyze_script_file_name, "analyze_new_cluster.%s",
+ SCRIPT_EXT);
if ((script = fopen_priv(*analyze_script_file_name, "w")) == NULL)
pg_fatal("Could not open file \"%s\": %s\n",
@@ -597,10 +592,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
int tblnum;
char old_cluster_pgdata[MAXPGPATH];
- *deletion_script_file_name = pg_malloc(MAXPGPATH);
-
- snprintf(*deletion_script_file_name, MAXPGPATH, "delete_old_cluster.%s",
- SCRIPT_EXT);
+ pg_asprintf(deletion_script_file_name, "delete_old_cluster.%s",
+ SCRIPT_EXT);
/*
* Some users (oddly) create tablespaces inside the cluster data
diff --git a/contrib/pg_upgrade/tablespace.c b/contrib/pg_upgrade/tablespace.c
index 229f4a8fde3..f090f62b29c 100644
--- a/contrib/pg_upgrade/tablespace.c
+++ b/contrib/pg_upgrade/tablespace.c
@@ -84,12 +84,9 @@ set_tablespace_directory_suffix(ClusterInfo *cluster)
else
{
/* This cluster has a version-specific subdirectory */
- cluster->tablespace_suffix = pg_malloc(4 +
- strlen(cluster->major_version_str) +
- 10 /* OIDCHARS */ + 1);
/* The leading slash is needed to start a new directory. */
- sprintf(cluster->tablespace_suffix, "/PG_%s_%d", cluster->major_version_str,
- cluster->controldata.cat_ver);
+ pg_asprintf(&cluster->tablespace_suffix, "/PG_%s_%d",
+ cluster->major_version_str, cluster->controldata.cat_ver);
}
}
diff --git a/contrib/pg_upgrade/util.c b/contrib/pg_upgrade/util.c
index 74565ec92e1..7bca19b84d0 100644
--- a/contrib/pg_upgrade/util.c
+++ b/contrib/pg_upgrade/util.c
@@ -276,10 +276,9 @@ pg_putenv(const char *var, const char *val)
if (val)
{
#ifndef WIN32
- char *envstr = (char *) pg_malloc(strlen(var) +
- strlen(val) + 2);
+ char *envstr;
- sprintf(envstr, "%s=%s", var, val);
+ pg_asprintf(&envstr, "%s=%s", var, val);
putenv(envstr);
/*
diff --git a/contrib/pg_upgrade/version_old_8_3.c b/contrib/pg_upgrade/version_old_8_3.c
index 6d44266704c..83334a09f69 100644
--- a/contrib/pg_upgrade/version_old_8_3.c
+++ b/contrib/pg_upgrade/version_old_8_3.c
@@ -675,9 +675,9 @@ old_8_3_create_sequence_script(ClusterInfo *cluster)
int dbnum;
FILE *script = NULL;
bool found = false;
- char *output_path = pg_malloc(MAXPGPATH);
+ char *output_path;
- snprintf(output_path, MAXPGPATH, "adjust_sequences.sql");
+ output_path = pg_strdup("adjust_sequences.sql");
prep_status("Creating script to adjust sequences");
diff --git a/contrib/spi/refint.c b/contrib/spi/refint.c
index 8dc565a1907..fbed3003961 100644
--- a/contrib/spi/refint.c
+++ b/contrib/spi/refint.c
@@ -634,8 +634,7 @@ find_plan(char *ident, EPlan **eplan, int *nplans)
(*nplans) = i = 0;
}
- newp->ident = (char *) malloc(strlen(ident) + 1);
- strcpy(newp->ident, ident);
+ newp->ident = strdup(ident);
newp->nplans = 0;
newp->splan = NULL;
(*nplans)++;
diff --git a/contrib/spi/timetravel.c b/contrib/spi/timetravel.c
index 34b4453f879..fa74daba946 100644
--- a/contrib/spi/timetravel.c
+++ b/contrib/spi/timetravel.c
@@ -540,8 +540,7 @@ find_plan(char *ident, EPlan **eplan, int *nplans)
(*nplans) = i = 0;
}
- newp->ident = (char *) malloc(strlen(ident) + 1);
- strcpy(newp->ident, ident);
+ newp->ident = strdup(ident);
newp->splan = NULL;
(*nplans)++;