method private _grab_input =
match select_w#store2#get_iter_first with
| None ->
raise (Invalid_input "You must put at least one table in the join")
| Some iter ->
let fetch_columns = fun c_model ->
match c_model#get_iter_first with
| None -> []
| Some iter -> let result = ref [] in
result := [jc_to_tuple (c_model#get_data ~row:iter)];
while c_model#iter_next iter do
result :=
(jc_to_tuple (c_model#get_data ~row:iter)) :: !result
done;
List.rev !result
in
let model = select_w#store2 in
let table = fst (model#get_data ~row:iter) in
let vtable = SQL_db.create_vtable glade#name_entry#text table in
while model#iter_next iter do
let (c_table, c_model) = model#get_data ~row:iter in
SQL_db.do_join vtable c_table (fetch_columns c_model)
done;
{ vtgi_name = vtable.SQL_db.vt_name;
vtgi_vtable = Some vtable; }