OmniSciDB  8a228a1076
Catalog_Namespace Namespace Reference

Namespaces

 anonymous_namespace{Catalog.cpp}
 
 anonymous_namespace{SysCatalog.cpp}
 

Classes

class  Catalog
 class for a per-database catalog. also includes metadata for the current database and the current user. More...
 
class  CommonFileOperations
 
struct  DBMetadata
 
struct  DBSummary
 
class  read_lock
 
class  SessionInfo
 
class  sqlite_lock
 
class  SysCatalog
 
struct  UserMetadata
 
class  write_lock
 

Typedefs

using sys_read_lock = read_lock< SysCatalog >
 
using cat_read_lock = read_lock< Catalog >
 
using cat_write_lock = write_lock< Catalog >
 
using cat_sqlite_lock = sqlite_lock< Catalog >
 
using sys_write_lock = write_lock< SysCatalog >
 
using sys_sqlite_lock = sqlite_lock< SysCatalog >
 
using DBSummaryList = std::list< DBSummary >
 
using TableDescriptorMap = std::map< std::string, TableDescriptor * >
 
using TableDescriptorMapById = std::map< int, TableDescriptor * >
 
using LogicalToPhysicalTableMapById = std::map< int32_t, std::vector< int32_t > >
 
using ColumnKey = std::tuple< int, std::string >
 
using ColumnDescriptorMap = std::map< ColumnKey, ColumnDescriptor * >
 
using ColumnIdKey = std::tuple< int, int >
 
using ColumnDescriptorMapById = std::map< ColumnIdKey, ColumnDescriptor * >
 
using DictDescriptorMapById = std::map< DictRef, std::unique_ptr< DictDescriptor > >
 
using DashboardDescriptorMap = std::map< std::string, std::shared_ptr< DashboardDescriptor > >
 
using LinkDescriptorMap = std::map< std::string, LinkDescriptor * >
 
using LinkDescriptorMapById = std::map< int, LinkDescriptor * >
 
using DeletedColumnPerTableMap = std::unordered_map< const TableDescriptor *, const ColumnDescriptor * >
 
using ForeignServerMap = std::map< std::string, std::shared_ptr< foreign_storage::ForeignServer > >
 
using ForeignServerMapById = std::map< int, std::shared_ptr< foreign_storage::ForeignServer > >
 

Functions

bool contains_spaces (std::string_view str)
 returns true if the string contains one or more spaces More...
 
bool contains_sql_reserved_chars (std::string_view str, std::string_view chars="`~!@#$%^&*()-=+[{]}\;:'<.>/?")
 returns true if the string contains one or more OmniSci SQL reserved characters More...
 
bool is_reserved_sql_keyword (std::string_view str)
 returns true if the string equals an OmniSci SQL reserved keyword More...
 
std::ostream & operator<< (std::ostream &os, const SessionInfo &session_info)
 
static bool parseUserMetadataFromSQLite (const std::unique_ptr< SqliteConnector > &conn, UserMetadata &user)
 

Variables

const int DEFAULT_INITIAL_VERSION = 1
 
const int MAPD_TEMP_TABLE_START_ID
 
const int MAPD_TEMP_DICT_START_ID
 

Typedef Documentation

◆ cat_read_lock

Definition at line 111 of file Catalog.cpp.

◆ cat_sqlite_lock

Definition at line 113 of file Catalog.cpp.

◆ cat_write_lock

Definition at line 112 of file Catalog.cpp.

◆ ColumnDescriptorMap

Definition at line 37 of file Types.h.

◆ ColumnDescriptorMapById

Definition at line 39 of file Types.h.

◆ ColumnIdKey

using Catalog_Namespace::ColumnIdKey = typedef std::tuple<int, int>

Definition at line 38 of file Types.h.

◆ ColumnKey

using Catalog_Namespace::ColumnKey = typedef std::tuple<int, std::string>

Definition at line 36 of file Types.h.

◆ DashboardDescriptorMap

using Catalog_Namespace::DashboardDescriptorMap = typedef std::map<std::string, std::shared_ptr<DashboardDescriptor> >

Definition at line 42 of file Types.h.

◆ DBSummaryList

using Catalog_Namespace::DBSummaryList = typedef std::list<DBSummary>

Definition at line 120 of file SysCatalog.h.

◆ DeletedColumnPerTableMap

using Catalog_Namespace::DeletedColumnPerTableMap = typedef std::unordered_map<const TableDescriptor*, const ColumnDescriptor*>

Definition at line 46 of file Types.h.

◆ DictDescriptorMapById

using Catalog_Namespace::DictDescriptorMapById = typedef std::map<DictRef, std::unique_ptr<DictDescriptor> >

Definition at line 40 of file Types.h.

◆ ForeignServerMap

using Catalog_Namespace::ForeignServerMap = typedef std::map<std::string, std::shared_ptr<foreign_storage::ForeignServer> >

Definition at line 48 of file Types.h.

◆ ForeignServerMapById

using Catalog_Namespace::ForeignServerMapById = typedef std::map<int, std::shared_ptr<foreign_storage::ForeignServer> >

Definition at line 50 of file Types.h.

◆ LinkDescriptorMap

using Catalog_Namespace::LinkDescriptorMap = typedef std::map<std::string, LinkDescriptor*>

Definition at line 43 of file Types.h.

