Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add binary COPY encoders and decoders and binary timestamp encoders #511

Merged
merged 13 commits into from
Mar 24, 2023

Commits on Mar 17, 2023

  1. Add PG::Result#binary_tuples

    It is useful for COPY and not deprecated in that context.
    larskanis committed Mar 17, 2023
    Configuration menu
    Copy the full SHA
    cff24d0 View commit details
    Browse the repository at this point in the history
  2. Add binary timestamp encoders:

    * PG::BinaryEncoder::TimestampUtc
    * PG::BinaryEncoder::TimestampLocal
    * PG::BinaryEncoder::Timestamp
    larskanis committed Mar 17, 2023
    Configuration menu
    Copy the full SHA
    69ac30c View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2023

  1. Add binary COPY encoder and decoder:

    * PG::BinaryEncoder::CopyRow
    * PG::BinaryDecoder::CopyRow
    larskanis committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    4bd81df View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    03bd178 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    fd8bdbb View commit details
    Browse the repository at this point in the history
  4. Include BinaryFormatting only once to fix Truffleruby

    BinaryFormatting is already included by pg_define_coder() in case of BinaryEncoder::CopyRow.
    Including BinaryFormatting twice resulted into an endless recursion by the PG::Coder#super call on Truffleruby.
    larskanis committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    8aca50a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    787c7fc View commit details
    Browse the repository at this point in the history
  6. Fix BinaryDecoder::CopyRow regarding negative binary lengths

    They bypassed input size checks and produced segfaults.
    larskanis committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    1be50d7 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1282200 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e423ab3 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    0de9cc7 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    e23692d View commit details
    Browse the repository at this point in the history
  11. Add special case of infinity/-infinity to binary timestamp encoder

    And enable text format in addition to binary in specs for comparison.
    larskanis committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    bae9a50 View commit details
    Browse the repository at this point in the history