-- PostgreSQL database dump
--
-\restrict PmCqBzadGBjf7X81pOnYPHbo4fs9Y3SWPwRhwMTKuXKIZtccpmryrLaLv9R92bW
+\restrict jGGNPqbE1Kefwc4K0XaP8dH0RVN0MDuO5uFb1iLUfv4FFw5hpjZgrK0wYsIH7r2
-- Dumped from database version 17.6 (Debian 17.6-0+deb13u1)
-- Dumped by pg_dump version 17.6 (Debian 17.6-0+deb13u1)
);
---
--- Name: domain_unique_ids; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.domain_unique_ids (
- id bigint NOT NULL,
- name text NOT NULL
-);
-
-
---
--- Name: domain_unique_ids_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.domain_unique_ids_id_seq
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
-
-
---
--- Name: domain_unique_ids_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.domain_unique_ids_id_seq OWNED BY public.domain_unique_ids.id;
-
-
--
-- Name: domains; Type: TABLE; Schema: public; Owner: -
--
ALTER TABLE ONLY public.api_keys ALTER COLUMN id SET DEFAULT nextval('public.api_keys_id_seq'::regclass);
---
--- Name: domain_unique_ids id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.domain_unique_ids ALTER COLUMN id SET DEFAULT nextval('public.domain_unique_ids_id_seq'::regclass);
-
-
--
-- Name: domains id; Type: DEFAULT; Schema: public; Owner: -
--
ADD CONSTRAINT checker_domains_pkey PRIMARY KEY (name);
---
--- Name: domain_unique_ids domain_unique_ids_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.domain_unique_ids
- ADD CONSTRAINT domain_unique_ids_pkey PRIMARY KEY (id);
-
-
--
-- Name: domains domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
CREATE INDEX api_keys_prefix ON public.api_keys USING btree (prefix) WHERE (deleted_at IS NULL);
---
--- Name: domain_unique_ids_unique; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE UNIQUE INDEX domain_unique_ids_unique ON public.domain_unique_ids USING btree (name);
-
-
--
-- Name: domains_list_id; Type: INDEX; Schema: public; Owner: -
--
-- PostgreSQL database dump complete
--
-\unrestrict PmCqBzadGBjf7X81pOnYPHbo4fs9Y3SWPwRhwMTKuXKIZtccpmryrLaLv9R92bW
+\unrestrict jGGNPqbE1Kefwc4K0XaP8dH0RVN0MDuO5uFb1iLUfv4FFw5hpjZgrK0wYsIH7r2
# Log action
log.info("%s (block = %s) has been removed from %s" % (self.name, self.block, self.list))
-
-
-class DomainUniqueID(sqlmodel.SQLModel, table=True):
- __tablename__ = "domain_unique_ids"
-
- def __str__(self):
- return self.name
-
- # ID
- id: int = sqlmodel.Field(primary_key=True)
-
- # Name
- name: str
sqlmodel
.select(
blocked_domains.c.name,
- domains.DomainUniqueID.id.label("unique_id"),
)
.distinct(
blocked_domains.c.name,
)
- .join(
- domains.DomainUniqueID,
- domains.DomainUniqueID.name == blocked_domains.c.name,
- isouter=True,
- )
.where(
~sqlmodel.exists(
sqlmodel
.cte("listed_domains")
)
- # Create and assign a unique ID to each domain
- new_domains_with_unique_ids = (
- sqlalchemy.dialects.postgresql
- .insert(
- domains.DomainUniqueID,
- )
- .from_select(
- ["name"],
- sqlmodel.select(
- listed_domains.c.name,
- )
- .where(
- listed_domains.c.unique_id == None,
- ),
- )
- .on_conflict_do_nothing(
- index_elements=["name"],
- )
- .returning(
- domains.DomainUniqueID.name,
- domains.DomainUniqueID.id,
- )
- .cte("new_domains_with_unique_ids")
- )
-
- all_domains = (
- sqlmodel
- .select(
- listed_domains.c.name,
- sqlmodel.func.coalesce(
- listed_domains.c.unique_id,
- new_domains_with_unique_ids.c.id,
- ).label("unique_id"),
- )
- .join(
- new_domains_with_unique_ids,
- new_domains_with_unique_ids.c.name == listed_domains.c.name,
- isouter=True,
- )
- )
-
- return all_domains
+ return listed_domains
@property
def domains(self):
stmt = (
sqlmodel
.select(
- domains.DomainUniqueID,
- )
- .select_from(
- self.__domains,
- )
- .join(
- domains.DomainUniqueID,
- domains.DomainUniqueID.name == self.__domains.c.name,
+ self.__domains.c.name,
)
)