@@ -27,6 +27,7 @@ run_s2i_enable_ssl_test
2727run_upgrade_test
2828run_migration_test
2929run_pgaudit_test
30+ run_pgvector_test
3031run_env_extension_load_test
3132run_logging_test
3233"
@@ -1039,6 +1040,58 @@ EOSQL" || ret=3
10391040 return $ret
10401041}
10411042
1043+ # run_pgvector_test
1044+ # --------------------
1045+ # Configure container to include pgvector. Check
1046+ # that pgvector is loaded.
1047+ run_pgvector_test ()
1048+ {
1049+ local ret=0
1050+ # extension pgvector is not available for older versions
1051+ case ${VERSION} in
1052+ 11|12|15) echo " pgvector not expected, test skipped." ; return ;;
1053+ * ) ;;
1054+ esac
1055+ case ${OS} in
1056+ fedora)
1057+ echo " pgvector not expected, test skipped." ; return ;;
1058+ * ) ;;
1059+ esac
1060+
1061+ local config_dir data_dir name=pg-test-pgaudit
1062+
1063+ # create a dir for config
1064+ config_dir=$( mktemp -d --tmpdir vector-hook-volume.XXXXX)
1065+ setfacl -R -m u:26:rwx " $config_dir "
1066+
1067+ # create a dir for data
1068+ create_volume_dir
1069+ data_dir=" ${volume_dir} "
1070+
1071+ DOCKER_ARGS="
1072+ -e POSTGRESQL_ADMIN_PASSWORD=password
1073+ $DOCKER_EXTRA_ARGS
1074+ -v ${config_dir} :/opt/app-root/src:Z
1075+ -v ${data_dir} :/var/lib/pgsql/data:Z
1076+ " create_container " $name "
1077+
1078+ assert_runtime_option " $name " shared_preload_libraries pgvector || ret=1
1079+ wait_ready " $name " || \
1080+ false " FAIL: Container did not start up properly."
1081+
1082+ # enable the pgvector extension
1083+ docker exec -i $( get_cid " $name " ) bash -c " psql <<EOSQL
1084+ CREATE EXTENSION vector;
1085+ CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
1086+ EOSQL" || ret=2
1087+
1088+
1089+ if [ $ret -eq 0 ]; then
1090+ echo " Success!"
1091+ fi
1092+ return $ret
1093+ }
1094+
10421095# run_env_extension_load_test
10431096# --------------------
10441097# Tries to load pgaudit extension using environment variables
0 commit comments