Commit 3d48045a authored by Bruce Momjian's avatar Bruce Momjian

> It quotes table names for vacuum and analyze, and uppercases the

> keywords for clarity.

Yeah, this is basically what I meant, sorry I didn't get to it quicker.

However, I tested it out a little and the patch you made doesn't work
because it produces commands like:

VACUUM ANALYZE "public.FooBar"

Which doesn't work, so I made my own patch that creates commands like:

VACUUM ANALYZE "public"."FooBar"

This allows for mixed case schema names as well as tables.

Adam, can you please give this a test as you are the person who caught
the bug in the first place.

Thanks,

Matthew T. O'Connor
parent 188eda0d
...@@ -88,16 +88,21 @@ init_table_info(PGresult *res, int row, db_info * dbi) ...@@ -88,16 +88,21 @@ init_table_info(PGresult *res, int row, db_info * dbi)
new_tbl->table_name = (char *) new_tbl->table_name = (char *)
malloc(strlen(PQgetvalue(res, row, PQfnumber(res, "relname"))) + malloc(strlen(PQgetvalue(res, row, PQfnumber(res, "relname"))) +
strlen(new_tbl->schema_name) + 2); strlen(new_tbl->schema_name) + 6);
if (!new_tbl->table_name) if (!new_tbl->table_name)
{ {
log_entry("init_table_info: malloc failed on new_tbl->table_name"); log_entry("init_table_info: malloc failed on new_tbl->table_name");
fflush(LOGOUTPUT); fflush(LOGOUTPUT);
return NULL; return NULL;
} }
strcpy(new_tbl->table_name, new_tbl->schema_name);
strcat(new_tbl->table_name, "."); /* Put both the schema and table name in quotes so that
we can work with mixed case table names */
strcpy(new_tbl->table_name, "\"");
strcat(new_tbl->table_name, new_tbl->schema_name);
strcat(new_tbl->table_name, "\".\"");
strcat(new_tbl->table_name, PQgetvalue(res, row, PQfnumber(res, "relname"))); strcat(new_tbl->table_name, PQgetvalue(res, row, PQfnumber(res, "relname")));
strcat(new_tbl->table_name, "\"");
new_tbl->CountAtLastAnalyze = new_tbl->CountAtLastAnalyze =
(atol(PQgetvalue(res, row, PQfnumber(res, "n_tup_ins"))) + (atol(PQgetvalue(res, row, PQfnumber(res, "n_tup_ins"))) +
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment