Skip to content

Commit 895fa15

Browse files
Транзации p2p
1 parent e7d94e2 commit 895fa15

File tree

3 files changed

+46
-14
lines changed

3 files changed

+46
-14
lines changed

databases/datafarm/src/data/init.sql

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ CREATE TABLE p2p.wallets
141141
(
142142
fk_user_owner service.valid_email REFERENCES profile.users(email),
143143
fk_currency VARCHAR(6) REFERENCES p2p.exchange_currencies(ticker),
144+
is_deleted BOOLEAN DEFAULT FALSE,
144145
balance NUMERIC DEFAULT 0
145146
);
146147

@@ -399,6 +400,27 @@ END;
399400
$$ LANGUAGE plpgsql;
400401

401402

403+
-- Создание счета
404+
CREATE OR REPLACE PROCEDURE p2p.create_wallet(
405+
input_user_owner service.valid_email,
406+
input_currency VARCHAR(6)
407+
) AS $$
408+
INSERT INTO p2p.wallets(fk_user_owner, fk_currency)
409+
VALUES(input_user_owner, input_currency);
410+
$$ LANGUAGE sql;
411+
412+
413+
-- Удаление счета
414+
CREATE OR REPLACE PROCEDURE p2p.delete_wallet(
415+
input_user_owner service.valid_email,
416+
input_currency VARCHAR(6)
417+
) AS $$
418+
UPDATE p2p.wallets
419+
SET is_deleted = TRUE
420+
WHERE fk_user_owner = input_user_owner AND fk_currency = input_currency;
421+
$$ LANGUAGE sql;
422+
423+
402424
-- Добавление платежного способа
403425
CREATE OR REPLACE PROCEDURE p2p.create_payment(
404426
input_emitent VARCHAR(50),
Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
CALL profile.create_user('[email protected]', '1234');
22
CALL profile.create_user('[email protected]', '1234');
3-
CALL p2p.create_offer('BUY', 'btc', 5, 3, NULL, 'Comment', '[email protected]');
4-
CALL p2p.create_deal(4, 1, '[email protected]');
5-
CALL p2p.create_deal(1, 1, '[email protected]');
3+
--CALL p2p.create_offer('BUY', 'btc', 5, 3, NULL, 'Comment', '[email protected]');
4+
--CALL p2p.create_deal(4, 1, '[email protected]');
5+
--CALL p2p.create_deal(1, 1, '[email protected]');
66
--CALL p2p.check_deal_time('7100bacd-20a2-462b-9c4d-86ac8558e6df');
7-
--CALL p2p.deal_payment(1, 'cc23797a-12ea-4d68-90d8-e0b34f687a5f');
7+
--CALL p2p.deal_payment(1, 'cc23797a-12ea-4d68-90d8-e0b34f687a5f');
8+
CALL p2p.create_wallet('[email protected]', 'BTC');
9+
CALL p2p.create_wallet('[email protected]', 'BTC');
10+
11+
12+
UPDATE p2p.wallets
13+
SET balance = 100
14+
WHERE fk_user_owner = '[email protected]' AND fk_currency = 'BTC';
15+
16+
17+
CALL p2p.create_p2p_transaction('[email protected]', '[email protected]', 'BTC', 50);

dba/QUERIES.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ WHERE spcname<>'pg_global';
2424
Суммарный размер всех таблиц, суммарный размер всех индексов, общий суммарный размер схемы и суммарное количество строк во всех таблицах схемы.
2525
```sql
2626
SELECT A.schemaname,
27-
pg_size_pretty (SUM(pg_relation_size(C.oid))) as table,
28-
pg_size_pretty (SUM(pg_total_relation_size(C.oid)-pg_relation_size(C.oid))) as index,
29-
pg_size_pretty (SUM(pg_total_relation_size(C.oid))) as table_index,
27+
pg_size_pretty(SUM(pg_relation_size(C.oid))) as table,
28+
pg_size_pretty(SUM(pg_total_relation_size(C.oid)-pg_relation_size(C.oid))) as index,
29+
pg_size_pretty(SUM(pg_total_relation_size(C.oid))) as table_index,
3030
SUM(n_live_tup)
3131
FROM pg_class C
3232
LEFT JOIN pg_namespace N ON (N.oid = C .relnamespace)
3333
INNER JOIN pg_stat_user_tables A ON C.relname = A.relname
3434
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
35-
AND C .relkind <> 'i'
35+
AND C.relkind <> 'i'
3636
AND nspname !~ '^pg_toast'
3737
GROUP BY A.schemaname;
3838
```
@@ -44,9 +44,9 @@ GROUP BY A.schemaname;
4444
```sql
4545
SELECT schemaname,
4646
C.relname AS relation,
47-
pg_size_pretty (pg_relation_size(C.oid)) as table,
48-
pg_size_pretty (pg_total_relation_size (C.oid)-pg_relation_size(C.oid)) as index,
49-
pg_size_pretty (pg_total_relation_size (C.oid)) as table_index,
47+
pg_size_pretty(pg_relation_size(C.oid)) as table,
48+
pg_size_pretty(pg_total_relation_size (C.oid)-pg_relation_size(C.oid)) as index,
49+
pg_size_pretty(pg_total_relation_size (C.oid)) as table_index,
5050
n_live_tup
5151
FROM pg_class C
5252
LEFT JOIN pg_namespace N ON (N.oid = C .relnamespace)
@@ -98,13 +98,13 @@ SELECT pg_terminate_backend(PID_ID);
9898

9999
### Доля кэшированных данных в таблицах
100100

101-
Какая доля каких таблиц закеширована (и насколько активно используются эти данные).
101+
Какая доля каких таблиц закеширована (и насколько активно используются эти данные). Модуль `pg_buffercache`.
102102

103103
```sql
104104
SELECT c.relname,
105105
count(*) blocks,
106-
round( 100.0 * 8192 * count(*) / pg_table_size(c.oid) ) "% of rel",
107-
round( 100.0 * 8192 * count(*) FILTER (WHERE b.usagecount > 3) / pg_table_size(c.oid) ) "% hot"
106+
round(100.0 * 8192 * count(*) / pg_table_size(c.oid)) "% of rel",
107+
round(100.0 * 8192 * count(*) FILTER (WHERE b.usagecount > 3) / pg_table_size(c.oid)) "% hot"
108108
FROM pg_buffercache b
109109
JOIN pg_class c ON pg_relation_filenode(c.oid) = b.relfilenode
110110
WHERE b.reldatabase IN (

0 commit comments

Comments
 (0)