|
6 | 6 |
|
7 | 7 | my$dim = 3;
|
8 | 8 |
|
9 |
| -my@r = (); |
10 |
| -for (1 ..$dim) |
11 |
| -{ |
12 |
| -my$v =int(rand(1000)) + 1; |
13 |
| -push(@r,"i %$v"); |
14 |
| -} |
15 |
| -my$array_sql =join(",",@r); |
| 9 | +my$array_sql =join(",", ('random()') x$dim); |
16 | 10 |
|
17 | 11 | # Initialize node
|
18 | 12 | my$node = PostgreSQL::Test::Cluster->new('node');
|
|
23 | 17 | $node->safe_psql("postgres","CREATE EXTENSION vector;");
|
24 | 18 | $node->safe_psql("postgres","CREATE TABLE tst (i int4, v vector($dim));");
|
25 | 19 | $node->safe_psql("postgres",
|
26 |
| -"INSERT INTO tst SELECT i % 10, ARRAY[$array_sql] FROM generate_series(1, 100000) i;" |
| 20 | +"INSERT INTO tst SELECT i, ARRAY[$array_sql] FROM generate_series(1, 100000) i;" |
27 | 21 | );
|
28 | 22 | $node->safe_psql("postgres","CREATE INDEX ON tst USING ivfflat (v vector_l2_ops);");
|
29 | 23 |
|
30 | 24 | # Get size
|
31 | 25 | my$size =$node->safe_psql("postgres","SELECT pg_total_relation_size('tst_v_idx');");
|
32 | 26 |
|
| 27 | +# Store values |
| 28 | +$node->safe_psql("postgres","CREATE TABLE tmp AS SELECT * FROM tst;"); |
| 29 | + |
33 | 30 | # Delete all, vacuum, and insert same data
|
34 | 31 | $node->safe_psql("postgres","DELETE FROM tst;");
|
35 | 32 | $node->safe_psql("postgres","VACUUM tst;");
|
36 |
| -$node->safe_psql("postgres", |
37 |
| -"INSERT INTO tst SELECT i % 10, ARRAY[$array_sql] FROM generate_series(1, 100000) i;" |
38 |
| -); |
| 33 | +$node->safe_psql("postgres","INSERT INTO tst SELECT * FROM tmp;"); |
39 | 34 |
|
40 | 35 | # Check size
|
41 | 36 | my$new_size =$node->safe_psql("postgres","SELECT pg_total_relation_size('tst_v_idx');");
|
|