# Installed SQL Object And Option Inventory

Generated by `scripts/generate-sql-object-inventory.sh` from
`sql/pgcontext--0.3.0.sql` and the HNSW reloptions callback. Run the generator
after changing the installed SQL contract, or use
`scripts/generate-sql-object-inventory.sh --check` to verify it. Do not edit
this file by hand.

The SQL contract registry owns lifecycle classification; this inventory pins the installed object and option shape consumed by the capability contract.

Full SQL artifact SHA-256: `e64dcfb289a4c21a05cc055a4a0e45f548258164674747660029a9b4d6ac1fdc`

The artifact fingerprint covers every object declaration, function result shape, cast method/context, operator identity, and opclass strategy. `contract_registry` separately compares installed functions and catalog objects bidirectionally, including typed operator and access-method/input-type opclass identities.

| Object kind | Installed count |
|---|---:|
| Types | 20 |
| Schemas | 0 |
| Functions | 468 |
| Tables | 44 |
| Views | 33 |
| Triggers | 6 |
| Casts | 35 |
| Operators | 62 |
| Operator classes | 70 |
| Aggregates | 12 |
| Access methods | 2 |

## Types

- `BuildJobStatus`
- `EmbeddingMigrationStatus`
- `HalfVec`
- `IndexAdvisorRecommendation`
- `IndexDiagnosticStatus`
- `IndexLifecycleStatus`
- `IndexMemoryEstimateStatus`
- `OptimizationStatus`
- `QueryCohortStatus`
- `QueryExplainStatus`
- `QueryLatencyBucket`
- `QueryLifecycleState`
- `RecallCheckStatus`
- `SparseVec`
- `TelemetryStatus`
- `VacuumAdviceStatus`
- `Vector`
- `pgcontext.bitvec`
- `pgcontext.int8vec`
- `pgcontext.uint8vec`

## Schemas, Tables, Views, And Triggers

- table `pgcontext._artifact_reader_pins`
- table `pgcontext._artifact_segments`
- table `pgcontext._build_deltas`
- table `pgcontext._build_jobs`
- table `pgcontext._chunking_profile_alias_history`
- table `pgcontext._chunking_profile_alias_retained`
- table `pgcontext._chunking_profile_aliases`
- table `pgcontext._chunking_profiles`
- table `pgcontext._collection_aliases`
- table `pgcontext._collection_fuzzy_sources`
- table `pgcontext._collection_late_interaction_tokens`
- table `pgcontext._collection_late_interaction`
- table `pgcontext._collection_lexical_fields`
- table `pgcontext._collection_lexical_sources`
- table `pgcontext._collection_payload_columns`
- table `pgcontext._collection_points`
- table `pgcontext._collection_source_revisions`
- table `pgcontext._collection_sparse_vectors`
- table `pgcontext._collection_vectors`
- table `pgcontext._collections`
- table `pgcontext._current_document_chunk_generations`
- table `pgcontext._document_chunk_generations`
- table `pgcontext._document_chunk_jobs`
- table `pgcontext._document_chunk_staging`
- table `pgcontext._document_embedding_jobs`
- table `pgcontext._document_sources`
- table `pgcontext._embedding_migrations`
- table `pgcontext._embedding_profiles`
- table `pgcontext._exact_first_columns`
- table `pgcontext._exact_first_invalid_samples`
- table `pgcontext._exact_first_plan_jobs`
- table `pgcontext._exact_first_plans`
- table `pgcontext._exact_first_registrations`
- table `pgcontext._exact_first_targets`
- table `pgcontext._generation_aliases`
- table `pgcontext._generation_artifacts`
- table `pgcontext._generation_build_rows`
- table `pgcontext._generation_manifests`
- table `pgcontext._generation_reader_pins`
- table `pgcontext._pgvector_ownership_conversions`
- table `pgcontext._query_stats`
- table `pgcontext._semantic_rerank_candidates`
- table `pgcontext._semantic_rerank_requests`
- table `pgcontext._semantic_rerank_sources`
- trigger `embedding_profiles_immutable`
- trigger `pgcontext_build_jobs_no_progress_regression`
- trigger `pgcontext_build_jobs_terminal_state`
- trigger `pgcontext_capture_build_point_delta`
- trigger `pgcontext_cleanup_late_interaction_registration`
- trigger `pgcontext_initialize_collection_source_revision`
- view `pgcontext._collection_acl`
- view `pgcontext._visible_artifact_segments`
- view `pgcontext._visible_build_jobs`
- view `pgcontext._visible_chunking_profile_alias_retained`
- view `pgcontext._visible_chunking_profile_aliases`
- view `pgcontext._visible_chunking_profiles`
- view `pgcontext._visible_collection_fuzzy_sources`
- view `pgcontext._visible_collection_late_interaction`
- view `pgcontext._visible_collection_lexical_fields`
- view `pgcontext._visible_collection_lexical_sources`
- view `pgcontext._visible_collection_limits`
- view `pgcontext._visible_collection_payload_columns`
- view `pgcontext._visible_collection_points`
- view `pgcontext._visible_collection_sparse_vectors`
- view `pgcontext._visible_collection_vectors`
- view `pgcontext._visible_collections`
- view `pgcontext._visible_current_document_chunk_generations`
- view `pgcontext._visible_document_chunk_generations`
- view `pgcontext._visible_document_chunk_jobs`
- view `pgcontext._visible_document_chunk_staging`
- view `pgcontext._visible_document_embedding_jobs`
- view `pgcontext._visible_document_sources`
- view `pgcontext._visible_embedding_profiles`
- view `pgcontext._visible_exact_first_columns`
- view `pgcontext._visible_exact_first_invalid_samples`
- view `pgcontext._visible_exact_first_plans`
- view `pgcontext._visible_exact_first_registrations`
- view `pgcontext._visible_exact_first_targets`
- view `pgcontext._visible_pgvector_ownership_conversions`
- view `pgcontext._visible_query_stats`
- view `pgcontext._visible_semantic_rerank_candidates`
- view `pgcontext._visible_semantic_rerank_requests`
- view `pgcontext._visible_semantic_rerank_sources`

