@@ -1067,6 +1067,19 @@ def test_join_hint
10671067 assert_equal sql , execute_sql_request . sql
10681068 end
10691069
1070+ def test_query_priority_hint
1071+ sql = "SELECT `singers`.* FROM `singers`"
1072+ @mock . put_statement_result sql , MockServerTests ::create_random_singers_result ( 4 )
1073+ Singer . optimizer_hints ( "priority: PRIORITY_LOW" ) . all . each do |singer |
1074+ refute_nil singer . id , "singer.id should not be nil"
1075+ end
1076+ select_requests = @mock . requests . select { |req | req . is_a? ( Google ::Cloud ::Spanner ::V1 ::ExecuteSqlRequest ) && req . sql == sql }
1077+ select_requests . each do |request |
1078+ assert request . request_options
1079+ assert_equal :PRIORITY_LOW , request . request_options . priority
1080+ end
1081+ end
1082+
10701083 def test_query_annotate_request_tag
10711084 sql = "SELECT `singers`.* FROM `singers` /* request_tag: selecting all singers */"
10721085 @mock . put_statement_result sql , MockServerTests ::create_random_singers_result ( 4 )
@@ -1080,6 +1093,20 @@ def test_query_annotate_request_tag
10801093 end
10811094 end
10821095
1096+ def test_query_priority_hint_and_request_tag
1097+ sql = "SELECT `singers`.* FROM `singers` /* request_tag: selecting all singers */"
1098+ @mock . put_statement_result sql , MockServerTests ::create_random_singers_result ( 4 )
1099+ Singer . annotate ( "request_tag: selecting all singers" ) . optimizer_hints ( "priority: PRIORITY_LOW" ) . all . each do |singer |
1100+ refute_nil singer . id , "singer.id should not be nil"
1101+ end
1102+ select_requests = @mock . requests . select { |req | req . is_a? ( Google ::Cloud ::Spanner ::V1 ::ExecuteSqlRequest ) && req . sql == sql }
1103+ select_requests . each do |request |
1104+ assert request . request_options
1105+ assert_equal :PRIORITY_LOW , request . request_options . priority
1106+ assert_equal "selecting all singers" , request . request_options . request_tag
1107+ end
1108+ end
1109+
10831110 def test_query_annotate_transaction_tag
10841111 sql = "SELECT `singers`.* FROM `singers` /* transaction_tag: selecting all singers */"
10851112 @mock . put_statement_result sql , MockServerTests ::create_random_singers_result ( 4 )
0 commit comments