OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cql_if.cc File Reference
#include <assert.h>
#include <fstream>
#include <tbb/atomic.h>
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/join.hpp>
#include <boost/unordered_map.hpp>
#include <boost/system/error_code.hpp>
#include <cassandra.h>
#include <base/logging.h>
#include <base/misc_utils.h>
#include <base/task.h>
#include <base/timer.h>
#include <base/string_util.h>
#include <base/address_util.h>
#include <io/event_manager.h>
#include <database/gendb_if.h>
#include <database/gendb_constants.h>
#include <database/cassandra/cql/cql_if.h>
#include <database/cassandra/cql/cql_if_impl.h>
#include <database/cassandra/cql/cql_lib_if.h>
Include dependency graph for cql_if.cc:

Go to the source code of this file.

Classes

struct  cass::cql::impl::CassString
 
class  cass::cql::impl::CassQueryPrinter
 
class  cass::cql::impl::CassStatementIndexBinder
 
class  cass::cql::impl::CassStatementNameBinder
 
class  cass::cql::impl::WorkerTask
 
struct  cass::cql::AsyncRowGetCallbackContext
 

Namespaces

 cass
 
 cass::cql
 
 cass::cql::impl
 
 cass::cql::interface
 

Macros

#define CQLIF_DEBUG   "CqlTraceBufDebug"
 
#define CQLIF_INFO   "CqlTraceBufInfo"
 
#define CQLIF_ERR   "CqlTraceBufErr"
 
#define CQLIF_DEBUG_TRACE(_Msg)
 
#define CQLIF_INFO_TRACE(_Msg)
 
#define CQLIF_ERR_TRACE(_Msg)
 
#define CASS_LIB_TRACE(_Level, _Msg)
 
#define CQLIF_LOG(_Level, _Msg)
 
#define CQLIF_LOG_ERR(_Msg)
 

Functions

SandeshTraceBufferPtr CqlTraceDebugBuf (SandeshTraceBufferCreate(CQLIF_DEBUG, 10000))
 
SandeshTraceBufferPtr CqlTraceInfoBuf (SandeshTraceBufferCreate(CQLIF_INFO, 10000))
 
SandeshTraceBufferPtr CqlTraceErrBuf (SandeshTraceBufferCreate(CQLIF_ERR, 20000))
 
static void cass::cql::impl::encode_uuid (char *output, const CassUuid &uuid)
 
static char * cass::cql::impl::decode_uuid (char *input, CassUuid *output)
 
static const char * cass::cql::impl::DbDataType2CassType (const GenDb::DbDataType::type &db_type)
 
static std::string cass::cql::impl::DbDataTypes2CassTypes (const GenDb::DbDataTypeVec &v_db_types)
 
static CassConsistency cass::cql::impl::Db2CassConsistency (GenDb::DbConsistency::type dconsistency)
 
static const char * cass::cql::impl::kQCompactionStrategy ("compaction = {'class': ""'org.apache.cassandra.db.compaction.%s'}")
 
static const std::string cass::cql::impl::kQGCGraceSeconds ("gc_grace_seconds = 0")
 
static const std::string cass::cql::impl::kQReadRepairChanceDTCS ("read_repair_chance = 0.0")
 
std::string cass::cql::impl::StaticCf2CassCreateTableIfNotExists (const GenDb::NewCf &cf, const std::string &compaction_strategy)
 
std::string cass::cql::impl::DynamicCf2CassCreateTableIfNotExists (const GenDb::NewCf &cf, const std::string &compaction_strategy, boost::system::error_code *ec)
 
static std::string cass::cql::impl::DbColIndexMode2String (const GenDb::ColIndexMode::type index_mode)
 
std::string cass::cql::impl::CassCreateIndexIfNotExists (const std::string &cfname, const std::string &column, const std::string &indexname, const GenDb::ColIndexMode::type index_mode)
 
std::string cass::cql::impl::StaticCf2CassInsertIntoTable (const GenDb::ColList *v_columns)
 
std::string cass::cql::impl::DynamicCf2CassInsertIntoTable (const GenDb::ColList *v_columns)
 
