Skip to content

Commit 0ee00db

Browse files
committed
rebase
Signed-off-by: gal salomon <gal.salomon@gmail.com>
1 parent d70cace commit 0ee00db

File tree

6 files changed

+17
-23
lines changed

6 files changed

+17
-23
lines changed

example/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
add_executable(s3select_example s3select_example.cpp)
22
target_include_directories(s3select_example PUBLIC ../include ../rapidjson/include)
33
add_executable(s3select_scaleup s3select_scaleup.cpp)
4-
target_include_directories(s3select_scaleup PUBLIC ../include)
4+
target_include_directories(s3select_scaleup PUBLIC ../include ../rapidjson/include)
55

66
find_package(Arrow QUIET)
77

example/s3select_example.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ int process_json_query(const char* input_query,const char* fname)
373373
auto object_sz = boost::filesystem::file_size(fname);
374374
json_object json_query_processor(&s3select_syntax);
375375
std::string buff(BUFFER_SIZE,0);
376-
std::string result;
376+
s3selectEngine::s3select_result result;
377377

378378
size_t read_sz = input_file_stream.readsome(buff.data(),BUFFER_SIZE);
379379

include/s3select.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2700,7 +2700,7 @@ class json_object : public base_s3object
27002700
JsonParserHandler JsonHandler;
27012701
size_t m_processed_bytes;
27022702
bool m_end_of_stream;
2703-
std::string s3select_result;
2703+
s3selectEngine::s3select_result s3select_result;
27042704
size_t m_row_count;
27052705
bool star_operation_ind;
27062706
std::string m_error_description;
@@ -2804,21 +2804,20 @@ class json_object : public base_s3object
28042804
return 0;
28052805
}
28062806

2807-
void sql_error_handling(s3selectEngine::base_s3select_exception& e,std::string& result)
2807+
void sql_error_handling(s3selectEngine::base_s3select_exception& e,s3selectEngine::s3select_result& s3select_result)
28082808
{
28092809
//the JsonHandler makes the call to SQL processing, upon a failure to procees the SQL statement,
28102810
//the error-handling takes care of the error flow.
28112811
m_error_description = e.what();
28122812
m_error_count++;
28132813
s3select_result.append(std::to_string(m_error_count));
2814-
s3select_result += " : ";
2815-
s3select_result.append(m_error_description);
2816-
s3select_result += m_csv_defintion.output_row_delimiter;
2814+
s3select_result.append(" : ");
2815+
s3select_result.append(std::string(1, m_csv_defintion.output_row_delimiter));
28172816
}
28182817

28192818
public:
28202819

2821-
int run_s3select_on_stream(std::string& result, const char* json_stream, size_t stream_length, size_t obj_size)
2820+
int run_s3select_on_stream(s3selectEngine::s3select_result& result, const char* json_stream, size_t stream_length, size_t obj_size)
28222821
{
28232822
int status=0;
28242823
m_processed_bytes += stream_length;

include/s3select_oper.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,11 +1333,6 @@ class base_statement
13331333
m_projection_alias(nullptr), m_eval_stack_depth(0), m_skip_non_aggregate_op(false),m_json_statement(false) {}
13341334
multiple_executions_en execution_phase;
13351335

1336-
public:
1337-
base_statement():m_scratch(nullptr), is_last_call(false), m_is_cache_result(false),
1338-
m_projection_alias(nullptr), m_eval_stack_depth(0), m_skip_non_aggregate_op(false),
1339-
execution_phase(multiple_executions_en::NA){}
1340-
13411336
virtual value& eval()
13421337
{
13431338
//purpose: on aggregation flow to run only the correct subtree(aggregation subtree)

test/s3select_test.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2680,15 +2680,15 @@ TEST(TestS3selectFunctions, json_queries)
26802680
)";
26812681

26822682
//count JSON structure, from-clause is empty.
2683-
std::string result;
2683+
s3selectEngine::s3select_result result;
26842684
const char* input_query = "select count(0) from s3object[*];";
26852685
run_json_query(input_query, json_input,result);
2686-
ASSERT_EQ(result,"1");
2686+
ASSERT_EQ(result.str(),"1");
26872687

26882688
//count JSON structure, from-clause points an array of objects.
26892689
input_query = "select count(0) from s3object[*].phoneNumbers;";
26902690
run_json_query(input_query, json_input,result);
2691-
ASSERT_EQ(result,"10");
2691+
ASSERT_EQ(result.str(),"10");
26922692

26932693
//select specific key in array, from-clause points an array of objects.
26942694
std::string expected_result=R"(11
@@ -2704,14 +2704,14 @@ TEST(TestS3selectFunctions, json_queries)
27042704
)";
27052705
input_query = "select _1.addr from s3object[*].phoneNumbers;";
27062706
run_json_query(input_query, json_input,result);
2707-
ASSERT_EQ(result,expected_result);
2707+
ASSERT_EQ(result.str(),expected_result);
27082708

