# Installed SQL Object And Option Inventory

Generated by `scripts/generate-sql-object-inventory.sh` from
`sql/pgcontext--0.2.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: `6ac8ce941ba8260ebc0673643b3e36090cbd7a9e38829b74ff3cb628f1c5b981`

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 | 18 |
| Schemas | 0 |
| Functions | 272 |
| Tables | 16 |
| Views | 12 |
| Triggers | 4 |
| Casts | 23 |
| Operators | 42 |
| Operator classes | 18 |
| Aggregates | 8 |
| Access methods | 1 |

## Types

- `BitVec`
- `BuildJobStatus`
- `EmbeddingMigrationStatus`
- `HalfVec`
- `IndexAdvisorRecommendation`
- `IndexDiagnosticStatus`
- `IndexLifecycleStatus`
- `IndexMemoryEstimateStatus`
- `OptimizationStatus`
- `QueryCohortStatus`
- `QueryExplainStatus`
- `QueryLatencyBucket`
- `QueryLifecycleState`
- `RecallCheckStatus`
- `SparseVec`
- `TelemetryStatus`
- `VacuumAdviceStatus`
- `Vector`

## Schemas, Tables, Views, And Triggers

- table `pgcontext._artifact_reader_pins`
- table `pgcontext._artifact_segments`
- table `pgcontext._build_deltas`
- table `pgcontext._build_jobs`
- table `pgcontext._collection_aliases`
- table `pgcontext._collection_late_interaction_tokens`
- table `pgcontext._collection_late_interaction`
- table `pgcontext._collection_payload_columns`
- table `pgcontext._collection_points`
- table `pgcontext._collection_sparse_vectors`
- table `pgcontext._collection_vectors`
- table `pgcontext._collections`
- table `pgcontext._embedding_migrations`
- table `pgcontext._model_versions`
- table `pgcontext._pgvector_ownership_conversions`
- table `pgcontext._query_stats`
- 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`
- view `pgcontext._collection_acl`
- view `pgcontext._visible_artifact_segments`
- view `pgcontext._visible_build_jobs`
- view `pgcontext._visible_collection_late_interaction`
- 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_pgvector_ownership_conversions`
- view `pgcontext._visible_query_stats`

## Function Names

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

- `"_begin_pgvector_ownership_conversion"`
- `"_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"`
- `"artifact_segment_diagnostics"`
- `"artifact_segment_memory"`
- `"artifact_segment_mmap_payload"`
- `"artifact_segment_serving_readiness"`
- `"artifact_segments"`
- `"attach_hnsw_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_ge"`
- `"bitvec_gt"`
- `"bitvec_hamming_distance"`
- `"bitvec_in"`
- `"bitvec_jaccard_distance"`
- `"bitvec_le"`
- `"bitvec_lt"`
- `"bitvec_ne"`
- `"bitvec_or_transition"`
- `"bitvec_out"`
- `"bitvec_to_bool_array"`
- `"bitvec_typmod_in"`
- `"bitvec_typmod_out"`
- `"build_jobs"`
- `"build_mmap_hnsw_artifact"`
- `"bulk_delete_points"`
- `"bulk_upsert_points"`
- `"cleanup_artifact_segments"`
- `"clear_payload"`
- `"collection_aliases"`
- `"collection_info"`
- `"collection_limits"`
- `"collection_sparse_vectors"`
- `"collection_vectors"`
- `"compact"`
- `"compare_indexes"`
- `"configure_collection_limits"`
- `"configure_sparse_vector"`
- `"configure_vector"`
- `"cosine_distance"`
- `"count"`
- `"create_collection"`
- `"create_collection_alias"`
- `"create_embedding_migration"`
- `"cutover_pgvector_ownership_conversion"`
- `"delete_payload"`
- `"delete_points"`
- `"discover"`
- `"drop_collection"`
- `"drop_collection_alias"`
- `"embedding_migrations"`
- `"enable_pgvector_binding"`
- `"encode_artifact_segment"`
- `"estimate_index_memory"`
- `"execute_query"`
- `"explain"`
- `"explain_late_interaction"`
- `"explain_late_interaction_ann"`
- `"explain_sparse"`
- `"explore"`
- `"facet"`
- `"finalize_pgvector_ownership_conversion"`
- `"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"`
- `"hnsw_build_stats"`
- `"hnsw_l2_distance"`
- `"hnsw_last_scan_work"`
- `"hnsw_serving_stats"`
- `"index_advisor"`
- `"index_diagnostics"`
- `"index_status"`
- `"inner_product"`
- `"l1_distance"`
- `"l2_distance"`
- `"migration_report"`
- `"model_versions"`
- `"negative_inner_product"`
- `"optimization_status"`
- `"pgvector_ownership_conversions"`
- `"product_quantize"`
- `"product_reconstruct"`
- `"publish_artifact_segment"`
- `"publish_artifact_segment_file"`
- `"query"`
- `"query_cohort_stats"`
- `"query_discover"`
- `"query_execution_stats"`
- `"query_formula"`
- `"query_full_text"`
- `"query_late_interaction"`
- `"query_lookup"`
- `"query_nearest"`
- `"query_prefetch"`
- `"query_recommend"`
- `"query_rerank"`
- `"query_score_threshold"`
- `"query_sparse_nearest"`
- `"query_telemetry_queue_stats"`
- `"query_weight"`
- `"recall_check"`
- `"recommend"`
- `"record_query_stat"`
- `"register_filter_column"`
- `"register_jsonb_path"`
- `"register_late_interaction"`
- `"register_model_version"`
- `"register_sparse_vector"`
- `"register_vector"`
- `"repair_late_interaction"`
- `"request_build_cancel"`
- `"rerank_late_interaction"`
- `"rerank_quantized_candidates"`
- `"retire_artifact_segment"`
- `"retry_build_job"`
- `"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_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"`
- `"start_build_job"`
- `"start_pgvector_ownership_conversion"`
- `"telemetry"`
- `"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_sum_final"`
- `"vector_sum_transition"`
- `"vector_to_real_array"`
- `"vector_typmod_in"`
- `"vector_typmod_out"`
- `pgcontext._begin_late_interaction_registration`
- `pgcontext._capture_build_point_delta`
- `pgcontext._capture_late_interaction_tokens`
- `pgcontext._cleanup_late_interaction_registration`
- `pgcontext._cosine_distance_fast`
- `pgcontext._enforce_build_job_terminal_state`
- `pgcontext._finish_late_interaction_registration`
- `pgcontext._l1_distance_fast`
- `pgcontext._l2_distance_fast8`
- `pgcontext._l2_distance_fast`
- `pgcontext._late_interaction_ann_candidate_points`
- `pgcontext._mapped_hnsw_sql_drop`
- `pgcontext._negative_inner_product_fast`
- `pgcontext._prepare_late_interaction_repair`
- `pgcontext._refresh_collection_source_table`
- `pgcontext._refresh_payload_source_bindings`
- `pgcontext._refresh_sparse_vector_source_binding`
- `pgcontext._refresh_vector_source_binding`
- `pgcontext._reject_build_job_progress_regression`
- `pgcontext._store_late_interaction_tokens`
- `pgcontext.current_vector_config_revision`
- `pgcontext.hamming_distance`
- `pgcontext.hnsw_handler`
- `pgcontext.jaccard_distance`

## 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)`
- `(integer[] AS halfvec)`
- `(integer[] AS vector)`
- `(real[] AS halfvec)`
- `(real[] AS sparsevec)`
- `(real[] AS vector)`
- `(sparsevec AS real[])`
- `(sparsevec AS sparsevec)`
- `(sparsevec AS vector)`
- `(vector AS real[])`
- `(vector AS sparsevec)`
- `(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 |
| `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 |
| `<->` | 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 |

## Aggregate Identities

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

## Access Methods And Operator Classes

- access method `pgcontext_hnsw`
- operator class `pgcontext.bitvec_hnsw_hamming_ops`
- operator class `pgcontext.bitvec_hnsw_jaccard_ops`
- operator class `pgcontext.bitvec_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_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_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_ops`

## `pgcontext_hnsw` Index Reloptions

| Option | Accepted shape | Lifecycle |
|---|---|---|
| `quantization` | `none`, `scalar`, `sq8`, or `pq` | Experimental until quantized serving is complete |
| `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 |
| `pq_codebooks` | validated JSON codebook array | Experimental |

## 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 |