## Function Names

Overload argument and result identities are pinned by the artifact fingerprint and bidirectional `contract_registry` test.

- `"_begin_pgvector_ownership_conversion"`
- `"_compact_hnsw_segment_pair"`
- `"_consume_document_chunk_permit"`
- `"_document_chunk_raw_datum_bytes"`
- `"_document_chunk_source_key_visible"`
- `"_enqueue_ivfflat_compaction_debt"`
- `"_hnsw_candidates"`
- `"_hnsw_masked_candidates"`
- `"_hnsw_sparse_candidates"`
- `"_hnsw_sparse_masked_candidates"`
- `"_mmap_hnsw_artifact_candidates"`
- `"_sync_pgvector_ownership_columns"`
- `"_transition_pgvector_ownership_conversion"`
- `"adopt_pgvector"`
- `"apply_exact_first_plan"`
- `"artifact_segment_diagnostics"`
- `"artifact_segment_memory"`
- `"artifact_segment_mmap_payload"`
- `"artifact_segment_serving_readiness"`
- `"artifact_segments"`
- `"attach_fuzzy_index"`
- `"attach_hnsw_index"`
- `"attach_lexical_index"`
- `"attach_sparse_hnsw_index"`
- `"backfill_points"`
- `"binary_quantize"`
- `"bitvec"`
- `"bitvec_and_transition"`
- `"bitvec_bits_final"`
- `"bitvec_cmp"`
- `"bitvec_dims"`
- `"bitvec_enforce_typmod"`
- `"bitvec_eq"`
- `"bitvec_from_bool_array"`
- `"bitvec_from_provider_bytes"`
- `"bitvec_ge"`
- `"bitvec_gt"`
- `"bitvec_hamming_distance"`
- `"bitvec_jaccard_distance"`
- `"bitvec_le"`
- `"bitvec_lt"`
- `"bitvec_ne"`
- `"bitvec_or_transition"`
- `"bitvec_to_bool_array"`
- `"bitvec_typmod_in"`
- `"bitvec_typmod_out"`
- `"build_jobs"`
- `"build_mmap_hnsw_artifact"`
- `"bulk_delete_points"`
- `"bulk_upsert_points"`
- `"cancel_document_chunk_job"`
- `"cancel_exact_first_build"`
- `"checkpoint_document_chunk_job"`
- `"claim_document_chunk_jobs"`
- `"claim_exact_first_build"`
- `"cleanup_artifact_segments"`
- `"cleanup_semantic_rerank_requests"`
- `"clear_payload"`
- `"collection_aliases"`
- `"collection_info"`
- `"collection_limits"`
- `"collection_sparse_vectors"`
- `"collection_vectors"`
- `"compact"`
- `"compact_ivfflat"`
- `"compare_indexes"`
- `"configure_collection_limits"`
- `"configure_sparse_vector"`
- `"configure_vector"`
- `"cosine_distance"`
- `"count"`
- `"create_collection"`
- `"create_collection_alias"`
- `"create_document_chunk_projection"`
- `"create_embedding_migration"`
- `"create_fuzzy_index"`
- `"create_lexical_index"`
- `"current_document_chunks"`
- `"cutover_pgvector_ownership_conversion"`
- `"delete_payload"`
- `"delete_points"`
- `"detach_fuzzy_index"`
- `"detach_lexical_index"`
- `"disable_pgvector_binding"`
- `"disable_pgvector_name_facade"`
- `"discover"`
- `"document_chunking_progress"`
- `"drain_chunking_profile_alias"`
- `"drop_collection"`
- `"drop_collection_alias"`
- `"drop_fuzzy_source"`
- `"drop_lexical_source"`
- `"embedding_migrations"`
- `"embedding_profile_coverage"`
- `"embedding_profile_explain"`
- `"embedding_profiles"`
- `"enable_pgvector_binding"`
- `"enable_pgvector_name_facade"`
- `"encode_artifact_segment"`
- `"enqueue_build_job"`
- `"enqueue_document_chunking"`
- `"enqueue_document_chunking_profile"`
- `"enqueue_hnsw_compaction"`
- `"enqueue_ivfflat_compaction"`
- `"estimate_index_memory"`
- `"exact_first_advisor"`
- `"exact_first_progress"`
- `"exact_first_readiness"`
- `"exact_first_search"`
- `"execute_query"`
- `"explain"`
- `"explain_late_interaction"`
- `"explain_late_interaction_ann"`
- `"explain_sparse"`
- `"explore"`
- `"facet"`
- `"fail_document_chunk_job"`
- `"fail_exact_first_build"`
- `"fake_process_document_chunk_job"`
- `"finalize_pgvector_ownership_conversion"`
- `"finalize_semantic_rerank"`
- `"fuzzy_sources"`
- `"grouped_search"`
- `"halfvec"`
- `"halfvec_avg_final"`
- `"halfvec_cmp"`
- `"halfvec_cosine_distance"`
- `"halfvec_dims"`
- `"halfvec_enforce_typmod"`
- `"halfvec_eq"`
- `"halfvec_from_double_array"`
- `"halfvec_from_integer_array"`
- `"halfvec_from_real_array"`
- `"halfvec_ge"`
- `"halfvec_gt"`
- `"halfvec_in"`
- `"halfvec_inner_product"`
- `"halfvec_l1_distance"`
- `"halfvec_l2_distance"`
- `"halfvec_le"`
- `"halfvec_lt"`
- `"halfvec_ne"`
- `"halfvec_negative_inner_product"`
- `"halfvec_out"`
- `"halfvec_sum_final"`
- `"halfvec_sum_transition"`
- `"halfvec_to_real_array"`
- `"halfvec_to_vector"`
- `"halfvec_typmod_in"`
- `"halfvec_typmod_out"`
- `"heartbeat_document_chunk_job"`
- `"heartbeat_exact_first_build"`
- `"hnsw_build_stats"`
- `"hnsw_l2_distance"`
- `"hnsw_last_scan_work"`
- `"hnsw_segment_stats"`
- `"hnsw_serving_stats"`
- `"index_advisor"`
- `"index_diagnostics"`
- `"index_status"`
- `"inner_product"`
- `"inspect_exact_first_source"`
- `"install_document_chunk_trigger"`
- `"int8vec"`
- `"int8vec_cmp"`
- `"int8vec_cosine_distance"`
- `"int8vec_dims"`
- `"int8vec_enforce_typmod"`
- `"int8vec_eq"`
- `"int8vec_from_integer_array"`
- `"int8vec_from_profile"`
- `"int8vec_from_smallint_array"`
- `"int8vec_from_vector"`
- `"int8vec_ge"`
- `"int8vec_gt"`
- `"int8vec_inner_product"`
- `"int8vec_l1_distance"`
- `"int8vec_l2_distance"`
- `"int8vec_le"`
- `"int8vec_lt"`
- `"int8vec_ne"`
- `"int8vec_negative_inner_product"`
- `"int8vec_sum_transition"`
- `"int8vec_to_smallint_array"`
- `"int8vec_to_vector"`
- `"int8vec_typmod_in"`
- `"int8vec_typmod_out"`
- `"integer_vector_avg_final"`
- `"integer_vector_sum_final"`
- `"invalidate_document_chunks"`
- `"ivfflat_index_info"`
- `"ivfflat_last_scan_work"`
- `"l1_distance"`
- `"l2_distance"`
- `"lexical_headline"`
- `"lexical_sources"`
- `"migration_report"`
- `"negative_inner_product"`
- `"optimization_status"`
- `"pgvector_compatibility_inventory"`
- `"pgvector_ownership_conversions"`
- `"prepare_chunking_profile_alias"`
- `"prepare_semantic_rerank"`
- `"product_quantize"`
- `"product_reconstruct"`
- `"promote_chunking_profile_alias"`
- `"publish_artifact_segment"`
- `"publish_artifact_segment_file"`
- `"publish_document_chunk_generation"`
- `"publish_exact_first_build"`
- `"query"`
- `"query_cohort_stats"`
- `"query_discover"`
- `"query_execution_stats"`
- `"query_external_rerank"`
- `"query_formula"`
- `"query_fuzzy"`
- `"query_late_interaction"`
- `"query_lexical"`
- `"query_lookup"`
- `"query_multi_model"`
- `"query_nearest"`
- `"query_prefetch"`
- `"query_recommend"`
- `"query_rerank"`
- `"query_score_threshold"`
- `"query_sparse_nearest"`
- `"query_telemetry_queue_stats"`
- `"query_topology_expand"`
- `"query_weight"`
- `"rebuild_document_chunk_job"`
- `"recall_check"`
- `"recommend"`
- `"record_query_stat"`
- `"refresh_lexical_catalog"`
- `"register_chunking_profile"`
- `"register_document_source"`
- `"register_embedding_profile"`
- `"register_exact_first"`
- `"register_filter_column"`
- `"register_fuzzy_source"`
- `"register_jsonb_path"`
- `"register_late_interaction"`
- `"register_lexical_document_source"`
- `"register_lexical_source"`
- `"register_lexical_tsquery"`
- `"register_semantic_rerank_source"`
- `"register_sparse_vector"`
- `"register_vector"`
- `"repair_late_interaction"`
- `"request_build_cancel"`
- `"rerank_late_interaction"`
- `"rerank_quantized_candidates"`
- `"retire_artifact_segment"`
- `"retry_build_job"`
- `"retry_document_chunk_job"`
- `"retry_exact_first_build"`
- `"rollback_chunking_profile_alias"`
- `"rollback_document_chunk_generation"`
- `"rollback_pgvector_ownership_conversion"`
- `"run_build_job"`
- `"run_pgvector_ownership_conversion"`
- `"scalar_quantize"`
- `"scalar_reconstruct"`
- `"scroll"`
- `"search"`
- `"search_late_interaction"`
- `"search_late_interaction_ann"`
- `"search_mmap_hnsw_artifact"`
- `"search_sparse"`
- `"set_embedding_profile_lifecycle"`
- `"set_payload"`
- `"sparsevec"`
- `"sparsevec_avg_final"`
- `"sparsevec_cmp"`
- `"sparsevec_cosine_distance"`
- `"sparsevec_dims"`
- `"sparsevec_enforce_typmod"`
- `"sparsevec_eq"`
- `"sparsevec_from_arrays"`
- `"sparsevec_from_real_array"`
- `"sparsevec_from_vector"`
- `"sparsevec_ge"`
- `"sparsevec_gt"`
- `"sparsevec_in"`
- `"sparsevec_indices"`
- `"sparsevec_inner_product"`
- `"sparsevec_l1_distance"`
- `"sparsevec_l2_distance"`
- `"sparsevec_le"`
- `"sparsevec_lt"`
- `"sparsevec_ne"`
- `"sparsevec_negative_inner_product"`
- `"sparsevec_out"`
- `"sparsevec_sum_final"`
- `"sparsevec_sum_transition"`
- `"sparsevec_to_real_array"`
- `"sparsevec_to_vector"`
- `"sparsevec_typmod_in"`
- `"sparsevec_typmod_out"`
- `"sparsevec_values"`
- `"stage_document_chunks"`
- `"start_build_job"`
- `"start_pgvector_ownership_conversion"`
- `"telemetry"`
- `"uint8vec"`
- `"uint8vec_cmp"`
- `"uint8vec_cosine_distance"`
- `"uint8vec_dims"`
- `"uint8vec_enforce_typmod"`
- `"uint8vec_eq"`
- `"uint8vec_from_integer_array"`
- `"uint8vec_from_profile"`
- `"uint8vec_from_smallint_array"`
- `"uint8vec_from_vector"`
- `"uint8vec_ge"`
- `"uint8vec_gt"`
- `"uint8vec_inner_product"`
- `"uint8vec_l1_distance"`
- `"uint8vec_l2_distance"`
- `"uint8vec_le"`
- `"uint8vec_lt"`
- `"uint8vec_ne"`
- `"uint8vec_negative_inner_product"`
- `"uint8vec_sum_transition"`
- `"uint8vec_to_smallint_array"`
- `"uint8vec_to_vector"`
- `"uint8vec_typmod_in"`
- `"uint8vec_typmod_out"`
- `"update_build_job"`
- `"update_embedding_migration"`
- `"upsert_points"`
- `"vacuum_advice"`
- `"validate_artifact_segment"`
- `"validate_hnsw_graph_artifact"`
- `"vector_avg_final"`
- `"vector_cmp"`
- `"vector_dims"`
- `"vector_enforce_typmod"`
- `"vector_eq"`
- `"vector_from_double_array"`
- `"vector_from_integer_array"`
- `"vector_from_real_array"`
- `"vector_ge"`
- `"vector_gt"`
- `"vector_in"`
- `"vector_le"`
- `"vector_lt"`
- `"vector_ne"`
- `"vector_out"`
- `"vector_prefix"`
- `"vector_sum_final"`
- `"vector_sum_transition"`
- `"vector_to_real_array"`
- `"vector_typmod_in"`
- `"vector_typmod_out"`
- `"wake_build_jobs"`
- `pgcontext._attach_fuzzy_index`
- `pgcontext._attach_lexical_index`
- `pgcontext._begin_late_interaction_registration`
- `pgcontext._cancel_document_chunk_job`
- `pgcontext._capture_build_point_delta`
- `pgcontext._capture_late_interaction_tokens`
- `pgcontext._checkpoint_document_chunk_job`
- `pgcontext._claim_document_chunk_jobs`
- `pgcontext._cleanup_late_interaction_registration`
- `pgcontext._cleanup_semantic_rerank_requests`
- `pgcontext._complete_document_chunk_publication`
- `pgcontext._cosine_distance_fast`
- `pgcontext._detach_fuzzy_index`
- `pgcontext._detach_lexical_index`
- `pgcontext._document_chunk_outbox_trigger`
- `pgcontext._drain_chunking_profile_alias`
- `pgcontext._drop_fuzzy_source`
- `pgcontext._drop_lexical_source`
- `pgcontext._enforce_build_job_terminal_state`
- `pgcontext._enqueue_document_chunk_job`
- `pgcontext._fail_document_chunk_job`
- `pgcontext._finalize_semantic_rerank_request`
- `pgcontext._finish_late_interaction_registration`
- `pgcontext._heartbeat_document_chunk_job`
- `pgcontext._initialize_collection_source_revision`
- `pgcontext._insert_semantic_rerank_request`
- `pgcontext._install_document_chunk_outbox_trigger`
- `pgcontext._invalidate_document_chunk_aliases`
- `pgcontext._l1_distance_fast`
- `pgcontext._l2_distance_fast8`
- `pgcontext._l2_distance_fast`
- `pgcontext._late_interaction_ann_candidate_points`
- `pgcontext._load_document_chunk_claim_source`
- `pgcontext._load_document_chunk_lease_expiry`
- `pgcontext._load_document_chunk_staging`
- `pgcontext._lock_document_chunk_job_alias`
- `pgcontext._lock_document_chunk_read_alias`
- `pgcontext._lock_document_chunk_source`
- `pgcontext._mapped_hnsw_sql_drop`
- `pgcontext._negative_inner_product_fast`
- `pgcontext._pin_generation`
- `pgcontext._prepare_chunking_profile_alias`
- `pgcontext._prepare_late_interaction_repair`
- `pgcontext._promote_chunking_profile_alias`
- `pgcontext._publish_generation`
- `pgcontext._rebuild_document_chunk_job`
- `pgcontext._refresh_collection_source_table`
- `pgcontext._refresh_document_chunk_source`
- `pgcontext._refresh_lexical_catalog_oids`
- `pgcontext._refresh_payload_source_bindings`
- `pgcontext._refresh_semantic_rerank_source`
- `pgcontext._refresh_sparse_vector_source_binding`
- `pgcontext._refresh_vector_source_binding`
- `pgcontext._register_chunking_profile`
- `pgcontext._register_document_source`
- `pgcontext._register_fuzzy_source`
- `pgcontext._register_lexical_source`
- `pgcontext._register_lexical_tsquery`
- `pgcontext._register_semantic_rerank_source`
- `pgcontext._reject_build_job_progress_regression`
- `pgcontext._reject_embedding_profile_mutation`
- `pgcontext._release_document_chunk_claim`
- `pgcontext._require_collection_owner`
- `pgcontext._retry_document_chunk_job`
- `pgcontext._rollback_chunking_profile_alias`
- `pgcontext._rollback_document_chunk_generation`
- `pgcontext._set_embedding_profile_lifecycle`
- `pgcontext._stage_document_chunk_response`
- `pgcontext._store_late_interaction_tokens`
- `pgcontext._supersede_document_chunk_claim`
- `pgcontext._unpin_generation`
- `pgcontext.bitvec_out`
- `pgcontext.bitvec_send`
- `pgcontext.bitvec_typmod_input`
- `pgcontext.bitvec_typmod_receive`
- `pgcontext.current_vector_config_revision`
- `pgcontext.hamming_distance`
- `pgcontext.hnsw_handler`
- `pgcontext.int8vec_out`
- `pgcontext.int8vec_send`
- `pgcontext.int8vec_typmod_input`
- `pgcontext.int8vec_typmod_receive`
- `pgcontext.ivfflat_handler`
- `pgcontext.jaccard_distance`
- `pgcontext.uint8vec_out`
- `pgcontext.uint8vec_send`
- `pgcontext.uint8vec_typmod_input`
- `pgcontext.uint8vec_typmod_receive`

