Rosetta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
sql_utils.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file src/basic/database/sql_utils.hh
11 /// @author Sam DeLuca
12 
13 #ifndef INCLUDED_basic_database_sql_utils_HH
14 #define INCLUDED_basic_database_sql_utils_HH
15 
18 #include <utility/tag/Tag.fwd.hh>
19 #include <platform/types.hh>
20 
21 #include <iosfwd>
22 #include <vector>
23 #include <cppdb/frontend.h>
24 
25 namespace basic {
26 namespace database {
27 
28 /// @brief Aquire a database session using the command line options
29 /// transaction type is set to standard
32 
33 /// @brief Aquire a database session using the command line parameters
34 /// For postgres databases, the pq_schema acts like a namespace in the
35 /// database. Transaction type set to standard
38  std::string const & db_name,
39  std::string const & pq_schema="");
40 
41 /// @brief Aquire a database session using the command line parameters
42 /// For postgres databases, the pq_schema acts like a namespace in the
43 /// database
46  std::string const & db_name,
48  platform::Size chunk_size,
49  std::string const & pq_schema="");
50 
54  std::string const & db_name,
55  std::string const & pq_schema="");
56 
57 /// @brief Aquire a database session using the command line parameters
58 /// For postgres databases, the pq_schema acts like a namespace in the
59 /// database
64  platform::Size chunk_size,
65  std::string const & db_name,
66  std::string const & pq_schema="");
67 
68 /// @brief Returns partition identifer if in partitioned database mode, otherwise -1.
69 // Determines partition mode from user options 'inout::dbms::separate_db_per_mpi_process'
70 // and 'inout::dbms::db_partition'.
73 
74 /// @brief Returns partition identifer from mpi rank if in partitioned database mode, or valid manual partition, otherwise -1.
76  bool partition_by_mpi_process,
77  platform::SSize manual_partition = -1);
78 
79 cppdb::statement
81  std::string const & statement_string,
83 
84 void
86  cppdb::statement & statement);
87 
88 cppdb::result
90  cppdb::statement & statement);
91 
92 void
94  std::string table_name,
95  std::vector<std::string> column_names,
96  std::vector<std::string> values,
98 
99 void
100 check_statement_sanity(std::string sql);
101 
102 bool
105  std::string const & table_name);
106 
107 /// @brief set the number of 1kb pages to use for cache
108 void
111  platform::Size cache_size);
112 
114  std::string schema,
116 
117 std::string make_compound_statement(
118  std::string const & table_name,
119  std::vector<std::string> const & column_names,
120  platform::Size const & row_count);
121 
125 }
126 
127 }
128 
129 #endif /* INCLUDED_basic_database_sql_utils_HH */
std::string make_compound_statement(std::string const &table_name, std::vector< std::string > const &column_names, platform::Size const &row_count)
Definition: sql_utils.cc:706
std::ssize_t SSize
Definition: types.hh:38
statement safely_prepare_statement(string const &statement_string, sessionOP db_session)
Definition: sql_utils.cc:333
utility::sql_database::sessionOP parse_database_connection(utility::tag::TagCOP tag)
Definition: sql_utils.cc:733
bool table_exists(sessionOP db_session, string const &table_name)
Definition: sql_utils.cc:473
void check_statement_sanity(string sql)
Definition: sql_utils.cc:522
result safely_read_from_database(statement &statement)
Definition: sql_utils.cc:418
platform::SSize db_partition_from_options(DatabaseMode::e db_mode)
@
Definition: sql_utils.cc:269
tuple database
void write_schema_to_database(string schema_str, sessionOP db_session)
Definition: sql_utils.cc:663
void set_cache_size(sessionOP db_session, Size cache_size)
Definition: sql_utils.cc:688
sessionOP get_db_session()
Aquire a database session using the command line options transaction type is set to standard...
Definition: sql_utils.cc:88
void insert_or_ignore(string table_name, std::vector< string > column_names, std::vector< string > values, sessionOP db_session)
Definition: sql_utils.cc:542
void safely_write_to_database(statement &statement)
Definition: sql_utils.cc:354
utility::pointer::shared_ptr< Tag const > TagCOP
Definition: Tag.fwd.hh:27
rule< Scanner, tag_closure::context_t > tag
Definition: Tag.cc:373
std::size_t Size
Definition: types.hh:37
pointer::shared_ptr< session > sessionOP
platform::SSize resolve_db_partition(bool partition_by_mpi_process, platform::SSize manual_partition)
Returns partition identifer from mpi rank if in partitioned database mode, or valid manual partition...
Definition: sql_utils.cc:314