std::string cass::cql::impl::StaticCf2CassPrepareInsertIntoTable (const GenDb::NewCf &cf)
 
std::string cass::cql::impl::DynamicCf2CassPrepareInsertIntoTable (const GenDb::NewCf &cf, boost::system::error_code *ec)
 
bool cass::cql::impl::StaticCf2CassPrepareBind (interface::CassLibrary *cci, CassStatement *statement, const GenDb::ColList *v_columns)
 
bool cass::cql::impl::DynamicCf2CassPrepareBind (interface::CassLibrary *cci, CassStatement *statement, const GenDb::ColList *v_columns)
 
static std::string cass::cql::impl::CassSelectFromTableInternal (const std::string &table, const std::vector< GenDb::DbDataValueVec > &rkeys, const GenDb::ColumnNameRange &ck_range, const GenDb::FieldNamesToReadVec &read_vec, const GenDb::WhereIndexInfoVec &where_vec)
 
std::string cass::cql::impl::ClusteringKeyRangeAndIndexValue2CassSelectFromTable (const std::string &table, const GenDb::DbDataValueVec &rkeys, const GenDb::ColumnNameRange &ck_range, const GenDb::WhereIndexInfoVec &where_vec, const GenDb::FieldNamesToReadVec &read_vec)
 
std::string cass::cql::impl::PartitionKey2CassSelectFromTable (const std::string &table, const GenDb::DbDataValueVec &rkeys)
 
std::string cass::cql::impl::PartitionKeyAndClusteringKeyRange2CassSelectFromTable (const std::string &table, const GenDb::DbDataValueVec &rkeys, const GenDb::ColumnNameRange &ck_range, const GenDb::FieldNamesToReadVec &read_vec)
 
std::string cass::cql::impl::PartitionKeyAndClusteringKeyRange2CassSelectFromTable (const std::string &table, const std::vector< GenDb::DbDataValueVec > &rkeys, const GenDb::ColumnNameRange &ck_range, const GenDb::FieldNamesToReadVec &read_vec)
 
std::string cass::cql::impl::CassSelectFromTable (const std::string &table)
 
static GenDb::DbDataValue cass::cql::impl::CassValue2DbDataValue (interface::CassLibrary *cci, const CassValue *cvalue)
 
static bool cass::cql::impl::PrepareSync (interface::CassLibrary *cci, CassSession *session, const char *query, CassPreparedPtr *prepared)
 
static bool cass::cql::impl::ExecuteQuerySyncInternal (interface::CassLibrary *cci, CassSession *session, CassStatement *qstatement, CassResultPtr *result, CassConsistency consistency)
 
static bool cass::cql::impl::ExecuteQuerySync (interface::CassLibrary *cci, CassSession *session, const char *query, CassConsistency consistency)
 
static bool cass::cql::impl::ExecuteQueryResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, CassResultPtr *result, CassConsistency consistency)
 
static bool cass::cql::impl::ExecuteQueryStatementSync (interface::CassLibrary *cci, CassSession *session, CassStatement *statement, CassConsistency consistency)
 
static GenDb::DbOpResult::type cass::cql::impl::CassError2DbOpResult (CassError rc)
 
static void cass::cql::impl::DynamicCfGetResult (interface::CassLibrary *cci, CassResultPtr *result, const GenDb::FieldNamesToReadVec &read_vec, GenDb::NewColVec *v_columns)
 
static void cass::cql::impl::DynamicCfGetResult (interface::CassLibrary *cci, CassResultPtr *result, const GenDb::FieldNamesToReadVec &read_vec, GenDb::ColListVec *v_col_list)
 
static void cass::cql::impl::DynamicCfGetResult (interface::CassLibrary *cci, CassResultPtr *result, size_t rk_count, size_t ck_count, GenDb::NewColVec *v_columns)
 
void cass::cql::impl::DynamicCfGetResult (interface::CassLibrary *cci, CassResultPtr *result, size_t rk_count, size_t ck_count, GenDb::ColListVec *v_col_list)
 