## Cast Identities

- `(bit AS bitvec) WITH INOUT AS ASSIGNMENT;`
- `(bit varying AS bitvec) WITH INOUT AS ASSIGNMENT;`
- `(bitvec AS bit varying) WITH INOUT AS ASSIGNMENT;`
- `(bitvec AS bit) WITH INOUT;`
- `(bitvec AS bitvec)`
- `(bitvec AS boolean[]) WITH FUNCTION pgcontext.bitvec_to_bool_array(bitvec) AS ASSIGNMENT;`
- `(boolean[] AS bitvec) WITH FUNCTION pgcontext.bitvec_from_bool_array(boolean[]) AS ASSIGNMENT;`
- `(double precision[] AS halfvec)`
- `(double precision[] AS vector)`
- `(halfvec AS halfvec)`
- `(halfvec AS real[])`
- `(halfvec AS vector)`
- `(int8vec AS int8vec)`
- `(int8vec AS smallint[])`
- `(int8vec AS vector)`
- `(integer[] AS halfvec)`
- `(integer[] AS int8vec)`
- `(integer[] AS uint8vec)`
- `(integer[] AS vector)`
- `(real[] AS halfvec)`
- `(real[] AS sparsevec)`
- `(real[] AS vector)`
- `(smallint[] AS int8vec)`
- `(smallint[] AS uint8vec)`
- `(sparsevec AS real[])`
- `(sparsevec AS sparsevec)`
- `(sparsevec AS vector)`
- `(uint8vec AS smallint[])`
- `(uint8vec AS uint8vec)`
- `(uint8vec AS vector)`
- `(vector AS int8vec)`
- `(vector AS real[])`
- `(vector AS sparsevec)`
- `(vector AS uint8vec)`
- `(vector AS vector)`

