diff --git a/server/internal/entities/include/Solution.hpp b/server/internal/entities/include/Solution.hpp index a8aeaf38b9f43eefd1f3b10f01694badabb4ec63..f2cdda03cbba5bcd23c16819e521db8968e14185 100644 --- a/server/internal/entities/include/Solution.hpp +++ b/server/internal/entities/include/Solution.hpp @@ -7,12 +7,15 @@ class Solution { public: - Solution(size_t id, std::string sendDate, size_t senderId, std::string source, + Solution(size_t id, std::string sendDate, size_t senderId, + std::string source, size_t taskId, std::string result, std::string tokens, std::string astTree, - size_t taskId, std::string result, size_t orig_solution) noexcept; + size_t orig_solution) noexcept; - Solution(std::string sendDate, size_t senderId, std::string source, std::string tokens, - std::string astTree, size_t taskId, std::string result, size_t orig_solution) noexcept; + Solution(std::string sendDate, size_t senderId, + std::string source, size_t taskId, std::string result, + std::string tokens, std::string astTree, + size_t orig_solution) noexcept; Solution() noexcept; diff --git a/server/internal/entities/src/Solution.cpp b/server/internal/entities/src/Solution.cpp index db4914e8c32bbcc2a80b8ccc1a6420ad851e05f2..ca5fa0dd17d71487aec0c17a846d6bd5a24a9001 100644 --- a/server/internal/entities/src/Solution.cpp +++ b/server/internal/entities/src/Solution.cpp @@ -3,26 +3,24 @@ #include #include "Solution.hpp" -Solution::Solution(size_t id, std::string sendDate, unsigned long senderId, - std::string source, std::string tokens, - std::string astTree, unsigned long taskId, - std::string result, size_t orig_solution_) noexcept: +Solution::Solution(size_t id, std::string sendDate, size_t senderId, + std::string source, size_t taskId, std::string result, + std::string tokens, std::string astTree, + size_t orig_solution) noexcept: id(id), send_date(std::move(sendDate)), sender_id(senderId), source(std::move(source)), tokens(std::move(tokens)), astTree(std::move(astTree)), - task_id(taskId), result(std::move(result)), orig_solution(orig_solution_) {} + task_id(taskId), result(std::move(result)), orig_solution(orig_solution) {} - -Solution::Solution(std::string sendDate, unsigned long senderId, - std::string source, std::string tokens, - std::string astTree, unsigned long taskId, - std::string result, size_t orig_solution_) noexcept: +Solution::Solution(std::string sendDate, size_t senderId, + std::string source, size_t taskId, std::string result, + std::string tokens, std::string astTree, + size_t orig_solution) noexcept: id(0), send_date(std::move(sendDate)), sender_id(senderId), source(std::move(source)), tokens(std::move(tokens)), astTree(std::move(astTree)), - task_id(taskId), result(std::move(result)), orig_solution(orig_solution_) {} + task_id(taskId), result(std::move(result)), orig_solution(orig_solution) {} -Solution::Solution() noexcept: id(0), sender_id(0), task_id(0), orig_solution(0) {} size_t Solution::getId() const noexcept { return id; @@ -104,3 +102,7 @@ void Solution::setOrigSolution(size_t origSolution) { orig_solution = origSolution; } +Solution::Solution()noexcept :id(0), sender_id(0), task_id(0){ + +} + diff --git a/server/internal/repository/include/MetricRepository.hpp b/server/internal/repository/include/MetricRepository.hpp index 5d9bf9632f6b63f294ef12714fd442b8da70c981..6e23e90db56c7b6fc1594f1fd614e2c07507bff1 100644 --- a/server/internal/repository/include/MetricRepository.hpp +++ b/server/internal/repository/include/MetricRepository.hpp @@ -8,7 +8,7 @@ using namespace pqxx; -class MetricRepository : IMetricRepository { +class MetricRepository :public IMetricRepository { public: explicit MetricRepository(); diff --git a/server/internal/repository/include/SolutionRepository.hpp b/server/internal/repository/include/SolutionRepository.hpp index 6ac4137b5545d3e1486fe3612277258e0e2cd344..b2941832291cb22abc1beb28925a9672549a7549 100644 --- a/server/internal/repository/include/SolutionRepository.hpp +++ b/server/internal/repository/include/SolutionRepository.hpp @@ -12,7 +12,9 @@ using namespace pqxx; + class SolutionRepository : public ISolutionRepository { + public: explicit SolutionRepository(); std::optional getSolutionById(size_t id) override; diff --git a/server/internal/repository/include/TaskRepository.hpp b/server/internal/repository/include/TaskRepository.hpp index 1c41e2ca911e6cd074a3f96158b43873e1c834d1..8542887563ed8f54c2ac00ab2b2ca00dcb6fe392 100644 --- a/server/internal/repository/include/TaskRepository.hpp +++ b/server/internal/repository/include/TaskRepository.hpp @@ -10,6 +10,7 @@ using namespace pqxx; + class TaskRepository : public ITaskRepository { public: explicit TaskRepository(); @@ -27,6 +28,7 @@ public: private: static Task makeTask(const result::const_iterator &c); + std::shared_ptr manager; }; diff --git a/server/internal/repository/include/UserRepository.hpp b/server/internal/repository/include/UserRepository.hpp index 3c4c81349166c8e81ab604fa597e885ec9f2b294..b55d3a9db87673aac4a88b24aa0e571e0348f354 100644 --- a/server/internal/repository/include/UserRepository.hpp +++ b/server/internal/repository/include/UserRepository.hpp @@ -11,6 +11,7 @@ using namespace pqxx; + class UserRepository : public IUserRepository { public: explicit UserRepository(); diff --git a/server/internal/repository/src/SolutionRepository.cpp b/server/internal/repository/src/SolutionRepository.cpp index 441bab7666fac844a9d7a7a8adc805dc23fbc376..353ad9b94cda2de28b074b81787e551f7eab441c 100644 --- a/server/internal/repository/src/SolutionRepository.cpp +++ b/server/internal/repository/src/SolutionRepository.cpp @@ -27,11 +27,19 @@ std::vector SolutionRepository::getSolutionsBySenderId(size_t sender_i auto c = manager->connection(); std::string sql = "SELECT * FROM solutions WHERE sender_id=" + std::to_string(sender_id); nontransaction n(*c); - result r(n.exec(sql)); + auto stream = stream_from::query(n, sql); std::vector solutions; + std::tuple row; + while (stream >> row) { + solutions.emplace_back( + get<0>(row), get<1>(row), + get<2>(row), get<3>(row), + get<4>(row), get<5>(row), + get<6>(row), get<7>(row), get<8>(row)); + } + stream.complete(); manager->freeConnection(c); - for (result::const_iterator k = r.begin(); k != r.end(); ++k) - solutions.push_back(makeSolution(k)); return solutions; } catch (...) { @@ -44,11 +52,19 @@ std::vector SolutionRepository::getSolutionsByTaskId(size_t task_id) { auto c = manager->connection(); std::string sql = "SELECT * FROM solutions WHERE task_id=" + std::to_string(task_id); nontransaction n(*c); - result r(n.exec(sql)); + auto stream = stream_from::query(n, sql); std::vector solutions; + std::tuple row; + while (stream >> row) { + solutions.emplace_back( + get<0>(row), get<1>(row), + get<2>(row), get<3>(row), + get<4>(row), get<5>(row), + get<6>(row), get<7>(row), get<8>(row)); + } + stream.complete(); manager->freeConnection(c); - for (result::const_iterator k = r.begin(); k != r.end(); ++k) - solutions.push_back(makeSolution(k)); return solutions; } catch (...) { @@ -78,10 +94,10 @@ size_t SolutionRepository::storeSolution(Solution solution) { auto c = manager->connection(); std::string sql = ( - boost::format("INSERT INTO solutions (send_date,sender_id, source, task_id, result, tokens, astTree) " \ - "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s') RETURNING id; ") % solution.getSendDate() % + boost::format("INSERT INTO solutions (send_date,sender_id, source, task_id, result, tokens, astTree, original_solution_id) " \ + "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') RETURNING id; ") % solution.getSendDate() % solution.getSenderId() % solution.getSource() % solution.getTaskId() % solution.getResult() % - solution.getTokens() % solution.getAstTree()).str(); + solution.getTokens() % solution.getAstTree() % solution.getOrigSolution()).str(); work w(*c); row r = (w.exec1(sql)); w.commit(); @@ -97,10 +113,11 @@ void SolutionRepository::updateSolution(Solution solution) { auto c = manager->connection(); std::string sql = (boost::format( - "UPDATE solutions SET send_date = '%s', sender_id = '%s', source = '%s', task_id = '%s', result = '%s', tokens = '%s', astTree = '%s';") + "UPDATE solutions SET send_date = '%s', sender_id = '%s', source = '%s'," + " task_id = '%s', result = '%s', tokens = '%s', astTree = '%s', original_solution_id = '%s';") % solution.getSendDate() % solution.getSenderId() % solution.getSource() % solution.getTaskId() % solution.getResult() % solution.getTokens() % - solution.getAstTree()).str(); + solution.getAstTree() % solution.getOrigSolution()).str(); work w(*c); w.exec(sql); manager->freeConnection(c); @@ -134,10 +151,10 @@ Solution SolutionRepository::makeSolution(const result::const_iterator &c) { c.at(c.column_number("send_date")).as(), c.at(c.column_number("sender_id")).as(), c.at(c.column_number("source")).as(), - c.at(c.column_number("tokens")).as(), - c.at(c.column_number("astTree")).as(), c.at(c.column_number("task_id")).as(), c.at(c.column_number("result")).as(), + c.at(c.column_number("tokens")).as(), + c.at(c.column_number("astTree")).as(), c.at(c.column_number("original_solution_id")).as()}; } diff --git a/server/internal/repository/src/TaskRepository.cpp b/server/internal/repository/src/TaskRepository.cpp index f20dffbd21b49ef61676248131f043366880751c..261436c9b59172faee82a1ac5595f2cdec85ed63 100644 --- a/server/internal/repository/src/TaskRepository.cpp +++ b/server/internal/repository/src/TaskRepository.cpp @@ -1,6 +1,7 @@ #include #include "Task.hpp" #include +#include #include "TaskRepository.hpp" std::optional TaskRepository::getTaskById(size_t id) { @@ -24,12 +25,15 @@ std::vector TaskRepository::getAllTasks() { auto c = manager->connection(); std::string sql = "SELECT * FROM tasks"; nontransaction n(*c); - result r(n.exec(sql)); + auto stream = stream_from::query(n, sql); + std::vector tasks; + std::tuple row; + while(stream >> row){ + tasks.emplace_back(get<0>(row), get<1>(row), get<2>(row)); + } + stream.complete(); manager->freeConnection(c); - std::vector users; - for (result::const_iterator k = r.begin(); k != r.end(); ++k) - users.push_back(makeTask(k)); - return users; + return tasks; } catch (...) { throw; @@ -87,6 +91,7 @@ Task TaskRepository::makeTask(const result::const_iterator &c) { c.at(c.column_number("treshold")).as()}; } + TaskRepository::TaskRepository() { manager = std::make_shared(); } diff --git a/server/internal/repository/src/UserRepository.cpp b/server/internal/repository/src/UserRepository.cpp index 216baef6b14964c5fe36c4d7ae0d044b895b7f9a..71e05a550fe0a8b1a565f3e7667573a4739dc1c4 100644 --- a/server/internal/repository/src/UserRepository.cpp +++ b/server/internal/repository/src/UserRepository.cpp @@ -79,11 +79,14 @@ std::vector UserRepository::getAllUsers() { auto c = manager->connection(); std::string sql = "SELECT * FROM Users"; nontransaction n(*c); - result r(n.exec(sql)); - manager->freeConnection(c); + auto stream = stream_from::query(n, sql); std::vector users; - for (result::const_iterator k = r.begin(); k != r.end(); ++k) - users.push_back(makeUser(k)); + std::tuple row; + while(stream >> row){ + users.emplace_back(get<0>(row), get<1>(row), get<2>(row), get<3>(row)); + } + stream.complete(); + manager->freeConnection(c); return users; } catch (...) { diff --git a/server/internal/repository/tests/RepositoryTests.cpp b/server/internal/repository/tests/RepositoryTests.cpp index b78c57cb4021dcaeec2d83d04f7513410b733e47..b34518aa235d10e9fe7eea0be722885a03c8d389 100644 --- a/server/internal/repository/tests/RepositoryTests.cpp +++ b/server/internal/repository/tests/RepositoryTests.cpp @@ -46,9 +46,9 @@ TEST(TaskRepository_CRUD_Test, CRUD) { TEST(SolutionRepository_CRUD_Test, CRUD) { SolutionRepository rep; - Solution solution("01.01.1970", 1, ":/C/Users", "tokens.txt", "tree.txt", 1, "result"); + Solution solution("01.01.1970", 1, ":/C/Users", 1, "result","tokens.txt", "tree.txt", 1); size_t id = rep.storeSolution(solution); - EXPECT_NO_FATAL_FAILURE(rep.getSolutionById(1)); + EXPECT_NO_FATAL_FAILURE(rep.getSolutionById(163)); solution.setId(id); std::optional new_solution_opt = rep.getSolutionById(id); Solution new_solution; @@ -101,8 +101,9 @@ TEST(UserRepository_CRUD_Test, loginLikeId) { TEST(SolutionRepository_CRUD_Test, CRUD_getSolutionsBySenderId) { SolutionRepository rep; - Solution solution1("01.01.1970", 1, ":/C/Users", "tokens.txt", "tree.txt", 1, "result"); - Solution solution2("01.01.1970", 1, "/home/usr", "tokens.txt", "tree.txt", 1, "result"); + Solution solution1("01.01.1970", 1, ":/C/Users", 1, "result","tokens.txt", "tree.txt", 1); + Solution solution2("01.01.1970", 1, "home/usr", 1, "result","tokens.txt", "tree.txt", 1); + size_t id1 = rep.storeSolution(solution1); solution1.setId(id1); @@ -110,8 +111,8 @@ TEST(SolutionRepository_CRUD_Test, CRUD_getSolutionsBySenderId) { size_t id2 = rep.storeSolution(solution2); solution2.setId(id2); EXPECT_EQ(solution2, rep.getSolutionById(id2)); - std::vector v = {{id1, "01.01.1970", 1, ":/C/Users", "tokens.txt", "tree.txt", 1, "result"}, - {id2, "01.01.1970", 1, "/home/usr", "tokens.txt", "tree.txt", 1, "result"}}; + std::vector v = {{id1,"01.01.1970", 1, ":/C/Users", 1, "result","tokens.txt", "tree.txt", 1}, + {id2, "01.01.1970", 1, "home/usr", 1, "result","tokens.txt", "tree.txt", 1}}; std::vector new_v = rep.getSolutionsBySenderId(solution1.getSenderId()); EXPECT_EQ(v, new_v); EXPECT_NO_FATAL_FAILURE(rep.deleteSolution(solution1)); @@ -122,8 +123,9 @@ TEST(SolutionRepository_CRUD_Test, CRUD_getSolutionsBySenderId) { TEST(SolutionRepository_CRUD_Test, CRUD_getSolutionsByTaskId) { SolutionRepository rep; - Solution solution1("01.01.1970", 1, ":/C/Users", "tokens.txt", "tree.txt", 1, "result"); - Solution solution2("01.01.1970", 1, "/home/usr", "tokens.txt", "tree.txt", 1, "result"); + Solution solution1("01.01.1970", 1, ":/C/Users", 1, "result","tokens.txt", "tree.txt", 1); + Solution solution2("01.01.1970", 1, "home/usr", 1, "result","tokens.txt", "tree.txt", 1); + size_t id1 = rep.storeSolution(solution1); solution1.setId(id1); @@ -138,8 +140,7 @@ TEST(SolutionRepository_CRUD_Test, CRUD_getSolutionsByTaskId) { } TEST(SolutionRepository_CRUD_Test, tryToAddWithNotExistingTask){ SolutionRepository rep; - - Solution solution("01.01.1970", 1, ":/C/Users", "tokens.txt", "tree.txt", 100500, "result"); + Solution solution("01.01.1970", 1, ":/C/Users", 100500, "result","tokens.txt", "tree.txt", 1); try{ rep.storeSolution(solution); }catch(pqxx::foreign_key_violation &e){ @@ -150,7 +151,7 @@ TEST(SolutionRepository_CRUD_Test, tryToAddWithNotExistingTask){ TEST(SolutionRepository_CRUD_Test, tryToStoreWithNotExistingSender){ SolutionRepository rep; - Solution solution("01.01.1970", 100500, ":/C/Users", "tokens.txt", "tree.txt", 1, "result"); + Solution solution("01.01.1970", 100500,":/C/Users", 100500, "result","tokens.txt", "tree.txt", 1); try{ rep.storeSolution(solution); }catch(pqxx::foreign_key_violation &keyViolation){ diff --git a/server/internal/repository/virtual/ITaskRepository.hpp b/server/internal/repository/virtual/ITaskRepository.hpp index b5db6459ac03fc35dea0b872d14d91b07d5d79da..b26594683981f49d453845d1b355fc12b6ea2559 100644 --- a/server/internal/repository/virtual/ITaskRepository.hpp +++ b/server/internal/repository/virtual/ITaskRepository.hpp @@ -14,7 +14,8 @@ public: virtual std::vector getAllTasks() = 0; - virtual void updateTask(const Task&) = 0; + + virtual void updateTask(const Task& task) = 0; virtual size_t storeTask(Task task) = 0; diff --git a/server/internal/src/CMakeLists.txt b/server/internal/src/CMakeLists.txt deleted file mode 100644 index 72e4c50a529e11df35b7cb5041f8f92700da291b..0000000000000000000000000000000000000000 --- a/server/internal/src/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set(CMAKE_CXX_STANDARD 20) -cmake_minimum_required(VERSION 3.19) -add_subdirectory(db) -set(DB_Lib_LIB ${DB_Lib_LIB} PARENT_SCOPE) -set(DB_Lib_INCLUDE_DIRS ${DB_Lib_INCLUDE_DIRS} PARENT_SCOPE) \ No newline at end of file diff --git a/server/internal/src/db/CMakeLists.txt b/server/internal/src/db/CMakeLists.txt deleted file mode 100644 index df02471d1e844d4f84ebe571d568da19adc26cad..0000000000000000000000000000000000000000 --- a/server/internal/src/db/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -project("DBLib") - -set(LIB_NAME DB_Lib) - -file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) -file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h) - -message("SOURCES = ${SOURCES}") -message("HEADERS = ${HEADERS}") - - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -O2 -pedantic -Wformat=2 -Wfloat-equal -Wconversion \ --Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual -Wcast-align") - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") - -add_library(${LIB_NAME} ${SOURCES} ${HEADERS}) -target_include_directories(${LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -target_link_libraries(${LIB_NAME} ${libpqxx_LIBRARIES} nlohmann_json::nlohmann_json) - -set(DB_Lib_LIB ${LIB_NAME}) -set(DB_Lib_LIB ${DB_Lib_LIB} PARENT_SCOPE) -set(DB_Lib_INCLUDE_DIRS ${LIB_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/include) -set(DB_Lib_INCLUDE_DIRS ${DB_Lib_INCLUDE_DIRS} PARENT_SCOPE) - -message("DB_Lib_LIB = ${DB_Lib_LIB}") -message("DB_Lib_INCLUDE_DIRS = ${DB_Lib_INCLUDE_DIRS}") diff --git a/server/internal/src/db/config.json b/server/internal/src/db/config.json deleted file mode 100644 index 81007a5fd8cdc018e6eac3ad8c345f44f5a85d2d..0000000000000000000000000000000000000000 --- a/server/internal/src/db/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "dbname": "mydb", - "user": "postgres", - "password": "root", - "hostaddr": "127.0.0.1", - "port": "5432" -} diff --git a/server/internal/src/db/include/conn.hpp b/server/internal/src/db/include/conn.hpp deleted file mode 100644 index 146836191dbe62ad33d0443f1d2e62b315496b5f..0000000000000000000000000000000000000000 --- a/server/internal/src/db/include/conn.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SOURCEDOUT_CONN_HPP -#define SOURCEDOUT_CONN_HPP - -#include -#include -#include - -using json = nlohmann::json; - -struct conn { - std::string dbname; - std::string user; - std::string password; - std::string hostaddr; - std::string port; - - conn(); - - [[nodiscard]] std::string getData() const; -}; - -#endif //SOURCEDOUT_CONN_HPP diff --git a/server/internal/src/db/src/conn.cpp b/server/internal/src/db/src/conn.cpp deleted file mode 100644 index 9fe50742245c19d56e67188c91fc423e24776212..0000000000000000000000000000000000000000 --- a/server/internal/src/db/src/conn.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include -#include "conn.hpp" -#include -conn::conn() { - std::ifstream f("../config.json"); - json data = json::parse(R"( -{ - "dbname": "mydb", - "user": "postgres", - "password": "root", - "hostaddr": "172.28.224.1", - "port": "5432" -} -)"); - data.at("dbname").get_to(dbname); - data.at("user").get_to(user); - data.at("password").get_to(password); - data.at("hostaddr").get_to(hostaddr); - data.at("port").get_to(port); -} - -std::string conn::getData() const { - return "dbname = " + dbname + " user = " + user + " password = " + password + - " hostaddr = " + hostaddr + " port = " + port; -} \ No newline at end of file diff --git a/sql/database.sql b/sql/database.sql new file mode 100644 index 0000000000000000000000000000000000000000..5266ba29fb1382f95517cabc1e311fdf56803729 --- /dev/null +++ b/sql/database.sql @@ -0,0 +1,678 @@ +-- +-- PostgreSQL database cluster dump +-- + +-- Started on 2023-05-15 22:49:08 + +SET default_transaction_read_only = off; + +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; + +-- +-- Roles +-- + +CREATE ROLE postgres; +ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'SCRAM-SHA-256$4096:nOmjHrNPdaIcnCeed7FgbQ==$U+pukPiYK1tBvbNsPjn4d9zV4IXLekf/OMW5+ZDzgrY=:1f9vBcPgoAcX5hmUUOkjkXLp0FRCqsnlQRmYs2U29pU='; + +-- +-- User Configurations +-- + + + + + + + + +-- +-- Databases +-- + +-- +-- Database "template1" dump +-- + +\connect template1 + +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 15.2 +-- Dumped by pg_dump version 15.2 + +-- Started on 2023-05-15 22:49:08 + +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; + +-- Completed on 2023-05-15 22:49:08 + +-- +-- PostgreSQL database dump complete +-- + +-- +-- Database "mydb" dump +-- + +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 15.2 +-- Dumped by pg_dump version 15.2 + +-- Started on 2023-05-15 22:49:08 + +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; + +-- +-- TOC entry 3362 (class 1262 OID 16565) +-- Name: mydb; Type: DATABASE; Schema: -; Owner: postgres +-- + +CREATE DATABASE mydb WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'Russian_Russia.1251'; + + +ALTER DATABASE mydb OWNER TO postgres; + +\connect mydb + +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; + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- TOC entry 215 (class 1259 OID 16574) +-- Name: users; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.users ( + id integer NOT NULL, + login character varying(255), + password character varying(255), + username character varying(255) +); + + +ALTER TABLE public.users OWNER TO postgres; + +-- +-- TOC entry 214 (class 1259 OID 16573) +-- Name: Users_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public."Users_id_seq" + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public."Users_id_seq" OWNER TO postgres; + +-- +-- TOC entry 3363 (class 0 OID 0) +-- Dependencies: 214 +-- Name: Users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public."Users_id_seq" OWNED BY public.users.id; + + +-- +-- TOC entry 219 (class 1259 OID 16613) +-- Name: metricstat; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.metricstat ( + id integer NOT NULL, + solution_id integer, + text_based_res real, + token_based_res real, + tree_based_res real, + verdict boolean, + mean_res real +); + + +ALTER TABLE public.metricstat OWNER TO postgres; + +-- +-- TOC entry 221 (class 1259 OID 16626) +-- Name: metricstat_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.metricstat_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + MAXVALUE 2147483647 + CACHE 1; + + +ALTER TABLE public.metricstat_id_seq OWNER TO postgres; + +-- +-- TOC entry 3364 (class 0 OID 0) +-- Dependencies: 221 +-- Name: metricstat_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.metricstat_id_seq OWNED BY public.metricstat.id; + + +-- +-- TOC entry 217 (class 1259 OID 16583) +-- Name: solutions; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.solutions ( + id integer NOT NULL, + send_date date NOT NULL, + sender_id integer, + source character varying(255), + task_id integer, + result character varying, + tokens character varying, + asttree character varying, + original_solution_id integer +); + + +ALTER TABLE public.solutions OWNER TO postgres; + +-- +-- TOC entry 216 (class 1259 OID 16582) +-- Name: solutions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.solutions_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.solutions_id_seq OWNER TO postgres; + +-- +-- TOC entry 3365 (class 0 OID 0) +-- Dependencies: 216 +-- Name: solutions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.solutions_id_seq OWNED BY public.solutions.id; + + +-- +-- TOC entry 218 (class 1259 OID 16598) +-- Name: tasks; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.tasks ( + id integer NOT NULL, + description text, + treshold real +); + + +ALTER TABLE public.tasks OWNER TO postgres; + +-- +-- TOC entry 220 (class 1259 OID 16623) +-- Name: tasks_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.tasks_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + MAXVALUE 2147483647 + CACHE 1; + + +ALTER TABLE public.tasks_id_seq OWNER TO postgres; + +-- +-- TOC entry 3366 (class 0 OID 0) +-- Dependencies: 220 +-- Name: tasks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.tasks_id_seq OWNED BY public.tasks.id; + + +-- +-- TOC entry 3191 (class 2604 OID 16628) +-- Name: metricstat id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.metricstat ALTER COLUMN id SET DEFAULT nextval('public.metricstat_id_seq'::regclass); + + +-- +-- TOC entry 3189 (class 2604 OID 16586) +-- Name: solutions id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.solutions ALTER COLUMN id SET DEFAULT nextval('public.solutions_id_seq'::regclass); + + +-- +-- TOC entry 3190 (class 2604 OID 16625) +-- Name: tasks id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.tasks ALTER COLUMN id SET DEFAULT nextval('public.tasks_id_seq'::regclass); + + +-- +-- TOC entry 3188 (class 2604 OID 16577) +-- Name: users id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public."Users_id_seq"'::regclass); + + +-- +-- TOC entry 3354 (class 0 OID 16613) +-- Dependencies: 219 +-- Data for Name: metricstat; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.metricstat (id, solution_id, text_based_res, token_based_res, tree_based_res, verdict, mean_res) FROM stdin; +15 1 1 1 1 t 1 +\. + + +-- +-- TOC entry 3352 (class 0 OID 16583) +-- Dependencies: 217 +-- Data for Name: solutions; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.solutions (id, send_date, sender_id, source, task_id, result, tokens, asttree, original_solution_id) FROM stdin; +1 2023-05-02 10 0.1 27 0.1 0.1 0.1 1 +\. + + +-- +-- TOC entry 3353 (class 0 OID 16598) +-- Dependencies: 218 +-- Data for Name: tasks; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.tasks (id, description, treshold) FROM stdin; +27 orher_description 0.1 +1 description 0.5 +\. + + +-- +-- TOC entry 3350 (class 0 OID 16574) +-- Dependencies: 215 +-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.users (id, login, password, username) FROM stdin; +1 qwerty200468@gmail.com 123 tolik +2 qwerty200468@gmail.com 123 tolik +3 qwerty200468@gmail.com 123 tolik +4 qwerty200468@gmail.com 123 tolik +5 qwerty200468@gmail.com 123 tolik +6 qwerty200468@gmail.com 123 tolik +7 qwerty200468@gmail.com 123 tolik +8 qwerty200468@gmail.com 123 tolik +9 qwerty200468@gmail.com 123 tolik +10 qwerty200468@gmail.com 123 tolik +52 qwerty200468@gmail.com 123 tolik +\. + + +-- +-- TOC entry 3367 (class 0 OID 0) +-- Dependencies: 214 +-- Name: Users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public."Users_id_seq"', 78, true); + + +-- +-- TOC entry 3368 (class 0 OID 0) +-- Dependencies: 221 +-- Name: metricstat_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.metricstat_id_seq', 36, true); + + +-- +-- TOC entry 3369 (class 0 OID 0) +-- Dependencies: 216 +-- Name: solutions_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.solutions_id_seq', 150, true); + + +-- +-- TOC entry 3370 (class 0 OID 0) +-- Dependencies: 220 +-- Name: tasks_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.tasks_id_seq', 34, true); + + +-- +-- TOC entry 3193 (class 2606 OID 16581) +-- Name: users Users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT "Users_pkey" PRIMARY KEY (id); + + +-- +-- TOC entry 3202 (class 2606 OID 16617) +-- Name: metricstat metricStat_pk; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.metricstat + ADD CONSTRAINT "metricStat_pk" PRIMARY KEY (id); + + +-- +-- TOC entry 3198 (class 2606 OID 16588) +-- Name: solutions solutions_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.solutions + ADD CONSTRAINT solutions_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3200 (class 2606 OID 16604) +-- Name: tasks tasks_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.tasks + ADD CONSTRAINT tasks_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3194 (class 1259 OID 16637) +-- Name: fki_original_solution_id; Type: INDEX; Schema: public; Owner: postgres +-- + +CREATE INDEX fki_original_solution_id ON public.solutions USING btree (original_solution_id); + + +-- +-- TOC entry 3195 (class 1259 OID 16594) +-- Name: fki_sender_id; Type: INDEX; Schema: public; Owner: postgres +-- + +CREATE INDEX fki_sender_id ON public.solutions USING btree (sender_id); + + +-- +-- TOC entry 3196 (class 1259 OID 16610) +-- Name: fki_task_id; Type: INDEX; Schema: public; Owner: postgres +-- + +CREATE INDEX fki_task_id ON public.solutions USING btree (task_id); + + +-- +-- TOC entry 3203 (class 2606 OID 16632) +-- Name: solutions original_solution_id; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.solutions + ADD CONSTRAINT original_solution_id FOREIGN KEY (original_solution_id) REFERENCES public.solutions(id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID; + + +-- +-- TOC entry 3204 (class 2606 OID 16589) +-- Name: solutions sender_id; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.solutions + ADD CONSTRAINT sender_id FOREIGN KEY (sender_id) REFERENCES public.users(id) ON UPDATE RESTRICT ON DELETE CASCADE NOT VALID; + + +-- +-- TOC entry 3206 (class 2606 OID 16618) +-- Name: metricstat solutions_id; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.metricstat + ADD CONSTRAINT solutions_id FOREIGN KEY (solution_id) REFERENCES public.solutions(id); + + +-- +-- TOC entry 3205 (class 2606 OID 16605) +-- Name: solutions task_id; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.solutions + ADD CONSTRAINT task_id FOREIGN KEY (task_id) REFERENCES public.tasks(id) NOT VALID; + + +-- Completed on 2023-05-15 22:49:09 + +-- +-- PostgreSQL database dump complete +-- + +-- +-- Database "postgres" dump +-- + +\connect postgres + +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 15.2 +-- Dumped by pg_dump version 15.2 + +-- Started on 2023-05-15 22:49:09 + +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; + +-- +-- TOC entry 8 (class 2615 OID 16398) +-- Name: pgagent; Type: SCHEMA; Schema: -; Owner: postgres +-- + +CREATE SCHEMA pgagent; + + +ALTER SCHEMA pgagent OWNER TO postgres; + +-- +-- TOC entry 3437 (class 0 OID 0) +-- Dependencies: 8 +-- Name: SCHEMA pgagent; Type: COMMENT; Schema: -; Owner: postgres +-- + +COMMENT ON SCHEMA pgagent IS 'pgAgent system tables'; + + +-- +-- TOC entry 2 (class 3079 OID 16384) +-- Name: adminpack; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS adminpack WITH SCHEMA pg_catalog; + + +-- +-- TOC entry 3438 (class 0 OID 0) +-- Dependencies: 2 +-- Name: EXTENSION adminpack; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION adminpack IS 'administrative functions for PostgreSQL'; + + +-- +-- TOC entry 3 (class 3079 OID 16399) +-- Name: pgagent; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS pgagent WITH SCHEMA pgagent; + + +-- +-- TOC entry 3439 (class 0 OID 0) +-- Dependencies: 3 +-- Name: EXTENSION pgagent; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION pgagent IS 'A PostgreSQL job scheduler'; + + +-- +-- TOC entry 3218 (class 0 OID 16400) +-- Dependencies: 219 +-- Data for Name: pga_jobagent; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_jobagent (jagpid, jaglogintime, jagstation) FROM stdin; +7380 2023-05-09 17:32:50.44529+03 DESKTOP-CLI5MDC +\. + + +-- +-- TOC entry 3219 (class 0 OID 16409) +-- Dependencies: 221 +-- Data for Name: pga_jobclass; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_jobclass (jclid, jclname) FROM stdin; +\. + + +-- +-- TOC entry 3220 (class 0 OID 16419) +-- Dependencies: 223 +-- Data for Name: pga_job; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_job (jobid, jobjclid, jobname, jobdesc, jobhostagent, jobenabled, jobcreated, jobchanged, jobagentid, jobnextrun, joblastrun) FROM stdin; +\. + + +-- +-- TOC entry 3222 (class 0 OID 16467) +-- Dependencies: 227 +-- Data for Name: pga_schedule; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_schedule (jscid, jscjobid, jscname, jscdesc, jscenabled, jscstart, jscend, jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths) FROM stdin; +\. + + +-- +-- TOC entry 3223 (class 0 OID 16495) +-- Dependencies: 229 +-- Data for Name: pga_exception; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_exception (jexid, jexscid, jexdate, jextime) FROM stdin; +\. + + +-- +-- TOC entry 3224 (class 0 OID 16509) +-- Dependencies: 231 +-- Data for Name: pga_joblog; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_joblog (jlgid, jlgjobid, jlgstatus, jlgstart, jlgduration) FROM stdin; +\. + + +-- +-- TOC entry 3221 (class 0 OID 16443) +-- Dependencies: 225 +-- Data for Name: pga_jobstep; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_jobstep (jstid, jstjobid, jstname, jstdesc, jstenabled, jstkind, jstcode, jstconnstr, jstdbname, jstonerror, jscnextrun) FROM stdin; +\. + + +-- +-- TOC entry 3225 (class 0 OID 16525) +-- Dependencies: 233 +-- Data for Name: pga_jobsteplog; Type: TABLE DATA; Schema: pgagent; Owner: postgres +-- + +COPY pgagent.pga_jobsteplog (jslid, jsljlgid, jsljstid, jslstatus, jslresult, jslstart, jslduration, jsloutput) FROM stdin; +\. + + +-- Completed on 2023-05-15 22:49:09 + +-- +-- PostgreSQL database dump complete +-- + +-- Completed on 2023-05-15 22:49:09 + +-- +-- PostgreSQL database cluster dump complete +-- +