struct hash *jkSorting(struct sqlConnection *conn, char *table) /* Grab contents of bed table into chrom-hashed range lists, * using slSort() to sort by start; then merge ranges and * convert to chrom-hashed rbTrees with normal rbTreeAdd. */ { char *query = makeQuery(table, FALSE); struct sqlResult *sr = NULL; struct hash *chromTrees = NULL; int startMs = 0, endMs = 0, totalMs = 0; sqlUpdate(conn, "reset query cache"); startMs = clock1000(); sr = sqlGetResult(conn, query); endMs = clock1000(); verbose(1, "jkSorting: Took %dms to do plain query.\n", endMs - startMs); printf("%d\t", endMs - startMs); totalMs += (endMs - startMs); startMs = clock1000(); chromTrees = resultsToTrees(sr, TRUE); endMs = clock1000(); verbose(1, "jkSorting: Took %dms to build, sort, merge, and convert.\n", endMs - startMs); printf("%d\t", endMs - startMs); totalMs += (endMs - startMs); verbose(1, "jkSorting: Took %dms total.\n\n", totalMs); printf("%d\t", totalMs); freeMem(query); sqlFreeResult(&sr); return chromTrees; }
struct hash *rbMerging(struct sqlConnection *conn, char *table) /* Grab contents of bed table ordered by chrom but not sorted, * then convert to chrom-hashed rbmTrees to handle merging of * overlapping ranges. */ { char *query = makeQuery(table, FALSE); struct sqlResult *sr = NULL; struct hash *chromTrees = NULL; int startMs = 0, endMs = 0, totalMs = 0; sqlUpdate(conn, "reset query cache"); startMs = clock1000(); sr = sqlGetResult(conn, query); endMs = clock1000(); verbose(1, "rbMerging: Took %dms to do plain query.\n", endMs - startMs); printf("%d\t", endMs - startMs); totalMs += (endMs - startMs); startMs = clock1000(); chromTrees = resultsToMergedTrees(sr); endMs = clock1000(); verbose(1, "rbMerging: Took %dms to make merged trees.\n", endMs - startMs); printf("%d\t", endMs - startMs); totalMs += (endMs - startMs); verbose(1, "rbMerging: Took %dms total.\n\n", totalMs); printf("%d\n", totalMs); freeMem(query); sqlFreeResult(&sr); return chromTrees; }
int reap(OperationContext* opCtx) override { auto const coord = mongo::repl::ReplicationCoordinator::get(opCtx); Handler handler(opCtx, *_collection); if (!handler.initialize()) { return 0; } AutoGetCollection autoColl( opCtx, NamespaceString::kSessionTransactionsTableNamespace, MODE_IS); // Only start reaping if the shard or config server node is currently the primary if (!coord->canAcceptWritesForDatabase( opCtx, NamespaceString::kSessionTransactionsTableNamespace.db())) { return 0; } DBDirectClient client(opCtx); auto query = makeQuery(opCtx->getServiceContext()->getFastClockSource()->now()); auto cursor = client.query( NamespaceString::kSessionTransactionsTableNamespace, query, 0, 0, &kIdProjection); while (cursor->more()) { auto transactionSession = SessionsCollectionFetchResultIndividualResult::parse( "TransactionSession"_sd, cursor->next()); handler.handleLsid(transactionSession.get_id()); } // Before the handler goes out of scope, flush its last batch to disk and collect stats. return handler.finalize(); }
int GenericQuery:: makeQuery (ExprTree *&tree) { MyString req; int status = makeQuery(req); if (status != Q_OK) return status; // If there are no constraints, then we match everything. if (req.empty()) req = "TRUE"; // parse constraints and insert into query ad if (ParseClassAdRvalExpr (req.Value(), tree) > 0) return Q_PARSE_ERROR; return Q_OK; }
//------------------------------------------------------------- bool MainData::checkUser() { settings_data* sd=MainData::Instance()->getSettingsData(); QSqlQuery query; QString q_str="select `professor_admin`,`professor_id` from `professor` where `professor_login`='"+sd->username; q_str+="' and `professor_pass`='"+sd->password+"'"; bool made=false; query=makeQuery(q_str,made); if(made) { QVariant adm = query.value(0); sd->isAdmin=adm.toBool(); sd->professor_id=query.value(1).toInt(); return true; } else return false; }
YY_ACTION(void) yy_1_suffix(char *yytext, int yyleng) { yyprintf((stderr, "do yy_1_suffix\n")); push(makeQuery(pop())); ; }
void ExplanationsFixture::bqtest(const String& queryText, Collection<int32_t> expDocNrs) { bqtest(makeQuery(queryText), expDocNrs); }
QueryPtr ExplanationsFixture::reqB(const String& q) { return reqB(makeQuery(q)); }
YY_ACTION(void) yy_1_suffix(GREG *G, char *yytext, int yyleng, yythunk *thunk, YY_XTYPE YY_XVAR) { yyprintf((stderr, "do yy_1_suffix\n")); push(makeQuery(pop())); ; }
/** * マクロから呼び出されるエントリポイント。 * @param [in] text 検索文字列 * @return 戻り値に意味はない */ EXPORT int search(const char *text) { if (!IsHidemaruMail()) { #ifndef _DEBUG MessageBox(NULL, "このマクロは秀丸からは起動できません。", NULL, MB_OK); return 0; #endif } HWND hwnd = reinterpret_cast<HWND>(MainWnd()); if (hwnd == NULL) { MessageBox(NULL, "秀丸メール本体が起動してなければなりません。", NULL, MB_OK); return 0; } if (strlen(text) != 0) { std::string oneLine = text; size_t pos; if ((pos = oneLine.find("\r\n")) != std::string.npos) { oneLine[pos] = '\0'; } if (oneLine.find(' ') != std::string.npos) { selectedText = "\""; selectedText += YenEncode(oneLine.c_str()); selectedText += "\""; } else { selectedText = YenEncode(oneLine.c_str()); } } // SetQuietMode を使用すると、検索結果ウィンドウが手前に来ない // SetQuietMode(1); int rc = (int)DialogBox(hInst, (LPCTSTR)IDD_HIDEMARUMAILSEARCH_DIALOG, hwnd, (DLGPROC)DialogProc); // SetQuietMode(0); if (rc == IDOK) { const char *account = NULL; const char *folder = NULL; switch (selectedRadioButton) { case IDC_RADIO1: case IDC_RADIO2: account = (const char *)ExecAtMain("CurrentAccount"); if (IsHidemaruMailMain() || IsHidemaruMailGrep()) { folder = CurrentFolder(); } else { folder = (const char *)ExecAtMain("CurrentFolder"); } break; case IDC_RADIO3: account = (const char *)ExecAtMain("CurrentAccount"); if (selectedCheckBox) { folder = ""; } else { folder = "受信+送信済み+ユーザー"; } break; case IDC_RADIO4: account = ""; if (selectedCheckBox) { folder = ""; } else { folder = "受信+送信済み+ユーザー"; } break; } #ifdef _DEBUG switch (selectedRadioButton) { case IDC_RADIO1: case IDC_RADIO2: case IDC_RADIO3: if (account == NULL || strlen(account) == 0) { MessageBox(NULL, "秀丸メールにアカウントが見つかりませんでした。\nこのエラーが頻発するようなら作者に連絡してください。", "HidemaruMailSearch", MB_OK); } break; } #endif std::string inputText = history[0].c_str(); std::string query; trim(inputText); // お気に入りの保存と読み込み if (inputText.find("fav:") == 0) { size_t pos = inputText.find(' '); if (pos != std::string::npos) { size_t len = strlen("fav:"); if (pos != len) { std::string favname = inputText.substr(len, pos - len); std::string favval = inputText.substr(pos + 1); if (favval == "\"\"") { iniFile->write("Favorite", favname.c_str(), NULL); return 0; } else { iniFile->write("Favorite", favname.c_str(), favval.c_str()); return 0; } } } else { char *favval = iniFile->read("Favorite", inputText.substr(strlen("fav:")).c_str()); if (favval != NULL) { inputText = favval; free(favval); } } } if (inputText.compare("help:") == 0) { if (helpCmd == "") { char *temp; char *work = NULL; DWORD type; if ((temp = (char *)get_reg_value(hideinstloc, &type)) == NULL) { // 秀丸がインストールされていないなら、メモ帳 helpCmd = "notepad.exe "; work = (char *)get_reg_value(turukamedir, &type); helpCmd += "\""; helpCmd += work; helpCmd += "\\HidemaruMailSearch.txt\""; } else { helpCmd = "\""; helpCmd += temp; helpCmd += "\\Hidemaru.exe\" \""; helpCmd += "/j"; helpCmd += HELPFILE_LINE; helpCmd += " "; if ((work = (char *)get_reg_value(macropath, &type)) == NULL) { // マクロパスが存在しなければ秀丸の InstallLocation がホーム helpCmd += temp; } else { helpCmd += work; } helpCmd += "\\HidemaruMailSearch.txt\""; } if (temp != NULL) { free(temp); } if (work != NULL) { free(work); } } PROCESS_INFORMATION pi; STARTUPINFO si; memset(&si, 0, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); CreateProcess(NULL, (LPSTR)helpCmd.c_str(), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi); return 0; } else if (inputText.find("debug:") == 0) { query = inputText.substr(strlen("debug:")); } else { std::string flag; trim(inputText); while (inputText.size() != 0) { int tagKind = findTag(inputText); if (tagKind == TARGET_SMALLHEADERBODY && inputText.find(colon_targets[TARGET_SMALLHEADERBODY]) != 0) { inputText = colon_targets[TARGET_SMALLHEADERBODY] + inputText; } rc = makeQuery(tagKind, inputText, query, flag); trim(inputText); } if (flag.size() != 0) { if (query.size() != 0) { query += ","; } query += flag; } // サブフォルダを検索対称にするかどうか if (selectedRadioButton == IDC_RADIO2) { query += ",subfolder=1"; } else { query += ",subfolder=0"; } // 常にハイライト query += ",hilight=1"; } #ifdef _DEBUG println("■アカウント"); println(account); println("■フォルダ"); println(folder); println("■検索式"); println(query); println("■入力"); println(history[0]); #endif if (IsHidemaruMailMain() || IsHidemaruMailGrep()) { SetFindPack(query.c_str()); StartDoGrep(account, folder); PushFindPack(); } else { ExecAtMain("SetFindPack", query.c_str()); ExecAtMain("StartDoGrep", account, folder); ExecAtMain("PushFindPack"); } } return 0; }