// @generated by `cargo run -p xtask -- extensions generate`

use super::{Extension, ExtensionSetup};

const EMPTY_SQL_NAMES: &[&str] = &[];
const EMPTY_SQL: &[&str] = &[];

const CANDIDATE_AGE_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_AGE_LOAD_SQL: &[&str] = &["LOAD 'age';"];
const CANDIDATE_AGE_POST_CREATE_SQL: &[&str] =
    &["SET search_path = ag_catalog, \"$user\", public;"];

pub(crate) const CANDIDATE_AGE: Extension = Extension::new(
    "Apache AGE",
    "age",
    "extensions/age.tar.zst",
    Some("age.so"),
    Some("extension:age"),
    CANDIDATE_AGE_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("ag_catalog"),
        CANDIDATE_AGE_LOAD_SQL,
        CANDIDATE_AGE_POST_CREATE_SQL,
    ),
);

const CANDIDATE_AMCHECK_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_AMCHECK_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_AMCHECK_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_AMCHECK: Extension = Extension::new(
    "amcheck",
    "amcheck",
    "extensions/amcheck.tar.zst",
    Some("amcheck.so"),
    Some("extension:amcheck"),
    CANDIDATE_AMCHECK_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_AMCHECK_LOAD_SQL,
        CANDIDATE_AMCHECK_POST_CREATE_SQL,
    ),
);

const CANDIDATE_AUTO_EXPLAIN_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_AUTO_EXPLAIN_LOAD_SQL: &[&str] = &[
    "LOAD 'auto_explain';",
    "SET auto_explain.log_min_duration = '0';",
    "SET auto_explain.log_analyze = 'true';",
    "SET auto_explain.log_level = 'NOTICE';",
];
const CANDIDATE_AUTO_EXPLAIN_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_AUTO_EXPLAIN: Extension = Extension::new(
    "auto_explain",
    "auto_explain",
    "extensions/auto_explain.tar.zst",
    Some("auto_explain.so"),
    Some("extension:auto_explain"),
    CANDIDATE_AUTO_EXPLAIN_DEPENDENCIES,
    ExtensionSetup::new(
        false,
        None,
        CANDIDATE_AUTO_EXPLAIN_LOAD_SQL,
        CANDIDATE_AUTO_EXPLAIN_POST_CREATE_SQL,
    ),
);

const CANDIDATE_BLOOM_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_BLOOM_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_BLOOM_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_BLOOM: Extension = Extension::new(
    "bloom",
    "bloom",
    "extensions/bloom.tar.zst",
    Some("bloom.so"),
    Some("extension:bloom"),
    CANDIDATE_BLOOM_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_BLOOM_LOAD_SQL,
        CANDIDATE_BLOOM_POST_CREATE_SQL,
    ),
);

const CANDIDATE_BTREE_GIN_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_BTREE_GIN_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_BTREE_GIN_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_BTREE_GIN: Extension = Extension::new(
    "btree_gin",
    "btree_gin",
    "extensions/btree_gin.tar.zst",
    Some("btree_gin.so"),
    Some("extension:btree_gin"),
    CANDIDATE_BTREE_GIN_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_BTREE_GIN_LOAD_SQL,
        CANDIDATE_BTREE_GIN_POST_CREATE_SQL,
    ),
);

const CANDIDATE_BTREE_GIST_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_BTREE_GIST_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_BTREE_GIST_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_BTREE_GIST: Extension = Extension::new(
    "btree_gist",
    "btree_gist",
    "extensions/btree_gist.tar.zst",
    Some("btree_gist.so"),
    Some("extension:btree_gist"),
    CANDIDATE_BTREE_GIST_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_BTREE_GIST_LOAD_SQL,
        CANDIDATE_BTREE_GIST_POST_CREATE_SQL,
    ),
);

const CANDIDATE_CITEXT_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_CITEXT_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_CITEXT_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_CITEXT: Extension = Extension::new(
    "citext",
    "citext",
    "extensions/citext.tar.zst",
    Some("citext.so"),
    Some("extension:citext"),
    CANDIDATE_CITEXT_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_CITEXT_LOAD_SQL,
        CANDIDATE_CITEXT_POST_CREATE_SQL,
    ),
);