static void cass::cql::impl::StaticCfGetResult (interface::CassLibrary *cci, CassResultPtr *result, GenDb::NewColVec *v_columns)
 
void cass::cql::impl::StaticCfGetResult (interface::CassLibrary *cci, CassResultPtr *result, size_t rk_count, GenDb::ColListVec *v_col_list)
 
static void cass::cql::impl::OnExecuteQueryAsync (CassFuture *future, void *data)
 
static void cass::cql::impl::ExecuteQueryAsyncInternal (interface::CassLibrary *cci, CassSession *session, const char *qid, CassStatement *qstatement, CassConsistency consistency, CassAsyncQueryCallback cb, CassQueryResultContext *rctx=NULL)
 
static void cass::cql::impl::ExecuteQueryAsync (interface::CassLibrary *cci, CassSession *session, const char *query, CassConsistency consistency, CassAsyncQueryCallback cb)
 
static void cass::cql::impl::ExecuteQueryStatementAsync (interface::CassLibrary *cci, CassSession *session, const char *query_id, CassStatement *qstatement, CassConsistency consistency, CassAsyncQueryCallback cb)
 
static void cass::cql::impl::ExecuteQueryResultAsync (interface::CassLibrary *cci, CassSession *session, const char *query, CassConsistency consistency, CassAsyncQueryCallback cb, CassQueryResultContext *rctx)
 
static bool cass::cql::impl::DynamicCfGetResultAsync (interface::CassLibrary *cci, CassSession *session, const char *query, CassConsistency consistency, impl::CassAsyncQueryCallback cb, size_t rk_count, size_t ck_count, const std::string &cfname, const GenDb::DbDataValueVec &row_key)
 
static bool cass::cql::impl::DynamicCfGetResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, const GenDb::FieldNamesToReadVec &read_vec, CassConsistency consistency, GenDb::NewColVec *v_columns)
 
static bool cass::cql::impl::DynamicCfGetResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, const GenDb::FieldNamesToReadVec &read_vec, CassConsistency consistency, GenDb::ColListVec *v_columns)
 
static bool cass::cql::impl::DynamicCfGetResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, size_t rk_count, size_t ck_count, CassConsistency consistency, GenDb::NewColVec *v_columns)
 
static bool cass::cql::impl::DynamicCfGetResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, size_t rk_count, size_t ck_count, CassConsistency consistency, GenDb::ColListVec *v_col_list)
 
static bool cass::cql::impl::StaticCfGetResultAsync (interface::CassLibrary *cci, CassSession *session, const char *query, CassConsistency consistency, impl::CassAsyncQueryCallback cb, const std::string &cfname, const GenDb::DbDataValueVec &row_key)
 
static bool cass::cql::impl::StaticCfGetResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, CassConsistency consistency, GenDb::NewColVec *v_columns)
 
static bool cass::cql::impl::StaticCfGetResultSync (interface::CassLibrary *cci, CassSession *session, const char *query, size_t rk_count, CassConsistency consistency, GenDb::ColListVec *v_col_list)
 
static bool cass::cql::impl::SyncFutureWait (interface::CassLibrary *cci, CassFuture *future)
 
static const CassTableMeta * cass::cql::impl::GetCassTableMeta (interface::CassLibrary *cci, const CassSchemaMeta *schema_meta, const std::string &keyspace, const std::string &table, bool log_error)
 
static bool cass::cql::impl::IsCassTableMetaPresent (interface::CassLibrary *cci, CassSession *session, const std::string &keyspace, const std::string &table)
 
static bool cass::cql::impl::GetCassTableClusteringKeyCount (interface::CassLibrary *cci, CassSession *session, const std::string &keyspace, const std::string &table, size_t *ck_count)
 
static bool cass::cql::impl::GetCassTablePartitionKeyCount (interface::CassLibrary *cci, CassSession *session, const std::string &keyspace, const std::string &table, size_t *rk_count)
 
static log4cplus::LogLevel cass::cql::impl::Cass2log4Level (CassLogLevel clevel)
 
static CassLogLevel cass::cql::impl::Log4Level2CassLogLevel (log4cplus::LogLevel level)
 
