From 76ea8a5de26da39b57f07afc8283a65b66d2de00 Mon Sep 17 00:00:00 2001 From: hopeyen Date: Mon, 29 Apr 2024 15:10:39 -0700 Subject: [PATCH] fix: minor fixes and improvements --- example-file/gravatar.sql | 406 +++++++++++++++++++++++ file-exchange/src/download_client/mod.rs | 3 +- file-exchange/src/manifest/store.rs | 14 +- file-service/src/admin.rs | 8 +- file-service/src/file_server/range.rs | 1 + 5 files changed, 420 insertions(+), 12 deletions(-) create mode 100644 example-file/gravatar.sql diff --git a/example-file/gravatar.sql b/example-file/gravatar.sql new file mode 100644 index 0000000..d9b3af2 --- /dev/null +++ b/example-file/gravatar.sql @@ -0,0 +1,406 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 15.6 (Ubuntu 15.6-1.pgdg22.04+1) +-- Dumped by pg_dump version 16.2 + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Name: sgd10; Type: SCHEMA; Schema: -; Owner: graph +-- + +CREATE SCHEMA sgd10; + + +ALTER SCHEMA sgd10 OWNER TO graph; + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- Name: data_sources$; Type: TABLE; Schema: sgd10; Owner: graph +-- + +CREATE TABLE sgd10."data_sources$" ( + vid integer NOT NULL, + block_range int4range NOT NULL, + causality_region integer NOT NULL, + manifest_idx integer NOT NULL, + parent integer, + id bytea, + param bytea, + context jsonb, + done_at integer +); + + +ALTER TABLE sgd10."data_sources$" OWNER TO graph; + +-- +-- Name: data_sources$_vid_seq; Type: SEQUENCE; Schema: sgd10; Owner: graph +-- + +ALTER TABLE sgd10."data_sources$" ALTER COLUMN vid ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME sgd10."data_sources$_vid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + +-- +-- Name: gravatar; Type: TABLE; Schema: sgd10; Owner: graph +-- + +CREATE TABLE sgd10.gravatar ( + vid bigint NOT NULL, + block_range int4range NOT NULL, + id text NOT NULL, + owner bytea NOT NULL, + display_name text NOT NULL, + image_url text NOT NULL +); + + +ALTER TABLE sgd10.gravatar OWNER TO graph; + +-- +-- Name: gravatar_vid_seq; Type: SEQUENCE; Schema: sgd10; Owner: graph +-- + +CREATE SEQUENCE sgd10.gravatar_vid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE sgd10.gravatar_vid_seq OWNER TO graph; + +-- +-- Name: gravatar_vid_seq; Type: SEQUENCE OWNED BY; Schema: sgd10; Owner: graph +-- + +ALTER SEQUENCE sgd10.gravatar_vid_seq OWNED BY sgd10.gravatar.vid; + + +-- +-- Name: poi2$; Type: TABLE; Schema: sgd10; Owner: graph +-- + +CREATE TABLE sgd10."poi2$" ( + vid bigint NOT NULL, + block_range int4range NOT NULL, + digest bytea NOT NULL, + id text NOT NULL +); + + +ALTER TABLE sgd10."poi2$" OWNER TO graph; + +-- +-- Name: poi2$_vid_seq; Type: SEQUENCE; Schema: sgd10; Owner: graph +-- + +CREATE SEQUENCE sgd10."poi2$_vid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE sgd10."poi2$_vid_seq" OWNER TO graph; + +-- +-- Name: poi2$_vid_seq; Type: SEQUENCE OWNED BY; Schema: sgd10; Owner: graph +-- + +ALTER SEQUENCE sgd10."poi2$_vid_seq" OWNED BY sgd10."poi2$".vid; + + +-- +-- Name: gravatar vid; Type: DEFAULT; Schema: sgd10; Owner: graph +-- + +ALTER TABLE ONLY sgd10.gravatar ALTER COLUMN vid SET DEFAULT nextval('sgd10.gravatar_vid_seq'::regclass); + + +-- +-- Name: poi2$ vid; Type: DEFAULT; Schema: sgd10; Owner: graph +-- + +ALTER TABLE ONLY sgd10."poi2$" ALTER COLUMN vid SET DEFAULT nextval('sgd10."poi2$_vid_seq"'::regclass); + + +-- +-- Data for Name: data_sources$; Type: TABLE DATA; Schema: sgd10; Owner: graph +-- + +COPY sgd10."data_sources$" (vid, block_range, causality_region, manifest_idx, parent, id, param, context, done_at) FROM stdin; +\. + + +-- +-- Data for Name: gravatar; Type: TABLE DATA; Schema: sgd10; Owner: graph +-- + +COPY sgd10.gravatar (vid, block_range, id, owner, display_name, image_url) FROM stdin; +1 [6220650,) 0x2c \\xcf88fa6ee6d111b04be9b06ef6fad6bd6691b88c +2 [6222808,) 0x2d \\xe19558d2b3fabb5c045ddf3b44dc15de18e9cd20 Colin Dismuke https://ucarecdn.com/934fdde4-c3f7-4a34-860f-3ab53d8cd913/-/crop/2576x2576/133,0/-/preview/ +3 [6222928,) 0x2e \\xc6d988bd31b24ed6a1295a70567b8f8dbeab1a08 Jannis https://ucarecdn.com/8d2305a7-cbf6-48da-bbbf-ef8c1ed7ce17/-/crop/3648x3652/0,912/-/preview/ +4 [6227118,6228965) 0x2f \\xf3ad7a80c7debe37db5cee1e3ed45f31a5629e5e Tempo +5 [6227552,) 0x30 \\x997bc170e10f194c5bd4bdbdc9a14a95b63d7b72 Graeme https://ucarecdn.com/ded1afc6-a003-4d9a-81eb-734fa302de3b/-/crop/328x328/86,0/-/preview/ +6 [6227553,) 0x31 \\x5325832cdf994b19407dadc9cb1a6d6e22ee0a23 michael1011 https://ucarecdn.com/06bf6427-6529-4a31-911f-be05cb002ec4/ +7 [6228812,) 0x32 \\x71b41d7e86e9c3de66094c95f2584f4e2ab3b2e4 Arl https://ucarecdn.com/a54ab09e-d921-498d-a3d8-e27b79e1da3b/-/crop/452x452/17,47/-/preview/ +8 [6228839,) 0x33 \\x757f5d61a47de5f05a25b5a786997db59838b0c1 bishop https://ucarecdn.com/0de9deea-1288-40ba-868d-e257ac8f60ef/-/crop/300x300/0,5/-/preview/ +9 [6228965,) 0x2f \\xf3ad7a80c7debe37db5cee1e3ed45f31a5629e5e Tempo https://ucarecdn.com/a866c939-18a7-4ebb-b113-00e06fd57edc/-/crop/640x640/0,8/-/preview/ +10 [6230231,) 0x34 \\x9cbe5b896d0c24acf41860b9e3df6750c2040a40 devon https://ucarecdn.com/36c10acb-7c20-4232-8819-2af2f9f59ca1/-/crop/601x601/0,73/-/preview/ +11 [6231988,) 0x35 \\xa60dd9d42fdd43e91da63bd261997e14f21c69fd faustas https://ucarecdn.com/40257f09-d7df-49d2-a6d8-55ff1c9c389f/-/crop/676x675/0,1/-/preview/ +12 [6233329,) 0x36 \\x41885615207032bab91ef8b062f03613a00fa0e3 Lizzl https://ucarecdn.com/f2a30c73-da9d-4966-b6dd-b9e64a9e2598/-/crop/1399x1398/0,4/-/preview/ +13 [6234002,) 0x37 \\x6c0aff3a716292f37c79bc726964941f1d8ee819 Alexandre Carvalho https://ucarecdn.com/059fe7d7-3a6c-43e4-8c8c-7394b2f3fa63/-/crop/1212x1210/38,57/-/preview/ +14 [6243016,6369383) 0x4 \\x54133efc67ee491bdbdd3145e1b6cd9fdc671324 dani https://ucarecdn.com/9ec2a22c-90bf-4544-9bc2-5022221cb78a/-/crop/725x726/315,0/-/preview/ +16 [6309477,) 0x38 \\x0b973296a185a3bf629f3e828b6770a5bd28cf42 Keith Dallara https://ucarecdn.com/36782d06-03cb-4431-ad0a-6bfac41be103/-/crop/3601x3600/450,0/-/preview/ +17 [6333970,) 0x39 \\x2a8600bbdaab254a2f8a8e00912799295c3dd601 CryptoMaestro https://ucarecdn.com/bbd67ee6-5e8d-4b78-a89c-d05b7277a03e/-/crop/721x720/280,0/-/preview/ +18 [6357359,) 0x3a \\x4d3e7def9600997c565f7d805dc6bbdf96d6cd49 naveen https://ucarecdn.com/7cfef156-2044-4db3-bb05-2e4adb569f08/ +19 [6363641,) 0x3b \\x0eabffd8ce94ab2387fc44ba32642af0c58af433 burningfiat https://ucarecdn.com/bcf88bc8-62ac-4802-9493-81fcb7a30c40/-/crop/135x135/0,21/-/preview/ +20 [6368819,) 0x3c \\xad295612c77bd6531378b617179c8d6df9f33580 dani https://ucarecdn.com/e951364d-3228-4b0f-902d-a42c8677aba6/ +21 [6369383,6454190) 0x4 \\x54133efc67ee491bdbdd3145e1b6cd9fdc671324 dani https://ucarecdn.com/44159864-b334-4ffa-bb95-7f1e634e0546/-/crop/1978x1978/563,0/-/preview/ +22 [6398754,) 0x3d \\x09e38590865f72c68325d8f57565ba326f943727 McKie https://ucarecdn.com/f2120381-7cf3-4fee-86b8-4155f1d9d747/ +23 [6433992,) 0x3e \\x0e3755d390801da61b8e22f00578e1a921d435b2 Christopher Chen https://ucarecdn.com/fff6c618-61be-4b8c-bf09-df161ad43c18/-/crop/415x415/23,0/-/preview/ +24 [6434431,) 0x3f \\xb7907dcd5b4044e0ea3e1b67390acceee85333a4 +25 [6439666,) 0x40 \\xd9c4475e2dd89a9a0ad0c1e9a1e1bb28df7ba298 jamiew https://ucarecdn.com/58838812-3783-49ab-824f-09e2ec794d92/-/crop/358x358/0,1/-/preview/ +26 [6441130,) 0x41 \\x0ecd7cbdb5b6d11551bd81fa74b79d145cfe8a81 Ntotao https://ucarecdn.com/651151e0-0ec0-48c5-ae28-513930d6debb/-/crop/907x906/0,21/-/preview/ +27 [6444224,) 0x42 \\xd150847f38707297ad6499d587c44f3e13155fe8 Philip Arthur Moore https://ucarecdn.com/6f74de75-92e7-4754-aac2-da2a506c8365/ +28 [6446583,) 0x43 \\x17ca22b74ae37adf6b9bc69a628e03f67533b50d PJM https://ucarecdn.com/acf5d1fe-bc4b-4b93-bb3f-f9f758c23733/ +29 [6447507,) 0x44 \\x0e05f225c558b19b2eeeb6e9b3e204409ae503c8 X88B88 +30 [6452608,) 0x45 \\xe075958a14159a44e7132309f36364b60a4c1b8f Bryan https://ucarecdn.com/bf10e7d0-00e0-4c79-b294-a6cd20b22da8/-/crop/1225x1226/1,0/-/preview/ +31 [6454190,) 0x4 \\x54133efc67ee491bdbdd3145e1b6cd9fdc671324 dani https://ucarecdn.com/6026a702-01e4-4542-81a9-0bce4894f5ca/ +32 [6460716,) 0x46 \\x0773cbc2c55cd6354a61b7bcbca52d9dccd56534 dgogel https://ucarecdn.com/c44402a0-30f8-4c0c-bf1f-b13918903211/-/crop/512x512/0,0/-/preview/ +33 [6469958,6469988) 0x47 \\xbc8dafeaca658ae0857c80d8aa6de4d487577c63 Victor https://ucarecdn.com/4b9de648-587d-4670-948a-7d5b608d665d/ +34 [6469988,) 0x47 \\xbc8dafeaca658ae0857c80d8aa6de4d487577c63 Victor https://ucarecdn.com/295e4ba5-ad1c-48bf-9957-093424709881/-/crop/152x152/1,0/-/preview/ +15 [6243714,6818642) 0x3 \\x8d3e809fbd258083a5ba004a527159da535c8aba Dani https://ucarecdn.com/d56e9043-1675-48fc-b860-cda2b5df882d/-/crop/1340x1340/73,0/-/preview/ +35 [6818642,) 0x3 \\x8d3e809fbd258083a5ba004a527159da535c8aba https://ucarecdn.com/d56e9043-1675-48fc-b860-cda2b5df882d/-/crop/1340x1340/73,0/-/preview/ +36 [6832676,) 0x48 \\x0053ed772af5674126c285ec0516930bfb24bfc4 Eric Friedman https://ucarecdn.com/f1b189a6-a6ab-468e-afb7-4cf0f4609e00/ +37 [7347427,) 0x49 \\x3c59e625728e6b7f68544d00183af39d3d1f0c6e IOSG +38 [7426647,) 0x4a \\x6b44862103b8a45f5ec701b69ec28a5d6d304950 ntotao +\. + + +-- +-- Data for Name: poi2$; Type: TABLE DATA; Schema: sgd10; Owner: graph +-- + +COPY sgd10."poi2$" (vid, block_range, digest, id) FROM stdin; +1 [6220650,6222808) \\xc4d7b54d51ddf4e10abb520bfc0d13f16506c51ee8bc9bb16804ed723054d8fccb008d44256f625c20d1f95a07db6a87d1ad217e3e01fc1ce99ac5f96f154eb8ea64e8721276d1181f638d7bd26c11353b5c935c7350b7e2dc75fa012a97f15c078ffacc4b7d72cdf2dc1981098510631c91c0964c93ca1a1c1a4071f6d3011a960370827856a58adf74a0bdba42de339104b11476b07a0fe4f0d6107e2ec2e57d98e41c6cf7709118b41ed883e220eb02d64840a22806ea747e2e0b5a0b9653a5978f387bdf817ea4d0d336499a8302cec3a68ecdf5bc945bcb28bbb3100ef9d37730a7eb9a2cd9997530a031345c7ef43c9c80401903f89cb0a40c48704fe1 ethereum/mainnet +2 [6222808,6222928) \\xdb89aed74b0991d878f3e3dd137e33d9469da612148dd388d67e3953ef78c295a6a3cc2d8c53e6b15d2be841c26a43989fb60414723b745562e0056ad2d542e202f06de8343d0d4206aabcc471553f03df7633b243233d6cc4c7fa73fa9df75bdd29d5470ddc2109b96b333ba063db9255a3bfea0ba969f11790313c2608dd10f0182709f3399c617c066e5e6ceb2ad4aabd9c6f5077d6dd26b639cf64e4c47a749d5b5ae96e7ac4a5d35466cd7786ca38ea174339ca9887c4b8595148c3c7c07454edd8b8f1f496d182a0b391ca1b6679f568eb3deee66780adb1a4be4decae304528d4bf13c1868d831c7037cbd2d0cc73415d91403b2057f5a655d1a976fb ethereum/mainnet +3 [6222928,6227118) \\xbf93e14411dd776f6692ba339af281a580e41810c1fbd6cdddc781d02ba3b0d55b71ad47544e3b63f68ae7627816343e51dce97711c4713d4d5fe3d32770bcfe7629b856951aef79eed815c66bbbd80b3965cb4ff99de528042bbf0b3fbc00117960d5c56bbe40467ccd256c3a72d93421ad777e81d8ffc6709006119a14cd2bd5f30e2d88eee0b1960ab757e829870a5e2de398880dab13ba7bbe896750b1001677b9557af1cdfb7844cb9a90a4bdc3d744834d971b99c75ac09636fbfe12b99e30db3c18bc941ebd1ee22fa40a447054bdf5d7431dd659364ed287a0cbb64abab2f16b9c65e9f6832994aee5ea24f80fa52bdf4c4c13eef614f6d4d0ffdcc7 ethereum/mainnet +4 [6227118,6227552) \\xac35a1935b2ba389ae95561fcdb9aaeac832d2589c2a1dc7993b647f42bcfd1f53e646ddeecb85240c647c73d97ad5fe3f0b210c90ba07f8851caa17ff2207645bd7e4389ffd8a2c2866634af399342d867dcd9df6b330184e9af5a1633df2ff6695ed5f67ea149feaed9fc5991db1cec7169352d8e34bcec51d674777febd967d8dc7d9ad245a7dc2a57a209a5c4fa3729c4cbdf803b1e3ce99535bb50b2137c1201b21c53a6f1c9120ce3efef7f39405f0dd83b19d2e1f33f6df3e793da0e343d167db980e370188b1729a740748815441da16e7b45f4cd20347aa85db2157edeebd522d95c9f43a7d23e7b7aa3191f72522ee4874f843786ccaaa389c2323 ethereum/mainnet +5 [6227552,6227553) \\x4bda7f349d5c0872cc323db8c393164a648f6b50d5cc5ca154697ff5a49de03c0cf3f07bd531335442709747b7471c2adccc75e5e4cd6163289f4db6c40f1b5218ba643db29aa564feaf4b4b8cd06c0966b405d0a59c9a5cca1047a2419e797a4304fcf722b23b884566f5349fe7a365f1327f962557a27514f6d6352c92ea116a91231c8613cca1e17a06a69c7a9c0c4d0098053698befb4ff65c5a8cad38b3dd85742c9caaca30c710e81c4b0df5d65a503ad949cee7a01a85034d9d59f57f45fc3f643166b9187a63e6eeda5783a6affd16a0402930183db13f1e5cd1892542c418139ff4f92af3a33dd7dbbe107099a9556ac417a7803eb961deb294ff1b ethereum/mainnet +6 [6227553,6228812) \\xc46a163550d9668178c89e51ee50c24d0bf32598537379412f90ff1a7ce7d0b5ef1dc3e5747345656b69ba78998dde01798244c86ccd6bbf18ee61cdc6ad17caa286e384acb149d84071221bd58a2bc028ce69688bbbfeede05afeadf35bc8e03a234183206c3dda5de370a2c1fa44d7245a30b618b32278ec5b7f9fec07ec0f35f401e92d595d64c2b1d7d3c15a15f38ba5fa943841aa0c5950f0713ddabdb1f43c8933dde95d8ba8710979cea3fc90c2f2f094bc8a81d4e3b327b8e5494a5656478b1491e94aaec9212bc4342bf155035c18afbc3039fbe2189c2f66a31ca7f6dba41be839850b1f5d0856d6940d7888b06d3ec004aa64794ab37af36bd78401 ethereum/mainnet +7 [6228812,6228839) \\x38f5ade2e3ef7d21bcac03fd36a52daa6246ba9d2cdb5446e218db578224490144b497ba88d5a985333b8dca75adb85943feb89e09a8c87a9116569e32ef8f181170e5c3a971b50afee3bff5990a405534eab3a3e0a83efb7ec88c7a42926a5b6fc67cd73cd5c2b0bf3ff8ed3c3decb670486b85efacbb430bc49f4558b7a89d9cca0240624fdbfb53eb2d478f2617c02962e40febd4961c3fa49cc14c684a8c625218cdb18a1a8b56fdfd5df570ac7a190218f627ec8040d5640d014d530b9f121934725b6f61d6ca01f6f5190c3a75449bc3e50ac94fdd315d8dc0384d83bb623e43537fe5ef13ac456b4530cbbda21d4aef1bf308e36c648c1e052d6ab3ad ethereum/mainnet +8 [6228839,6228965) \\x7e8ff5f6143c36b1141e6cf47d70d932e5a9aa3ef57b733b6e59b4efbc645a3007d47dbca16a0ef4fa1847b5eb3f861f5ee4c443f4d74048cff2f3d6d1ff59a993963824ed2620532535a5042d867215dd960913b097784c6edde36907c1c99c2a1a7e85258b11a70a0dc8de4010ecd4a600800628c4bb96b0dd1939ea1098f91d6ad3c1c9730bcc971f03c972639f8028e168e7c0c86989229ad78e3a2967813bf9f16cdc3ba7f8607957a01ac1c0b8e8787f3ac7594fbc43e32f9eb374b54cd978b2e228c2b9c8658a17e4d14d7a10be8ee5bb57a735ddccd4f2661ca227f3f9b4392d93870d4fe24789b3c57ee539b0286053f19f77ef9d7691e7672d7853 ethereum/mainnet +9 [6228965,6230231) \\xdf606be2570fd5807285b1aa0339558fd6f743f8e47bc4fb48e4f3884e77eeb574fa40440061db41b73a794ce9bfaf1bafc45e0c81fce5941259a27e939706cca5c8ae2f21138b64cc54998987c98a42f9b654e448b0ddaf3f6fdf1c9e262a268160f4aeb164e6690f157ac921a672e8034c576ba8c402779813ab2145b3a31836ffe4302a9b619d7a279e1142c2bcdbba419f9bdf33b5dfc935333b905a1e65761703f3a06dae26c96f0a3d88030f1fb13ea00f4759ce27674db7fb4047d181115edea18d12a51a91b8454a231a34b62e54f89f8cad3ecc7be374d1332d114ed22cbb5d2657b6279a28e6ce635aa4d1c0c1bb9253f18996f82f3e092e0172f2 ethereum/mainnet +10 [6230231,6231988) \\x449f6ad02730a2cea4bc4989f9be457ac2b847b9592cf86f3b26440ae1f660a9f227c177d777e490de1bfc62b5972bac7ae9cc22401a05177f9007bc9ff8927bf36a57b79ce90c44e6b22bda2fb1ec18f4ea25ba765362f1b25e912bc2e366f2041af2d393844e7bb855b6f0f51078db1a8e7311b7cb7549db36dbc8956c4865f3fce4185a99fd68f3da65886004dccdb53e9b6df75ffddfd8f2e9a1ed2f3f1829dd4a313fac010229e7c4675a25342d83776e410c272ac4e6cfef8f1d4421133615ce9033528c762a2d24e085f58a8c5293c15e9fc8dc0930d8c1665f3aad026492eccc21e2bff4503821b922de823adb31fd3254d8974465d51af56704b269 ethereum/mainnet +11 [6231988,6233329) \\x97447b0e1491d20a82e8b5f333e0b5ccd7cb5219dc2844b38793ccf2f2d21110ba9e74fe4e5ca36acc84a8599fe171981a258f8f2999eb3078d7a83163a41c9eb86adb9745df5ab2433967226b5a790d2dc607f28a599890cdcc76626e9481c90d9aee0e9699f5566ff9749a7ed68a3d14bc2482b84a457321cb29ff960d238595fe02ca8b457320fa914a875aabde4fd90b89f0c8ec44e276dadc32b64617cd9d8978e69015e69d39d65e2596fa693fb3fba638024d5f95f19cebc7a11c3bbfb6e1c11bd0dee7d46884e826f5f4765e5357402c5a5d4ac14a73dc9bbe4edf604d0dd123b9bfd1dafd3765163ada1f1fe059e5e59ef41d3a6b16685464682de3 ethereum/mainnet +12 [6233329,6234002) \\x53a55c081b0bd122ee037490bb2a3bbec1ba1de85d5427c6a5192702bbcdb6ca08cc3f55e71440c3b58b4602d8eaaf975bc2a0212e9f7ab9562251f1931dd09aaaead0c6d25dfea34c0ad8e032c0abfa5b524de884c4ff398268d1ff0359e28ae9fe9e052ddc5a7c675d049ff55b5b93b5ae15666b3027b53fcf70ea3fdeb8dea78f01fdda5b3e563fb1fe589fae9d859756c313e6ee628a8e7e0202a3931b92d2326461d8d10d2aa1f2e45c5154db588b4d752ebdc50a1dd088a378dbb4f04b428d16f2619ad592350ad1b262c3b4478e279c75e1e4d7ce936a5e4aad1768601f2b74e949ae6e0b0f59c8afc53313dc5c438efb8a3a806638e4f03a4e1c884901 ethereum/mainnet +13 [6234002,6243016) \\xbfda43e5ca8b0fe6ec61cb2d41f9f5ff8bfb1bdb6d41583af0e9da11979ae04de3d1c803bed7a6f47884b8153c4a5a27b02c463a68f2f9e1ee987eb99ea80ab3ca89c89e68ad62c91502b501b927e2edcb787ad8b2c2b32e1acf68e8dc58d8f09ef33fea463cf3dc5dcd14afcc9c9ac9cc89316ea90ac8e094a3181017bf2e12a65d0c894de4711aa14f497d0453fce4bb3afeb7151f8b6fbc83fd731b5de0653df220359745f77dbec0830e0f9f6b00514d445e335a35ce99249e0e689a2013fef1d69456f6c707f3114854dbdd7b4017a3b999654fe2850e2fc3af9fef96ec43c0817da12844dbef6075f3af12138314251d2a0cde7e6b034390d6bca40179 ethereum/mainnet +14 [6243016,6243714) \\x08752f1f5413494b4ce6d0e48d461d7ef409900abd5efde63892383538477dd3091354223777a117dd67af028c2b564074bef023f41f9c37bbe67aca1953f703b7b714e74d61281d40ce6945c155f2848df0d65698638091e83a7d9cd85db3cdd2642e9e1dc74a71fdf04e01d0c0301a8c1c4716b496cf67d5f033bdd1b609560f3e5319a6f5349d3ab74a17ed5465292500d856b7c0400d86cfc9c1f73f12116f340966f58f87d2c9a7f5457e8c481b9db26a655db9fe854c04c8b19004bef6e4e37c293e7e359c8db8aa92b7ee3e4710f8e0a3200b755a7aa81249a7fc070560742423b193d552153b01f25caef0878bcf2f47f87d2c1ef53e108865c49a2501 ethereum/mainnet +15 [6243714,6309477) \\x57f353f58e8ab047d3e2cfa40e37378f49480f2c1e39a016c372aceba8168ae1b52cdccb121546fb5551b4d0feddfa8d89b400981d307f4dfcb56faaa7486112a2c82abf885b45c140f14289ae3b985b3f251158d2814e1476954392ad6dd382f814bf572f755249c24d26001cadfdf673c012d93abf1e9065b697e74b8fea2a2b7c9abab8151c732c619ff946cb69a321ba471fdb81b812ed7d1ce0efecef46050711deebf3f2830e8a32f47d3ff71a182aee7bc2c79b79d94c238c985ebc3cfd800158c074d806c168c3e969cfffd64e09bd00fce21a3903372076285de4a988a24394a8b86f9741ab513c059b7a9401d40e9d4f19ec4665f70a7202d931f7 ethereum/mainnet +16 [6309477,6333970) \\x8d9019bfc4eda75a28afa34b1c03900fc818d581e56a300862c67a58cd4d12810143a6f63608d83ac01b17fade6a3b907490bf48f6598afbcd88e13bf8a34490e69037b56a9facdeacfc82606aa501eefb87ae80f02d7b39377cd3ee87918aec7f7e2c0da6a0e9fdb4f6f800522ee35f2126630c51a4362901b3e04d6b8ef0bb4711d81b58c544952e3dcd26a1f71f4ef03235d7156a7b1427ac76743567571087a121443e0ff34979e3b226a2f8981ee48d22b3264642e203403940244eebca888e6c698593a5b284048f35e192f1727626b339f990c027701e4fc58580202a74f6fb97c65556d945820b610fa8c3180afa9b137b1d3869b1dd21dc0a636975 ethereum/mainnet +17 [6333970,6357359) \\x00cef3263048cf82d4ed656939126f478daf9c03288b168301b8b1af990d8d2fc99d87d96d9a1d3d9505b4724ded94efd42e9629da1e20e09a08b092e4db0578e40b07b9cb19c88315464bffdfa769c230a4eb5464663f4eed84326c4186532605fdbb143c2e525305831c15618554acca97a68dd1ae7a422f97f03ef7f04fdf3b2b68c496ff22a99611c2d0d54b166ab8db631810cb984220817b31e843b74308fea25c7147a7e1bc85bd01b0e2ea6f59e64701efeca021f9d9d498d883329976dfafda8db1c86dabc1028ed58a821bc04623fbe28d6f31639c8cc7e3826de5a7babc1cffd128e9c52a7ef246ba4ff49a4dad854be0c8831fcc90f958944716 ethereum/mainnet +18 [6357359,6363641) \\x5ed5c8840e4e5d982319a4fa984b78140e1910ddfb3b20ec0f224cef3dcdc22268b4e90bc915464a476d63dd7e8c8bbcae9ee664bb394d145e8305a80ab3c71c680afebee0fd033396a3bd25123088ba1bc27bb8071ee2e1d61df8cbd853bdbedea86c44a5b4dcda0c0ef4b0d9c4c4a917c0bd5d22d251fdddd706cba7be88bb7f550c4f48cd703de00159e88e62a1caf3cf8d1b02d8e623d6574b46bbaf2bb094ea926c09402b7db45142510feeee992ff435b5dedebf7fa1673fb8b7e38c6935b261c193d0a29005b6ff18e9c067fa8cf22643baba8b3476fae0ba207612c3bbbef49a8d45c7576d045e9ac683f9dc5a051c04822f3d3a556f707bfa2af1ac ethereum/mainnet +19 [6363641,6368819) \\x7bee96e5a6b2e2f93d8f800e195ce1d44829f9b0070aec4a403105bf430d51a09155c044e8c678ab7c5a949963a9970f59f4071f2540cf98d018b8575f3d6938e081be9b4c14e8ca2d5784941b72b658a9ae9293fa45720fce583a848e2eac9378e0e6ca181f35b4b026221f3e03c0dc20f101d5d97c8a9f95ef786fe5534a240f18ca5f50d8dfe6c1a02bb48300f8fec92fc7b0c2a0580ed66b4e2654434a0331f4799eeaf196f743804b5d6fd25251dacb78ad37077bc2a818f58c4bc25eb8ec8969f7096310c56446469b08cfa7d786810f8a59836b0a330c2512a564b06868993b57671c393e2e68577050fa27c3d6f9787bd1d379de3389ecbdab11df43 ethereum/mainnet +20 [6368819,6369383) \\xb8b734461846fc8cc68e0b32783bcd2e0e2128398888e34ab98f3490351389ed9df872da8af513de8f6742600e0b5c837aeb33cc4a8bef78cc174d89e9586f4a0013b4db7cabf089c5095be3aed16a30bc036eca2f26a7c35b5f162cb7b1ac49212953018c8123d9a3197f6fb50f72a67b57ae3e1ac9d8ff050c0ad05be41dca05fa0f251b14ca978621fb03d075adf6196d36bdaaeff831d622f6a740beffae0b10d6e8c3a318653008a048e4e7b88b6febcfbd3214a928426a75dc1402d70a70385e986b60abb8e791a3bbebcc63735b4836457c276dd589882780277c102e041b64db0eb4395831f35335f4b7b4503b261f56a7aaf3b815f38e00afeb281a ethereum/mainnet +21 [6369383,6398754) \\xace5e23a56792d0613aac6e58b796176d36ccce766697eb3581581f18f56d2d0d6f2d47338c3f55718ccefb1d9b3d7d4b87fd3335a35d605586bc24e412822f0618c6c97fdef41bf1b1a5d742b00c78ddaff71bffc25f5ca660bd29306355215eb6fdc4c2c4c80053be6b9630d1062a91a097053a70fb7ce362452bcf02046fdf37de008ab80cc41425d38c12e9569d3a53ff652f7b1d398f968acffaeb885467adbc6a9f1ac69d5c83c70d2e054e5d8a6079d0692af1212b19998f2aa0ed6a7be3671b0462ac8455c316041f17db588dc9ae496cea91413133d6d89edf7be012781dbf003e87843b02e65f842da568a64a75335de7d08bf1ac76b553ccce491 ethereum/mainnet +22 [6398754,6433992) \\x7b2b32905e3e07718463a098fc989d43a3f6bb1ace9b7dfd9160f9f921fd533150d239978fec9571ef367f1e8420cf4f9221d12a7783b34e4c9c28e102913258bf3fa0c07c72fb6053dbc0782b690fb254605221c0e944360a3be6d4e39b3cd917861dcfa257d1af9f300433b2d5ce0ab13c1461c8ed91e70a6bad4ef88a030c7d086bf03319c4bbf2a4854787a14b1fa5196de9a38f7c894b82a0f13f344faaf7d8296b6acb177f32ba892ee0368b3d46ae747f643a47d1f2cdc1c52522b7546074b1c95f50aab1a728f1cf3d4c950d267b3b8af6e57243170c00acabdb5fec605220cd7f5be70174fa416ed5ea01bb8677deeda032d70cb67929b7cb5cff1101 ethereum/mainnet +23 [6433992,6434431) \\x2b7a437f5c79af2f0ae01ed44f412d44164420d7eb4338270204efc6a8b2159dd24dde9b3245272b97f6ebad1d459b1cbdd5aea9c7638fa401e631060b793da6ee4d1ec704d98aeec17601c0d4f2a66a71ca07620a578423cfcb57e51ae234f6cee10a0beb1b4d918678b31b135350dee7f0f566e3ffb548cbd2db2b36bd17b969c8727864054c2902e4ee9a78fa7c0cbd41188e3fbd907525f8a4d2a2a11111858ec4faa9ae4451d22b38d587c1a58274a33c26cea47b7190adc4b6e387fd5c57803092cb7d3c0a7b05ff1e31f4457b63974e6d84015e642334a52c39e548e4c6dc84aa76b2786be29f9440403d3c10e28590e60909eb47cea741d9d03d34ef ethereum/mainnet +24 [6434431,6439666) \\x5ca59c8431aa2767d1a926427861ec4efc4cb275ae1c6cd6b88f6ca51dc9aa039963aa4fc91d594b0a45fc2617a34eaf310792bdf456aea81c4098e584985a21f2cc533f5446cae62508b24aa442cb04cf5a12cfcd2d683eb43ebc588a4b61a23c6013af2a511faca865fa1b2e3030f01291e6b449e35a9e9986694a63163c22a2a95c772ea1021850bfdca043893e25928c9408c5f5a1918d718068874de732be92d4937f245f17d5d061bc6b7845d73c803dd86b8e97b7727bf0ada7e545b76ae96ed6dffa6994eecff1570b6a3fcf1b902c52469add0e2d545f2d26d49f4174e25683cdcec40bcf746f6742695febf8628ee83406f217b301b23c4b3a2e1801 ethereum/mainnet +25 [6439666,6441130) \\xbd547ca9d79cef587bff840867d6e7e451a9acaa9c1f2029123f1d4a4c706ad492bdcac0750bed22378451ef8fd51074a3d9f760c2828f6fe42862df77e40da619d6fbf1684c8f1adc809373d751e0b0196565907d7f16b40dab2167f25b8dc45c5e69e5976c00ea9ed450058029cf2d5b14cb3026a9ea96e8f8cd25627a2df494d9bea9a6dc7b322bf708c5ec05e5432b6307ed951baa53c981be0a7df8c38958e9903d40af0635b7d0ae1e790456cf3f0492f7bad7bdaa8d9c305b6154f441dc5cd7e24dc09f2c7832758d0b547f91108809184ace9a530b4ca3cac206aa54b5999185bc7aec2e075c9d550ce9ab0378893c3b27af5d17c5eb94a3f555bd5a ethereum/mainnet +26 [6441130,6444224) \\x52f4b2cd542aaac947790c847d4328ebb1f08b2b8e859252d7f9c1ac647f675a8f10e69e5c26eeb8d6c55d4661f1cac470f5d217b0428c3aa6464d152b58310d537b7c2ae5503cf836004bc29282a06954790135b42c8fc7324ea8f4e3a8714889227cc274026e740fa7c997f48a08be35ea71e1489549dd29a974d74d1085d6968dca9a984068be117ae99e09ec8fb98293558008c5f55639b6707be96987bb8379e427d46e5d4ed22fb8b12f97ad308cd1fa9e21098b132fb73b04738880affc2eef764199f0f6cdda9ce0ff7ac51cc439b449b7688053d5549fbc56de21539d6c8726d4edeb5ff007dfa997dd05302305c199f8577ebb6859b23571bb2c2f ethereum/mainnet +27 [6444224,6446583) \\x5294201fdbab04688174eab778fefc429c205dd86455ad8f364d8b3d38c5a82049ba034470764b83cdf17865e120582e1b6aaa0b3d56fec5207a667259dfa2d2ec3460dd11567c7a27d4a86bc8d7f1751dc6d1c4492c6127ae6abbd188c43b6e5032a8b3c011ff798b9ded547ba8b05918873a1f7773ea29cf6a2ce71fd257a209a28b9696efce68a4470193992fb7a10ca0930fac0c2c99386c1b43732ed3ad075acbdb2b6f98a26237277dd4bd78de18a268472089c15aa4af0419d19b1d9e153b28bafadc350bb09ab74d152305c0a2d45f1742f33e41a1e1886b2da5023fec198ea8153ae8a8843055fca58563f9504f2bfd205c11af7f791eaf953f1f1c01 ethereum/mainnet +28 [6446583,6447507) \\x9ffa6e9a6efa83d558d0217b4be3413b840956ec0df1088eb94af52cdb6072c333b6cd65d5416e8f50c9959407a1b3ffaa1d2a04240a15e82e154e24bcbd1e99aa8e634473f1b7b974a4e6f0a7a098f4d7e911e783ae1673cb67ddba7fe1a66ca2747e2d3035177ed61515b7e45f98926344df62b5a6428de48b75a5110b8d2cde26cd4b3716df4c5e541d43ab4c38366f72f76c8f6829300bd38098858d24cb890403380a7ad6377fa349e012a0ba3de2b56eb84338e93015d0831494109dd2c9b85ef5f60cb5d7443bdaa5573dad83aa56004cb4f290edf8febcfaacd687ed50d4da9cabcbbd46e080c087395d6d39fab1916615f490a4c8b2623df3bf20c5 ethereum/mainnet +29 [6447507,6452608) \\xbeba4005a30c98ba9d25bfad8d2ca024719cb5233a5b61d67ad28e4c9d9e75b2259705d5f7351de10eb84c7e3cdbf73223c3cc40d32c8378b458f8d2d27042c01459d74fdd616043c170ecec7594d3f09c28b17b585d88f4025246aead526c795198cd93cdc2ecde28a63607595bd4374ecfe4c99b60ec69e18a8a290c4d3e4b94305dc3bef33d54f1ea297ff7507f16872514772b707c3278e2017cca1e0c945dc09a6d54097ed5c236df9410e60ea1dfd743b68c47e214326dc8ebc3dcc0e9281acdf2045e68374de8f2affab220635ebdd49d82d87a5c10a2e848ccaf02129509edc5f761793031b017ac71e0316c4f3ae98c244a9b26c179b4d6b9edcd0e ethereum/mainnet +30 [6452608,6454190) \\x58120d1e4e2760c660befb1c8fc72b0b61be664ef9574163e1c9f0e479030877c330c8da46c15f34be173512e02b1b3df9883217ffa572742095d62215a24b3d39b0efb8c4516327d1dfb1b8ae3a85a62ede0ff93839d2359c34e57c4ca140512384f46bbd289423c1eff21dab0965a5d378a2aa4d1cf02056eda65065c23bb8f7f0371994f8fbbe7ce46926d2c5bc496534cab8e284483ccc1f239e6f2c0f59c447251fbb7b0055b6f448a47b73593f1cc7c7f416264b54d4def2f7eb6ca1757ba5a9ea46e5b344b2be81963e19121a3bb30d3701f3659b828f3d6822cf306616a44198e2efe7e39c70f97fce513e677b2757d442e5d43412e144ebb72f8783 ethereum/mainnet +31 [6454190,6454340) \\xa9e1a7c716cb285e1c772806f75979f63dc6ca758db9b772c444b58adc51d476da430bb066907708c1a45d210f6d8931cf31d6eba0b03a645dacba2f986e00221fda5f6b644d4162daf9ac029cd6b6493d485a14760502bd5d06f5048e750fb33b5e1f19746a2d4d38d135df0dcca71b8adf116a5ef0e8b9527c1ea92d0e5483610db33a7111a75e99e7a8ab4b041c54798d62e94d79d609bb7477ddbe498fa22d9ed4ef2fba950137f3cd109f614dd1bf6ff5d0ab9361d9647604408b6f3c45c064a391dbf0bdf0ad42b052bb6e5fb4e8ae4e813d4e5d907233132666feee4574e46a40ec762addfac8cdd04f76e68031823bd0a70c2953d208f64077f38e9f ethereum/mainnet +32 [6454340,6460716) \\x6c91eee65443f93dc3b0f61ca5d45ebdb059503e44e50c497d57e624366f25b322bbf8eb11469889121fc00a9b3892352869fc889ec223dff82c371b571163057848736b7d9680ed6a5663bb0554f75b00e1043784e9cae3607d5ca244a93a9afc2f3efb944bc9da415bef96839be49ae1645070ce0a9601669fee60bd3869a13b029d885512978a44b24c74b2cc341745df4e01e68ecc80072200535b9f988711ba301b5042bde195fbf758c6188ac2b718f262282d1af74c080e969804acbd518dbce29281a78f26f8d874901dbc5a51736f464fb125e620e4fb55593bbe2fa1b6613287f9641eea0cc5874d6698e9c464aedeb8a407b6d8eb537eee03516e01 ethereum/mainnet +33 [6460716,6469958) \\xb52580c0821583aa75b1c908a09e43e83501abcc423cb485c4ab95ac13292c60b754510ffacc3feace1398c9a24bc64de4b57c117c64a12c2a8f62e9ed83926289aaed68aad900f013a9b28c75f3de4569cb10fc0c686c66769bd2f15ead88dcb03f8452a6fe76adf8fb357c315a5adf055503032e1a52f03a89c907adde550689b5f7f0e56e43dccb8874bce469dc22005c9a2807950d98c70eac925010586bcad05806d1167539695cac361ae69a518e8ddedb78b9739a8038fd585ca667f73a5b6b4efedbb05ea51863ab016d8f236ba7132220877ad44d1c7d1ee6d001ac581187a5594b967e0751336c679b1f44ede2b361fd37c4b217b6bd589f47ed01 ethereum/mainnet +34 [6469958,6469988) \\x34ae245e1aa5495289284e5a13a9d7d3d4693e470e98bc8426195cbce2e72622a7b28d5b15142d36b30a774ef0f6ffee9fcdf7fb3cf26a103546adec4bdba0e02c001c0173938ec47eac60bbec74580fdec9ea51bf0325cbfac2f99ad5c629a2e16420835951908a7ac714fce3365618a0061a3a6d108e9b9e9a44362e9ebf47e24a9a031ba4a9715a0f655aa83ca2f9044d2d4f95a24a30378613cfae06e3e2660d629c3f7f7e2b676f4d38beb8ecc55a200a9dcf683147e0c833a565ada713854cd0875eca4137e8fd78ae421486abb6a1a14f48582b05769b35847f32e22948f68509790264d3481144d3456948933c405109f8dbfb83e0b23a44492fd07c01 ethereum/mainnet +35 [6469988,6818642) \\x979358474dabbd31d7b9fa13c3b2dc9f1a037744d4c89612d415f0d68677dcb1819dbdeb5b75c6abf462b07149c79b64186e6b5a32f81a0b0f24c97e434f504b92c97f6cd462c8e8573325eead0f3945bf5ebee0cfccf9208d0e4a00436a6e6fd859a6a003a1bfba5ba004b653ea26832434ccf3bf65d5ac2c5fd6b1ea52a67e6bb1b508820ca08addaeff8d81f7e11f3184c91bf44c1a050ac236c5f82f60f45e9bb1d57f46471dcab23a9b521b78ea33749a10fe0e8e9a19f3fe2f6960ffc0b970f5b0ef73de8a12655d5d76c28cf8443bc52516269c68184307735d871756783c6fbd06ce70923c0b5aff246354276f0e39bf78acdd3bd67c71b0580d0c89 ethereum/mainnet +36 [6818642,6832676) \\xf6a8bd067d68fe844b9aff93f62010480dd9b605ea67936688b184c8d86902dd92477d982f0def1d2e6121dc8821d8b4aa526ded548f5636161d5d0e0e50399895893d9884ab065ab32b49ed204a4da3d66a2b5524886fa0ff833272085d61b778d48b0fe7d647253d7811011a3fda5724c30599e5222e8cd755e6e8935cce6faf8aa1181e9bd07603a8572a9bcb14015d71930da74c7906a2b4724b5e5261b2fdbcabb9d34fd6e86ff229b13bcb50880fd9b67b59a7cc478d876a229b9fac463f6629327887dcd29ccda6144bc48a81a9573d0756487f34bf20becf5596c7769db13f21c1f259c737ad6019b6a0ff3002339cf2ef93032f0fae02c1c842183001 ethereum/mainnet +37 [6832676,7347427) \\x6d4a402a16c87d707a00ecf318b7b6a75ea44692b4efe71af8ec124fc730c99941a8dd39f3999d66cd694bf0c63ac1e8f6c0b88c3bfc52df15d0a3c6e71ea7dc5e50f6b1e6ad0a39d6e28b17c5b9158e8206984607f734ee733599d0fc9cccf7a983e6fb4f68bea3701bb89be5a68f3aa585f1dd1b9f7ccd9bb32677675c8b0ee4bbd769ae2ecd00cef64e2cd8fd45cca4b18c3b14831946ce475175b21038fa780292f8e3592e95b0a42d047b197534e0011c6e2cca4a6d9722eef5a34e8e24e1d755fa6032dbdd35a9fc27584e9434bdb6882cd879f094178a66cf47b999659f83c38d85f60bb74d41a6f049a62acb505c7b29862ae8661931c6597857dbf5 ethereum/mainnet +38 [7347427,7426647) \\xb27c00801d35194d69c05c6c93272d4d17ef51f55f86a17023d7db47bd77b5a4b3f90bc11d380d85294ba351edb6a07efb177de590bbb1c013f10f6ae8631b36c8626f34853030e2399a5d06d6d7526a5a5c9dcf479e58bbae9ab59d5d08224f1d94b1e32141381203112018bd8fd47062f2464676d970beef954f20a16f07e565451e5f398c116f0559ea601e6c4d714b753c688934343cdde330cf7f77d3e8d8a254b04c64b5eff1f3a0c6bf47bcb12b43af3aa25fc34686a508319840883a3178ca262b63e5835cbfba3b9e42aba6159c0aabfe74dc9c254dcd0d840180bab33130e8a4a6858806d58074429996cb0229258c992a9f55523f66e5abd7ec3001 ethereum/mainnet +39 [7426647,) \\x0dd0f0e4849935d37aba303a71e98902f2fc810e7fe1a1e546d9fc465bb4b0c83d5b95f349e779c3c1a23e4423ab3b4f17ece32e6424483ca94c4bc0fad68d8f1cbf60a50e3091e930a5c8643732b04f22ebdac06933408f7d96088e4eeff8a56f66f48c73f190a04c177ed494009d0cf6a7566dfc134891d7cd2c42abfbefd5bf19b9f588b73dd93f95697975e88b1f9d35823e79bd9c0ae54b01fa853457a560bf1b342297c85e66349d27fadda941f0da8b76a80d76380d1a9dea8d05b8f3f99784af93afeb0bd7a297a8e60a017f46a234e661fc40ba6913e6ba4eff74bb31233acb636f710c07439efd9fb26786cb5230825ad64a909cdd14a4b7e1710c ethereum/mainnet +\. + + +-- +-- Name: data_sources$_vid_seq; Type: SEQUENCE SET; Schema: sgd10; Owner: graph +-- + +SELECT pg_catalog.setval('sgd10."data_sources$_vid_seq"', 1, false); + + +-- +-- Name: gravatar_vid_seq; Type: SEQUENCE SET; Schema: sgd10; Owner: graph +-- + +SELECT pg_catalog.setval('sgd10.gravatar_vid_seq', 38, true); + + +-- +-- Name: poi2$_vid_seq; Type: SEQUENCE SET; Schema: sgd10; Owner: graph +-- + +SELECT pg_catalog.setval('sgd10."poi2$_vid_seq"', 39, true); + + +-- +-- Name: data_sources$ data_sources$_pkey; Type: CONSTRAINT; Schema: sgd10; Owner: graph +-- + +ALTER TABLE ONLY sgd10."data_sources$" + ADD CONSTRAINT "data_sources$_pkey" PRIMARY KEY (vid); + + +-- +-- Name: gravatar gravatar_pkey; Type: CONSTRAINT; Schema: sgd10; Owner: graph +-- + +ALTER TABLE ONLY sgd10.gravatar + ADD CONSTRAINT gravatar_pkey PRIMARY KEY (vid); + + +-- +-- Name: poi2$ poi2$_pkey; Type: CONSTRAINT; Schema: sgd10; Owner: graph +-- + +ALTER TABLE ONLY sgd10."poi2$" + ADD CONSTRAINT "poi2$_pkey" PRIMARY KEY (vid); + + +-- +-- Name: attr_0_0_gravatar_id; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX attr_0_0_gravatar_id ON sgd10.gravatar USING btree (id); + + +-- +-- Name: attr_0_1_gravatar_owner; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX attr_0_1_gravatar_owner ON sgd10.gravatar USING btree ("substring"(owner, 1, 64)); + + +-- +-- Name: attr_0_2_gravatar_display_name; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX attr_0_2_gravatar_display_name ON sgd10.gravatar USING btree ("left"(display_name, 256)); + + +-- +-- Name: attr_0_3_gravatar_image_url; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX attr_0_3_gravatar_image_url ON sgd10.gravatar USING btree ("left"(image_url, 256)); + + +-- +-- Name: attr_1_0_poi2$_digest; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "attr_1_0_poi2$_digest" ON sgd10."poi2$" USING btree (digest); + + +-- +-- Name: attr_1_1_poi2$_id; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "attr_1_1_poi2$_id" ON sgd10."poi2$" USING btree (id); + + +-- +-- Name: brin_gravatar; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX brin_gravatar ON sgd10.gravatar USING brin (lower(block_range) int4_minmax_multi_ops, COALESCE(upper(block_range), 2147483647) int4_minmax_multi_ops, vid int8_minmax_multi_ops); + + +-- +-- Name: brin_poi2$; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "brin_poi2$" ON sgd10."poi2$" USING brin (lower(block_range) int4_minmax_multi_ops, COALESCE(upper(block_range), 2147483647) int4_minmax_multi_ops, vid int8_minmax_multi_ops); + + +-- +-- Name: btree_causality_region_data_sources$; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "btree_causality_region_data_sources$" ON sgd10."data_sources$" USING btree (causality_region); + + +-- +-- Name: gist_block_range_data_sources$; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "gist_block_range_data_sources$" ON sgd10."data_sources$" USING gist (block_range); + + +-- +-- Name: gravatar_block_range_closed; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX gravatar_block_range_closed ON sgd10.gravatar USING btree (COALESCE(upper(block_range), 2147483647)) WHERE (COALESCE(upper(block_range), 2147483647) < 2147483647); + + +-- +-- Name: gravatar_id_block_range_excl; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX gravatar_id_block_range_excl ON sgd10.gravatar USING gist (id, block_range); + + +-- +-- Name: poi2$_block_range_closed; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "poi2$_block_range_closed" ON sgd10."poi2$" USING btree (COALESCE(upper(block_range), 2147483647)) WHERE (COALESCE(upper(block_range), 2147483647) < 2147483647); + + +-- +-- Name: poi2$_id_block_range_excl; Type: INDEX; Schema: sgd10; Owner: graph +-- + +CREATE INDEX "poi2$_id_block_range_excl" ON sgd10."poi2$" USING gist (id, block_range); + + +-- +-- Name: data_sources$ data_sources$_parent_fkey; Type: FK CONSTRAINT; Schema: sgd10; Owner: graph +-- + +ALTER TABLE ONLY sgd10."data_sources$" + ADD CONSTRAINT "data_sources$_parent_fkey" FOREIGN KEY (parent) REFERENCES sgd10."data_sources$"(vid); + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/file-exchange/src/download_client/mod.rs b/file-exchange/src/download_client/mod.rs index 03bf48f..8f7aa57 100644 --- a/file-exchange/src/download_client/mod.rs +++ b/file-exchange/src/download_client/mod.rs @@ -203,7 +203,8 @@ impl Downloader { .entry(file_manifest_meta.meta_info.hash.clone()) .or_default(); let chunk_size = file_manifest_meta.file_manifest.chunk_size; - for i in 0..(file_manifest_meta.file_manifest.total_bytes / chunk_size + 1) { + for i in 0..(file_manifest_meta.file_manifest.total_bytes).div_ceil(chunk_size) + { chunks_set.insert(i); } } diff --git a/file-exchange/src/manifest/store.rs b/file-exchange/src/manifest/store.rs index 811bcda..34a99f1 100644 --- a/file-exchange/src/manifest/store.rs +++ b/file-exchange/src/manifest/store.rs @@ -134,11 +134,10 @@ impl Store { } pub async fn range_read(&self, file_loc: &Path, range: &Range) -> Result { - Ok(self - .store + self.store .get_range(file_loc, range.to_owned()) .await - .unwrap()) + .map_err(Error::ObjectStoreError) } pub async fn read(&self, location: &str) -> Result { @@ -175,7 +174,7 @@ impl Store { object_meta.size } }); - let ranges = (0..(object_meta.size / step + 1)) + let ranges = (0..(object_meta.size).div_ceil(step)) .map(|i| std::ops::Range:: { start: i * step, end: ((i + 1) * step).min(object_meta.size), @@ -208,7 +207,7 @@ impl Store { object_meta.size } }); - let ranges = (0..(object_meta.size / step + 1)) + let ranges = (0..object_meta.size.div_ceil(step)) .map(|i| std::ops::Range:: { start: i * step, end: ((i + 1) * step).min(object_meta.size), @@ -245,7 +244,7 @@ impl Store { } }); - for i in 0..(size / step + 1) { + for i in 0..size.div_ceil(step) { let buf = &bytes[i * step..((i + 1) * step).min(size)]; write.write_all(buf).await.unwrap(); } @@ -337,8 +336,9 @@ impl Store { tracing::trace!(file_meta = tracing::field::debug(&metadata), "Found file"); // loop through file manifest byte range - let chunk_ops: Vec<_> = (0..(file_manifest.total_bytes / file_manifest.chunk_size + 1)) + let chunk_ops: Vec<_> = (0..(file_manifest.total_bytes).div_ceil(file_manifest.chunk_size)) .map(|i| { + tracing::trace!(index = i, "validate chunk"); let start = i * file_manifest.chunk_size; let end = (u64::min(start + file_manifest.chunk_size, file_manifest.total_bytes) - 1) as usize; diff --git a/file-service/src/admin.rs b/file-service/src/admin.rs index d4125e8..f886b65 100644 --- a/file-service/src/admin.rs +++ b/file-service/src/admin.rs @@ -129,7 +129,7 @@ impl StatusMutation { &self, ctx: &Context<'_>, filenames: Vec, - prefixes: Vec, + prefixes: Option>, chunk_size: Option, bundle_name: Option, file_type: Option, @@ -159,7 +159,7 @@ impl StatusMutation { PublisherArgs { chunk_size: chunk_size.unwrap_or(1048576), filenames, - prefixes, + prefixes: prefixes.unwrap_or_default(), bundle: Some(BundleArgs { bundle_name, file_type, @@ -518,7 +518,7 @@ impl StatusMutation { &self, ctx: &Context<'_>, filenames: Vec, - prefixes: Vec, + prefixes: Option>, chunk_size: Option, ) -> Result, ServerError> { if ctx.data_opt::() @@ -541,7 +541,7 @@ impl StatusMutation { PublisherArgs { chunk_size: chunk_size.unwrap_or(1048576), filenames: filenames.clone(), - prefixes: prefixes.clone(), + prefixes: prefixes.unwrap_or_default(), storage_method: ctx .data_unchecked::() .state diff --git a/file-service/src/file_server/range.rs b/file-service/src/file_server/range.rs index 6b7a54e..997659c 100644 --- a/file-service/src/file_server/range.rs +++ b/file-service/src/file_server/range.rs @@ -93,6 +93,7 @@ pub async fn serve_file_range( let transferred_bytes = crate::metrics::TRANSFERRED_BYTES.with_label_values(&[file_name]); transferred_bytes.set(length.try_into().unwrap()); + tracing::trace!(bytes = tracing::field::debug(&content), "Serving bytes"); Response::builder() .status(StatusCode::PARTIAL_CONTENT) .header(CONTENT_RANGE, format!("bytes {}-{}/{}", start, end, length))