## Typed Operator Registry Entries

| Entry | Kind | Applies to | Lifecycle |
|---|---|---|---|
| `vector_ops` | operator class | btree, vector | Stable |
| `halfvec_ops` | operator class | btree, halfvec | Experimental |
| `sparsevec_ops` | operator class | btree, sparsevec | Experimental |
| `bitvec_ops` | operator class | btree, bitvec | Experimental |
| `int8vec_ops` | operator class | btree, int8vec | Experimental |
| `uint8vec_ops` | operator class | btree, uint8vec | Experimental |
| `vector_hnsw_ops` | operator class | pgcontext_hnsw, vector | Experimental |
| `vector_hnsw_ip_ops` | operator class | pgcontext_hnsw, vector | Experimental |
| `vector_hnsw_cosine_ops` | operator class | pgcontext_hnsw, vector | Experimental |
| `vector_hnsw_l1_ops` | operator class | pgcontext_hnsw, vector | Experimental |
| `halfvec_hnsw_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `halfvec_hnsw_ip_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `halfvec_hnsw_cosine_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `halfvec_hnsw_l1_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `sparsevec_hnsw_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `sparsevec_hnsw_ip_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `sparsevec_hnsw_cosine_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `sparsevec_hnsw_l1_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `bitvec_hnsw_hamming_ops` | operator class | pgcontext_hnsw, bitvec | Stable |
| `bitvec_hnsw_jaccard_ops` | operator class | pgcontext_hnsw, bitvec | Stable |
| `int8vec_hnsw_ops` | operator class | pgcontext_hnsw, int8vec | Experimental |
| `int8vec_hnsw_ip_ops` | operator class | pgcontext_hnsw, int8vec | Experimental |
| `int8vec_hnsw_cosine_ops` | operator class | pgcontext_hnsw, int8vec | Experimental |
| `int8vec_hnsw_l1_ops` | operator class | pgcontext_hnsw, int8vec | Experimental |
| `uint8vec_hnsw_ops` | operator class | pgcontext_hnsw, uint8vec | Experimental |
| `uint8vec_hnsw_ip_ops` | operator class | pgcontext_hnsw, uint8vec | Experimental |
| `uint8vec_hnsw_cosine_ops` | operator class | pgcontext_hnsw, uint8vec | Experimental |
| `uint8vec_hnsw_l1_ops` | operator class | pgcontext_hnsw, uint8vec | Experimental |
| `vector_ivfflat_ops` | operator class | pgcontext_ivfflat, vector | Experimental |
| `vector_ivfflat_ip_ops` | operator class | pgcontext_ivfflat, vector | Experimental |
| `vector_ivfflat_cosine_ops` | operator class | pgcontext_ivfflat, vector | Experimental |
| `vector_ivfflat_l1_ops` | operator class | pgcontext_ivfflat, vector | Experimental |
| `halfvec_ivfflat_ops` | operator class | pgcontext_ivfflat, halfvec | Experimental |
| `halfvec_ivfflat_ip_ops` | operator class | pgcontext_ivfflat, halfvec | Experimental |
| `halfvec_ivfflat_cosine_ops` | operator class | pgcontext_ivfflat, halfvec | Experimental |
| `halfvec_ivfflat_l1_ops` | operator class | pgcontext_ivfflat, halfvec | Experimental |
| `int8vec_ivfflat_ops` | operator class | pgcontext_ivfflat, int8vec | Experimental |
| `int8vec_ivfflat_ip_ops` | operator class | pgcontext_ivfflat, int8vec | Experimental |
| `int8vec_ivfflat_cosine_ops` | operator class | pgcontext_ivfflat, int8vec | Experimental |
| `int8vec_ivfflat_l1_ops` | operator class | pgcontext_ivfflat, int8vec | Experimental |
| `uint8vec_ivfflat_ops` | operator class | pgcontext_ivfflat, uint8vec | Experimental |
| `uint8vec_ivfflat_ip_ops` | operator class | pgcontext_ivfflat, uint8vec | Experimental |
| `uint8vec_ivfflat_cosine_ops` | operator class | pgcontext_ivfflat, uint8vec | Experimental |
| `uint8vec_ivfflat_l1_ops` | operator class | pgcontext_ivfflat, uint8vec | Experimental |
| `bitvec_ivfflat_hamming_ops` | operator class | pgcontext_ivfflat, bitvec | Experimental |
| `bitvec_ivfflat_jaccard_ops` | operator class | pgcontext_ivfflat, bitvec | Experimental |
| `vector_l2_ops` | operator class | pgcontext_hnsw, vector | Stable |
| `vector_ip_ops` | operator class | pgcontext_hnsw, vector | Stable |
| `vector_cosine_ops` | operator class | pgcontext_hnsw, vector | Stable |
| `vector_l1_ops` | operator class | pgcontext_hnsw, vector | Stable |
| `halfvec_l2_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `halfvec_ip_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `halfvec_cosine_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `halfvec_l1_ops` | operator class | pgcontext_hnsw, halfvec | Stable |
| `sparsevec_l2_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `sparsevec_ip_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `sparsevec_cosine_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `sparsevec_l1_ops` | operator class | pgcontext_hnsw, sparsevec | Stable |
| `bit_hamming_ops` | operator class | pgcontext_hnsw, bitvec | Stable |
| `bit_jaccard_ops` | operator class | pgcontext_hnsw, bitvec | Stable |
| `vector_l2_ops` | operator class | pgcontext_ivfflat, vector | Stable |
| `vector_ip_ops` | operator class | pgcontext_ivfflat, vector | Stable |
| `vector_cosine_ops` | operator class | pgcontext_ivfflat, vector | Stable |
| `vector_l1_ops` | operator class | pgcontext_ivfflat, vector | Stable |
| `halfvec_l2_ops` | operator class | pgcontext_ivfflat, halfvec | Stable |
| `halfvec_ip_ops` | operator class | pgcontext_ivfflat, halfvec | Stable |
| `halfvec_cosine_ops` | operator class | pgcontext_ivfflat, halfvec | Stable |
| `halfvec_l1_ops` | operator class | pgcontext_ivfflat, halfvec | Stable |
| `bit_hamming_ops` | operator class | pgcontext_ivfflat, bitvec | Stable |
| `bit_jaccard_ops` | operator class | pgcontext_ivfflat, bitvec | Stable |
| `<->` | operator | vector, vector | Stable |
| `<#>` | operator | vector, vector | Stable |
| `<=>` | operator | vector, vector | Stable |
| `<+>` | operator | vector, vector | Stable |
| `<` | operator | vector, vector | Stable |
| `<=` | operator | vector, vector | Stable |
| `=` | operator | vector, vector | Stable |
| `<>` | operator | vector, vector | Stable |
| `>=` | operator | vector, vector | Stable |
| `>` | operator | vector, vector | Stable |
| `<->` | operator | halfvec, halfvec | Experimental |
| `<#>` | operator | halfvec, halfvec | Experimental |
| `<=>` | operator | halfvec, halfvec | Experimental |
| `<+>` | operator | halfvec, halfvec | Experimental |
| `<` | operator | halfvec, halfvec | Experimental |
| `<=` | operator | halfvec, halfvec | Experimental |
| `=` | operator | halfvec, halfvec | Experimental |
| `<>` | operator | halfvec, halfvec | Experimental |
| `>=` | operator | halfvec, halfvec | Experimental |
| `>` | operator | halfvec, halfvec | Experimental |
| `<->` | operator | sparsevec, sparsevec | Experimental |
| `<#>` | operator | sparsevec, sparsevec | Experimental |
| `<=>` | operator | sparsevec, sparsevec | Experimental |
| `<+>` | operator | sparsevec, sparsevec | Experimental |
| `<` | operator | sparsevec, sparsevec | Experimental |
| `<=` | operator | sparsevec, sparsevec | Experimental |
| `=` | operator | sparsevec, sparsevec | Experimental |
| `<>` | operator | sparsevec, sparsevec | Experimental |
| `>=` | operator | sparsevec, sparsevec | Experimental |
| `>` | operator | sparsevec, sparsevec | Experimental |
| `<` | operator | bitvec, bitvec | Experimental |
| `<=` | operator | bitvec, bitvec | Experimental |
| `=` | operator | bitvec, bitvec | Experimental |
| `<>` | operator | bitvec, bitvec | Experimental |
| `>=` | operator | bitvec, bitvec | Experimental |
| `>` | operator | bitvec, bitvec | Experimental |
| `<~>` | operator | bitvec, bitvec | Experimental |
| `<%>` | operator | bitvec, bitvec | Experimental |
| `<~>` | operator | bit, bit | Experimental |
| `<%>` | operator | bit, bit | Experimental |
| `<~>` | operator | bit varying, bit varying | Experimental |
| `<%>` | operator | bit varying, bit varying | Experimental |
| `<->` | operator | int8vec, int8vec | Experimental |
| `<#>` | operator | int8vec, int8vec | Experimental |
| `<=>` | operator | int8vec, int8vec | Experimental |
| `<+>` | operator | int8vec, int8vec | Experimental |
| `<` | operator | int8vec, int8vec | Experimental |
| `<=` | operator | int8vec, int8vec | Experimental |
| `=` | operator | int8vec, int8vec | Experimental |
| `<>` | operator | int8vec, int8vec | Experimental |
| `>=` | operator | int8vec, int8vec | Experimental |
| `>` | operator | int8vec, int8vec | Experimental |
| `<->` | operator | uint8vec, uint8vec | Experimental |
| `<#>` | operator | uint8vec, uint8vec | Experimental |
| `<=>` | operator | uint8vec, uint8vec | Experimental |
| `<+>` | operator | uint8vec, uint8vec | Experimental |
| `<` | operator | uint8vec, uint8vec | Experimental |
| `<=` | operator | uint8vec, uint8vec | Experimental |
| `=` | operator | uint8vec, uint8vec | Experimental |
| `<>` | operator | uint8vec, uint8vec | Experimental |
| `>=` | operator | uint8vec, uint8vec | Experimental |
| `>` | operator | uint8vec, uint8vec | Experimental |

