2
私はループで動的に計算された配列とselect文の交差を試み、それらの各交差問合せにかかる時間を測定しようとしています。postgresでselect文を使ってarrayを交差させる
ので、ループの最初の繰り返しで、私は、クエリは次のようになりたい:第2の繰り返しで
'select sub_id from table where main_id=1 INTERSECT select array[''80'']';
:
'select sub_id from table where main_id=1 INTERSECT select array[''80'', ''81'']';
などとにかかった時間を計測しますクエリを実行するそれぞれの繰り返し
私はこのスクリプトを実行すると、私はエラーを取得:
CONTEXT: PL/pgSQL function inline_code_block at assignment
私はQuery1を初期化ラインに対応します。 query1への割り当てを訂正するにはどうすればよいですか?私はPostgreSQL 9.1を使用しています。
arr := '{}';
for j in 80..120 loop
arr := array_append(arr, j::text);
query1 := 'select sub_id from table where main_id=1 INTERSECT' || ' select unnest(arr)';
execute 'explain (analyse, format json) ' || query1 into p;
t := (p->0->>'Planning Time')::float + (p->0->>'Execution Time')::float;
total_time := total_time + t;
end loop;
を。それはデバッグ情報です。おそらく、ログまたは出力の前の行にエラーがあります。 –