split_pgdump 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/bin/split_pgdump +13 -4
  2. metadata +1 -1
data/bin/split_pgdump CHANGED
@@ -46,11 +46,14 @@ class CWorker
46
46
  def process_schema_line(out, line)
47
47
  if line =~ /^COPY (\w+) \(([^)]+)\) FROM stdin;/
48
48
  table_name, columns = $1, $2.split(', ')
49
- @table = Table.new(tables_dir, table_name, columns)
49
+ @table = Table.new(tables_dir, @schema, table_name, columns)
50
50
  @tables << @table
51
51
  puts "Start to write table #{table_name}" if $debug
52
52
  @state = :table
53
53
  else
54
+ if line =~ /^SET search_path = ([^,]+)/
55
+ @schema = $1
56
+ end
54
57
  out.write line
55
58
  end
56
59
  end
@@ -70,6 +73,7 @@ class CWorker
70
73
  @state = :schema
71
74
  @table = nil
72
75
  @tables = []
76
+ @schema = 'public'
73
77
 
74
78
  File.open(output_file, 'w') do |out|
75
79
  STDIN.each_line do |line|
@@ -196,9 +200,10 @@ class Table
196
200
  end
197
201
 
198
202
  attr_reader :name, :columns, :files, :sort_line
199
- def initialize(dir, name, columns)
203
+ def initialize(dir, schema, name, columns)
200
204
  @dir = dir
201
205
  @table = name
206
+ @schema = schema
202
207
  @columns = columns.map{|c| c.sub(/^"(.+)"$/, '\\1')}
203
208
  if @rule = Worker.find_rule(name)
204
209
  apply_rule
@@ -239,7 +244,7 @@ class Table
239
244
  eval <<-"EOF"
240
245
  def self.file_name(values)
241
246
  name = %{#{split_string}}.gsub(/\\.\\.|\\s|\\?|\\*/, '_')
242
- "\#@table/\#{name}.dat"
247
+ "\#{table_schema}/\#{name}.dat"
243
248
  end
244
249
  EOF
245
250
 
@@ -251,8 +256,12 @@ class Table
251
256
  end
252
257
  end
253
258
 
259
+ def table_schema
260
+ @schema == 'public' ? @table : "#@schema/#@table"
261
+ end
262
+
254
263
  def file_name(values)
255
- "#@table.dat"
264
+ "#{table_schema}.dat"
256
265
  end
257
266
 
258
267
  def add_line(line)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: split_pgdump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: