Skip to content

Commit

Permalink
ARROW-14421: [C++] Implement Flight SQL
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit 72ce72ba855909052f7dfb898105b419697157c8
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Dec 6 16:55:20 2021 -0300

    Fix documentation for GetSqlInfo on FlightSql.proto

commit 076187ec3aa18295c92de1f38b9036e66fa8ca7e
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Dec 6 15:02:45 2021 -0300

    Add better description to table types on FlightSql.proto

commit 9a9b536acf207456c8050d165c4f1a12c7d71010
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Dec 6 15:01:21 2021 -0300

    Change SQL_NUMERIC_FUNCTIONS result on sqlite_sql_info to uppercase

commit dd9d507997e1bcf88aeb3511889dcb3f6b777283
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Dec 6 15:00:19 2021 -0300

    Remove dependency on boost/lexical_cast.hpp

commit 023f71a12fbd233dbba2571c7935db454516293e
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Dec 3 16:47:34 2021 -0300

    Use std::generate_n to generate random string on sqlite_server.cc

commit 6a928ca82ae69e579d4785c092d069f6b2439ceb
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Dec 3 17:09:25 2021 -0300

    Move implementation of methods and data from SQLiteFlightSqlServer to SQLiteFlightSqlServer::Impl and remove dependency of boost-uuid (#221)

    * Use pimpl idiom on sqlite_server and add comments on protobuf file

    * Correctly implement impl pattern

commit cfe9e2ac79412d375e1415f40445589fd33500d6
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Dec 3 16:27:46 2021 -0300

    Use EXPECT_RAISES_WITH_MESSAGE_THAT on TestFlightSqlServer#TestCommandGetSqlInfoNoInfo

commit de8600ca83046bdb51b1a6e1c6420e36896d7e3d
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Dec 3 13:49:55 2021 -0300

    nit: Fix indentation on cpp_build.sh

commit ea94097953448a48ebd31215113859f00d06dc4a
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Dec 3 12:15:44 2021 -0300

    Use TCP instead on unix sockets on server_test.cc

commit 99ae0216466aee26944b31e10d46d2c3f372842d
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Dec 3 12:03:45 2021 -0300

    Remove need of RunServerInternal

commit 2b3839aff39b474d77d515e0ce6290e8e1a9f81a
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Dec 2 13:48:49 2021 -0300

    Remove generated protobuf enum from example application

commit 8431e41bddda5abc8aeec8a363b40deab352e5a4
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Dec 2 13:35:56 2021 -0300

    [C++] Address ratification comments (round 4 - part 4) (#215)

    * Make other methods from SQLite server example to return arrow::Result instead of Status

    * Fix bug for null values in numeric columns on SQLite server example

    * Structure catalog-schema-table tuple on a TableRef struct on client

    * Rename 'schema' to 'db_schema'

    * Use TableRef struct on server.cc

    * Undo renaming db_schema_filter_pattern

commit fe9d7dc5a1b26a00c789cee969e750479353f581
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Dec 2 13:28:23 2021 -0300

    Make sure to wait for server to be ready before running tests (#220)

    * Make sure to wait for server to be ready before running tests

    * Start server independently for each test

    * Use unique_ptr for server thread on server_test.cc

commit e8d8a13aa82c0ec929a103dcc81f250ab0dda02b
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Nov 26 13:59:04 2021 -0300

    [C++] Address ratification comments (round 4 - part 3) (#214)

    * Make other methods from SQLite server example to return arrow::Result instead of Status

    * Fix bug for null values in numeric columns on SQLite server example

    * Add comment regarding to performance on sqlite_statement_batch_reader

    * Separate GetSqlInfoResultMap from sqlite_server.h

    * Remove unused parameter on DoPutCommandStatementUpdate

commit c36b81706a9d6260a733b5ad48baa26694759ddc
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Nov 26 13:25:38 2021 -0300

    Remove PRECOMPILED_HEADERS option on arrow_flight_sql's CMakeList.txt

commit 9e3c928cd870c81f1e2f4e2210c1fb3b05a4182e
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Nov 25 16:24:16 2021 -0300

    [C++] Address ratification comments (round 4 - part 2) (#213)

    * Make FlightSqlClient::GetFlightInfo return a Result instead of Status

    * Make most methods on FlightSqlServerBase to return a Result instead of Status

    * Move private functions on server.cc to anonymous namespace

    * Fixes on doxygen and better readability on server_test.cc

    * Rename fields on client_test.cc to follow the convention

commit 7d74b7efce86f77fd1b42716cec4d6b7c3a3bd13
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Nov 25 11:15:37 2021 -0300

    [C++] Address ratification comments (round 4) (#212)

    * Fix minor issues on sql_info_internal

    * Change table_types parameter to be a pointer

    * Improve GetSqlInfo error in case of no info

    * Replace ArrayFromVector to ArrayFromJSON in most cases

    * Improve server_test assertions and code quality

commit 56d84e9fd210a74c0aea7fb4675b76e35e12de76
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Nov 19 14:27:50 2021 -0300

    Rename directory flight_sql to sql (#210)

commit 9fcacf22c236ce45fd31ce13b0c4cf1370dee877
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Nov 15 18:13:57 2021 -0300

    Fix CMake minor issue, add sql_info_types.h

commit 76d04ea0dff846a1a3f5bf0176af1e287f4c05d3
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Nov 15 17:36:24 2021 -0300

    [C++] Fix comments on ratification PR (round 3) (#205)

    * Fix comments pointed on review

    * Replace boost::variant to arrow::util::variant

    * Remove unused macros and redundant definitions

    * Refactor sql_info_internal to prepopulate builder pointers on constructor

    * Replace ArrayFromJSON usage to ArrayFromVector for consistency on tests

    * Remove mention to GetFlightInfoForCommand from doxygen

    * Remove copy constructors on SQLInfo related visitors

    * Remove move constructors on SQLInfo related visitors

commit fd9bd948002ec393b05a1dfe50f4c8dceb5e4635
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Nov 15 11:25:53 2021 -0300

    Fix build when BUILD_EXAMPLES or BUILD_TESTS is OFF

commit f0555708f3b386382b1f32e28c825dce9802171b
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Nov 12 13:03:49 2021 -0300

    Enable Flight SQL C++ on CI

commit 6c98d52656971a00cd863c40ca87708a6c1e4488
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 11 16:38:45 2021 -0300

    Fix FindSQLite3Alt.cmake

commit 3cee40c5ddf7fc066e2d473202576284a946e66b
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Nov 11 14:56:58 2021 -0300

    Fix code style issues

commit ec1c4d0e2b36ef51a18cd28fdad6783bd3d69430
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Nov 11 13:21:25 2021 -0300

    Fix ODR violation when linking protobuf

commit 2e48187c2c683ea82f79d1abef520b385ed66b69
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 11 13:53:06 2021 -0300

    Fix method docs on server.h

commit c778682eee06d1dd6bb744ce979b165b8c1b8bc4
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Nov 11 08:50:21 2021 -0300

    Change Status to arrow::Result on CreateStatementQueryTicket method

commit 45b58cb00a48a751b231ecd054fe48e6e8741767
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Nov 10 17:31:05 2021 -0300

    Add documentation on public method GetFlightInfo

commit 6908d3851b1c85a9db15bb58c20ab818d7a98ef2
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Nov 10 17:21:02 2021 -0300

    Change status type on sqlite classes

commit 26f0c194fce55951d1c4af96e69b3cd0862e046d
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Nov 10 17:20:35 2021 -0300

    Make parameter ordering consistent

commit 8ececc8b17431fc50b40d2a045f86adc1d41974b
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Nov 10 17:19:21 2021 -0300

    Remove old use of CreateStatementQueryTicket

commit 9e352e3a77231942562964c968926d32e3d4cea2
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Nov 10 17:18:48 2021 -0300

    Change CreateStatementQueryTicket to a free function

commit 776d739476793cd47f70f156e144f966ec338126
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 11 11:25:45 2021 -0300

    Fix method docs errors on server.h and sqlite example

commit 404b27deb0df2833175a58efe63eaf718e50ffd1
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Nov 10 17:29:01 2021 -0300

    [C++] Implement GetSqlInfo on server example (#193)

    * WIP: Implement GetSqlInfo on server-side

    * Fix build and missing code parts

    * Add test for map<int, list<int>> @ GetSqlInfo

    * Fix integration tests

    * Fix comments pointed on review

    * Fix comments pointed on review

    * Add more comments about the logic around DenseUnionArrays

    * Remove unnecessary includes on sqlite_server.cc

    * Fix comments pointed on review

    * Use std::vector reserve and assign to avoid allocating temporary object

    * Remove unused dependencies on server.cc

    Co-authored-by: Abner Eduardo Ferreira <abenaru@pm.me>

commit 817baf9a5d347fc5d8cbf9c598458fbb85acfc3a
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Nov 10 15:05:20 2021 -0300

    Fix code style issues

commit 93f93c4c1148b394b660461f20a8a7511ff23546
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Wed Nov 10 14:27:18 2021 -0300

    [CPP] Fix issues from client files in flight-sql (#201)

    * Order include and rename protocol namespace

    * Change a reference to pointer in the client client and refactor the name of namespace on functions

    * Nit: remove empty line

    * Improve naming from protocol::sql namespace

    * Fix include and its orderding

commit 0519976bc9299607444c0f21141b939da6142da0
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Nov 10 14:23:05 2021 -0300

    Update vcpkg.json and remove unused variable on CMakeLists.txt (#200)

commit df1ce715fe6382979ceaa11cfc6e66d5219a5562
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Wed Nov 10 13:32:53 2021 -0300

    [CPP] Modify the way arrays are created in tests (#199)

    * Create array using method ArrayFromJson

    * Create array using method ArrayFromJson in server tests

    * improve conditional from if statement

commit 35a530ae5a8e0ca2dd5374bbddc94ebe10aef745
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 10 12:13:15 2021 -0300

    Fix FindSQLite3Alt.cmake

commit 5e1c200bffcec0e7f3a4038177233f5df9e46957
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 10 08:38:32 2021 -0300

    Fix linter erros on FindSQLite3Alt.cmake

commit 5f5ea06da8b7c62ea9419add7750f37fdedbf87f
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 10 08:37:05 2021 -0300

    Fix wrong parameter name on SetParameters docs on client.h

commit d40ef9994e532538615d4ca16a908db1dd8df631
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Nov 9 17:57:42 2021 -0300

    Reestructure FlightSqlClient to use virtual methods (#195)

commit 093b539df8f16e6e319869b7acbdae7789e91e47
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Tue Nov 9 16:03:32 2021 -0300

    Fix protobuf version on flight-core

commit 71f877df2e34b10e5c83e3540aca164ec0d46873
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Mon Nov 8 16:13:34 2021 -0300

    Remove wrong line on CmakeLists

commit 0b32b272ac1bd9b16d1bd4a7d2521db9780ffc30
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Mon Nov 8 15:03:58 2021 -0300

    implement FindSQLite3Alt on cmake modules

commit e2e57ae39876e1978138ca2b3d66ea9ecacaf7fc
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 4 13:04:00 2021 -0300

    Fix sql_client close before server stop server test

commit f604d468f9ba885a51f738c93c055d8f8d064f19
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 4 13:00:14 2021 -0300

    Fix sql_cliente close before server on server test

commit 9135703c25e4f54bd3d487676ce62739fbb3e52e
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 4 12:41:09 2021 -0300

    server.reset() and sql_client.reset() on server test TearDown

commit 2483ff4cfd7674a2ad5f6a432569419bcbf179d9
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Nov 4 11:49:11 2021 -0300

    Change sql_client to unique_pointer on server test

commit 46569759a234cf62a1897bdd2ae12687faba852c
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 3 18:23:23 2021 -0300

    Change server to unique pointer on server tests

commit 698645d127de4647e72cc93236f4700fc0a7a6ea
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 3 17:26:24 2021 -0300

    fix server stop on serve rt

commit 70bda0c5c117121787922987b6687749c73a2ea0
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 3 16:01:06 2021 -0300

    Fix test_server

commit 24343e24df274eb1566971ab139f7ac33dc5fb6a
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 3 15:42:56 2021 -0300

    Fix memory leak with mock

commit 89b4f17cf9aac989f9aa09fa6a0d2113532d9a9d
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Nov 3 14:04:58 2021 -0300

    fix: correct issues on tests

commit 996c708e6835adad8468d5ece6ba5e5ca2693d4b
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Tue Nov 2 16:28:08 2021 -0300

    Format test files

commit d480e77dd7c54a18823f2af3f676755d8f4e8785
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Oct 28 14:55:12 2021 -0300

    Made fixture to client_test.cc to avoid duplication

commit 75f67ad5e2cefde1cd0d6145a928066b6a9b5215
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Oct 27 11:02:19 2021 -0300

    Fix some issues on CMake and Server Test

commit 4abcd45a0e0706c9d8da1cbb79807971acbb0bf1
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Tue Nov 2 15:18:00 2021 -0300

    fix: merge test client

commit 39f63c24e41a8f9d83793696e38435dc83890e87
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Thu Oct 28 14:55:12 2021 -0300

    Made fixture to client_test.cc to avoid duplication

commit 9ef1cae7645fc4456d55d6bd8e365368b69b8533
Author: Juscelino Junior <juscelinojunior@id.uff.br>
Date:   Wed Oct 27 11:02:19 2021 -0300

    Fix some issues on CMake and Server Test

commit 697cde3dab946f727d56d7a0cbdec68ce7b9a301
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Nov 3 17:54:35 2021 -0300

    [C++] Ensure client_test.cc does not violate ODR (#192)

    * Ensure client_test.cc does not violate ODR

    * Format CMakeLists.txt

commit 9716a20c949717eeb3db064df9ee15184d0bea2d
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Nov 3 16:12:07 2021 -0300

    Fix issues reported by cppcheck

commit 92c546444714402dbf7e25f6643c08951e98c800
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Nov 3 13:17:52 2021 -0300

    Remove unused variable on CMakeLists.txt

commit f080caa3739a71992bf11ec37c03485eb604f763
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Tue Nov 2 17:42:37 2021 -0300

    [CPP] Fix on sqlite classes from FlightSqlServer (#181)

    * Change FlightMetadataWriter and FlightMessageReader from unique_ptr to raw ptr

    * Change reinterpret_cast to dynamic_cast

    * Add const to sqlite3Stmt getter

    * Add const to string parameter

    * Using ARROW_ASSIGN_OR_RAISE to buffer and batch creation

    * Change from unique_ptr to raw ptr

    * Change sqlite_tables_schema_batch_reader extension from cpp to cc

    * Avoid instantiate a string object

    * Make ExecuteSql return Status

    * Change Create methods from sqlStatement to return Result<T>

    * Fix from rebase

    * Fix from rebase

    * Fix server initialization

    * Fix checkstyle

    * Add missing ;

    * Fix docs on methods

    * add explicit to sqlite_server.h constructor

    * Fix double free

    * Add comment of ownership to SQLiteFlightSqlServer constructor

    * Fixed possible close with null_ptr on sqlite classes

    * Fix style issues

    * Use static_cast instead of dynamic_cast

    * Fix other review comments

    * Use 'static_cast' when casting scalars on sqlite_server.cc

    * Fix comments pointed on review

    Co-authored-by: Rafael Telles <rafael@telles.dev>

commit c079a477bb849594ff1e899dab4983519bed8d90
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Nov 2 17:30:40 2021 -0300

    [C++] Use util::optional on Flight SQL structs (#191)

    * Use optionals on Flight SQL command structs

    * Use delete instead of free() on server_test.cc

    * Un-nest PreparedStatement class from FlightSqlClient

    * Make PreparedStatement::IsClosed const

commit b26bfc40d4a85d0a685d7a985e1541828f613027
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Nov 2 14:54:53 2021 -0300

    [C++] Other fixes for ratification (#190)

    * Rename sqlClient to sql_client on test_app_cli.cc

    * Add missing parameters on PreparedStatement constructor

    * Add NOTE to PreparedStatement destructor

    * Parse PreparedStatement's dataset and parameters schema when constructing

    * Rename Flight SQL Actions constants

    * Remove unnecessary 'using' keyword on server.h

    * Clean up header files and includes

    * Rename getters for schemas on PreparedStatement and make them const

    * Handle possible protobuf parsing errors on server.cc

    * Move CreateStatementQueryTicket implementation to sql namespace

commit 8095b6e9b8593fb15d528c863f9d9a8963b02013
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Nov 1 14:04:48 2021 -0300

    Remove unused includes on server.h

commit 166bb6b40544ea0a58354b1e553711338ceddcea
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Nov 1 14:02:01 2021 -0300

    Rename directory flight-sql to flight_sql

commit d89a82ee66a67e22e88dca5a766a3c0e57d9c1f1
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 28 17:57:08 2021 -0300

    Remove unnecessary const modifiers on client interface

commit 838469fae0a8cab867d3574a74d0ffccd6a5faa4
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 28 17:23:04 2021 -0300

    Remove explicit using of GFlags namespaces

commit 3d0dcfecb203fe89354a0422592873a17bc8ca92
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 28 17:07:26 2021 -0300

    [C++] Remove templating from client interface (#184)

    * Fix variable initialization

    * Remove templating from FlightSqlClient and PreparedStatement classes

    * Fix inconsistent member names

    * Make PreparedStatement an inner class of FlightSqlClient

    * WIP: Use references on FlightCLientImpl methods

    * Use shared_ptr<FlightClientImpl> to avoid dangling pointers

    * Log error when deleting PreparedStatement

    Co-authored-by: Jose Almeida <almeidajcr90@gmail.com>

commit f1199debe277b0629692d27d0a409b016b6107df
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Thu Oct 28 16:56:28 2021 -0300

    Add ARROW_EXPORT and change designated initializer from struct (#189)

commit 4dfa02606adbea3947696024d9fc50a6336bbce9
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Oct 27 13:17:40 2021 -0300

    Handle errors on all Parse and Unpack calls to Protobuf (#185)

commit 92b7b48a346f46d4f0049ea6479a29609ade7399
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 26 17:52:14 2021 -0300

    Improve DoPutUpdateResult parsing

commit 6ab6e27e2262a5bc535e075747693e97740ee190
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 26 13:49:46 2021 -0300

    Change ASSERT_TRUE to AsserTableEqual()

commit 30929b7920d477c2a9f2d7d69dc5d9253c4349f2
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 26 11:55:35 2021 -0300

    Fix linting issues

commit 5acfa2325674dd61a31e6146e5e29289d1ffbd72
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 26 11:29:48 2021 -0300

    Fix compiler warnings on client_impl.h

commit fdbe5f1a6368d3232bc62fea0cd4663e61e67cf8
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 26 11:19:41 2021 -0300

    [C++] Wrap Protobufs on server (#182)

    * WIP: Wrap CommandStatementQuery protobuf into a struct

    * Wrap all Protobuf for commands on server

    * Change Parse methods as anonymous functions

commit 5010c1baac182dc7b318e67a6c91da3d4cf66f79
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Oct 25 15:42:35 2021 -0300

    Fix flaky tests

commit ba7332757b197a34c2b3619690419816f0c62820
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Oct 25 15:00:08 2021 -0300

    [C++] Improvements on CMakeLists.txt (#178)

    * Remove extra options on CMakeLists.txt

    * Remove GRPC-related instructions from CMakeLists.txt and guard SQLite requirement on ARROW_BUILD_TESTS

    * Remove redudant dependencies on CMakeLists.txt

commit 9a96bbdcd1befd5c93aa9bbd47dcd4a78c070666
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Mon Oct 25 14:23:50 2021 -0300

    [CPP] Change the way arrays are created in flight-sql tests (#179)

    * Create arrays using methods MakeArrayOfNull and ArrayFromJSON

    * Fix checkstyle

    * Remove macro declare binary array

commit 3895b53c5a49b37ebc403c7aa4f897eb06a85209
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Oct 25 11:26:31 2021 -0300

    [C++] Improve Client interface (#180)

    * Use '#pragma once' on header files

    * Remove ghost parameter on Doxygen for PreparedStatement.Execute

    * Change client interface to use Result instead of Status

    * Rename sqlClient to sql_client on tests

commit 655d8dd0b88ccfc0905226dc6fa1058c9917f22c
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 22 16:26:19 2021 -0300

    Use ASSERT_OK on client_test.cc

commit 87e02ac0921ff4277adf8dae10347f222c9b0c37
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 21 14:06:38 2021 -0300

    Fix linter issues

commit 8b5324f730ca55cc556b3e9517ca40af7826dac6
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 19 11:18:17 2021 -0300

    Rename flight-sql/server.cpp to server.cc

commit e9aafe7c3e9dafa348bf9efea9bc8e2dfd3d091f
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 19 11:09:31 2021 -0300

    [C++] CommandGetCrossReference (#172)

    * Add CommandGetCrossReference on FlightSql.proto

    * Implement CommandGetCrossReference on C++ client

    * Implement CommandGetCrossReference on C++ server example

    * Update FlightSql.proto

    * Update FlightSql.proto

commit 84ae269e1f131e175bc254cb7bef408b957870a7
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Oct 18 16:10:10 2021 -0300

    Implement CommandPreparedStatementUpdate on SQL server example (#169)

    * Implement CommandPreparedStatementUpdate on SQL server example

    * Refactor sqlite_server to avoid duplication

commit d0e94764bbfc0dc0f6485b122b875f6de1d6e58c
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Oct 18 14:21:42 2021 -0300

    Fix wrong error messages on server.cpp

commit 6248009942d05bd955c1f6e4ef4a67c8ac3311bb
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 14 17:59:19 2021 -0300

    Rename server files

commit a89a8ffec3a0080cc0ab28fe78599c50afc6c782
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 14 17:28:38 2021 -0300

    Fix CheckStyle issues

commit b30041539f491f31df46abd94e121cd870931905
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Thu Oct 14 14:15:38 2021 -0300

    Fix resource leak where record batch is being created for client_impl.h

commit 5d03029a092075b7ff816cf32f995f864aaf4bb0
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Wed Oct 13 17:57:26 2021 -0300

    Minor refactor: move variables closer to used

commit ade534d655d4ad99da920db891015774a034f2df
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Wed Oct 13 16:04:20 2021 -0300

    Fix SIGSEV in test case for PreparedStatement.ExecuteUpdate with parameter binding

commit b9205c1de5b11e89c3c3bee5d24305f2ba8bd4ad
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 13 15:32:41 2021 -0300

    Refactor ExecuteUpdate with parameter binding test

commit 14d2725e337e1d297eeb6638742f94c5bf560728
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Wed Oct 13 14:46:46 2021 -0300

    WIP: Refactor test cases for PreparedStatement.ExecuteUpdate to use lambda functions

commit 464248d4ef4fa8b9f17be8b96f5671f0f9eec2a6
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Wed Oct 13 12:05:25 2021 -0300

    WIP: Refactor test cases for PreparedStatement.ExecuteUpdate

commit 86fe0463d75db9059b4a73a3d71a4a17ccf05905
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Tue Oct 12 17:33:48 2021 -0300

    Fix rebase issues

commit d9ab9348e49ed2aef29183df0f0315693cc6b676
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Tue Oct 12 17:19:46 2021 -0300

    Add test case for PreparedStatement.ExecuteUpdate with parameter binding

commit 2d23d07476b9be306507a00b76ffd8eae5053b7b
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Tue Oct 12 16:36:22 2021 -0300

    Fix broken test for PreparedStatement.ExecuteUpdate without parameter binding

commit 22320fd20ecf83e92406df0dd3c3d97d7f465895
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 8 18:04:35 2021 -0300

    Make changes regarding to reviews

commit 247be5bc7b0fdef71d4ce16747fc1185b59bb245
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 8 18:04:35 2021 -0300

    Make changes regarding to reviews

commit a9c11db01101843e96e8c88468959bd9b8e21e4f
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 8 15:07:01 2021 -0300

    Add integration tests for PreparedStatement query

commit 54ecc387d745b38b66f1bd6a1d0d96cc05cd9ffa
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 8 14:04:05 2021 -0300

    Add missing docs for GetArrowType

commit b8417b1a2295730772de68975b7a82c0e1bb655d
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 8 13:55:19 2021 -0300

    Remove GetArrowType method duplicate

commit 66a0e41244bc3aa2df7a935dfcd2cc735d3bb138
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 7 13:35:55 2021 -0300

    Implement parameter binding on Flight SQL server and example

commit 1bf1ea0dd737c89be10646be2a99b6bd08c3106f
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 5 15:15:03 2021 -0300

    WIP: Implement prepared statement on server example

commit 1e437aa119dd8d807918ba46b7b8ec8076142a35
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 5 14:00:35 2021 -0300

    Add Create/Close prepared statement actions to sql_server

commit 6e2c9e9bf84ccad95cf700a3ac4b94d7636039b7
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 12 15:27:09 2021 -0300

    [C++] Implement CommandGetImportedKeys and CommandGetExportedKeys (#163)

    * Implement CommandGetImportedKeys and CommandGetExportedKeys on Flight SQL Server example

    * Refactor DoGet methods to reduce code duplication

commit 171d540ac82c3b4bfbb0a5ab53f9d9362dc7c67e
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Tue Oct 12 14:31:14 2021 -0300

    [CPP] Implements GetPrimaryKeys on flight sql server (#162)

    * Add Schema template for the primary keys

    * Implement GetPrimaryKeys on server

    * Add an integrated test for GetPrimaryKeys

    * Fix checkstyle

    * Add a comment to the query on primary keys query

    * Use GetFlightInfoForCommand helper method on GetFlightInfoPrimaryKeys

    Co-authored-by: Rafael Telles <rafael@telles.dev>

commit e8efe631e106c2dc9788af6db99899353a7b10d4
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Oct 8 15:57:04 2021 -0300

    Implement CommandGetTableTypes on server example

commit 042fcc250c597bb03e95901b739251b68ff04557
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 15:17:46 2021 -0300

    use variable close to its use

commit afd0e3e8c6af317d23dbfb0ad64b9ee8c1aeaf21
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 15:17:00 2021 -0300

    Add comment when calling ReadMetadata on DoPut

commit 51462791dcb003b4b2e56795403577e646ef78b7
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 15:16:28 2021 -0300

    Sort includes alphabetically

commit 2f1c93585632e62e6baf73c6f0d5f977015eca31
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 15:15:54 2021 -0300

    change const references from setParameters method

commit 8327b47cb50c3808e0ed06fc63ac99419efc3a35
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 14:21:43 2021 -0300

    change (void) to ASSERT_OK on test

commit 432b0267573138134219e78d22fc9aea4e4c92f6
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 14:21:26 2021 -0300

    Implement method GetResultSetSchema

commit eb2f76ce63cbbe514288886f9c8ab5c0157971c9
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 13:39:56 2021 -0300

    Add missing docs to prepared statement methods

commit e3facf744f7ad0d4466a28121a522a8542020387
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 13:27:35 2021 -0300

    Add prepared statement parameter binding to test app

commit b59afc612594fdcfa64f1d633c263856f044d25b
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 13:27:11 2021 -0300

    Create a mocked client test for parameter binding

commit 15a6b3d17ce168a30c83049185bd9a97c7ad5311
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 13:26:00 2021 -0300

    Pass option to DoPut CALL

commit b19552ee18036912f21994f20349fb831206b345
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 8 13:25:35 2021 -0300

    Fix add a break line

commit b2b1b8c3c854048ef793160e69a8f098ab4133a0
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 14:50:34 2021 -0300

    Add macro ARRROW_RETURN_NOT_OK

commit 9ccb72e90d2bee8d77b704156f99f2785665191e
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 14:49:28 2021 -0300

    remove TODO

commit 7f9daa9f467461c3b4010417588131c05b8d8fa8
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 14:49:00 2021 -0300

    remove unused code from test_app

commit 832aec33f9b3667e7d60681a1acd70f3bcdb26d6
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:29:57 2021 -0300

    add paremter binding to query execution with prepared statement

commit e98fd67350e7c8839a1bdc361cb55c07a026e501
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:29:25 2021 -0300

    Add methods to set and get parameters

commit e85e8f84e04a1e6fb60672ae352481fd45a8a3fc
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:39:18 2021 -0300

    Fix checkstyle

commit 46c568171b8d0f45a19b6929e5fac7f6d605e64b
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 5 13:14:55 2021 -0300

    Implement CommandGetSchemas

commit ca738150306bab8866f4398749d697fdfddf7000
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 7 17:49:05 2021 -0300

    Add missing docs for DoPutCommandStatementUpdate

commit 08b029434dcae677e27f53fe4cc1d7fec02f0b7e
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 7 14:20:27 2021 -0300

    Implement CommandStatementUpdate on server example

commit ac77dbc9b310271b8ec578d96299e8b05dc4cb0b
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 7 17:52:07 2021 -0300

    Change SqliteStatement.Reset argumento to pointer

commit dcc8f7fb5f80d69abe78334dd0eb0ad770411772
Author: Abner Eduardo Ferreira <abenaru@protonmail.ch>
Date:   Thu Oct 7 15:37:01 2021 -0300

    Add GetSqlInfo on client side for FlightSQL

commit f8f404ada1c5fd778a60912597c61f5f1a0d8bd4
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Oct 7 15:06:11 2021 -0300

    Remove duplicate import

commit 3c3b928fd22ad1b35421eb7108dfa336f5bc3073
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 14:44:12 2021 -0300

    Make the mock object be called twice

commit a9361aa41958be9494da639a6bc495b31bf4120f
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 14:16:18 2021 -0300

    Remove options as parameter from PreparedStatement methods

commit 6759818b9567692dad9e6166a897b06041f98b66
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 14:04:10 2021 -0300

    Make the destructor call the Close method

commit 8f23bd5953697a7559d9e8818f91ff65c9cd4969
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:50:24 2021 -0300

    rename the variable of the CommandPreparedStatementQuery

commit d30cef29e2a51c2bc4d476471b0e7740dd029098
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:49:51 2021 -0300

    Move constructor to the top of the file

commit de161ec9d10eb1a8cf563e4b33cce247f24fd764
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:49:17 2021 -0300

    Remove extra lines and duplicated import

commit 8d60000190848035b3d138a3f92ea6ad331d2b3d
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 16:42:19 2021 -0300

    Remove duplicate function due to rebase

commit 78b454094835bff1a829f3dec1e3cbb4a5d0fcf3
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 16:28:22 2021 -0300

    Modify the constructor of the PreparedStatement

commit f80bfafaa4b93513010b0fe4651720a87f6f8a25
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 16:28:10 2021 -0300

    Pass options to the client calls

commit 4b0adb6cabf9f357ca7afe53ea64d5b8a0aa262d
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 15:13:30 2021 -0300

    Fix test_app for prepared statement execution

commit 297b7f06968e859149b6adca4aa4d4f7d5e2f637
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 15:09:04 2021 -0300

    Treat if the statement is already closed

commit a46dd6db945744c0b7f7ae81cf4abc6a07475f2d
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 14:59:15 2021 -0300

    Adding missing files from rebase

commit 9414a2ef4a054ced35ed7c49dd9963db879dfa01
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 14:59:05 2021 -0300

    Fix checkstyle

commit a5c362c2f59929f3fe4077c87f882a3f1b09ebca
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 22:31:36 2021 -0300

    Add a branch on test_app to execute a query with PreparedStatement mode

commit fe96fe096dbba6088808dee434f262aeda5d304b
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 22:31:09 2021 -0300

    Refactor the creation of the PreparedStatement on sql_client

commit ea75e69ba05b25b5aaa9752a91cd046edd1135f7
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 22:18:31 2021 -0300

    Create a mocked sql_client test for the preparedStatement

commit ee1ed1930d8f3374760388f7ac394f6197174629
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 22:18:12 2021 -0300

    implemenet methods PreparedStatemenetClass in sql_client

commit 83b1c169d6604b346d373509e301cb10f56aec49
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 22:16:37 2021 -0300

    Add PreparedStatementClass to sql client

commit 3b08157e1ab88515e4f67c966868ccd31a4ac033
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 29 17:16:52 2021 -0300

    Implement CommandGetSchemas

commit 3066113d217e508d409c27c8eb626682057cd629
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:39:18 2021 -0300

    Fix checkstyle

commit 70800d0a19d046aefd6b4ced477a9a339846e81d
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 28 16:09:27 2021 -0300

    Add the schemas to be used by the GetTabkes

commit 2a221a6a957c479253fa820c792fec6e573df2c6
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 5 13:14:55 2021 -0300

    Implement CommandGetSchemas

commit 1036ec8c11f1a7992f7a435762702dbc199152c7
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:39:21 2021 -0300

    Remove extra line

commit a7ff4573a72ffed2eb401ae291b29dc0b3477b12
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:39:09 2021 -0300

    Add missing return at docs from SqlSchema methods

commit 6c52c281353322d9416e10d2d393bbfe46ffbcfd
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:35:22 2021 -0300

    Passes the rc variable as reference to Reset method

commit b7089548f4219cbb8e994d24da427a0bd060aa00
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Oct 7 13:32:12 2021 -0300

    Remove unused RecordBatchReader

commit 250a3c4b4a3db0967c17bb8384c8e3ad7976d598
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 16:11:18 2021 -0300

    Add missing include

commit 95e7507622be9037b819a17ed7f1163dad1893a1
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 16:00:20 2021 -0300

    Fix missing files from rebase

commit acfaec0df1c08c32907cb05093fd2b23ddf2dbcb
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 14:15:41 2021 -0300

    Add a variable to control the execution flow

commit d10d1916c3cf7777029b4803f2d86045799a6da6
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 14:15:19 2021 -0300

    Add a method to reset the statement to its original condition

commit ec0319c26d2c44e7f30855066e3212064e7f4d03
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 13:25:19 2021 -0300

    Fix checkstyle

commit 6bf3fdecf5f55e0715a354c09b89ec5407e14624
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 12:00:26 2021 -0300

    change parameter from string to char* on GetArrowType method

commit 4f0807a7eb8d99e363ce07e33364acc164621a89
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 12:00:03 2021 -0300

    Remove status from sqlite use

commit 05d6280326872b3f7f75bc51b8e8f91ef49979c1
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Oct 6 11:59:30 2021 -0300

    Move anonymous function to the top of file

commit d962a33462b2061e9926a540f016d761247fbec5
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 16:04:37 2021 -0300

    Fix checkstyle

commit 9f90bdec11c5827d6ac790f5345a2707b5d1b9a5
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 16:01:52 2021 -0300

    Refactor constructor from the class sqlite_tables_schema_batch_reader

commit 61af7d444e635855fe0854dfba49d26cf75f38ac
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 16:01:22 2021 -0300

    Fix import order

commit 5e2071c84e3775f09814548655986456bd257f1a
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 16:01:11 2021 -0300

    Decouple method PrepareQueryForGetTables from the class

commit 449938b94b5b1d4ba241ec31ad57ee3ab91aee15
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Oct 5 16:00:16 2021 -0300

    Remove extra space

commit e5ea5eba96bb9fbce298454441cd2d62cd7a1b7c
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 1 18:15:41 2021 -0300

    Pass the query to the batch reader vector for the table with schemas

commit abe5af8dd3412531a46aa35fa03d02b78200481f
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 1 18:15:14 2021 -0300

    Invert order of vector on tests

commit 4a99053103e53a08c6f8398d3473351ea8f450b2
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Oct 1 18:14:15 2021 -0300

    Add method prepareQuery

commit bd19a660f588e6a4e17907a6ff972e05407aa0cf
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 16:45:24 2021 -0300

    Fix checkstyle

commit 9a838a9dd04279526b5b3d25b683556f0526b6c6
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 16:44:07 2021 -0300

    Update CMakeLists.txt

commit 574878f2e7cec50658b19fd3668a0755795d8769
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 16:43:57 2021 -0300

    Set values from catalogs and schema as null

commit 0aa1cab6dd1743d59ed5f9252b7fc3cd54649e4e
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 16:43:41 2021 -0300

    Modify Macro from builder to deal with null values

commit b8d8396a1b2585d4f02895c91a850fe90d559550
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:39:52 2021 -0300

    change constructor initialization

commit 8e846c84631e6dcf2dce99d129e8b788c12aae57
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:39:18 2021 -0300

    Fix checkstyle

commit 60b8326c29411d709dcf43b4b2aca9277d8baa99
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:09:11 2021 -0300

    Add more test for the GetTables

commit 5bc0e9f2449cad3f128a936194682c7e52f9b8cf
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:08:57 2021 -0300

    Add a DECLARE_BINARY_ARRAY for testing

commit 01266d72b56edc38071b83bfcabc8257be277cfc
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:08:23 2021 -0300

    Add table type filter to the query

commit 8a02752d9f1ef897937e0c48f98c42213f2f8672
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 15:07:45 2021 -0300

    Refactor methods that parse the table type to field type

commit a0f32ba9ab4bf390110d772c353592f018d5f692
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 30 09:59:53 2021 -0300

    Refactor test from GetTables

commit 8a3dc6d8e20cf8826849453607dae92b83d6050d
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Sep 29 11:28:54 2021 -0300

    Add new tests to GetTables

commit aef712a73a4640c76088e08cd8ca339b934e16e0
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Sep 29 11:28:41 2021 -0300

    Add new filter to the query on GetTables

commit 814dc10579876ef44017a9bb74eec0efef224fd7
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Sep 29 11:28:23 2021 -0300

    Refactor the name of class sqlite table schema batch reader

commit 7d53dd6a3343569fca9279e9968c5f7678895fcc
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 28 16:09:39 2021 -0300

    Add class to tge CMakeLists.txt

commit 86a0ba0b3d1a186dab33c48ffedaa1ebbbcfbf63
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 28 16:09:27 2021 -0300

    Add the schemas to be used by the GetTabkes

commit 6b6d9c2b9bc13d2a46b13dce81f9f16f723fbaf8
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 28 16:09:09 2021 -0300

    Include methods GetTablesFlightInfo and DoGetTables

commit 203e64f1116072e06874430be839832824965f04
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 28 16:08:46 2021 -0300

    Create a class to deal the DoGetTables when schema is included

commit cac2d9fb56408e223be9ea0ca76582e57a0f2223
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Oct 6 15:11:16 2021 -0300

    Fix style issues

commit c750b15a1c1d7543517f82bb3fe2594ad06d9e5b
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Oct 6 15:11:16 2021 -0300

    Fix style issues

commit b22fe92358cc1a8c5d7342ae0fda7101fbd00d19
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Sep 30 11:14:06 2021 -0300

    Undo unscoped changes to other files

commit e68f6e689d366a3b2299f7c3d7e948de724735d7
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 29 17:16:52 2021 -0300

    Implement CommandGetSchemas

commit f1d9f9da9d297c8e17979623d32f6aeec95de654
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Sep 30 15:39:43 2021 -0300

    Fix checkstyle errors

commit 2fdc7c84cdfc1236baaf1f2fb478e6c8048d260f
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Sep 30 13:17:10 2021 -0300

    Fix problem when linking protobuf to flight-sql targets

commit 5e57cd15cb480bbd6f743009a6a763c8a8e26f0b
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Oct 5 13:14:55 2021 -0300

    Implement CommandGetSchemas

commit b8f5dda429b7aebbcc936270d3123ff0cc27f27d
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 29 17:42:15 2021 -0300

    Make GetCatalogs return empty results

commit a631b4f97f43f9f7074888c6b0e158df13bc93e5
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 22:30:11 2021 -0300

    Add comment about hardcoded GetCatalogs implementation

commit d754fdec6fbd724c50c81024d3e00a8bd7bfcd9a
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 19:06:10 2021 -0300

    Fix minor comments on PR

commit 060e9b45998512f53d30f072693194a00c53e104
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 16:04:32 2021 -0300

    Refactor tests to reduce duplication

commit 7add18f4f40f7865298c31f7a3a523be2e191f9e
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 15:07:40 2021 -0300

    Implement CommandGetCatalogs

commit 5d3bc66c200abc30fd421ac7eb0c1c6bb87985cb
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 16:30:11 2021 -0300

    Improve readability for SqliteFlightSqlServer setup

commit 68bec018bd9784327d27dc80b80c84e18077606c
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 16:07:07 2021 -0300

    Fix minor comments on PR

commit 93c5a4ba70e2dd6b2083c8235255af095a3a703b
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 14:27:29 2021 -0300

    Fix checkstyle errors

commit 2232dd67f3829aa61feea031809dad4543e75c21
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Sep 27 16:36:06 2021 -0300

    Add integration tests for Flight SQL server example

commit f7b6461ee156d05e602f4af287d1ae7be54794f2
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Sep 24 16:04:58 2021 -0300

    Add documentation to example classes

commit 3584fc07f7fd76ab46ab76215d609cb35d344c91
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Sep 24 15:42:35 2021 -0300

    Add missing sqlite3 dependency on vcpkg.json

commit 87fc8aae9cb0e5819dadc2f3a1ba394904f2acc2
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Sep 24 15:38:02 2021 -0300

    Implement Flight SQL example server using SQLite3

commit 9dd9a3216c735183039cd87fb9d077433fec17f1
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Sep 28 14:00:22 2021 -0300

    Change default Status return on GetFlightInfo and DoGet

commit 5bd548fb8f720397c1e7756151ac8c68190741c2
Author: Rafael Telles <rafael@telles.dev>
Date:   Fri Sep 24 15:35:25 2021 -0300

    Remove empty constructor and destructor from FlightSqlServerBase header

commit cffd1f4cbb5d9199bb47807e7fef131ac4359a7a
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Sep 24 15:20:36 2021 -0300

    Separate implementation from header file

commit 685ccd00406593a35ee4156004db5a4b9a499c03
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Thu Sep 23 11:38:27 2021 -0300

    Add missing else if on DoGet method

commit 4099ad21518a087ed818587be3e73ef84368398e
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 22 15:16:52 2021 -0300

    Improve documentation on sql_server.h

commit 8aaee1edcf1e248bb62ec4c81e0ef52097879ec0
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 22 14:29:16 2021 -0300

    Fix wrong arguments on server header file

commit 5f7a4c81195c7bf688e1f82cef8781f7299d89d0
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 22 14:13:36 2021 -0300

    Implement missing branches on DoGet

commit c5d63016cf700fdd3bcd3526011608ac0482c652
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Sep 22 14:11:58 2021 -0300

    Add more statement to the getFlightInfo methods

commit a25bb904c90726473816ba9d6fc11be1441e111c
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 22 14:00:27 2021 -0300

    Remove doPut* methods (not used yet)

commit eeb4a3531d607d9a57513a04ec98c5282e7cc681
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Sep 22 13:56:52 2021 -0300

    Remove flight-sql from CMakeLists.txt

commit 03425db52435102f9fa40e20da3d497c4d0410f8
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Wed Sep 22 13:52:52 2021 -0300

    Add flight-sql server header file

commit bf5cfeff437e045cbf38945c82f64bcb8fbc5f2f
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Sep 20 15:25:42 2021 -0300

    Change ExecuteUpdate output argument to raw pointer instead of unique_ptr<int64_t>

commit bd2890ee117d64bca9856b3705eadd4eecd95274
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Sep 17 16:24:24 2021 -0300

    Change order of call from ExecuteUpdate on test_app.cc

commit 5e11c8243312d6c1dc7cb4723ada6f2cff739940
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Sep 17 16:11:47 2021 -0300

    Checkstyle fix on flight-sql

commit 59e1c2897fc2adb0891072faad09c92745bb18c5
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Sep 17 16:11:36 2021 -0300

    Change order of output parameters on methods from flight-sql

commit 7aa4c14425b5b2628e16488166dcd9fe762454be
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Fri Sep 17 16:09:25 2021 -0300

    Change rows on executeUpdate to a unique_ptr

commit 015d015ea7da2f8347c63b76c55768656b8d8f27
Author: Rafael Telles <rafael@telles.dev>
Date:   Thu Sep 16 10:30:27 2021 -0300

    Refactor client_impl to reduce duplication on FlightDescriptor build

commit 83db0122781b94c23557837661a27659ae8e4af7
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 14 16:56:07 2021 -0300

    Create a mock test for execute_update method on sql_client

commit e078c057148c9ed91176036485e7c4a8363fb779
Author: Jose Almeida <almeidajcr90@gmail.com>
Date:   Tue Sep 14 16:55:50 2021 -0300

    Implement executeUpdate logic on sql client

commit 69dbdecccf977d6b3a6fb33a76047ab368af546e
Author: Rafael Telles <rafael@telles.dev>
Date:   Wed Sep 15 19:33:25 2021 -0300

    [C++] Implement Flight SQL client test application (#121)

    * Implement Flight SQL client test application

    * Adjust PrintResults to consider multiple endpoints

    * Remove mentions to Dremio

    * Minor fix

    * Sort 'using' statements on test_app.cc

    * Transfer ownership of FLightClient to FlightSqlClient on constructor

    * Use reference instead of pointers on PrintResults

    * Make client methods to be const

commit fde5c0022594146b971a635c337616ffe86e5bd1
Author: Jose Almeida <53087160+jcralmeida@users.noreply.github.com>
Date:   Tue Sep 14 11:42:48 2021 -0300

    [C++] Implements methods from flight-sql-client  (#120)

    * add a header file to the sql-client

    * Implements methods from sql-client

    * Add configuration files to the flight-sql

    * Change getFlightInfo to virtual and its constructor to protected

    * Create a mock test for getCatalogs

    * Remove unused test from CMakeLists.txt

    * Fix checkstyle on flight-sql files

    * Fix duplicate tests execution

    * Add test for getSchema from flightsql

    * Update flight headers and implements getTable and getTableTypes

    * Add other unit tests for metadata methods

    * Fix checkstyle errors

    * Implement missing methods GetPrimaryKeys, GetImportedKeys and GetExportedKeys

    * Refactor flight-sql/client.cc implementation

    * Remove unimplemented ExecuteUpdate test

    * Add google/protobuf/message include to flight-sql-client

    * Undo changes on flight/client.h and use templates for mocking FlightClient on FlightSqlClient

    * Use string references where parameters can not be null

    * Reorder FlightSqlClient method arguments

    * Avoid needing to use diamond syntax on FlightSqlClient

    Co-authored-by: Rafael Telles <rafael@telles.dev>

commit f3fe962c5838c345589320d7c559526650e87cde
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Sep 6 11:37:08 2021 -0300

    Fix checkstyle issues

commit 2ed7b0efae2a6128f13920ed4e18d6d7d7f0d803
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Aug 24 14:12:37 2021 -0300

    WIP: Clean up changes

commit 7dc836e789b390297e191471e4aa142386bf793b
Author: Rafael Telles <rafael@telles.dev>
Date:   Tue Aug 24 13:49:32 2021 -0300

    Update FindArrowFlightSql.cmake

commit 370c92ef1d9748feef8c61e2b19515a558124939
Author: Rafael Telles <rafael@telles.dev>
Date:   Mon Aug 23 15:28:53 2021 -0300

    WIP: Set up flight-sql project on cpp directory
  • Loading branch information
rafael-telles authored and lidavidm committed Dec 20, 2021
1 parent 645edf3 commit 22bd624
Show file tree
Hide file tree
Showing 35 changed files with 6,686 additions and 1 deletion.
1 change: 1 addition & 0 deletions ci/docker/conda-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ ENV ARROW_BUILD_TESTS=ON \
ARROW_DATASET=ON \
ARROW_DEPENDENCY_SOURCE=CONDA \
ARROW_FLIGHT=ON \
ARROW_FLIGHT_SQL=ON \
ARROW_GANDIVA=ON \
ARROW_HOME=$CONDA_PREFIX \
ARROW_ORC=ON \
Expand Down
1 change: 1 addition & 0 deletions ci/scripts/cpp_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ cmake \
-DARROW_EXTRA_ERROR_CONTEXT=${ARROW_EXTRA_ERROR_CONTEXT:-OFF} \
-DARROW_FILESYSTEM=${ARROW_FILESYSTEM:-ON} \
-DARROW_FLIGHT=${ARROW_FLIGHT:-OFF} \
-DARROW_FLIGHT_SQL=${ARROW_FLIGHT_SQL:-OFF} \
-DARROW_FUZZING=${ARROW_FUZZING:-OFF} \
-DARROW_GANDIVA_JAVA=${ARROW_GANDIVA_JAVA:-OFF} \
-DARROW_GANDIVA_PC_CXX_FLAGS=${ARROW_GANDIVA_PC_CXX_FLAGS:-} \
Expand Down
4 changes: 4 additions & 0 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,10 @@ if(ARROW_GANDIVA)
set(ARROW_WITH_RE2 ON)
endif()

if(ARROW_FLIGHT_SQL)
set(ARROW_FLIGHT ON)
endif()

if(ARROW_CUDA
OR ARROW_FLIGHT
OR ARROW_PARQUET
Expand Down
2 changes: 2 additions & 0 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
define_option(ARROW_FLIGHT
"Build the Arrow Flight RPC System (requires GRPC, Protocol Buffers)" OFF)

define_option(ARROW_FLIGHT_SQL "Build the Arrow Flight SQL extension" OFF)

define_option(ARROW_GANDIVA "Build the Gandiva libraries" OFF)

define_option(ARROW_GCS
Expand Down
93 changes: 93 additions & 0 deletions cpp/cmake_modules/FindArrowFlightSql.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

# - Find Arrow Flight SQL
#
# This module requires Arrow from which it uses
# arrow_find_package()
#
# This module defines
# ARROW_FLIGHT_SQL_FOUND, whether Flight has been found
# ARROW_FLIGHT_SQL_IMPORT_LIB,
# path to libarrow_flight's import library (Windows only)
# ARROW_FLIGHT_SQL_INCLUDE_DIR, directory containing headers
# ARROW_FLIGHT_SQL_LIBS, deprecated. Use ARROW_FLIGHT_SQL_LIB_DIR instead
# ARROW_FLIGHT_SQL_LIB_DIR, directory containing Flight libraries
# ARROW_FLIGHT_SQL_SHARED_IMP_LIB, deprecated. Use ARROW_FLIGHT_SQL_IMPORT_LIB instead
# ARROW_FLIGHT_SQL_SHARED_LIB, path to libarrow_flight's shared library
# ARROW_FLIGHT_SQL_STATIC_LIB, path to libarrow_flight.a

if(DEFINED ARROW_FLIGHT_SQL_FOUND)
return()
endif()

set(find_package_arguments)
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION)
list(APPEND find_package_arguments "${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION}")
endif()
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
list(APPEND find_package_arguments REQUIRED)
endif()
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
list(APPEND find_package_arguments QUIET)
endif()
find_package(Arrow ${find_package_arguments})

if(ARROW_FOUND)
arrow_find_package(ARROW_FLIGHT_SQL
"${ARROW_HOME}"
arrow_flight_sql
arrow/flight/sql/api.h
ArrowFlightSql
arrow-flight-sql)
if(NOT ARROW_FLIGHT_SQL_VERSION)
set(ARROW_FLIGHT_SQL_VERSION "${ARROW_VERSION}")
endif()
endif()

if("${ARROW_FLIGHT_SQL_VERSION}" VERSION_EQUAL "${ARROW_VERSION}")
set(ARROW_FLIGHT_SQL_VERSION_MATCH TRUE)
else()
set(ARROW_FLIGHT_SQL_VERSION_MATCH FALSE)
endif()

mark_as_advanced(ARROW_FLIGHT_SQL_IMPORT_LIB
ARROW_FLIGHT_SQL_INCLUDE_DIR
ARROW_FLIGHT_SQL_LIBS
ARROW_FLIGHT_SQL_LIB_DIR
ARROW_FLIGHT_SQL_SHARED_IMP_LIB
ARROW_FLIGHT_SQL_SHARED_LIB
ARROW_FLIGHT_SQL_STATIC_LIB
ARROW_FLIGHT_SQL_VERSION
ARROW_FLIGHT_SQL_VERSION_MATCH)

find_package_handle_standard_args(
ArrowFlightSql
REQUIRED_VARS ARROW_FLIGHT_SQL_INCLUDE_DIR ARROW_FLIGHT_SQL_LIB_DIR
ARROW_FLIGHT_SQL_VERSION_MATCH
VERSION_VAR ARROW_FLIGHT_SQL_VERSION)
set(ARROW_FLIGHT_SQL_FOUND ${ArrowFlightSql_FOUND})

if(ArrowFlightSql_FOUND AND NOT ArrowFlightSql_FIND_QUIETLY)
message(STATUS "Found the Arrow Flight SQL by ${ARROW_FLIGHT_SQL_FIND_APPROACH}")
message(STATUS "Found the Arrow Flight SQL shared library: ${ARROW_FLIGHT_SQL_SHARED_LIB}"
)
message(STATUS "Found the Arrow Flight SQL import library: ${ARROW_FLIGHT_SQL_IMPORT_LIB}"
)
message(STATUS "Found the Arrow Flight SQL static library: ${ARROW_FLIGHT_SQL_STATIC_LIB}"
)
endif()
43 changes: 43 additions & 0 deletions cpp/cmake_modules/FindSQLite3Alt.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

# Once done this will define
# - FindSQLite3Alt
#
# This module will set the following variables if found:
# SQLite3_INCLUDE_DIRS - SQLite3 include dir.
# SQLite3_LIBRARIES - List of libraries when using SQLite3.
# SQLite3_FOUND - True if SQLite3 found.
#
# Usage of this module as follows:
# find_package(SQLite3Alt)

find_path(SQLite3_INCLUDE_DIR sqlite3.h)
find_library(SQLite3_LIBRARY NAMES sqlite3)

# handle the QUIETLY and REQUIRED arguments and set SQLite3_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SQLite3Alt REQUIRED_VARS SQLite3_LIBRARY
SQLite3_INCLUDE_DIR)

mark_as_advanced(SQLite3_LIBRARY SQLite3_INCLUDE_DIR)

if(SQLite3Alt_FOUND)
set(SQLite3_INCLUDE_DIRS ${SQLite3_INCLUDE_DIR})
set(SQLite3_LIBRARIES ${SQLite3_LIBRARY})
endif()
4 changes: 4 additions & 0 deletions cpp/src/arrow/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,10 @@ if(ARROW_FLIGHT)
add_subdirectory(flight)
endif()

if(ARROW_FLIGHT_SQL)
add_subdirectory(flight/sql)
endif()

if(ARROW_HIVESERVER2)
add_subdirectory(dbi/hiveserver2)
endif()
Expand Down
18 changes: 17 additions & 1 deletion cpp/src/arrow/flight/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,23 @@ if(WIN32)
list(APPEND ARROW_FLIGHT_LINK_LIBS ws2_32.lib)
endif()

if(ARROW_TEST_LINKAGE STREQUAL "static")
set(ARROW_FLIGHT_TEST_LINKAGE
"${ARROW_TEST_LINKAGE}"
PARENT_SCOPE)
if(Protobuf_USE_STATIC_LIBS)
message(STATUS "Linking Arrow Flight tests statically due to static Protobuf")
set(ARROW_FLIGHT_TEST_LINKAGE
"static"
PARENT_SCOPE)
endif()
if(NOT ARROW_GRPC_USE_SHARED)
message(STATUS "Linking Arrow Flight tests statically due to static gRPC")
set(ARROW_FLIGHT_TEST_LINKAGE
"static"
PARENT_SCOPE)
endif()

if(ARROW_FLIGHT_TEST_LINKAGE STREQUAL "static")
set(ARROW_FLIGHT_TEST_LINK_LIBS
arrow_flight_static arrow_flight_testing_static ${ARROW_FLIGHT_STATIC_LINK_LIBS}
${ARROW_TEST_LINK_LIBS})
Expand Down
36 changes: 36 additions & 0 deletions cpp/src/arrow/flight/sql/ArrowFlightSqlConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# This config sets the following variables in your project::
#
# ArrowFlightSql_FOUND - true if Arrow Flight SQL found on the system
#
# This config sets the following targets in your project::
#
# arrow_flight_sql_shared - for linked as shared library if shared library is built
# arrow_flight_sql_static - for linked as static library if static library is built

@PACKAGE_INIT@

include(CMakeFindDependencyMacro)
find_dependency(ArrowFlight)

# Load targets only once. If we load targets multiple times, CMake reports
# already existent target error.
if(NOT (TARGET arrow_flight_sql_shared OR TARGET arrow_flight_sql_static))
include("${CMAKE_CURRENT_LIST_DIR}/ArrowFlightSqlTargets.cmake")
endif()
100 changes: 100 additions & 0 deletions cpp/src/arrow/flight/sql/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

add_custom_target(arrow_flight_sql)

arrow_install_all_headers("arrow/flight/sql")

set(FLIGHT_SQL_PROTO_PATH "${ARROW_SOURCE_DIR}/../format")
set(FLIGHT_SQL_PROTO ${ARROW_SOURCE_DIR}/../format/FlightSql.proto)

set(FLIGHT_SQL_GENERATED_PROTO_FILES "${CMAKE_CURRENT_BINARY_DIR}/FlightSql.pb.cc"
"${CMAKE_CURRENT_BINARY_DIR}/FlightSql.pb.h")

set(PROTO_DEPENDS ${FLIGHT_SQL_PROTO} ${ARROW_PROTOBUF_LIBPROTOBUF})

add_custom_command(OUTPUT ${FLIGHT_SQL_GENERATED_PROTO_FILES}
COMMAND ${ARROW_PROTOBUF_PROTOC} "-I${FLIGHT_SQL_PROTO_PATH}"
"--cpp_out=${CMAKE_CURRENT_BINARY_DIR}" "${FLIGHT_SQL_PROTO}"
DEPENDS ${PROTO_DEPENDS})

set_source_files_properties(${FLIGHT_SQL_GENERATED_PROTO_FILES} PROPERTIES GENERATED TRUE)

add_custom_target(flight_sql_protobuf_gen ALL DEPENDS ${FLIGHT_SQL_GENERATED_PROTO_FILES})

set(ARROW_FLIGHT_SQL_SRCS server.cc sql_info_internal.cc client.cc
"${CMAKE_CURRENT_BINARY_DIR}/FlightSql.pb.cc")

add_arrow_lib(arrow_flight_sql
CMAKE_PACKAGE_NAME
ArrowFlightSql
PKG_CONFIG_NAME
arrow-flight-sql
OUTPUTS
ARROW_FLIGHT_SQL_LIBRARIES
SOURCES
${ARROW_FLIGHT_SQL_SRCS}
DEPENDENCIES
flight_sql_protobuf_gen
SHARED_LINK_FLAGS
${ARROW_VERSION_SCRIPT_FLAGS} # Defined in cpp/arrow/CMakeLists.txt
SHARED_LINK_LIBS
arrow_flight_shared
STATIC_LINK_LIBS
arrow_flight_static)

if(ARROW_FLIGHT_TEST_LINKAGE STREQUAL "static")
set(ARROW_FLIGHT_SQL_TEST_LINK_LIBS
arrow_flight_sql_static arrow_flight_testing_static
${ARROW_FLIGHT_STATIC_LINK_LIBS} ${ARROW_TEST_LINK_LIBS})
else()
set(ARROW_FLIGHT_SQL_TEST_LINK_LIBS arrow_flight_sql_shared arrow_flight_testing_shared
${ARROW_TEST_LINK_LIBS})
endif()

# Build test server for unit tests
if(ARROW_BUILD_TESTS OR ARROW_BUILD_EXAMPLES)
find_package(SQLite3Alt REQUIRED)

set(ARROW_FLIGHT_SQL_TEST_SERVER_SRCS
example/sqlite_sql_info.cc
example/sqlite_statement.cc
example/sqlite_statement_batch_reader.cc
example/sqlite_server.cc
example/sqlite_tables_schema_batch_reader.cc)

add_arrow_test(flight_sql_test
SOURCES
client_test.cc
server_test.cc
${ARROW_FLIGHT_SQL_TEST_SERVER_SRCS}
STATIC_LINK_LIBS
${ARROW_FLIGHT_SQL_TEST_LINK_LIBS}
${SQLite3_LIBRARIES}
LABELS
"arrow_flight_sql")

add_executable(flight_sql_test_server test_server_cli.cc
${ARROW_FLIGHT_SQL_TEST_SERVER_SRCS})
target_link_libraries(flight_sql_test_server
PRIVATE ${ARROW_FLIGHT_SQL_TEST_LINK_LIBS} ${GFLAGS_LIBRARIES}
${SQLite3_LIBRARIES})

add_executable(flight_sql_test_app test_app_cli.cc)
target_link_libraries(flight_sql_test_app PRIVATE ${ARROW_FLIGHT_SQL_TEST_LINK_LIBS}
${GFLAGS_LIBRARIES})
endif()
20 changes: 20 additions & 0 deletions cpp/src/arrow/flight/sql/api.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

#pragma once

#include "arrow/flight/sql/client.h"
25 changes: 25 additions & 0 deletions cpp/src/arrow/flight/sql/arrow-flight-sql.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@

Name: Apache Arrow Flight SQL
Description: Apache Arrow Flight SQL extension
Version: @ARROW_VERSION@
Requires: arrow-flight
Libs: -L${libdir} -larrow_flight_sql
Loading

0 comments on commit 22bd624

Please sign in to comment.