|
5 | 5 | DECLARE
|
6 | 6 | extension_array text[];
|
7 | 7 | orioledb_available boolean;
|
8 |
| - has_pgjwt boolean; |
9 | 8 | BEGIN
|
10 | 9 | -- Check if orioledb is available
|
11 | 10 | SELECT EXISTS (
|
12 | 11 | SELECT 1 FROM pg_available_extensions WHERE name = 'orioledb'
|
13 | 12 | ) INTO orioledb_available;
|
14 |
| - |
15 |
| - -- Check if pgjwt is already installed |
16 |
| - SELECT EXISTS ( |
17 |
| - SELECT 1 FROM pg_extension WHERE extname = 'pgjwt' |
18 |
| - ) INTO has_pgjwt; |
19 |
| - |
20 |
| - -- Base extensions list |
21 |
| - extension_array := ARRAY[ |
22 |
| - 'plpgsql', |
23 |
| - 'pg_stat_statements', |
24 |
| - 'pgsodium', |
25 |
| - 'pgtap', |
26 |
| - 'pg_graphql', |
27 |
| - 'pgcrypto', |
28 |
| - 'uuid-ossp', |
29 |
| - 'supabase_vault' |
30 |
| - ]; |
31 |
| - |
32 |
| - -- Add pgjwt if it's actually installed |
33 |
| - IF has_pgjwt THEN |
34 |
| - extension_array := array_append(extension_array, 'pgjwt'); |
35 |
| - END IF; |
36 |
| - |
37 |
| - -- Add orioledb if available and installed |
| 13 | + |
| 14 | + -- If available, create it and add to the expected extensions list |
38 | 15 | IF orioledb_available THEN
|
39 | 16 | CREATE EXTENSION IF NOT EXISTS orioledb;
|
40 |
| - extension_array := array_append(extension_array, 'orioledb'); |
| 17 | + extension_array := ARRAY[ |
| 18 | + 'plpgsql', |
| 19 | + 'pg_stat_statements', |
| 20 | + 'pgtap', |
| 21 | + 'pg_graphql', |
| 22 | + 'pgcrypto', |
| 23 | + 'pgjwt', |
| 24 | + 'uuid-ossp', |
| 25 | + 'supabase_vault', |
| 26 | + 'orioledb' |
| 27 | + ]; |
| 28 | + ELSE |
| 29 | + extension_array := ARRAY[ |
| 30 | + 'plpgsql', |
| 31 | + 'pg_stat_statements', |
| 32 | + 'pgtap', |
| 33 | + 'pg_graphql', |
| 34 | + 'pgcrypto', |
| 35 | + 'pgjwt', |
| 36 | + 'uuid-ossp', |
| 37 | + 'supabase_vault' |
| 38 | + ]; |
41 | 39 | END IF;
|
42 | 40 |
|
43 | 41 | -- Set the array as a temporary variable to use in the test
|
44 | 42 | PERFORM set_config('myapp.extensions', array_to_string(extension_array, ','), false);
|
45 | 43 | END $$;
|
46 | 44 |
|
47 |
| -SELECT plan(8); |
| 45 | +SELECT no_plan(); |
48 | 46 |
|
49 | 47 | SELECT extensions_are(
|
50 | 48 | string_to_array(current_setting('myapp.extensions'), ',')::text[]
|
51 | 49 | );
|
52 | 50 |
|
| 51 | + |
53 | 52 | SELECT has_schema('pg_toast');
|
54 | 53 | SELECT has_schema('pg_catalog');
|
55 | 54 | SELECT has_schema('information_schema');
|
56 | 55 | SELECT has_schema('public');
|
57 | 56 |
|
58 |
| -SELECT function_privs_are('pgsodium', 'crypto_aead_det_decrypt', array['bytea', 'bytea', 'uuid', 'bytea'], 'service_role', array['EXECUTE']); |
59 |
| -SELECT function_privs_are('pgsodium', 'crypto_aead_det_encrypt', array['bytea', 'bytea', 'uuid', 'bytea'], 'service_role', array['EXECUTE']); |
60 |
| -SELECT function_privs_are('pgsodium', 'crypto_aead_det_keygen', array[]::text[], 'service_role', array['EXECUTE']); |
61 |
| - |
62 | 57 | SELECT * FROM finish();
|
63 | 58 | ROLLBACK;
|
0 commit comments