Domain64 and DB backing tested
This commit is contained in:
2
internal/domain64/sqlc/.gitignore
vendored
Normal file
2
internal/domain64/sqlc/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
test.sqlite
|
||||
*.go
|
||||
107
internal/domain64/sqlc/query.sql
Normal file
107
internal/domain64/sqlc/query.sql
Normal file
@@ -0,0 +1,107 @@
|
||||
-- name: InsertIntoDomain64 :one
|
||||
INSERT INTO domain64
|
||||
(rfqdn, d64)
|
||||
VALUES
|
||||
(?, ?)
|
||||
RETURNING d64
|
||||
;
|
||||
|
||||
-- If you forget a semicolon, the previous
|
||||
-- query gets flagged as a duplicate.
|
||||
-- https://github.com/sqlc-dev/sqlc/issues/3851
|
||||
|
||||
-- name: GetTLDId :one
|
||||
SELECT tld_id FROM tlds
|
||||
WHERE tld = ?
|
||||
;
|
||||
|
||||
-- name: CountTLDs :one
|
||||
SELECT COUNT(*) FROM tlds;
|
||||
|
||||
-- name: InsertTLD :exec
|
||||
INSERT INTO tlds
|
||||
(tld_id, tld)
|
||||
VALUES
|
||||
(?, ?)
|
||||
;
|
||||
|
||||
-- name: GetDomainId :one
|
||||
SELECT domain_id FROM domains
|
||||
WHERE
|
||||
tld_id = ?
|
||||
AND
|
||||
domain = ?
|
||||
;
|
||||
|
||||
-- name: CountDomains :one
|
||||
SELECT COUNT(DISTINCT domain_id)
|
||||
FROM domains
|
||||
WHERE
|
||||
tld_id = ?
|
||||
;
|
||||
|
||||
-- name: InsertDomain :exec
|
||||
INSERT INTO domains
|
||||
(tld_id, domain_id, domain)
|
||||
VALUES
|
||||
(?, ?, ?)
|
||||
;
|
||||
|
||||
-- name: GetSubdomainId :one
|
||||
SELECT subdomain_id FROM subdomains
|
||||
WHERE
|
||||
tld_id = ?
|
||||
AND
|
||||
domain_id = ?
|
||||
AND
|
||||
subdomain = ?
|
||||
;
|
||||
|
||||
-- name: CountSubdomains :one
|
||||
SELECT COUNT(DISTINCT subdomain_id)
|
||||
FROM subdomains
|
||||
WHERE
|
||||
tld_id = ?
|
||||
AND
|
||||
domain_id = ?
|
||||
;
|
||||
|
||||
-- name: InsertSubdomain :exec
|
||||
INSERT INTO subdomains
|
||||
(tld_id, domain_id, subdomain_id, subdomain)
|
||||
VALUES
|
||||
(?, ?, ?, ?)
|
||||
;
|
||||
|
||||
-- name: GetPathId :one
|
||||
SELECT path_id FROM paths
|
||||
WHERE
|
||||
tld_id = ?
|
||||
AND
|
||||
domain_id = ?
|
||||
AND
|
||||
subdomain_id = ?
|
||||
AND
|
||||
path = ?
|
||||
;
|
||||
|
||||
-- name: CountPaths :one
|
||||
SELECT COUNT(DISTINCT path_id)
|
||||
FROM paths
|
||||
WHERE
|
||||
tld_id = ?
|
||||
AND
|
||||
domain_id = ?
|
||||
AND
|
||||
subdomain_id = ?
|
||||
;
|
||||
|
||||
-- name: InsertPath :exec
|
||||
INSERT INTO paths
|
||||
(tld_id, domain_id, subdomain_id, path_id, path)
|
||||
VALUES
|
||||
(?, ?, ?, ?, ?)
|
||||
;
|
||||
|
||||
-- -- name: CountTLD :one
|
||||
-- SELECT COUNT(DISTINCT tld_id) FROM domain64 WHERE tld_id = ?;
|
||||
39
internal/domain64/sqlc/schema.sql
Normal file
39
internal/domain64/sqlc/schema.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
CREATE TABLE IF NOT EXISTS tlds (
|
||||
tld_id INTEGER PRIMARY KEY NOT NULL,
|
||||
tld TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS domains (
|
||||
id INTEGER PRIMARY KEY,
|
||||
tld_id INTEGER NOT NULL REFERENCES tlds(tld_id),
|
||||
domain_id INTEGER NOT NULL,
|
||||
domain TEXT NOT NULL
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS ndx_domains_uniq ON domains(tld_id, domain_id);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS subdomains (
|
||||
id INTEGER PRIMARY KEY,
|
||||
tld_id INTEGER NOT NULL REFERENCES tlds(tld_id),
|
||||
domain_id INTEGER NOT NULL REFERENCES domains(domain_id),
|
||||
subdomain_id INTEGER NOT NULL,
|
||||
subdomain TEXT NOT NULL
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS ndx_subdomains_uniq ON subdomains(tld_id, domain_id, subdomain_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS paths (
|
||||
id INTEGER PRIMARY KEY,
|
||||
tld_id INTEGER NOT NULL REFERENCES tlds(tld_id),
|
||||
domain_id INTEGER NOT NULL REFERENCES domains(domain_id),
|
||||
subdomain_id INTEGER NOT NULL REFERENCES subdomains(subdomain_id),
|
||||
path_id INTEGER NOT NULL,
|
||||
path TEXT NOT NULL
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS ndx_paths_uniq ON paths(tld_id, domain_id, subdomain_id, path_id);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS domain64 (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
rfqdn TEXT,
|
||||
d64 BIGINT UNIQUE NOT NULL
|
||||
);
|
||||
9
internal/domain64/sqlc/sqlc.yaml
Normal file
9
internal/domain64/sqlc/sqlc.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
version: "2"
|
||||
sql:
|
||||
- engine: "sqlite"
|
||||
queries: "query.sql"
|
||||
schema: "schema.sql"
|
||||
gen:
|
||||
go:
|
||||
package: "test_db"
|
||||
out: "."
|
||||
Reference in New Issue
Block a user