27092709
//select specific keys in array, operation on fetched value, from-clause is empty.
27102710
expected_result=R"(Joe_2,XXX,25
27112711
)";
27122712
input_query = "select _1.firstname,_1.key_after_array,_1.age+4 from s3object[*];";
27132713
run_json_query(input_query, json_input,result);
2714-
ASSERT_EQ(result,expected_result);
2714+
ASSERT_EQ(result.str(),expected_result);
27152715

27162716
expected_result=R"(null,null,null
27172717
null,null,null
@@ -2727,15 +2727,15 @@ null,null,null
27272727
//select non-exists keys, from-clause points on array.
27282728
input_query = "select _1.firstname,_1.key_after_array,_1.age+4 from s3object[*].phonenumbers;";
27292729
run_json_query(input_query, json_input,result);
2730-
ASSERT_EQ(result,expected_result);
2730+
ASSERT_EQ(result.str(),expected_result);
27312731

27322732
expected_result=R"(7349280
27332733
)";
27342734

27352735
//select key, operation on value, with predicate(where-clause), from-clause points on array.
27362736
input_query = "select cast(substring(_1.number,1,6) as int) *10 from s3object[*].phonenumbers where _1.type='home2';";
27372737
run_json_query(input_query, json_input,result);
2738-
ASSERT_EQ(result,expected_result);
2738+
ASSERT_EQ(result.str(),expected_result);
27392739

27402740
expected_result=R"(firstName. : Joe
27412741
lastName. : Jackson
@@ -2788,7 +2788,7 @@ key_after_array. : XXX
27882788
// star-operation on object, empty from-clause
27892789
input_query = "select * from s3object[*];";
27902790
run_json_query(input_query, json_input,result);
2791-
ASSERT_EQ(result,expected_result);
2791+
ASSERT_EQ(result.str(),expected_result);
27922792

27932793
expected_result=R"(phoneNumbers.type. : home2
27942794
phoneNumbers.number. : 734928_2
@@ -2823,7 +2823,7 @@ phoneNumbers.addr. : 88
28232823
// star-operation on object, from-clause points on array, with where-clause
28242824
input_query = "select * from s3object[*].phonenumbers where _1.addr between 20 and 89;";
28252825
run_json_query(input_query, json_input,result);
2826-
ASSERT_EQ(result,expected_result);
2826+
ASSERT_EQ(result.str(),expected_result);
28272827

28282828
}
28292829

test/s3select_test.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ std::string run_s3select(std::string expression,std::string input)
575575
}
576576

577577
// JSON tests API's
578-
int run_json_query(const char* json_query, std::string& json_input,std::string& result)
578+
int run_json_query(const char* json_query, std::string& json_input,s3selectEngine::s3select_result& result)
579579
{//purpose: run single-chunk json queries
580580

581581
s3select s3select_syntax;

0 commit comments

Comments
 (0)