## Aggregate Identities

- `pgcontext.avg(halfvec) (`
- `pgcontext.avg(int8vec) (`
- `pgcontext.avg(sparsevec) (`
- `pgcontext.avg(uint8vec) (`
- `pgcontext.avg(vector) (`
- `pgcontext.bit_and(bitvec) (`
- `pgcontext.bit_or(bitvec) (`
- `pgcontext.sum(halfvec) (`
- `pgcontext.sum(int8vec) (`
- `pgcontext.sum(sparsevec) (`
- `pgcontext.sum(uint8vec) (`
- `pgcontext.sum(vector) (`

## Access Methods And Operator Classes

- access method `pgcontext_hnsw`
- access method `pgcontext_ivfflat`
- operator class `pgcontext.bit_hamming_ops`
- operator class `pgcontext.bit_jaccard_ops`
- operator class `pgcontext.bitvec_hnsw_hamming_ops`
- operator class `pgcontext.bitvec_hnsw_jaccard_ops`
- operator class `pgcontext.bitvec_ivfflat_hamming_ops`
- operator class `pgcontext.bitvec_ivfflat_jaccard_ops`
- operator class `pgcontext.bitvec_ops`
- operator class `pgcontext.halfvec_cosine_ops`
- operator class `pgcontext.halfvec_hnsw_cosine_ops`
- operator class `pgcontext.halfvec_hnsw_ip_ops`
- operator class `pgcontext.halfvec_hnsw_l1_ops`
- operator class `pgcontext.halfvec_hnsw_ops`
- operator class `pgcontext.halfvec_ip_ops`
- operator class `pgcontext.halfvec_ivfflat_cosine_ops`
- operator class `pgcontext.halfvec_ivfflat_ip_ops`
- operator class `pgcontext.halfvec_ivfflat_l1_ops`
- operator class `pgcontext.halfvec_ivfflat_ops`
- operator class `pgcontext.halfvec_l1_ops`
- operator class `pgcontext.halfvec_l2_ops`
- operator class `pgcontext.halfvec_ops`
- operator class `pgcontext.int8vec_hnsw_cosine_ops`
- operator class `pgcontext.int8vec_hnsw_ip_ops`
- operator class `pgcontext.int8vec_hnsw_l1_ops`
- operator class `pgcontext.int8vec_hnsw_ops`
- operator class `pgcontext.int8vec_ivfflat_cosine_ops`
- operator class `pgcontext.int8vec_ivfflat_ip_ops`
- operator class `pgcontext.int8vec_ivfflat_l1_ops`
- operator class `pgcontext.int8vec_ivfflat_ops`
- operator class `pgcontext.int8vec_ops`
- operator class `pgcontext.sparsevec_cosine_ops`
- operator class `pgcontext.sparsevec_hnsw_cosine_ops`
- operator class `pgcontext.sparsevec_hnsw_ip_ops`
- operator class `pgcontext.sparsevec_hnsw_l1_ops`
- operator class `pgcontext.sparsevec_hnsw_ops`
- operator class `pgcontext.sparsevec_ip_ops`
- operator class `pgcontext.sparsevec_l1_ops`
- operator class `pgcontext.sparsevec_l2_ops`
- operator class `pgcontext.sparsevec_ops`
- operator class `pgcontext.uint8vec_hnsw_cosine_ops`
- operator class `pgcontext.uint8vec_hnsw_ip_ops`
- operator class `pgcontext.uint8vec_hnsw_l1_ops`
- operator class `pgcontext.uint8vec_hnsw_ops`
- operator class `pgcontext.uint8vec_ivfflat_cosine_ops`
- operator class `pgcontext.uint8vec_ivfflat_ip_ops`
- operator class `pgcontext.uint8vec_ivfflat_l1_ops`
- operator class `pgcontext.uint8vec_ivfflat_ops`
- operator class `pgcontext.uint8vec_ops`
- operator class `pgcontext.vector_cosine_ops`
- operator class `pgcontext.vector_hnsw_cosine_ops`
- operator class `pgcontext.vector_hnsw_ip_ops`
- operator class `pgcontext.vector_hnsw_l1_ops`
- operator class `pgcontext.vector_hnsw_ops`
- operator class `pgcontext.vector_ip_ops`
- operator class `pgcontext.vector_ivfflat_cosine_ops`
- operator class `pgcontext.vector_ivfflat_ip_ops`
- operator class `pgcontext.vector_ivfflat_l1_ops`
- operator class `pgcontext.vector_ivfflat_ops`
- operator class `pgcontext.vector_l1_ops`
- operator class `pgcontext.vector_l2_ops`
- operator class `pgcontext.vector_ops`

