pg_data_encoder 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/examples/Gemfile +7 -0
- data/examples/fast_load.rb +7 -7
- data/lib/pg_data_encoder/decoder.rb +1 -1
- data/lib/pg_data_encoder/version.rb +1 -1
- data/spec/verify_data_formats_spec.rb +7 -6
- metadata +6 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e3209836eee4a3a5800d46fc64ba77c03e64d252
         | 
| 4 | 
            +
              data.tar.gz: 4de943949a6bf7ea016226d65f20e4551fbe4a1e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8beb1b7cd49c58110c75a16b84ec06fe296df2eaee2a488f1d6aa2f6d3ee3b788cf00a4b517ab12068ee053f333829f536f0e7e86e3f445097b1058e1038c851
         | 
| 7 | 
            +
              data.tar.gz: d1ce10832ca535eb9800cecc7e94c9f10eba4ed8db8a7f53e38b2a58836c634d077a3531054c611d311250d89336163d361c14c71073a53997e4799913457274
         | 
    
        data/examples/Gemfile
    ADDED
    
    
    
        data/examples/fast_load.rb
    CHANGED
    
    | @@ -1,17 +1,17 @@ | |
| 1 | 
            -
            require 'active_record'
         | 
| 2 1 | 
             
            require 'postgres-copy'
         | 
| 2 | 
            +
            require 'active_record'
         | 
| 3 3 | 
             
            require 'pg_data_encoder'
         | 
| 4 4 | 
             
            require 'benchmark'
         | 
| 5 5 | 
             
            # Create a test db before running
         | 
| 6 6 | 
             
            # add any needed username, password, port
         | 
| 7 7 | 
             
            # install the required gems
         | 
| 8 8 | 
             
            #
         | 
| 9 | 
            -
            #  | 
| 9 | 
            +
            # the easiest would to install bundler 
         | 
| 10 | 
            +
            # > gem install bundler
         | 
| 11 | 
            +
            # > bundle install
         | 
| 12 | 
            +
            # > bundle exec fast_load.rb
         | 
| 10 13 |  | 
| 11 14 |  | 
| 12 | 
            -
            ActiveSupport.on_load :active_record do
         | 
| 13 | 
            -
              require "postgres-copy/active_record"
         | 
| 14 | 
            -
            end
         | 
| 15 15 | 
             
            ActiveRecord::Base.establish_connection(
         | 
| 16 16 | 
             
                    :adapter  => "postgresql",
         | 
| 17 17 | 
             
                    :host     => "localhost",
         | 
| @@ -24,8 +24,8 @@ ActiveRecord::Base.connection.execute %{ | |
| 24 24 | 
             
            }
         | 
| 25 25 |  | 
| 26 26 | 
             
            class TestModel < ActiveRecord::Base
         | 
| 27 | 
            +
              acts_as_copy_target
         | 
| 27 28 | 
             
            end
         | 
| 28 | 
            -
             | 
| 29 29 | 
             
            encoder = PgDataEncoder::EncodeForCopy.new
         | 
| 30 30 |  | 
| 31 31 | 
             
            puts "Loading data to disk"
         | 
| @@ -36,7 +36,7 @@ puts Benchmark.measure { | |
| 36 36 | 
             
            }
         | 
| 37 37 | 
             
            puts "inserting into db"
         | 
| 38 38 | 
             
            puts Benchmark.measure {
         | 
| 39 | 
            -
              TestModel. | 
| 39 | 
            +
              TestModel.copy_from(encoder.get_io, :format => :binary, :columns => [:data])
         | 
| 40 40 | 
             
            }
         | 
| 41 41 |  | 
| 42 42 | 
             
            encoder.remove
         | 
| @@ -134,7 +134,7 @@ module PgDataEncoder | |
| 134 134 | 
             
                        r = io.read(16).unpack("H*").first
         | 
| 135 135 | 
             
                        "#{r[0..7]}-#{r[8..11]}-#{r[12..15]}-#{r[16..19]}-#{r[20..-1]}"
         | 
| 136 136 | 
             
                      }
         | 
| 137 | 
            -
                    when 1043 #string
         | 
| 137 | 
            +
                    when 1043, 25 #string
         | 
| 138 138 | 
             
                      0.upto(size - 1).map {|i|
         | 
| 139 139 | 
             
                        size = io.read(4).unpack("N").first
         | 
| 140 140 | 
             
                        io.read(size)
         | 
| @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            # encoding: utf-8
         | 
| 2 2 | 
             
            require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
         | 
| 3 | 
            +
            require 'date'
         | 
| 3 4 |  | 
| 4 5 | 
             
            describe "generating data" do
         | 
| 5 6 | 
             
              it 'should encode hstore data correctly' do
         | 
| @@ -189,7 +190,7 @@ describe "generating data" do | |
| 189 190 |  | 
| 190 191 | 
             
              it 'should encode timestamp data correctly' do
         | 
| 191 192 | 
             
                encoder = PgDataEncoder::EncodeForCopy.new
         | 
| 192 | 
            -
                encoder.add [Time.parse("2013-06-11 15:03:54.62605 UTC") | 
| 193 | 
            +
                encoder.add [Time.at(1370963034.62605)]  #Time.parse("2013-06-11 15:03:54.62605 UTC")
         | 
| 193 194 | 
             
                encoder.close
         | 
| 194 195 | 
             
                io = encoder.get_io
         | 
| 195 196 | 
             
                existing_data = filedata("timestamp.dat")
         | 
| @@ -202,7 +203,7 @@ describe "generating data" do | |
| 202 203 |  | 
| 203 204 | 
             
              it 'should encode dates and times in pg 9.2.4' do
         | 
| 204 205 | 
             
                encoder = PgDataEncoder::EncodeForCopy.new
         | 
| 205 | 
            -
                encoder.add [Date.parse('2015-04-08'), nil,  Time.parse("2015-02-13 16:13:57.732772 UTC") | 
| 206 | 
            +
                encoder.add [Date.parse('2015-04-08'), nil,  Time.at(1423844037.732772)]  # Time.parse("2015-02-13 16:13:57.732772 UTC")
         | 
| 206 207 | 
             
                encoder.close
         | 
| 207 208 | 
             
                io = encoder.get_io
         | 
| 208 209 | 
             
                existing_data = filedata("dates_p924.dat")
         | 
| @@ -215,7 +216,7 @@ describe "generating data" do | |
| 215 216 |  | 
| 216 217 | 
             
              it 'should encode dates and times in pg 9.3.5' do
         | 
| 217 218 | 
             
                encoder = PgDataEncoder::EncodeForCopy.new
         | 
| 218 | 
            -
                encoder.add [Date.parse('2015-04-08'), nil,  Time.parse("2015-02-13 16:13:57.732772 UTC") | 
| 219 | 
            +
                encoder.add [Date.parse('2015-04-08'), nil,  Time.at(1423844037.732772)]  # Time.parse("2015-02-13 16:13:57.732772 UTC")
         | 
| 219 220 | 
             
                encoder.close
         | 
| 220 221 | 
             
                io = encoder.get_io
         | 
| 221 222 | 
             
                existing_data = filedata("dates_pg935.dat")
         | 
| @@ -228,7 +229,7 @@ describe "generating data" do | |
| 228 229 |  | 
| 229 230 | 
             
              it 'should encode timestamp data correctly' do
         | 
| 230 231 | 
             
                encoder = PgDataEncoder::EncodeForCopy.new
         | 
| 231 | 
            -
                encoder.add [Time.parse("2013-06-11 15:03:54.62605 UTC") | 
| 232 | 
            +
                encoder.add [Time.at(1370963034.62605)]  # Time.parse("2013-06-11 15:03:54.62605 UTC")
         | 
| 232 233 | 
             
                encoder.close
         | 
| 233 234 | 
             
                io = encoder.get_io
         | 
| 234 235 | 
             
                existing_data = filedata("timestamp.dat")
         | 
| @@ -241,7 +242,7 @@ describe "generating data" do | |
| 241 242 |  | 
| 242 243 | 
             
              it 'should encode big timestamp data correctly' do
         | 
| 243 244 | 
             
                encoder = PgDataEncoder::EncodeForCopy.new
         | 
| 244 | 
            -
                encoder.add [Time.parse("2014-12-02 16:01:22.437311 UTC") | 
| 245 | 
            +
                encoder.add [Time.at(1417536082.437311)]  #Time.parse("2014-12-02 16:01:22.437311 UTC")
         | 
| 245 246 | 
             
                encoder.close
         | 
| 246 247 | 
             
                io = encoder.get_io
         | 
| 247 248 | 
             
                existing_data = filedata("timestamp_9.3.dat")
         | 
| @@ -280,7 +281,7 @@ describe "generating data" do | |
| 280 281 |  | 
| 281 282 | 
             
              it 'should encode float correctly from tempfile' do
         | 
| 282 283 | 
             
                encoder = PgDataEncoder::EncodeForCopy.new(:use_tempfile => true)
         | 
| 283 | 
            -
                encoder.add [Time.parse("2013-06-11 15:03:54.62605 UTC") | 
| 284 | 
            +
                encoder.add [Time.at(1370963034.62605)]  # Time.parse("2013-06-11 15:03:54.62605 UTC")
         | 
| 284 285 | 
             
                encoder.close
         | 
| 285 286 | 
             
                io = encoder.get_io
         | 
| 286 287 | 
             
                existing_data = filedata("timestamp.dat")
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pg_data_encoder
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.10
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Pete Brumm
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-05-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rspec
         | 
| @@ -51,6 +51,8 @@ files: | |
| 51 51 | 
             
            - LICENSE.txt
         | 
| 52 52 | 
             
            - README.md
         | 
| 53 53 | 
             
            - Rakefile
         | 
| 54 | 
            +
            - examples/Gemfile
         | 
| 55 | 
            +
            - examples/Gemfile.lock
         | 
| 54 56 | 
             
            - examples/fast_load.rb
         | 
| 55 57 | 
             
            - lib/pg_data_encoder.rb
         | 
| 56 58 | 
             
            - lib/pg_data_encoder/decoder.rb
         | 
| @@ -117,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 117 119 | 
             
                  version: '0'
         | 
| 118 120 | 
             
            requirements: []
         | 
| 119 121 | 
             
            rubyforge_project: 
         | 
| 120 | 
            -
            rubygems_version: 2.2. | 
| 122 | 
            +
            rubygems_version: 2.2.2
         | 
| 121 123 | 
             
            signing_key: 
         | 
| 122 124 | 
             
            specification_version: 4
         | 
| 123 125 | 
             
            summary: for faster input of data into postgres you can use this to generate the binary
         | 
| @@ -162,3 +164,4 @@ test_files: | |
| 162 164 | 
             
            - spec/spec_helper.rb
         | 
| 163 165 | 
             
            - spec/verify_data_formats_spec.rb
         | 
| 164 166 | 
             
            - spec/verify_decoder_spec.rb
         | 
| 167 | 
            +
            has_rdoc: 
         |