Git Product home page Git Product logo

Comments (6)

adri avatar adri commented on May 26, 2024

I just saw that this is the wrong library. I'll open an issue in the right one ;)

from bolt_sips.

florinpatrascu avatar florinpatrascu commented on May 26, 2024

Thank you for the report! Probably not the wrong place, since I forked the Boltex, and kind of maintaining it in Bolt.Sips too?! :) Would it be possible to provide a test case for this issue? Thank you!

Edit:

from bolt_sips.

adri avatar adri commented on May 26, 2024

Since there are some tests in this project already it was easier add a test that fails in bolt_sips :)
In the module Query.Test you can use:

  test "executing a Cypher query, with large set of parameters", context do
    conn = context[:conn]

    cypher = """
      MATCH (n:Person {bolt_sips: true})
      FOREACH (i IN $largeRange| SET n.test = TRUE )
    """
    case Bolt.Sips.query(conn, cypher, %{largeRange: Enum.to_list(0..1_000_000)}) do
      {:ok, stats} ->
        IO.inspect stats
        assert stats["properties-set"] > 0, "Expecting many properties set"
      {:error, reason} -> IO.puts "Error: #{reason["message"]}"
    end
  end

As far as I can see the error is related to what I posted in the issue description:

** (MatchError) no match of right hand side value: <<178, 16, 208, 83, 77, 65, 84, 67, 72, 32, 40, 110, 58, 80, 101, 114, 115, 111, 110, 32, 123, 98, 111, 108, 116, 95, 115, 105, 112, 115, 58, 32, 116, 114, 117, 101, 125, 41, 10, 32, 32, 70, 79, 82, 69, 65, 67, 72, 32, 40, ...>>
                 lib/boltex/bolt.ex:147: Boltex.Bolt.generate_chunks/3
                 lib/boltex/bolt.ex:117: Boltex.Bolt.send_messages/3

Note, that the query works if you change largeRange from 1_000_000 to 1_000.

from bolt_sips.

florinpatrascu avatar florinpatrascu commented on May 26, 2024

Thank you, @adri! I'll add a pointer to @mschae's project, for the reference; mschae/boltex#13. I am curious to test this too, as it seems to be a special use case. Out of pure curiosity, did you stumble upon this issue in a real scenario or it was pure experimental? Never encountered a situation where I had to transport this much data, in a single call.

from bolt_sips.

mschae avatar mschae commented on May 26, 2024

Thank you @adri and @florinpatrascu. While I implemented multi-chunk messages sending it seems like (contrary to what I believed) I never actually tested it.

Guess what: Untested code doesn't work. Who would've thought.

Sorry about the snafu on my end, I addressed (and believe to have fixed) it in mschae/boltex#15.

from bolt_sips.

florinpatrascu avatar florinpatrascu commented on May 26, 2024

Thank you both for reporting the issue and for the support. With Boltex working correctly now (thanks @mschae!), I was able to spot a bug at my end too: the pool was expiring prematurely and a misplaced timeout parameter. @adri - I aded your test to the test suite and it is passing w/o issues on local and remote databases; many thanks for it! I even throttled the remote db, and verified the test still passes, provided the driver configuration is properly tuned. New package published to https://hex.pm/packages/bolt_sips/0.2.1 - and thanks again, both! Cheers!

from bolt_sips.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.