diff --git a/cmd/regtest/testdata/single_party.json b/cmd/regtest/testdata/single_party.json index 70a25a4..89f2513 100644 --- a/cmd/regtest/testdata/single_party.json +++ b/cmd/regtest/testdata/single_party.json @@ -157,8 +157,8 @@ }, { "name": "ifnull & coalesce", - "query": "select plain_int_0, plain_string_0, ifnull(plain_string_0, plain_int_0) as mul, coalesce(plain_float_0, plain_float_1, 1.0) as cl from alice_tbl_1;", - "mysql_query": "select plain_int_0, plain_string_0, ifnull(plain_string_0, plain_int_0) as mul, coalesce(plain_float_0, plain_float_1, 1.0) as cl from alice.tbl_1;" + "query": "select plain_int_0, plain_string_0, ifnull(plain_string_0, plain_int_0) as ifn, coalesce(plain_float_0, plain_float_1, 1.0) as cl from alice_tbl_1;", + "mysql_query": "select plain_int_0, plain_string_0, ifnull(plain_string_0, plain_int_0) as ifn, coalesce(plain_float_0, plain_float_1, 1.0) as cl from alice.tbl_1;" }, { "name": "if", @@ -326,4 +326,4 @@ "mysql_query": "select plain_int_0, sin(plain_int_0) as sin_plain_int_0, cos(plain_int_0) as cos_plain_int_0, acos(plain_int_0 / 100000) as acos_plain_int_0 from carol.tbl_1" } ] -} \ No newline at end of file +} diff --git a/cmd/regtest/testdata/two_parties.json b/cmd/regtest/testdata/two_parties.json index 4e8118e..217348b 100644 --- a/cmd/regtest/testdata/two_parties.json +++ b/cmd/regtest/testdata/two_parties.json @@ -292,8 +292,8 @@ }, { "name": "logic after join", - "query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_log, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_log from alice_tbl_0 as alice join bob_tbl_0 as bob on alice.join_int_0 = bob.join_int_0;", - "mysql_query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_log, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_log from alice.tbl_0 as alice join bob.tbl_0 as bob on alice.join_int_0 = bob.join_int_0;" + "query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_result, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_result from alice_tbl_0 as alice join bob_tbl_0 as bob on alice.join_int_0 = bob.join_int_0;", + "mysql_query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_result, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_result from alice.tbl_0 as alice join bob.tbl_0 as bob on alice.join_int_0 = bob.join_int_0;" }, { "name": "cast(private) after join", @@ -447,13 +447,13 @@ }, { "name": "logic where(null)", - "query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_log, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_log from alice_tbl_0 as alice join bob_tbl_0 as bob on alice.join_int_0 = bob.join_int_0 where alice.compare_int_0 > bob.compare_int_0;", - "mysql_query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_log, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_log from alice.tbl_0 as alice join bob.tbl_0 as bob on alice.join_int_0 = bob.join_int_0 where alice.compare_int_0 > bob.compare_int_0;" + "query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_result, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_result from alice_tbl_0 as alice join bob_tbl_0 as bob on alice.join_int_0 = bob.join_int_0 where alice.compare_int_0 > bob.compare_int_0;", + "mysql_query": "select alice.plain_int_0 as res0, alice.plain_int_0 > bob.plain_int_0 and alice.plain_int_0 >= bob.plain_int_0 as and_result, (alice.plain_int_0 <= bob.plain_int_0) or (alice.plain_int_0 <> bob.plain_int_0) as or_result from alice.tbl_0 as alice join bob.tbl_0 as bob on alice.join_int_0 = bob.join_int_0 where alice.compare_int_0 > bob.compare_int_0;" }, { "name": "in where(null)", "query": "select alice.compare_int_0 in (select compare_int_0 from bob_tbl_0) as in_column from alice_tbl_0 as alice where alice.compare_int_0 > 1000;", - "mysql_query": "select alice.compare_int_0 in (select compare_int_0 from bob.tbl_0) as in_column from alice.tbl_0 as alice where alice.compare_int_0 > 1000;" + "mysql_query": "select alice.compare_int_0 in (select compare_int_0 from bob.tbl_0) as in_column from alice.tbl_0 as alice where alice.compare_int_0 > 1000;" }, { "name": "not in where(null)", @@ -576,4 +576,4 @@ "mysql_query": "select upper(ta.plain_string_0) as up, lower(ta.plain_string_0) as lo, substring(ta.plain_string_0, 2, 3) as sl, trim(ta.plain_string_0) as tr, concat(ta.plain_string_0, ta.join_string_0) as co from alice.tbl_0 as ta join bob.tbl_0 as tb on ta.join_int_0 = tb.join_int_0;" } ] -} \ No newline at end of file +} diff --git a/pkg/interpreter/interpreter_test.go b/pkg/interpreter/interpreter_test.go index bfc8862..e722c0b 100644 --- a/pkg/interpreter/interpreter_test.go +++ b/pkg/interpreter/interpreter_test.go @@ -184,7 +184,7 @@ var commonCatalog = &proto.Catalog{ var testCases = []compileTestCase{ { req: &proto.CompileQueryRequest{ - Query: "SELECT ta.ID, ta.income FROM ta WHERE ta.income > ALL(SELECT ta.income AS avg_income FROM ta INNER JOIN tb ON ta.ID = tb.ID)", + Query: "SELECT ta.ID, ta.income FROM ta WHERE ta.income > ALL(SELECT ta.income AS joined_income FROM ta INNER JOIN tb ON ta.ID = tb.ID)", DbName: "", Issuer: &proto.PartyId{ Code: "alice", diff --git a/pkg/interpreter/translator/translator.go b/pkg/interpreter/translator/translator.go index 9198ccf..c0fa6e0 100644 --- a/pkg/interpreter/translator/translator.go +++ b/pkg/interpreter/translator/translator.go @@ -868,13 +868,13 @@ func (t *translator) buildScalarFunction(f *expression.ScalarFunction, tensors m // TODO: support more trim options, only support trim whitespace now return t.ep.AddArrowFuncNode("arrow_trim", "utf8_trim", TrimOptions{Characters: " "}, inputs, inputs[0].DType) case ast.Concat: - var seperator types.Datum - seperator.SetString("") // only support nil seperator now - sepTensor, err := t.addConstantNode(&seperator) + var separator types.Datum + separator.SetString("") // only support nil separator now + sepTensor, err := t.addConstantNode(&separator) if err != nil { - return nil, fmt.Errorf("buildScalarFunction: build seperator for concat failed: %v ", err) + return nil, fmt.Errorf("buildScalarFunction: build separator for concat failed: %v ", err) } - // arrow function 'binary_join_element_wise' treats the last input as seperator + // arrow function 'binary_join_element_wise' treats the last input as separator ins, err := t.addBroadcastToNodeOndemand(append(inputs, sepTensor)) if err != nil { return nil, fmt.Errorf("buildScalarFunction: broadcast for concat failed: %v ", err)