Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions lib/pgsync/task_resolver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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|
Expand All @@ -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
Expand Down Expand Up @@ -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

Expand All @@ -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
Expand Down