]> granicus.if.org Git - postgresql/commitdiff
> It quotes table names for vacuum and analyze, and uppercases the
authorBruce Momjian <bruce@momjian.us>
Thu, 11 Sep 2003 19:01:18 +0000 (19:01 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 11 Sep 2003 19:01:18 +0000 (19:01 +0000)
> 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

contrib/pg_autovacuum/pg_autovacuum.c

index afa6561a20c20a5641bef3fc528d18a8e4f7f432..1b1c2a21686792f89f33ed30c5264c5461d12ada 100644 (file)
@@ -88,16 +88,21 @@ init_table_info(PGresult *res, int row, db_info * dbi)
 
        new_tbl->table_name = (char *)
                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)
        {
                log_entry("init_table_info: malloc failed on new_tbl->table_name");
                fflush(LOGOUTPUT);
                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, "\"");
 
        new_tbl->CountAtLastAnalyze =
                (atol(PQgetvalue(res, row, PQfnumber(res, "n_tup_ins"))) +