static void cass::cql::impl::CassLibraryLog (const CassLogMessage *message, void *data)
 
static std::string cass::cql::impl::LoadCertFile (const std::string &ca_certs_path)
 
static void cass::cql::AsyncRowGetCompletionCallback (boost::shared_ptr< AsyncRowGetCallbackContext > cb_ctx)
 

Macro Definition Documentation

#define CASS_LIB_TRACE (   _Level,
  _Msg 
)
Value:
do { \
if (_Level == log4cplus::ERROR_LOG_LEVEL) { \
CQL_TRACE_TRACE(CqlTraceErrBuf, _Msg); \
} else if (_Level == log4cplus::DEBUG_LOG_LEVEL) { \
CQL_TRACE_TRACE(CqlTraceDebugBuf, _Msg); \
} else { \
CQL_TRACE_TRACE(CqlTraceInfoBuf, _Msg); \
} \
} while (false) \
SandeshTraceBufferPtr CqlTraceErrBuf(SandeshTraceBufferCreate(CQLIF_ERR, 20000))
SandeshTraceBufferPtr CqlTraceDebugBuf(SandeshTraceBufferCreate(CQLIF_DEBUG, 10000))
SandeshTraceBufferPtr CqlTraceInfoBuf(SandeshTraceBufferCreate(CQLIF_INFO, 10000))

Definition at line 67 of file cql_if.cc.

#define CQLIF_DEBUG   "CqlTraceBufDebug"

Definition at line 32 of file cql_if.cc.

#define CQLIF_DEBUG_TRACE (   _Msg)
Value:
do { \
std::stringstream _ss; \
_ss << __func__ << ":" << __FILE__ << ":" << \
__LINE__ << ": " << _Msg; \
CQL_TRACE_TRACE(CqlTraceDebugBuf, _ss.str()); \
} while (false) \
SandeshTraceBufferPtr CqlTraceDebugBuf(SandeshTraceBufferCreate(CQLIF_DEBUG, 10000))

Definition at line 43 of file cql_if.cc.

#define CQLIF_ERR   "CqlTraceBufErr"

Definition at line 34 of file cql_if.cc.

#define CQLIF_ERR_TRACE (   _Msg)
Value:
do { \
std::stringstream _ss; \
_ss << __func__ << ":" << __FILE__ << ":" << \
__LINE__ << ": " << _Msg; \
CQL_TRACE_TRACE(CqlTraceErrBuf, _ss.str()); \
} while (false) \
SandeshTraceBufferPtr CqlTraceErrBuf(SandeshTraceBufferCreate(CQLIF_ERR, 20000))

Definition at line 59 of file cql_if.cc.

#define CQLIF_INFO   "CqlTraceBufInfo"

Definition at line 33 of file cql_if.cc.

#define CQLIF_INFO_TRACE (   _Msg)
Value:
do { \
std::stringstream _ss; \
_ss << __func__ << ":" << __FILE__ << ":" << \
__LINE__ << ": " << _Msg; \
CQL_TRACE_TRACE(CqlTraceInfoBuf, _ss.str()); \
} while (false) \
SandeshTraceBufferPtr CqlTraceInfoBuf(SandeshTraceBufferCreate(CQLIF_INFO, 10000))

Definition at line 51 of file cql_if.cc.

#define CQLIF_LOG (   _Level,
  _Msg 
)
Value:
do { \
if (LoggingDisabled()) break; \
log4cplus::Logger logger = log4cplus::Logger::getRoot(); \
LOG4CPLUS_##_Level(logger, __func__ << ":" << __FILE__ << ":" << \
__LINE__ << ": " << _Msg); \
} while (false)
bool LoggingDisabled()
Definition: logging.cc:24

Definition at line 78 of file cql_if.cc.

#define CQLIF_LOG_ERR (   _Msg)
Value:
do { \
LOG(ERROR, __func__ << ":" << __FILE__ << ":" << __LINE__ << ": " \
<< _Msg); \
} while (false)
#define LOG(_Level, _Msg)
Definition: logging.h:33

Definition at line 86 of file cql_if.cc.

Function Documentation