Wed Jan 25 15:14:15 PST 2006
- Previous message: [Slony1-general] sl_log_1 filling
- Next message: [Slony1-general] Replication fails after network outage
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Further to our discussion, I see a further complication for bug #1513,
immediately...
slonik submits DDL changes directly to the local node. (see ddlscript())
As a result, the proposed state machine that splits DDL into statements
needs to be attached to both slon *and slonik*.
In effect, slonik would operate something like...
slon_mkquery (&query, "setup_ddl();");
while (s = get_next_statement(&script)) { /* Invoke each statement
on the local node */
slon_appendquery(&query, "invoke_ddl_int('%s');", s);
}
slon_appendquery(&query, "finish_ddl(%s);", &script); /* Submit the
whole script to propagate to other nodes */
Which would parallel, in slon, something like...
else if (strcmp(event->ev_type, "DDL_SCRIPT") == 0)
{
int ddl_setid = (int)strtol(event->ev_data1,
NULL, 10);
char *ddl_script = event->ev_data2;
int ddl_only_on_node =
(int)strtol(event->ev_data3, NULL, 10);
slon_appendquery(&query, "setup_ddl_int();");
while (s = get_next_statement(&script)) { /* Invoke
each statement on the local node */
slon_appendquery(&query, "invoke_ddl_int('%s');", s);
}
slon_appendquery(&query, "finish_ddl_int();");
I am, of course, covering over all the complications of
get_next_statement() :-).
- Previous message: [Slony1-general] sl_log_1 filling
- Next message: [Slony1-general] Replication fails after network outage
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list