◆ LinkDescriptorMapById

Definition at line 44 of file Types.h.

◆ LogicalToPhysicalTableMapById

using Catalog_Namespace::LogicalToPhysicalTableMapById = typedef std::map<int32_t, std::vector<int32_t> >

Definition at line 35 of file Types.h.

◆ sys_read_lock

Definition at line 110 of file Catalog.cpp.

◆ sys_sqlite_lock

Definition at line 81 of file SysCatalog.cpp.

◆ sys_write_lock

Definition at line 80 of file SysCatalog.cpp.

◆ TableDescriptorMap

using Catalog_Namespace::TableDescriptorMap = typedef std::map<std::string, TableDescriptor*>

Definition at line 33 of file Types.h.

◆ TableDescriptorMapById

Definition at line 34 of file Types.h.

Function Documentation

◆ contains_spaces()

bool Catalog_Namespace::contains_spaces ( std::string_view  str)
inline

returns true if the string contains one or more spaces

Definition at line 4023 of file Catalog.cpp.

Referenced by Catalog_Namespace::Catalog::dumpCreateTable().

4023  {
4024  return std::find_if(str.begin(), str.end(), [](const unsigned char& ch) {
4025  return std::isspace(ch);
4026  }) != str.end();
4027 }
+ Here is the caller graph for this function:

◆ contains_sql_reserved_chars()

bool Catalog_Namespace::contains_sql_reserved_chars ( std::string_view  str,
std::string_view  chars = "`~!@#$%^&*()-=+[{]}\\|;:'\",<.>/?" 
)
inline

returns true if the string contains one or more OmniSci SQL reserved characters

Definition at line 4030 of file Catalog.cpp.

Referenced by Catalog_Namespace::Catalog::dumpCreateTable().

4032  {]}\\|;:'\",<.>/?") {
4033  return str.find_first_of(chars) != std::string_view::npos;
4034 }
+ Here is the caller graph for this function:

◆ is_reserved_sql_keyword()

bool Catalog_Namespace::is_reserved_sql_keyword ( std::string_view  str)
inline

returns true if the string equals an OmniSci SQL reserved keyword

Definition at line 4037 of file Catalog.cpp.

References reserved_keywords, and to_upper().

Referenced by Catalog_Namespace::Catalog::dumpCreateTable().

4037  {
4038  return reserved_keywords.find(to_upper(std::string(str))) != reserved_keywords.end();
4039 }
static std::set< std::string > reserved_keywords
std::string to_upper(const std::string &str)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator<<()

std::ostream & Catalog_Namespace::operator<< ( std::ostream &  os,
const SessionInfo session_info 
)

Definition at line 53 of file SessionInfo.cpp.

References Catalog_Namespace::SessionInfo::get_public_session_id().

53  {
54  os << session_info.get_public_session_id();
55  return os;
56 }
+ Here is the call graph for this function:

◆ parseUserMetadataFromSQLite()

static bool Catalog_Namespace::parseUserMetadataFromSQLite ( const std::unique_ptr< SqliteConnector > &  conn,
UserMetadata user 
)
static

Definition at line 1223 of file SysCatalog.cpp.

References Catalog_Namespace::UserMetadata::can_login, Catalog_Namespace::UserMetadata::defaultDbId, Catalog_Namespace::UserMetadata::isSuper, LOG, Catalog_Namespace::UserMetadata::passwd_hash, Catalog_Namespace::UserMetadata::userId, Catalog_Namespace::UserMetadata::userName, and logger::WARNING.

Referenced by Catalog_Namespace::SysCatalog::getMetadataForUser(), and Catalog_Namespace::SysCatalog::getMetadataForUserById().

1224  {
1225  int numRows = conn->getNumRows();
1226  if (numRows == 0) {
1227  return false;
1228  }
1229  user.userId = conn->getData<int>(0, 0);
1230  user.userName = conn->getData<string>(0, 1);
1231  user.passwd_hash = conn->getData<string>(0, 2);
1232  user.isSuper = conn->getData<bool>(0, 3);
1233  user.defaultDbId = conn->isNull(0, 4) ? -1 : conn->getData<int>(0, 4);
1234  if (conn->isNull(0, 5)) {
1235  LOG(WARNING)
1236  << "User property 'can_login' not set for user " << user.userName
1237  << ". Disabling login ability. Set the users login ability with \"ALTER USER "
1238  << user.userName << " (can_login='true');\".";
1239  }
1240  user.can_login = conn->isNull(0, 5) ? false : conn->getData<bool>(0, 5);
1241  return true;
1242 }
#define LOG(tag)
Definition: Logger.h:188
+ Here is the caller graph for this function:

Variable Documentation

◆ DEFAULT_INITIAL_VERSION

const int Catalog_Namespace::DEFAULT_INITIAL_VERSION = 1

Definition at line 99 of file Catalog.cpp.

◆ MAPD_TEMP_DICT_START_ID

const int Catalog_Namespace::MAPD_TEMP_DICT_START_ID
Initial value:
=
1073741824

Definition at line 102 of file Catalog.cpp.

◆ MAPD_TEMP_TABLE_START_ID

const int Catalog_Namespace::MAPD_TEMP_TABLE_START_ID
Initial value:
=
1073741824

Definition at line 100 of file Catalog.cpp.