@@ -475,7 +475,7 @@ SET append_test.id = 2;`
475475DROP TABLE IF EXISTS append_tmp;
476476@src := SELECT 1 id;
477477
478- CREATE TABLE append_tmp AS SELECT * FROM @src ;
478+ CREATE TABLE append_tmp AS SELECT * FROM sample_table ;
479479
480480MERGE INTO append_test
481481USING (SELECT * FROM @src) source
@@ -498,9 +498,7 @@ DROP TABLE IF EXISTS append_tmp
498498--*--optimus-break-marker--*--
499499SET odps.table.append2.enable=true
500500;
501- @src := SELECT 1 id
502- ;
503- CREATE TABLE append_tmp AS SELECT * FROM @src
501+ CREATE TABLE append_tmp AS SELECT * FROM sample_table
504502;
505503--*--optimus-break-marker--*--
506504SET odps.table.append2.enable=true
@@ -726,7 +724,7 @@ SET append_test.id = 2
726724DROP TABLE IF EXISTS append_tmp;
727725@src := SELECT 1 id;
728726
729- CREATE TABLE append_tmp AS SELECT * FROM @src ;
727+ CREATE TABLE append_tmp AS SELECT * FROM sample_table ;
730728
731729@src2 := SELECT id FROM append_tmp;
732730
@@ -750,9 +748,51 @@ DROP TABLE IF EXISTS append_tmp
750748--*--optimus-break-marker--*--
751749SET odps.table.append2.enable=true
752750;
751+ CREATE TABLE append_tmp AS SELECT * FROM sample_table
752+ ;
753+ --*--optimus-break-marker--*--
754+ SET odps.table.append2.enable=true
755+ ;
753756@src := SELECT 1 id
754757;
755- CREATE TABLE append_tmp AS SELECT * FROM @src
758+ @src2 := SELECT id FROM append_tmp
759+ ;
760+ MERGE INTO append_test
761+ USING (SELECT * FROM @src2) source
762+ on append_test.id = source.id
763+ WHEN MATCHED THEN UPDATE
764+ SET append_test.id = 2
765+ ;` , query )
766+ })
767+ t .Run ("returns query for merge load method with correct ddl ordering" , func (t * testing.T ) {
768+ queryToExecute := `SET odps.table.append2.enable=true;
769+ @src := SELECT 1 id;
770+ @src2 := SELECT id FROM append_tmp;
771+ DROP TABLE IF EXISTS append_tmp;
772+
773+ CREATE TABLE append_tmp AS SELECT * FROM sample_table;
774+
775+ MERGE INTO append_test
776+ USING (SELECT * FROM @src2) source
777+ on append_test.id = source.id
778+ WHEN MATCHED THEN UPDATE
779+ SET append_test.id = 2;`
780+ odspClient := & mockOdpsClient {}
781+ query , err := query .NewBuilder (
782+ logger .NewDefaultLogger (),
783+ odspClient ,
784+ query .WithQuery (queryToExecute ),
785+ query .WithMethod (query .MERGE ),
786+ ).Build ()
787+ assert .NoError (t , err )
788+ assert .Equal (t , `SET odps.table.append2.enable=true
789+ ;
790+ DROP TABLE IF EXISTS append_tmp
791+ ;
792+ --*--optimus-break-marker--*--
793+ SET odps.table.append2.enable=true
794+ ;
795+ CREATE TABLE append_tmp AS SELECT * FROM sample_table
756796;
757797--*--optimus-break-marker--*--
758798SET odps.table.append2.enable=true
0 commit comments