diff --git a/lib/pgsync/task_resolver.rb b/lib/pgsync/task_resolver.rb index 53790da0..a8849682 100644 --- a/lib/pgsync/task_resolver.rb +++ b/lib/pgsync/task_resolver.rb @@ -51,7 +51,7 @@ def group?(group) private def group_to_tasks(value) - group, param = value.split(":", 2) + group, params = value.split(":", 2) raise Error, "Group not found: #{group}" unless group?(group) @groups[group].map do |table| @@ -62,7 +62,7 @@ def group_to_tasks(value) { table: to_table(table), - sql: expand_sql(table_sql, param) + sql: expand_sql(table_sql, params) } end end @@ -203,7 +203,7 @@ def sql_arg args[1] end - def expand_sql(sql, param) + def expand_sql(sql, params) # command line option takes precedence over group option sql = sql_arg if sql_arg @@ -213,9 +213,12 @@ def expand_sql(sql, param) missing_vars = sql.scan(/{\w+}/).map { |v| v[1..-2] } vars = {} - if param - vars["id"] = cast(param) - vars["1"] = cast(param) + params.split(':').each_with_index do |p,i| + if(p == "id") + vars["id"] = cast(p) + else + vars[(i+1).to_s] = cast(p) + end end sql = sql.dup