added work query example
This commit is contained in:
parent
36a160e1c7
commit
d69c0a5769
101
demo/work.cpp
101
demo/work.cpp
|
|
@ -175,7 +175,7 @@ int main() {
|
||||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::failReasonSqlAttributeId() ) )
|
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::failReasonSqlAttributeId() ) )
|
||||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::idAttributeId() ) );
|
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::idAttributeId() ) );
|
||||||
|
|
||||||
const auto q = query::query::select({LOGIN_HISTORY.client, query::max(LOGIN_HISTORY.login_time).as( "lastSuccessfulLogin" ) } )
|
const auto q = query::query::select({LOGIN_HISTORY.client, query::maximum(LOGIN_HISTORY.login_time).as( "lastSuccessfulLogin" ) } )
|
||||||
.from( LOGIN_HISTORY )
|
.from( LOGIN_HISTORY )
|
||||||
.where( LOGIN_HISTORY.fail_reason == _ )
|
.where( LOGIN_HISTORY.fail_reason == _ )
|
||||||
.group_by( LOGIN_HISTORY.client );
|
.group_by( LOGIN_HISTORY.client );
|
||||||
|
|
@ -217,6 +217,105 @@ int main() {
|
||||||
// query.addBindValue( LoginHistory::FailReason::UnknownUserName );
|
// query.addBindValue( LoginHistory::FailReason::UnknownUserName );
|
||||||
// query.addBindValue( columnFilterValue );
|
// query.addBindValue( columnFilterValue );
|
||||||
|
|
||||||
|
|
||||||
|
// const auto temporaryTable = status.addChildExc( fillTemporaryTable( idsInsidePayload ) );
|
||||||
|
//
|
||||||
|
// const auto& jobSqlMetaInfo = Job::staticSqlMetaInfo();
|
||||||
|
// const auto& payloadSqlMetaInfo = Payload::staticSqlMetaInfo();
|
||||||
|
// const auto& idPayloadSqlMetaInfo = IdPayload::staticSqlMetaInfo();
|
||||||
|
//
|
||||||
|
// auto filter = std::make_unique<SqlTools::GenericFilter>( new SqlTools::AttributeDefaultFilter( jobSqlMetaInfo,
|
||||||
|
// Job::Attributes::idAttributeId(),
|
||||||
|
// Job::Attributes::idAttributeId(),
|
||||||
|
// Job::Attributes::typeAttributeId(),
|
||||||
|
// SqlTools::AttributeDefaultFilter::Operation::Equal,
|
||||||
|
// jobName ),
|
||||||
|
// new SqlTools::InFilter( payloadSqlMetaInfo.tableName(),
|
||||||
|
// jobSqlMetaInfo.columnName( Job::Attributes::payloadAttributeId() ),
|
||||||
|
// payloadSqlMetaInfo.columnName( Payload::Attributes::idAttributeId() ),
|
||||||
|
// new SqlTools::InFilter( idPayloadSqlMetaInfo.tableName(),
|
||||||
|
// payloadSqlMetaInfo.columnName( Payload::Attributes::idAttributeId() ),
|
||||||
|
// idPayloadSqlMetaInfo.columnName( IdPayload::Attributes::idAttributeId() ),
|
||||||
|
// new SqlTools::TemporaryInFilter( temporaryTable,
|
||||||
|
// idPayloadSqlMetaInfo.columnName( IdPayload::Attributes::payloadIdAttributeId() ),
|
||||||
|
// lookUpColName() ) ) ),
|
||||||
|
// SqlTools::GenericFilter::Operation::And );
|
||||||
|
//
|
||||||
|
// if ( !jobStates.empty() ) {
|
||||||
|
// auto it = jobStates.begin();
|
||||||
|
// std::unique_ptr<SqlTools::GenericFilter> criteria = std::make_unique<SqlTools::AttributeDefaultFilter>( jobSqlMetaInfo,
|
||||||
|
// Job::Attributes::idAttributeId(),
|
||||||
|
// Job::Attributes::idAttributeId(),
|
||||||
|
// Job::Attributes::stateSqlAttributeId(),
|
||||||
|
// SqlTools::AttributeDefaultFilter::Operation::Equal,
|
||||||
|
// *it++ );
|
||||||
|
// for ( ; it != jobStates.end(); ++it ) {
|
||||||
|
// criteria = std::make_unique<SqlTools::GenericFilter>( new SqlTools::AttributeDefaultFilter( jobSqlMetaInfo,
|
||||||
|
// Job::Attributes::idAttributeId(),
|
||||||
|
// Job::Attributes::idAttributeId(),
|
||||||
|
// Job::Attributes::stateSqlAttributeId(),
|
||||||
|
// SqlTools::AttributeDefaultFilter::Operation::Equal,
|
||||||
|
// *it ),
|
||||||
|
// criteria.release(),
|
||||||
|
// SqlTools::GenericFilter::Operation::Or );
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// filter = std::make_unique<SqlTools::GenericFilter>( criteria.release(), filter.release(), SqlTools::GenericFilter::Operation::And );
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// const auto ids = status.addChildExc( this->ids( SqlManager::jobFilter, filter.get() ) );
|
||||||
|
// SELECT
|
||||||
|
// ID
|
||||||
|
// FROM
|
||||||
|
// NEWS_JOBS
|
||||||
|
// WHERE
|
||||||
|
// NEWS_JOBS.ID > ?
|
||||||
|
// AND (NEWS_JOBS.TYPE = ?
|
||||||
|
// AND ( NEWS_JOBS.PAYLOAD IN (
|
||||||
|
// SELECT
|
||||||
|
// ID
|
||||||
|
// FROM
|
||||||
|
// NEWS_PAYLOADS
|
||||||
|
// WHERE
|
||||||
|
// NEWS_PAYLOADS.ID IN (
|
||||||
|
// SELECT
|
||||||
|
// ID
|
||||||
|
// FROM
|
||||||
|
// NEWS_ID_PAYLOADS
|
||||||
|
// WHERE
|
||||||
|
// NEWS_ID_PAYLOADS.PAYLOAD_ID IN (SELECT ID FROM NEWS_TMP_3499274F12B644179DBD25BB60C48529)
|
||||||
|
// )
|
||||||
|
// )
|
||||||
|
// )
|
||||||
|
// )
|
||||||
|
|
||||||
|
const auto stmt4 = query::query::select({JOB.id})
|
||||||
|
.from(JOB)
|
||||||
|
.where( JOB.id > _ && JOB.name == _ && in( JOB.payload, query::query::select({PAYLOAD.id}).from(PAYLOAD).where(
|
||||||
|
in( PAYLOAD.id, query::query::select({ID_PAYLOAD.id}).from(ID_PAYLOAD).where(
|
||||||
|
in( ID_PAYLOAD.id, query::query::select({temp_id_col}).from(temporary))
|
||||||
|
) ) ) ) )
|
||||||
|
.str( conn->dialect() );
|
||||||
|
|
||||||
|
// SELECT DISTINCT nj.ID
|
||||||
|
// FROM NEWS_JOBS nj
|
||||||
|
// JOIN NEWS_PAYLOADS np
|
||||||
|
// ON nj.PAYLOAD = np.ID
|
||||||
|
// JOIN NEWS_ID_PAYLOADS nip
|
||||||
|
// ON np.ID = nip.ID
|
||||||
|
// JOIN NEWS_TMP_3499274F12B644179DBD25BB60C48529 tmp
|
||||||
|
// ON nip.PAYLOAD_ID = tmp.ID
|
||||||
|
// WHERE nj.ID > ?
|
||||||
|
// AND nj.TYPE = ?;
|
||||||
|
|
||||||
|
const auto stmt5 = query::query::select({JOB.id})
|
||||||
|
.from(JOB)
|
||||||
|
.join_left(PAYLOAD).on(JOB.payload == PAYLOAD.id)
|
||||||
|
.join_left(ID_PAYLOAD).on(PAYLOAD.id == ID_PAYLOAD.id)
|
||||||
|
.join_left(temporary).on(ID_PAYLOAD.id == temp_id_col)
|
||||||
|
.where(JOB.id > _ && JOB.name == _)
|
||||||
|
.str(conn->dialect());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue