Bug 270.
authorSteve Singer <ssinger@ca.afilias.info>
Mon, 18 Jun 2012 13:20:28 +0000 (09:20 -0400)
committerSteve Singer <ssinger@ca.afilias.info>
Mon, 18 Jun 2012 13:20:28 +0000 (09:20 -0400)
Perform a TRUNCATE .. CASCADE on the replica when we replicate a truncate command.
This is how 2.1 works

src/backend/slony1_funcs.c

index 1ea007614cdbaa3a617fda03084595468c51e83b..2f3e3d41a8ea4d239b531a9e1f14407389993fb5 100644 (file)
@@ -1551,16 +1551,11 @@ _Slony_I_logApply(PG_FUNCTION_ARGS)
                                 */
                                querytypes = (Oid *) palloc(sizeof(Oid) * 2);
 
-                               sprintf(applyQueryPos, "SELECT %s.TruncateOnlyTable("
-                                               "%s.slon_quote_brute($1) || '.' || "
-                                               "%s.slon_quote_brute($2));",
-                                               slon_quote_identifier(NameStr(*cluster_name)),
-                                               slon_quote_identifier(NameStr(*cluster_name)),
-                                               slon_quote_identifier(NameStr(*cluster_name)));
+                               sprintf(applyQueryPos, "TRUNCATE %s.%s CASCADE;",
+                                               slon_quote_identifier(nspname),
+                                               slon_quote_identifier(relname));                                
 
-                               querytypes[0] = TEXTOID;
-                               querytypes[1] = TEXTOID;
-                               querynvals = 2;
+                               querynvals = 0;
 
                                break;
 
@@ -1690,14 +1685,6 @@ _Slony_I_logApply(PG_FUNCTION_ARGS)
                        /*
                         * TRUNCATE
                         */
-                       queryvals = (Datum *) palloc(sizeof(Datum) * 2);
-                       querynulls = (char *) palloc(3);
-
-                       queryvals[0] = DirectFunctionCall1(textin, CStringGetDatum(nspname));
-                       queryvals[1] = DirectFunctionCall1(textin, CStringGetDatum(relname));
-                       querynulls[0] = ' ';
-                       querynulls[1] = ' ';
-                       querynulls[2] = '\0';
 
                        break;