const CANDIDATE_CUBE_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_CUBE_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_CUBE_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_CUBE: Extension = Extension::new(
    "cube",
    "cube",
    "extensions/cube.tar.zst",
    Some("cube.so"),
    Some("extension:cube"),
    CANDIDATE_CUBE_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_CUBE_LOAD_SQL,
        CANDIDATE_CUBE_POST_CREATE_SQL,
    ),
);

const CANDIDATE_DICT_INT_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_DICT_INT_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_DICT_INT_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_DICT_INT: Extension = Extension::new(
    "dict_int",
    "dict_int",
    "extensions/dict_int.tar.zst",
    Some("dict_int.so"),
    Some("extension:dict_int"),
    CANDIDATE_DICT_INT_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_DICT_INT_LOAD_SQL,
        CANDIDATE_DICT_INT_POST_CREATE_SQL,
    ),
);

const CANDIDATE_DICT_XSYN_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_DICT_XSYN_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_DICT_XSYN_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_DICT_XSYN: Extension = Extension::new(
    "dict_xsyn",
    "dict_xsyn",
    "extensions/dict_xsyn.tar.zst",
    Some("dict_xsyn.so"),
    Some("extension:dict_xsyn"),
    CANDIDATE_DICT_XSYN_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_DICT_XSYN_LOAD_SQL,
        CANDIDATE_DICT_XSYN_POST_CREATE_SQL,
    ),
);

const CANDIDATE_EARTHDISTANCE_DEPENDENCIES: &[&str] = &["cube"];
const CANDIDATE_EARTHDISTANCE_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_EARTHDISTANCE_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_EARTHDISTANCE: Extension = Extension::new(
    "earthdistance",
    "earthdistance",
    "extensions/earthdistance.tar.zst",
    Some("earthdistance.so"),
    Some("extension:earthdistance"),
    CANDIDATE_EARTHDISTANCE_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_EARTHDISTANCE_LOAD_SQL,
        CANDIDATE_EARTHDISTANCE_POST_CREATE_SQL,
    ),
);

const CANDIDATE_FILE_FDW_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_FILE_FDW_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_FILE_FDW_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_FILE_FDW: Extension = Extension::new(
    "file_fdw",
    "file_fdw",
    "extensions/file_fdw.tar.zst",
    Some("file_fdw.so"),
    Some("extension:file_fdw"),
    CANDIDATE_FILE_FDW_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_FILE_FDW_LOAD_SQL,
        CANDIDATE_FILE_FDW_POST_CREATE_SQL,
    ),
);

const CANDIDATE_FUZZYSTRMATCH_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_FUZZYSTRMATCH_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_FUZZYSTRMATCH_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_FUZZYSTRMATCH: Extension = Extension::new(
    "fuzzystrmatch",
    "fuzzystrmatch",
    "extensions/fuzzystrmatch.tar.zst",
    Some("fuzzystrmatch.so"),
    Some("extension:fuzzystrmatch"),
    CANDIDATE_FUZZYSTRMATCH_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_FUZZYSTRMATCH_LOAD_SQL,
        CANDIDATE_FUZZYSTRMATCH_POST_CREATE_SQL,
    ),
);

const CANDIDATE_HSTORE_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_HSTORE_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_HSTORE_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_HSTORE: Extension = Extension::new(
    "hstore",
    "hstore",
    "extensions/hstore.tar.zst",
    Some("hstore.so"),
    Some("extension:hstore"),
    CANDIDATE_HSTORE_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_HSTORE_LOAD_SQL,
        CANDIDATE_HSTORE_POST_CREATE_SQL,
    ),
);

const CANDIDATE_INTARRAY_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_INTARRAY_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_INTARRAY_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_INTARRAY: Extension = Extension::new(
    "intarray",
    "intarray",
    "extensions/intarray.tar.zst",
    Some("_int.so"),
    Some("extension:intarray"),
    CANDIDATE_INTARRAY_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_INTARRAY_LOAD_SQL,
        CANDIDATE_INTARRAY_POST_CREATE_SQL,
    ),
);

