Hey Dylan, Check out this branch in my fork: https://github.com/robertclaus/incubator-quickstep/tree/network-client-apis
The latest commit in the branch allows you to change the default output of the CLI to csv instead of the table format. (The table format is fixed length-ish, so it's hard to parse without access to the table schema) There is also a trick to output CSV using COPY in the SQL, but it requires modifying your queries. Note this branch also has some libraries I wrote for accessing the network CLI from python and javascript if you still need them. (I got the impression you were working in a different language) -Robert On Mon, Dec 4, 2017 at 2:30 PM, Dylan Bacon <dba...@wisc.edu> wrote: > Got this end of things working and am now talking to Quickstep remotely. > Is there a simple or built in way to parse our query result format or do I > just have to manually parse through all the column delimiters? > > > On 11/30/17 6:24 PM, Jianqiao wrote: > >> Yes. NetworkCliClient is quite standalone. The dependencies are: >> ---- >> (1) #include <grpc++/grpc++.h> >> (2) #include "cli/NetworkCli.grpc.pb.h" >> (3) #include "cli/NetworkCli.pb.h" >> (4) #include "utility/Macros.hpp" >> ---- >> >> To write your own client: >> ---- >> (A) Setup grpc so that you can include the header files and link to it. >> >> (B) Grab NetworkCli.proto (https://github.com/apache/ >> incubator-quickstep/blob/master/cli/NetworkCli.proto), change the package >> name if necessary (originally quickstep). >> Either >> (B.1) use grpc/protobuf tools to compile NetworkCli.proto to generate (2) >> and (3) -- see https://github.com/apache/incubator-quickstep/blob/ >> master/cli/CMakeLists.txt#L53 >> or >> (B.2) compile quickstep and grab the files from build/cli/ >> >> (C) Copy the NetworkCliClient class from QS into your client code. >> ---- >> >> (A)/(B) may be somehow annoying to handle as you need to search through >> various documentations ... >> >> >> Best, >> Jianqiao >> >> 2017-11-30 17:07 GMT-06:00 Dylan Bacon <dba...@wisc.edu>: >> >> So NetworkCliClient should be something I'm able to include in my program >>> along with the appropriate dependencies and use as the API? I was >>> thinking >>> about needing to do that but I wasn't sure if that was a standalone API >>> QS >>> has implemented or a core part of the system. Unless I'm being mistaken >>> and >>> you're talking about something from gRPC. This is my first time working >>> with it. >>> >>> >>> >>> On 11/30/17 4:58 PM, Jianqiao wrote: >>> >>> Hi Dylan, >>>> >>>> Currently the network mode is using gRPC, so you probably need to use >>>> the >>>> corresponding API (see >>>> https://github.com/apache/incubator-quickstep/blob/master/ >>>> cli/NetworkCliClientMain.cpp#L42 >>>> as an example). The raw socket connection won't work unless you hack >>>> gRPC's >>>> message exchange protocol .. >>>> >>>> Best, >>>> Jianqiao >>>> >>>> 2017-11-30 16:49 GMT-06:00 Dylan Bacon <dba...@wisc.edu>: >>>> >>>> Hello, >>>> >>>>> I am attempting to interface with Quickstep using its NetworkCliClient >>>>> and >>>>> it's not working as I would expect. I have the default port and IP set >>>>> to >>>>> 3000 and 0.0.0.0 and am attempting to send single queries to be >>>>> processed >>>>> over in my test harness. From what I could tell of the code when QS is >>>>> in >>>>> network mode it accepts a socket connection and string input from that >>>>> function and processes it in NetworkCliClient.hpp and >>>>> NetworkCliClientMain.cpp, and yet this is not happening with my test >>>>> code. >>>>> The connection is being established but Quickstep does not seem to be >>>>> doing >>>>> anything with the queries that come in. >>>>> >>>>> Attached is the test code that I am using. test is just a table by that >>>>> name, I'm selecting a literal from it so the contents shouldn't matter. >>>>> I've also attempted to create a table with this but Quickstep did not >>>>> process that. >>>>> >>>>> -- >>>>> Regards, >>>>> >>>>> Dylan Bacon >>>>> University of Wisconsin - Madison >>>>> Department of Computer Sciences >>>>> dba...@wisc.edu >>>>> >>>>> >>>>> >>>>> >