## `pgcontext_hnsw` Index Reloptions

| Option | Accepted shape | Lifecycle |
|---|---|---|
| `quantization` | `none`, `scalar`, `sq8`, `pq`, or `binary` | Candidate codec; exact source rerank is mandatory |
| `scalar_min` | finite lower bound | Experimental |
| `scalar_max` | finite upper bound greater than `scalar_min` | Experimental |
| `scalar_levels` | integer from 2 through 256 | Experimental |
| `pq_subvector_dimensions` | positive divisor of vector dimensions | Experimental |

## `pgcontext_ivfflat` Index Reloptions

| Option | Accepted shape | Lifecycle |
|---|---|---|
| `lists` | integer from 1 through 32768 | Trained centroid-list count |
| `quantization` | `none`, `sq8`, or `pq` | Candidate posting codec; exact source rerank is mandatory |
| `pq_subvector_dimensions` | positive divisor of vector dimensions | Used when `quantization = pq` |

## HNSW GUCs

| Setting | Default | Lifecycle |
|---|---:|---|
| `pgcontext.hnsw_m` | `16` | Experimental HNSW serving policy |
| `pgcontext.hnsw_ef_construction` | `64` | Experimental HNSW build policy |
| `pgcontext.hnsw_ef_search` | `32` | Experimental HNSW search policy |
| `pgcontext.hnsw_candidate_budget` | `32` | Experimental filtered/iterative policy |
| `pgcontext.hnsw_iterative_expansion_limit` | `10000` | Experimental bounded expansion policy |
| `pgcontext.hnsw_recall_threshold` | `0.95` | Experimental recall-health policy |

## IVFFlat GUCs

| Setting | Default | Lifecycle |
|---|---:|---|
| `pgcontext.ivfflat_probes` | `1` | Initial centroid-list count |
| `pgcontext.ivfflat_max_probes` | `32768` | Maximum lists visited by iterative widening |
| `pgcontext.ivfflat_candidate_budget` | `100000` | Hard posting/delta work ceiling |
| `pgcontext.ivfflat_iterative_scan` | `off` | `off`, `strict_order`, or `relaxed_order` |
| `pgcontext.ivfflat_build_parallel_workers` | `1` | Native PostgreSQL parallel assignment workers, maximum 16 |

## Lexical GUCs

| Setting | Default | Lifecycle |
|---|---:|---|
| `pgcontext.lexical_candidate_budget` | `1000` | Stable bounded lexical/fuzzy index probe allowance, maximum 10000 |