const CANDIDATE_ISN_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_ISN_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_ISN_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_ISN: Extension = Extension::new(
    "isn",
    "isn",
    "extensions/isn.tar.zst",
    Some("isn.so"),
    Some("extension:isn"),
    CANDIDATE_ISN_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_ISN_LOAD_SQL,
        CANDIDATE_ISN_POST_CREATE_SQL,
    ),
);

const CANDIDATE_LO_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_LO_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_LO_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_LO: Extension = Extension::new(
    "lo",
    "lo",
    "extensions/lo.tar.zst",
    Some("lo.so"),
    Some("extension:lo"),
    CANDIDATE_LO_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_LO_LOAD_SQL,
        CANDIDATE_LO_POST_CREATE_SQL,
    ),
);

const CANDIDATE_LTREE_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_LTREE_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_LTREE_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_LTREE: Extension = Extension::new(
    "ltree",
    "ltree",
    "extensions/ltree.tar.zst",
    Some("ltree.so"),
    Some("extension:ltree"),
    CANDIDATE_LTREE_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_LTREE_LOAD_SQL,
        CANDIDATE_LTREE_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PAGEINSPECT_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PAGEINSPECT_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PAGEINSPECT_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PAGEINSPECT: Extension = Extension::new(
    "pageinspect",
    "pageinspect",
    "extensions/pageinspect.tar.zst",
    Some("pageinspect.so"),
    Some("extension:pageinspect"),
    CANDIDATE_PAGEINSPECT_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PAGEINSPECT_LOAD_SQL,
        CANDIDATE_PAGEINSPECT_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_BUFFERCACHE_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_BUFFERCACHE_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_BUFFERCACHE_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_BUFFERCACHE: Extension = Extension::new(
    "pg_buffercache",
    "pg_buffercache",
    "extensions/pg_buffercache.tar.zst",
    Some("pg_buffercache.so"),
    Some("extension:pg_buffercache"),
    CANDIDATE_PG_BUFFERCACHE_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_BUFFERCACHE_LOAD_SQL,
        CANDIDATE_PG_BUFFERCACHE_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_FREESPACEMAP_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_FREESPACEMAP_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_FREESPACEMAP_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_FREESPACEMAP: Extension = Extension::new(
    "pg_freespacemap",
    "pg_freespacemap",
    "extensions/pg_freespacemap.tar.zst",
    Some("pg_freespacemap.so"),
    Some("extension:pg_freespacemap"),
    CANDIDATE_PG_FREESPACEMAP_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_FREESPACEMAP_LOAD_SQL,
        CANDIDATE_PG_FREESPACEMAP_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_HASHIDS_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_HASHIDS_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_HASHIDS_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_HASHIDS: Extension = Extension::new(
    "pg_hashids",
    "pg_hashids",
    "extensions/pg_hashids.tar.zst",
    Some("pg_hashids.so"),
    Some("extension:pg_hashids"),
    CANDIDATE_PG_HASHIDS_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_HASHIDS_LOAD_SQL,
        CANDIDATE_PG_HASHIDS_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_IVM_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_IVM_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_IVM_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_IVM: Extension = Extension::new(
    "pg_ivm",
    "pg_ivm",
    "extensions/pg_ivm.tar.zst",
    Some("pg_ivm.so"),
    Some("extension:pg_ivm"),
    CANDIDATE_PG_IVM_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_IVM_LOAD_SQL,
        CANDIDATE_PG_IVM_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_SURGERY_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_SURGERY_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_SURGERY_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_SURGERY: Extension = Extension::new(
    "pg_surgery",
    "pg_surgery",
    "extensions/pg_surgery.tar.zst",
    Some("pg_surgery.so"),
    Some("extension:pg_surgery"),
    CANDIDATE_PG_SURGERY_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_SURGERY_LOAD_SQL,
        CANDIDATE_PG_SURGERY_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_TEXTSEARCH_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_TEXTSEARCH_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_TEXTSEARCH_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_TEXTSEARCH: Extension = Extension::new(
    "pg_textsearch",
    "pg_textsearch",
    "extensions/pg_textsearch.tar.zst",
    Some("pg_textsearch.so"),
    Some("extension:pg_textsearch"),
    CANDIDATE_PG_TEXTSEARCH_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_TEXTSEARCH_LOAD_SQL,
        CANDIDATE_PG_TEXTSEARCH_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_TRGM_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_TRGM_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_TRGM_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_TRGM: Extension = Extension::new(
    "pg_trgm",
    "pg_trgm",
    "extensions/pg_trgm.tar.zst",
    Some("pg_trgm.so"),
    Some("extension:pg_trgm"),
    CANDIDATE_PG_TRGM_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_TRGM_LOAD_SQL,
        CANDIDATE_PG_TRGM_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_UUIDV7_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_UUIDV7_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_UUIDV7_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_UUIDV7: Extension = Extension::new(
    "pg_uuidv7",
    "pg_uuidv7",
    "extensions/pg_uuidv7.tar.zst",
    Some("pg_uuidv7.so"),
    Some("extension:pg_uuidv7"),
    CANDIDATE_PG_UUIDV7_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_UUIDV7_LOAD_SQL,
        CANDIDATE_PG_UUIDV7_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_VISIBILITY_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_VISIBILITY_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_VISIBILITY_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_VISIBILITY: Extension = Extension::new(
    "pg_visibility",
    "pg_visibility",
    "extensions/pg_visibility.tar.zst",
    Some("pg_visibility.so"),
    Some("extension:pg_visibility"),
    CANDIDATE_PG_VISIBILITY_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_VISIBILITY_LOAD_SQL,
        CANDIDATE_PG_VISIBILITY_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PG_WALINSPECT_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PG_WALINSPECT_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PG_WALINSPECT_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PG_WALINSPECT: Extension = Extension::new(
    "pg_walinspect",
    "pg_walinspect",
    "extensions/pg_walinspect.tar.zst",
    Some("pg_walinspect.so"),
    Some("extension:pg_walinspect"),
    CANDIDATE_PG_WALINSPECT_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PG_WALINSPECT_LOAD_SQL,
        CANDIDATE_PG_WALINSPECT_POST_CREATE_SQL,
    ),
);

const CANDIDATE_PGTAP_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_PGTAP_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_PGTAP_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_PGTAP: Extension = Extension::new(
    "pgtap",
    "pgtap",
    "extensions/pgtap.tar.zst",
    None,
    None,
    CANDIDATE_PGTAP_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_PGTAP_LOAD_SQL,
        CANDIDATE_PGTAP_POST_CREATE_SQL,
    ),
);

const CANDIDATE_SEG_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_SEG_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_SEG_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_SEG: Extension = Extension::new(
    "seg",
    "seg",
    "extensions/seg.tar.zst",
    Some("seg.so"),
    Some("extension:seg"),
    CANDIDATE_SEG_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_SEG_LOAD_SQL,
        CANDIDATE_SEG_POST_CREATE_SQL,
    ),
);

const CANDIDATE_TABLEFUNC_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_TABLEFUNC_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_TABLEFUNC_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_TABLEFUNC: Extension = Extension::new(
    "tablefunc",
    "tablefunc",
    "extensions/tablefunc.tar.zst",
    Some("tablefunc.so"),
    Some("extension:tablefunc"),
    CANDIDATE_TABLEFUNC_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_TABLEFUNC_LOAD_SQL,
        CANDIDATE_TABLEFUNC_POST_CREATE_SQL,
    ),
);

const CANDIDATE_TCN_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_TCN_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_TCN_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_TCN: Extension = Extension::new(
    "tcn",
    "tcn",
    "extensions/tcn.tar.zst",
    Some("tcn.so"),
    Some("extension:tcn"),
    CANDIDATE_TCN_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_TCN_LOAD_SQL,
        CANDIDATE_TCN_POST_CREATE_SQL,
    ),
);

const CANDIDATE_TSM_SYSTEM_ROWS_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_TSM_SYSTEM_ROWS_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_TSM_SYSTEM_ROWS_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_TSM_SYSTEM_ROWS: Extension = Extension::new(
    "tsm_system_rows",
    "tsm_system_rows",
    "extensions/tsm_system_rows.tar.zst",
    Some("tsm_system_rows.so"),
    Some("extension:tsm_system_rows"),
    CANDIDATE_TSM_SYSTEM_ROWS_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_TSM_SYSTEM_ROWS_LOAD_SQL,
        CANDIDATE_TSM_SYSTEM_ROWS_POST_CREATE_SQL,
    ),
);

const CANDIDATE_TSM_SYSTEM_TIME_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_TSM_SYSTEM_TIME_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_TSM_SYSTEM_TIME_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_TSM_SYSTEM_TIME: Extension = Extension::new(
    "tsm_system_time",
    "tsm_system_time",
    "extensions/tsm_system_time.tar.zst",
    Some("tsm_system_time.so"),
    Some("extension:tsm_system_time"),
    CANDIDATE_TSM_SYSTEM_TIME_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_TSM_SYSTEM_TIME_LOAD_SQL,
        CANDIDATE_TSM_SYSTEM_TIME_POST_CREATE_SQL,
    ),
);

const CANDIDATE_UNACCENT_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_UNACCENT_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_UNACCENT_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_UNACCENT: Extension = Extension::new(
    "unaccent",
    "unaccent",
    "extensions/unaccent.tar.zst",
    Some("unaccent.so"),
    Some("extension:unaccent"),
    CANDIDATE_UNACCENT_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_UNACCENT_LOAD_SQL,
        CANDIDATE_UNACCENT_POST_CREATE_SQL,
    ),
);

const CANDIDATE_VECTOR_DEPENDENCIES: &[&str] = EMPTY_SQL_NAMES;
const CANDIDATE_VECTOR_LOAD_SQL: &[&str] = EMPTY_SQL;
const CANDIDATE_VECTOR_POST_CREATE_SQL: &[&str] = EMPTY_SQL;

pub(crate) const CANDIDATE_VECTOR: Extension = Extension::new(
    "pgvector",
    "vector",
    "extensions/vector.tar.zst",
    Some("vector.so"),
    Some("extension:vector"),
    CANDIDATE_VECTOR_DEPENDENCIES,
    ExtensionSetup::new(
        true,
        Some("pg_catalog"),
        CANDIDATE_VECTOR_LOAD_SQL,
        CANDIDATE_VECTOR_POST_CREATE_SQL,
    ),
);

pub const AGE: Extension = CANDIDATE_AGE;
pub const AMCHECK: Extension = CANDIDATE_AMCHECK;
pub const AUTO_EXPLAIN: Extension = CANDIDATE_AUTO_EXPLAIN;
pub const BLOOM: Extension = CANDIDATE_BLOOM;
pub const BTREE_GIN: Extension = CANDIDATE_BTREE_GIN;
pub const BTREE_GIST: Extension = CANDIDATE_BTREE_GIST;
pub const CITEXT: Extension = CANDIDATE_CITEXT;
pub const CUBE: Extension = CANDIDATE_CUBE;
pub const DICT_INT: Extension = CANDIDATE_DICT_INT;
pub const DICT_XSYN: Extension = CANDIDATE_DICT_XSYN;
pub const EARTHDISTANCE: Extension = CANDIDATE_EARTHDISTANCE;
pub const FILE_FDW: Extension = CANDIDATE_FILE_FDW;
pub const FUZZYSTRMATCH: Extension = CANDIDATE_FUZZYSTRMATCH;
pub const HSTORE: Extension = CANDIDATE_HSTORE;
pub const INTARRAY: Extension = CANDIDATE_INTARRAY;
pub const ISN: Extension = CANDIDATE_ISN;
pub const LO: Extension = CANDIDATE_LO;
pub const LTREE: Extension = CANDIDATE_LTREE;
pub const PAGEINSPECT: Extension = CANDIDATE_PAGEINSPECT;
pub const PG_BUFFERCACHE: Extension = CANDIDATE_PG_BUFFERCACHE;
pub const PG_FREESPACEMAP: Extension = CANDIDATE_PG_FREESPACEMAP;
pub const PG_HASHIDS: Extension = CANDIDATE_PG_HASHIDS;
pub const PG_IVM: Extension = CANDIDATE_PG_IVM;
pub const PG_SURGERY: Extension = CANDIDATE_PG_SURGERY;
pub const PG_TEXTSEARCH: Extension = CANDIDATE_PG_TEXTSEARCH;
pub const PG_TRGM: Extension = CANDIDATE_PG_TRGM;
pub const PG_UUIDV7: Extension = CANDIDATE_PG_UUIDV7;
pub const PG_VISIBILITY: Extension = CANDIDATE_PG_VISIBILITY;
pub const PG_WALINSPECT: Extension = CANDIDATE_PG_WALINSPECT;
pub const PGTAP: Extension = CANDIDATE_PGTAP;
pub const SEG: Extension = CANDIDATE_SEG;
pub const TABLEFUNC: Extension = CANDIDATE_TABLEFUNC;
pub const TCN: Extension = CANDIDATE_TCN;
pub const TSM_SYSTEM_ROWS: Extension = CANDIDATE_TSM_SYSTEM_ROWS;
pub const TSM_SYSTEM_TIME: Extension = CANDIDATE_TSM_SYSTEM_TIME;
pub const UNACCENT: Extension = CANDIDATE_UNACCENT;
pub const VECTOR: Extension = CANDIDATE_VECTOR;

pub const ALL: &[Extension] = &[
    AGE,
    AMCHECK,
    AUTO_EXPLAIN,
    BLOOM,
    BTREE_GIN,
    BTREE_GIST,
    CITEXT,
    CUBE,
    DICT_INT,
    DICT_XSYN,
    EARTHDISTANCE,
    FILE_FDW,
    FUZZYSTRMATCH,
    HSTORE,
    INTARRAY,
    ISN,
    LO,
    LTREE,
    PAGEINSPECT,
    PG_BUFFERCACHE,
    PG_FREESPACEMAP,
    PG_HASHIDS,
    PG_IVM,
    PG_SURGERY,
    PG_TEXTSEARCH,
    PG_TRGM,
    PG_UUIDV7,
    PG_VISIBILITY,
    PG_WALINSPECT,
    PGTAP,
    SEG,
    TABLEFUNC,
    TCN,
    TSM_SYSTEM_ROWS,
    TSM_SYSTEM_TIME,
    UNACCENT,
    VECTOR,
];
pub(crate) const CANDIDATES: &[Extension] = &[
    CANDIDATE_AGE,
    CANDIDATE_AMCHECK,
    CANDIDATE_AUTO_EXPLAIN,
    CANDIDATE_BLOOM,
    CANDIDATE_BTREE_GIN,
    CANDIDATE_BTREE_GIST,
    CANDIDATE_CITEXT,
    CANDIDATE_CUBE,
    CANDIDATE_DICT_INT,
    CANDIDATE_DICT_XSYN,
    CANDIDATE_EARTHDISTANCE,
    CANDIDATE_FILE_FDW,
    CANDIDATE_FUZZYSTRMATCH,
    CANDIDATE_HSTORE,
    CANDIDATE_INTARRAY,
    CANDIDATE_ISN,
    CANDIDATE_LO,
    CANDIDATE_LTREE,
    CANDIDATE_PAGEINSPECT,
    CANDIDATE_PG_BUFFERCACHE,
    CANDIDATE_PG_FREESPACEMAP,
    CANDIDATE_PG_HASHIDS,
    CANDIDATE_PG_IVM,
    CANDIDATE_PG_SURGERY,
    CANDIDATE_PG_TEXTSEARCH,
    CANDIDATE_PG_TRGM,
    CANDIDATE_PG_UUIDV7,
    CANDIDATE_PG_VISIBILITY,
    CANDIDATE_PG_WALINSPECT,
    CANDIDATE_PGTAP,
    CANDIDATE_SEG,
    CANDIDATE_TABLEFUNC,
    CANDIDATE_TCN,
    CANDIDATE_TSM_SYSTEM_ROWS,
    CANDIDATE_TSM_SYSTEM_TIME,
    CANDIDATE_UNACCENT,
    CANDIDATE_VECTOR,
];
