久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

RucBase C++數(shù)據(jù)庫(kù)源碼實(shí)戰(zhàn):B+樹(shù)并發(fā)與緩沖池解析

RucBase C++數(shù)據(jù)庫(kù)源碼實(shí)戰(zhàn):B+樹(shù)并發(fā)與緩沖池解析 簡(jiǎn)介這份資源是面向計(jì)算機(jī)專業(yè)學(xué)生與數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)學(xué)習(xí)者的RucBase關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)C源碼工程參考CMU15445的BusTub與Stanford CS346的Redbase設(shè)計(jì)適合作為《數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)》課程實(shí)驗(yàn)框架幫助理解并動(dòng)手實(shí)現(xiàn)數(shù)據(jù)庫(kù)核心模塊。包內(nèi)共185個(gè)文件以58個(gè)h頭文件、34個(gè)cpp源文件、35個(gè)txt說(shuō)明、20個(gè)sql腳本為主另含少量Python腳本、Markdown文檔與圖片壓縮包約1.36MB目錄結(jié)構(gòu)清晰便于按模塊檢索。內(nèi)容覆蓋數(shù)據(jù)庫(kù)與表管理、索引創(chuàng)建刪除、事務(wù)提交終止、鎖管理器實(shí)現(xiàn)的共享鎖與排他鎖、日志記錄與恢復(fù)、SQL語(yǔ)義分析與執(zhí)行計(jì)劃生成以及緩沖池與磁盤(pán)管理器的頁(yè)面讀寫(xiě)替換策略并附有B樹(shù)并發(fā)與刪除測(cè)試、緩沖池管理器測(cè)試等用例。已有56人學(xué)習(xí)適合需要完整實(shí)驗(yàn)框架、源碼參考與測(cè)試樣例的讀者深入研讀。1. 從一份 C 源碼包說(shuō)起RucBase 到底能跑出什么如果你正在搜「C 數(shù)據(jù)庫(kù)管理系統(tǒng)源碼」大概率會(huì)撞見(jiàn)兩類東西一類是動(dòng)輒幾十萬(wàn)行的工業(yè)級(jí)項(xiàng)目clone 下來(lái)連編譯都過(guò)不去另一類是只有幾百行的玩具跑完SELECT 1就沒(méi)了下文。RucBase 卡在中間——它是一個(gè)教學(xué)向的 RDBMS 原型參考了 CMU 15-445 的 BusTub 和 Stanford CS346 的 Redbase把數(shù)據(jù)庫(kù)內(nèi)核拆成存儲(chǔ)、索引、查詢、事務(wù)、日志幾個(gè)可獨(dú)立動(dòng)手的模塊。這份源碼包里能看到y(tǒng)acc.tab.c、lex.yy.c這類詞法語(yǔ)法分析產(chǎn)物也有ix_index_handle.cpp、b_plus_tree_concurrent_test.cpp、buffer_pool_manager_test.cpp這些索引與緩沖池的實(shí)現(xiàn)和測(cè)試文件說(shuō)明它不是一個(gè)空殼框架而是帶著可編譯、可跑測(cè)試的完整鏈路。適合誰(shuí)正在做數(shù)據(jù)庫(kù)課程設(shè)計(jì)的學(xué)生、想補(bǔ)數(shù)據(jù)庫(kù)內(nèi)核實(shí)操的后端工程師、以及需要一份能改能調(diào)的 C 項(xiàng)目練手的人。它不承諾生產(chǎn)級(jí)性能但能讓你把「B 樹(shù)怎么并發(fā)、緩沖池怎么替換、SQL 怎么變成執(zhí)行計(jì)劃」這些黑匣子親手拆一遍。2. 把源碼跑起來(lái)從 yacc/lex 到第一個(gè)可執(zhí)行測(cè)試2.1 先看清目錄里有什么再?zèng)Q定編譯順序拿到壓縮包解壓后別急著make。先花兩分鐘掃一遍文件構(gòu)成能省掉后面半小時(shí)的鏈接報(bào)錯(cuò)。這份源碼里幾類文件承擔(dān)不同職責(zé)文件/目錄作用編譯階段yacc.tab.c/yacc.tab.cpp語(yǔ)法分析器由 yacc/bison 生成先于業(yè)務(wù)代碼lex.yy.c/lex.yy.cpp詞法分析器由 lex/flex 生成先于業(yè)務(wù)代碼ix_index_handle.cpp索引句柄B 樹(shù)對(duì)外接口業(yè)務(wù)層b_plus_tree_concurrent_test.cpp并發(fā) B 樹(shù)測(cè)試測(cè)試層buffer_pool_manager_test.cpp緩沖池替換策略測(cè)試測(cè)試層disk_manager.cpp磁盤(pán)頁(yè)讀寫(xiě)存儲(chǔ)層planner.cpp查詢計(jì)劃生成查詢層常見(jiàn)做法是詞法語(yǔ)法文件先由工具生成 C/C 源再和業(yè)務(wù).cpp一起交給編譯器。如果你直接改yacc.tab.c而不改.y源文件下次重新生成就會(huì)被覆蓋——這是新手最容易翻車的地方。2.2 環(huán)境配置編譯器、構(gòu)建工具和依賴RucBase 是 C 項(xiàng)目對(duì)工具鏈版本有要求。我一般會(huì)先確認(rèn)三件事編譯器支持 C17、CMake 版本不低于 3.10、系統(tǒng)里有 flex 和 bison。下面這套命令在 Ubuntu 22.04 上驗(yàn)證過(guò)其他發(fā)行版把包管理器換掉即可。# 安裝編譯工具鏈與詞法語(yǔ)法分析器 sudo apt update sudo apt install -y build-essential cmake flex bison # 確認(rèn)版本C17 是硬門(mén)檻 g --version # 期望 9.0 cmake --version # 期望 3.10 flex --version bison --version邏輯說(shuō)明build-essential提供 g 和 makecmake負(fù)責(zé)生成構(gòu)建文件flex/bison用來(lái)從.l/.y重新生成詞法語(yǔ)法分析器。參數(shù)上唯一要盯的是 g 版本低于 9 會(huì)在std::filesystem和結(jié)構(gòu)化綁定上直接報(bào)錯(cuò)。如果你在 Windows 上常見(jiàn)做法是用 WSL2 或 MSYS2不要硬扛 MSVC——這份源碼的構(gòu)建腳本默認(rèn)按類 Unix 環(huán)境寫(xiě)。2.3 編譯與運(yùn)行第一個(gè)測(cè)試環(huán)境就緒后標(biāo)準(zhǔn)流程是建 build 目錄、cmake 生成、make 編譯。不要在原目錄里直接 cmake產(chǎn)物和源碼混在一起清理時(shí)很痛苦。# 在項(xiàng)目根目錄下創(chuàng)建獨(dú)立構(gòu)建目錄 mkdir -p build cd build # 生成構(gòu)建文件Debug 模式便于調(diào)試 cmake -DCMAKE_BUILD_TYPEDebug .. # 編譯-j 后面跟 CPU 核心數(shù)加快速度 make -j$(nproc)邏輯說(shuō)明CMAKE_BUILD_TYPEDebug會(huì)帶上-g和關(guān)閉優(yōu)化方便你用 gdb 跟棧如果只想跑測(cè)試看結(jié)果可以換成Release。make -j$(nproc)用滿所有核心但第一次編譯建議先不加-j讓報(bào)錯(cuò)順序清晰定位缺失依賴更快。編譯完成后測(cè)試可執(zhí)行文件通常在build/test/或build/bin/下。先跑緩沖池測(cè)試它依賴最少# 運(yùn)行緩沖池管理器測(cè)試 ./test/buffer_pool_manager_test # 運(yùn)行并發(fā) B 樹(shù)測(cè)試 ./test/b_plus_tree_concurrent_test如果buffer_pool_manager_test全綠說(shuō)明存儲(chǔ)層和頁(yè)管理沒(méi)問(wèn)題b_plus_tree_concurrent_test通過(guò)說(shuō)明索引層的鎖和并發(fā)控制邏輯是通的。這兩個(gè)測(cè)試是判斷「這份源碼是否完整可用」的最快信號(hào)。2.4 用 SQL 走一遍完整鏈路測(cè)試跑通只證明模塊能獨(dú)立工作真正要驗(yàn)證的是 SQL 從輸入到執(zhí)行計(jì)劃的整條鏈路。RucBase 自帶交互式 shell啟動(dòng)方式一般是# 啟動(dòng)數(shù)據(jù)庫(kù) shell具體路徑以編譯產(chǎn)物為準(zhǔn) ./bin/rucbase進(jìn)入后可以執(zhí)行建庫(kù)建表、插入、查詢-- 創(chuàng)建數(shù)據(jù)庫(kù)并切換 CREATE DATABASE testdb; USE testdb; -- 建表帶主鍵和索引 CREATE TABLE student (id INT PRIMARY KEY, name VARCHAR(32), score INT); CREATE INDEX idx_score ON student(score); -- 插入數(shù)據(jù) INSERT INTO student VALUES (1, alice, 90); INSERT INTO student VALUES (2, bob, 85); -- 查詢觀察是否走索引 SELECT * FROM student WHERE score 86;邏輯說(shuō)明CREATE INDEX會(huì)觸發(fā)ix_index_handle.cpp里的 B 樹(shù)插入邏輯SELECT ... WHERE score 86會(huì)經(jīng)過(guò)planner.cpp生成執(zhí)行計(jì)劃。如果你在輸出里看到計(jì)劃選擇了索引掃描而非全表掃描說(shuō)明查詢優(yōu)化模塊是活的。參數(shù)上注意VARCHAR(32)的長(zhǎng)度要和存儲(chǔ)頁(yè)大小匹配超長(zhǎng)字符串會(huì)被截?cái)嗷驁?bào)錯(cuò)。3. 拆開(kāi) B 樹(shù)與緩沖池索引和存儲(chǔ)層怎么改、怎么驗(yàn)3.1 B 樹(shù)的并發(fā)控制鎖的粒度決定測(cè)試能不能過(guò)b_plus_tree_concurrent_test.cpp和b_plus_tree_delete_test.cpp是這份源碼里含金量最高的兩個(gè)測(cè)試文件。它們驗(yàn)證的不是「B 樹(shù)能不能插」而是「多線程同時(shí)插刪時(shí)樹(shù)結(jié)構(gòu)會(huì)不會(huì)崩」。B 樹(shù)的并發(fā)難點(diǎn)在于分裂和合并會(huì)修改父節(jié)點(diǎn)如果只鎖當(dāng)前節(jié)點(diǎn)父節(jié)點(diǎn)可能被另一個(gè)線程同時(shí)改掉。常見(jiàn)做法是 crabbing 協(xié)議——加鎖時(shí)先鎖子節(jié)點(diǎn)再釋放父節(jié)點(diǎn)或者用 latch coupling 從根一路鎖到葉子。RucBase 的ix_index_handle.cpp里能看到對(duì)應(yīng)的鎖獲取和釋放邏輯。你改這塊代碼時(shí)要盯住三個(gè)點(diǎn)讀操作是否用了共享鎖寫(xiě)操作用排他鎖節(jié)點(diǎn)分裂時(shí)父節(jié)點(diǎn)的鎖是否在子節(jié)點(diǎn)鎖獲取后才釋放刪除導(dǎo)致合并時(shí)是否處理了「兄弟節(jié)點(diǎn)也被鎖住」的死鎖場(chǎng)景。// 偽代碼示意B 樹(shù)插入時(shí)的 crabbing 加鎖順序 // 從根開(kāi)始先鎖子再放父避免持有父鎖等待子鎖 auto child root; root-RLatch(); // 根節(jié)點(diǎn)加讀鎖 while (!child-IsLeaf()) { auto next child-Lookup(key); next-RLatch(); // 先鎖子節(jié)點(diǎn) child-RUnlatch(); // 再釋放父節(jié)點(diǎn) child next; } child-WLatch(); // 葉子節(jié)點(diǎn)加寫(xiě)鎖準(zhǔn)備插入 // ... 執(zhí)行插入與可能的分裂 ... child-WUnlatch();邏輯說(shuō)明這段不是讓你照抄而是說(shuō)明加鎖順序。RLatch/WLatch是讀寫(xiě)鎖Lookup根據(jù) key 找下一層。關(guān)鍵參數(shù)是鎖的持有時(shí)間——持有越短并發(fā)越高但太短會(huì)導(dǎo)致結(jié)構(gòu)不一致。跑b_plus_tree_concurrent_test時(shí)如果出現(xiàn)段錯(cuò)誤或斷言失敗九成是加鎖順序反了。3.2 緩沖池替換策略LRU-K 的 K 怎么選buffer_pool_manager_test.cpp驗(yàn)證的是頁(yè)面替換。RucBase 的緩沖池管理器負(fù)責(zé)把磁盤(pán)頁(yè)讀進(jìn)內(nèi)存幀滿了就按策略淘汰。教學(xué)項(xiàng)目里常見(jiàn)的是 LRU 或 LRU-KK 表示參考最近 K 次訪問(wèn)。K 越大越能抵抗「掃描一遍大表把熱頁(yè)全沖掉」的問(wèn)題但實(shí)現(xiàn)復(fù)雜度和內(nèi)存開(kāi)銷也上去。改這塊代碼時(shí)參數(shù)選擇直接影響測(cè)試通過(guò)率參數(shù)含義常見(jiàn)取值影響KLRU-K 的歷史窗口2K1 退化成 LRUK 太大冷啟動(dòng)慢幀數(shù)緩沖池大小測(cè)試?yán)锿ǔ?10~50太小頻繁淘汰太大測(cè)不出策略差異淘汰閾值歷史訪問(wèn)次數(shù)門(mén)檻2低于閾值優(yōu)先淘汰// 緩沖池取頁(yè)的核心邏輯示意 Page* BufferPoolManager::FetchPage(page_id_t page_id) { std::lock_guardstd::mutex lock(latch_); // 1. 先在頁(yè)表里找命中直接返回并更新訪問(wèn)記錄 auto it page_table_.find(page_id); if (it ! page_table_.end()) { frame_id_t fid it-second; replacer_-RecordAccess(fid); // 更新 LRU-K 歷史 return pages_[fid]; } // 2. 未命中找一個(gè)空閑幀或淘汰一個(gè) victim frame_id_t fid; if (!free_list_.empty()) { fid free_list_.front(); free_list_.pop_front(); } else if (!replacer_-Evict(fid)) { return nullptr; // 所有幀都被釘住取頁(yè)失敗 } // 3. 把磁盤(pán)頁(yè)讀進(jìn)幀更新頁(yè)表 disk_manager_-ReadPage(page_id, pages_[fid].GetData()); page_table_[page_id] fid; replacer_-RecordAccess(fid); return pages_[fid]; }邏輯說(shuō)明RecordAccess是替換策略的輸入Evict是輸出。參數(shù)上要特別注意「釘住」的頁(yè)不能被淘汰——如果測(cè)試?yán)锍霈F(xiàn)FetchPage返回nullptr先檢查是不是有頁(yè)忘了UnpinPage。這是血淚經(jīng)驗(yàn)緩沖池測(cè)試掛掉一半是替換策略寫(xiě)錯(cuò)另一半是 pin 計(jì)數(shù)沒(méi)配對(duì)。3.3 磁盤(pán)管理器頁(yè)讀寫(xiě)與持久化邊界disk_manager.cpp是存儲(chǔ)層最底下的那塊負(fù)責(zé)把頁(yè)寫(xiě)到文件、從文件讀回來(lái)。它不復(fù)雜但邊界條件多文件偏移怎么算、頁(yè)號(hào)越界怎么處理、寫(xiě)失敗要不要回滾。常見(jiàn)做法是每個(gè)頁(yè)固定大小比如 4KB頁(yè)號(hào)乘以頁(yè)大小就是文件偏移。// 磁盤(pán)頁(yè)讀寫(xiě)示意 void DiskManager::WritePage(page_id_t page_id, const char* data) { // 頁(yè)號(hào)轉(zhuǎn)文件偏移頁(yè)大小固定 off_t offset static_castoff_t(page_id) * PAGE_SIZE; // 定位并寫(xiě)入整頁(yè) if (lseek(fd_, offset, SEEK_SET) -1) { throw std::runtime_error(lseek failed); } ssize_t n write(fd_, data, PAGE_SIZE); if (n ! PAGE_SIZE) { throw std::runtime_error(short write); } }邏輯說(shuō)明PAGE_SIZE要和緩沖池、B 樹(shù)節(jié)點(diǎn)大小保持一致改一處就得全改。lseek的返回值必須檢查write的短寫(xiě)也必須處理——這兩個(gè)是文件 IO 最常見(jiàn)的翻車點(diǎn)。如果你在測(cè)試?yán)锟吹綌?shù)據(jù)讀回來(lái)是亂碼先確認(rèn)寫(xiě)的時(shí)候偏移算對(duì)了沒(méi)有。4. 查詢鏈路與事務(wù)日志planner 和恢復(fù)怎么串起來(lái)4.1 從 SQL 文本到執(zhí)行計(jì)劃planner 的輸入輸出planner.cpp處在查詢層的核心位置它接收語(yǔ)法分析后的抽象語(yǔ)法樹(shù)輸出可執(zhí)行的計(jì)劃樹(shù)。RucBase 作為教學(xué)原型計(jì)劃節(jié)點(diǎn)通常包括順序掃描、索引掃描、投影、過(guò)濾、連接這幾類。你要改優(yōu)化規(guī)則就在這一層動(dòng)手。一個(gè)典型的鏈路是lex.yy.c把 SQL 切成 tokenyacc.tab.c按語(yǔ)法規(guī)則組裝成 ASTplanner 遍歷 AST 生成計(jì)劃執(zhí)行器再遞歸執(zhí)行計(jì)劃節(jié)點(diǎn)。如果你發(fā)現(xiàn)某條 SQL 報(bào)「語(yǔ)法錯(cuò)誤」但 SQL 本身沒(méi)問(wèn)題先去看.y文件里的語(yǔ)法規(guī)則是不是沒(méi)覆蓋這種寫(xiě)法。// 計(jì)劃生成示意把 WHERE 條件轉(zhuǎn)成過(guò)濾節(jié)點(diǎn) std::unique_ptrAbstractPlanNode Planner::PlanSelect( const SelectStatement* stmt) { // 1. 先為 FROM 子句生成掃描節(jié)點(diǎn) auto scan PlanTableRef(stmt-from_); // 2. 如果有 WHERE包一層過(guò)濾 if (stmt-where_ ! nullptr) { auto filter std::make_uniqueFilterPlanNode( PlanExpression(stmt-where_), std::move(scan)); scan std::move(filter); } // 3. 最后套投影決定輸出哪些列 return std::make_uniqueProjectionPlanNode( stmt-select_, std::move(scan)); }邏輯說(shuō)明PlanTableRef決定用全表掃描還是索引掃描PlanExpression把條件表達(dá)式轉(zhuǎn)成可求值的節(jié)點(diǎn)。參數(shù)上要注意投影和過(guò)濾的順序——先過(guò)濾再投影能減少中間數(shù)據(jù)量如果寫(xiě)反了性能會(huì)差但結(jié)果正確測(cè)試不一定抓得出來(lái)。4.2 事務(wù)與鎖管理器行級(jí)鎖和表級(jí)鎖怎么配合RucBase 的并發(fā)控制通過(guò)鎖管理器實(shí)現(xiàn)支持行級(jí)和表級(jí)的共享鎖、排他鎖。事務(wù)開(kāi)始、提交、終止對(duì)應(yīng)鎖的獲取和釋放。這塊最容易出的問(wèn)題是鎖升級(jí)和死鎖一個(gè)事務(wù)先拿行鎖再要表鎖另一個(gè)反過(guò)來(lái)就死鎖了。常見(jiàn)做法是給鎖請(qǐng)求排個(gè)全序或者用死鎖檢測(cè)定期掃等待圖。教學(xué)項(xiàng)目里通常簡(jiǎn)化成「按固定順序加鎖」。你寫(xiě)事務(wù)測(cè)試時(shí)可以構(gòu)造兩個(gè)事務(wù)交叉訪問(wèn)同一批行觀察是否有一個(gè)被回滾。-- 事務(wù)交叉訪問(wèn)示意 -- 事務(wù) A BEGIN; UPDATE student SET score 91 WHERE id 1; -- 此時(shí)不提交事務(wù) B 嘗試更新同一行會(huì)阻塞或失敗邏輯說(shuō)明BEGIN之后鎖才生效COMMIT或ABORT釋放。參數(shù)上注意隔離級(jí)別——RucBase 教學(xué)版通常只實(shí)現(xiàn)到可串行化或可重復(fù)讀不要假設(shè)它有完整的 MVCC。4.3 日志管理與恢復(fù)WAL 的順序不能亂日志管理支持記錄和恢復(fù)核心是 WAL預(yù)寫(xiě)日志先寫(xiě)日志再寫(xiě)數(shù)據(jù)頁(yè)崩潰后才能重放。disk_manager.cpp寫(xiě)頁(yè)之前日志必須已經(jīng)落盤(pán)。如果你改恢復(fù)邏輯要保證 redo 和 undo 的順序正確。日志類型作用恢復(fù)階段BEGIN標(biāo)記事務(wù)開(kāi)始分析階段UPDATE記錄前像和后像redo/undoCOMMIT標(biāo)記事務(wù)提交分析階段ABORT標(biāo)記事務(wù)回滾undo邏輯說(shuō)明分析階段確定哪些事務(wù)要 redo、哪些要 undoredo 階段重放已提交的修改undo 階段回滾未提交的修改。參數(shù)上注意 LSN日志序列號(hào)的單調(diào)遞增亂了就恢復(fù)錯(cuò)亂。5. 避坑與排查編譯、鏈接、運(yùn)行時(shí)的五類翻車現(xiàn)場(chǎng)5.1 現(xiàn)象undefined reference to yyparse或yylex原因詞法語(yǔ)法分析器的生成文件沒(méi)參與鏈接或者生成順序不對(duì)。yacc.tab.c和lex.yy.c是工具產(chǎn)物如果 CMakeLists 里只 glob 了.cpp就會(huì)漏掉它們。解決在 CMake 里顯式把生成文件加入源列表或者用add_custom_command在構(gòu)建前重新生成。確認(rèn)flex/bison已安裝且.l/.y源文件存在。5.2 現(xiàn)象編譯通過(guò)運(yùn)行測(cè)試時(shí)Segmentation fault原因B 樹(shù)并發(fā)測(cè)試?yán)锛渔i順序錯(cuò)誤或者緩沖池 pin 計(jì)數(shù)不配對(duì)導(dǎo)致頁(yè)被提前淘汰。也可能是空指針解引用——教學(xué)代碼里指針管理不嚴(yán)格。解決用 gdb 跑gdb ./test/b_plus_tree_concurrent_testrun后bt看棧。重點(diǎn)檢查ix_index_handle.cpp的鎖獲取釋放路徑以及buffer_pool_manager_test.cpp里UnpinPage是否和FetchPage/NewPage成對(duì)。5.3 現(xiàn)象buffer_pool_manager_test斷言失敗提示淘汰頁(yè)不對(duì)原因LRU-K 的RecordAccess沒(méi)在命中時(shí)調(diào)用或者Evict選 victim 時(shí)沒(méi)排除被 pin 住的幀。解決在FetchPage命中分支補(bǔ)上RecordAccess在Evict里檢查pin_count_ 0才允許淘汰。參數(shù)上確認(rèn) K 值和測(cè)試預(yù)期一致。5.4 現(xiàn)象SQL 執(zhí)行報(bào)「table not found」但表確實(shí)建了原因數(shù)據(jù)庫(kù)切換或元數(shù)據(jù)沒(méi)持久化。CREATE TABLE寫(xiě)進(jìn)了系統(tǒng)表但USE沒(méi)切換對(duì)或者元數(shù)據(jù)頁(yè)沒(méi)落盤(pán)。解決先SHOW TABLES確認(rèn)當(dāng)前庫(kù)檢查disk_manager.cpp的寫(xiě)頁(yè)是否真的刷到文件。教學(xué)項(xiàng)目里元數(shù)據(jù)可能只在內(nèi)存重啟就丟這是設(shè)計(jì)邊界不是 bug。5.5 現(xiàn)象Windows 下編譯報(bào)fopen安全錯(cuò)誤原因MSVC 默認(rèn)把fopen標(biāo)為不安全要求用fopen_s。這份源碼按類 Unix 寫(xiě)直接上 MSVC 會(huì)撞。解決要么加_CRT_SECURE_NO_WARNINGS宏要么換 WSL2/MSYS2 用 g。我一般直接上 WSL2省得和平臺(tái)差異糾纏。6. 進(jìn)階玩法給 RucBase 加一條自定義 SQL 函數(shù)跑通測(cè)試只是起點(diǎn)真正能驗(yàn)證你理解了鏈路的方式是加一條自己的 SQL 函數(shù)從詞法、語(yǔ)法、計(jì)劃到執(zhí)行全走一遍。我拿「求平方」舉例SELECT square(score) FROM student。第一步在詞法文件里加關(guān)鍵字或函數(shù)名識(shí)別。如果square當(dāng)普通標(biāo)識(shí)符處理就跳過(guò)這步在語(yǔ)法里當(dāng)函數(shù)調(diào)用解析。第二步在語(yǔ)法規(guī)則里加函數(shù)調(diào)用表達(dá)式。找到表達(dá)式相關(guān)的產(chǎn)生式加一條expr: ID ( expr )動(dòng)作里構(gòu)造函數(shù)調(diào)用節(jié)點(diǎn)。第三步在 planner 里把函數(shù)調(diào)用節(jié)點(diǎn)轉(zhuǎn)成計(jì)劃表達(dá)式。常見(jiàn)做法是加一個(gè)FunctionExpression執(zhí)行時(shí)根據(jù)函數(shù)名分發(fā)。// 函數(shù)表達(dá)式求值示意 Value FunctionExpression::Evaluate(const Tuple* tuple) const { // 先求參數(shù) Value arg child_-Evaluate(tuple); // 按函數(shù)名分發(fā) if (func_name_ square) { int v arg.GetAsInteger(); return Value(v * v); } throw std::runtime_error(unknown function: func_name_); }邏輯說(shuō)明child_-Evaluate遞歸求參數(shù)func_name_決定行為。參數(shù)上注意類型檢查——square只接受整數(shù)傳字符串要報(bào)錯(cuò)而不是崩。加完后重新生成詞法語(yǔ)法文件、編譯、跑一條SELECT square(score) FROM student如果輸出是平方值說(shuō)明整條鏈路你都打通了。驗(yàn)證方法上我習(xí)慣先跑原有測(cè)試確保沒(méi)改壞再加新測(cè)試覆蓋新函數(shù)。從那以后我每次改 RucBase 的解析或計(jì)劃層都強(qiáng)制先跑一遍buffer_pool_manager_test和b_plus_tree_concurrent_test確認(rèn)底層沒(méi)被波及再驗(yàn)證新功能。這個(gè)習(xí)慣幫我省過(guò)好幾次「改了上層崩了底層」的后悔藥。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91蜜臀人妻中文字幕在线| 青青草大香蕉视频| 亚洲操人| 午夜欧美女人操逼| 午夜视频黄| 久久视频少妇美女| 91美腿丝袜在线观看| 色噜噜精品一区二区三| 亚洲成a人片在线观看中文!!!| 91青青在线| 亚洲综合在线高清| www.狠狠干.coom | 中文字幕诱惑制服人妻丝袜美丝袜美| 亚洲少妇在线影音| 国产不卡片| 免费在线观看AV无码网站| 性色AV网站| 欧美色图20P| 欧美少妇性乱| 色天使大香蕉| 综合网亚洲1| 亚洲少妇激情视频| 麻豆天美制片厂网站视频| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 超碰在线综合97| 香蕉一区二区三区在线视频| 一色网男人的天堂| 玖玖综合色| 日韩精品国产精品五码一区二区| 五月婷丁香| 日本黄 R色 成 人网站| a在线观看| 爱射综合| 久久久久久中文字幕中文字幕最新| 91久久久久久久久18| 艹比视频国产精品| WWW黄片COM| 91人人臊| 日本一级一级一级一级| 德国一二三不卡| 欧美精品在线观看| 亚洲色欲一区二区三区| 久草精品一区| 97国产|免费| 亚洲综合色在线| 欧美偷偷网| 91精品人妻五十路| 九九九九九九精品| 2017亚洲天堂| 国产AAAAAABBBBB| 日韩欧洲操屄视频| 亚洲免费人妻在| 99色视频| 国产久久日韩网站导航| 久久久久斤小| 射久久| 97超碰超碰| 欧美性爱综合,免费| 20cm女自慰在线日韩欧美| 黄色无码高清黄色无码网站| 67914亚洲精品| 殴美性色a级欧美| 天美国产精品| 婷婷15月天青娱乐| 青青草国产欧美非洲黑人| 香蕉国产精品麻豆亚洲欧美日韩| 国产在线视视频有精品| 男人天堂综合| 天天综合网网欲色| 久久久一区二区三区四曲免费听 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 老司机久久| 婷婷探花久久精品一区| 一起草三级AV电影在线观看 | 色综合国产在线观看| 亚洲色图欧美色图日韩色图| 91 刺激在线| 91久久18禁| 97天天插| 亚洲蜜乳av| 久色网| 91草草草| 你懂的在线观看区国产| 五月丁香啪啪网| 少妇500双飞99| 天天日夜干| 男人高清无码一区二区| 久草婷婷| 亚洲av噜噜噜噜噜噜| 中文字幕精品日韩中文字幕| 国产欧美精品日韩区二区麻豆天美| 四虎884a| 日韩欧美性吧婷婷乱伦大香蕉| 国产成人无码啪| 日韩成人色图| 中文区中文字幕免费看| 欧美视频一区二区在线| 91国产大片| 久久啊啊啊| 亚洲码专区| 婷婷另类小说| 精品欧美不卡在线播放| 97视频在线观看播放与子乱对白在线……| 日韩精品影视| 欧美激情性爱视频网站| 天天天肏屄欧美| 人人妻人人爽一区二区三区| 女同性恋久久| 999国产精品999久久久久久| JIZZJIZZ国产精品喷水| 91国产美女丝袜足交精品视频| 97超碰超| 日本三级中国三级99人妇网站| 日韩中文字幕宗合在线| 高清成年美女黄网站免费大全| 97午夜剧场日韩| 久久久一区二区三区麻豆| 亚洲乱码国产乱码精网站| 天天舔九色婷婷| 69av一区二区三区| 男人天堂日日夜夜| 色天使亚洲综合在线观看| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 天操天操夜操夜月操月年年操操| 日本操大逼| 久啪| 亚洲av影院在线观看| 91天美传媒在线观看| 国产亚洲深夜激情| 色婷婷日韩精品一区二区三区| 顶级丝袜熟女一区二区三区| 男人的天堂三级| 欧美黄色大香蕉一区二区| 91国精产品| www…国产操逼| 中国91AV| 中文字幕在在线观看网站| 97视频在线看| 求求你操操我| 色婷久久| 成全动漫视频观看免费下载| 一区二区亚州激情久婷婷欧美| 美女午夜福利免费视频| 啊啊啊啊啊舒服| 狠狠干综合| 亚洲成a人v欧美综合天堂下载| 99热精品在线观看| A级国产欧美激情在线| 九九热五区| 乱论91| 嗯嗯嗯啊啊在线观看| 五月婷婷六月天| 一区二区三区国产在线播放| 国产1727欧美| 五月天激情小说网| 亚洲AV无码AV吞精久久久久| 我想要 啊 啊 啊| http://qxhbdz.com| 亚洲黄色视频在线观看视频| yazhououmeizongya| av大香蕉| 国产一级做a爰大片免费久久| 91久热| 夜夜操天天肏| 丁香五月激情网| 国产第12页| 黄页网站成人免费| 国产偷人妻精品一区二区在线| 国产成人久久久精品免费AV| 国产中文字幕在线点播| 水多多映视AV| 91人妻熟女| 超碰久久精品| aaa淫乱视频| www.狠狠| 久/久精品99看9| 人人操人人摸avav| 超碰91在线| 亚洲亚洲亚洲天堂天堂| 欧美亚洲成人在线一区二区三区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲区限制级 99| 天美av在线观看| 亚洲最新中文字幕免费| 另类小说综合网| 免费国产视频| 亚洲久久久久| 91青青草| 夫妻天天操岛国视频| 九9精品| 粉嫩国产精品久久久| 婷婷九月| 人人爱操| 久热超碰| 97这里都是精品| 国产不卡精品91| 色色婷婷丁香| av片在线观看免费播放| 五月丁香六月| 91女网站| 91欧美性| 中文字幕乱偷人妻久久艾草网| 5252色欧美在线| 久久久蜜桃一区二区三区| 亚洲第一在线视频| 中文字幕成人| 亚洲……91| 狠狠狠一区二区三区| 亚洲欧美精品91| 天天做天天爽| 日韩 人妻 精品| 私色综合网| 久久精精区一区二区一蜜桃一区二区| 大香蕉碰碰| 99热亚洲天堂| 青青色综合| 免费网色网站| 蜜桃狠狠色伊人亚洲综合| 欧美亚洲宗合色性图| 天天天天天超碰| 久久久久久九九九九-美女久久久久久久-成人AV | 国产精品久久久久久片| 亚洲图片欧洲图片aⅴ| 啪一啪免费视频| 黄色一级视| 秋霞欧美性爰视频| 亚洲日本成人动漫| 97高清啪啪| 天天影视射综合网| 欧美亚洲清纯| 日本不卡五区| 特级特黄一级毛片免费| 欧美日本国产日韩激情视频| 嗯啊不要啊在线| 91狠婷| 1204av韩国| 99热线麻豆 | 视频国产欧美在线播放| 狼狼色丁香久久婷婷综合五月| 国产一区二区a毛片| 女同性恋久久| 啊a一区在线| av 模特一区了| 日韩欧视频| 东北少妇高潮zzzz| 婷婷亚洲综合| 欧美91精彩| 九九操久久国产免费视频| 黄色免费一级在线毛片| 色婷婷电影网| 一直超碰| 天天噜| 欧美一级特黄淫片在线观看| 六月婷婷综合| 国产AV天美传媒一区二区三区 | 四虎国产成人精品免费一女五男| 欧美偷| 日本熟女不卡视频| 日韩有码免费视频| 性高潮久久久久久久久久久| 国产成人精品必看| 久久最新免费视频23| 国产精品久久久久久久久久久久久久久久 | 超碰97久| 久久深夜无码| 亚洲黑人在线| 一区二区日韩欧美久久| 激情婷婷丁香网| 操逼网站网站| 超91综合网| 97视频新免费| 乱伦色图网址是多少| 国产少妇肉丝在线观看| 97视频免费在线| av天堂精品久久| 91N欧美| 91操熟妇| 一区二区娱乐网站| 亚州欧美综合| 国产女同视频在线播放| 亚洲 欧美 另类 日韩 人妻一区| 国产精品美女视频诱惑| 日韩乱码Av| 校园春色AV天堂| 久草国产在线视频| 男人网站婷婷| 国产 日韩 欧美高清| 五月天黄色av| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 蜜乳av首页| 亭亭在线资源| 久久久久久久亚洲Av无码| 国产欧美另类久久久精品课程| 9丨久久九九九| 69少妇一区二区| 日本青青草在线| 伊人天天久久动态图| 9久热| 久久偷偷色综合蜜桃| 日本成人A片免费看| 久久水蜜臀亚洲AV无码精品| 国产成人 综合亚洲 天堂| 99久久无色码| 一起草日韩| 亚洲精品不卡一二三区| 亚洲一区二区三区AV无码| 日本一级黄色电影| 欧美亚洲日韩人妻在线观看| 香蕉婷婷| 国产精品视频一区二区三区八戒| 99re这里只有| 九九无码| 成人麻豆av电影网站| 欧亚成人在线视频| 精品偷拍13p欧美dodk视频| 亚洲 综合 第一页| 久久综合激情| 国产又黄又爽| 九九国产热| 日本熟妇人妻中出视频| 91综合无码| 性感女人网页在线观看视频| 岛国A V在线免费看| 啊操爽品善一区二区三区| 精品人体无圣光凹凸| 四虎在线免费视频| 大香蕉宗合网在线| 国产高清精品一区二区三区毛片| 青青草色AV| xxx亚洲午夜天堂| 精品亚洲黄色片 国产精品导航一区二区 | 欧亚乱色熟女一区二区| 精品91| 国产久久久久影院老熟女| 5月婷婷6月六月丁香| 欧美96精品在线| 亚洲情色在线| 男人天堂2019亚洲| 日韩A优精品在线观看| 97亚洲综合在线| 亚洲 欧美 另类 日韩 人妻一区 | 欧美日韩制服| 日本精品一区二区三| 夜夜狼人妻| 日本精品第一视频在'| WWW.操逼.COM| 久久久一区二区三区四区五区| 超碰人妻中文在线| 69超碰综合| 青青操综合网| 亚洲av综合色区图片亚洲| 日本加勒比无码专区| 超碰98综合网| 日韩在线人妻网站| 北京专精特新企业招聘信息| 精品一区二区成人动漫| 99国产在线 精品 视频| 91在线超高颜值国产| 97欧美精品| 欧美少妇高潮视频| 日韩不卡一二三四| 久日91在线| 啊嗯好大视频在线观看| 国产青视频| 久久99热这里只频精品6学生| 久久社区一区二区三区| 夜夜草天天| 亚洲欧美不卡线| 日韩欧美女求操每天更新| 少好三P| 大香蕉综合在线| 91国产美女丝袜足交精品视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国产一区二区三区高清视频| 操一操摸一摸| 欧美色网| A级国产欧美激情在线| 9久久久久| 91观看 国产白丝| 日韩91网| 女性91网站| 欧美加勒比| 中文字幕一二三| 啊v在线观看视频| 男人天堂新在线| 97色综合中文网| 欧美亚洲中文字幕| 九九九网站| 中欧人妻丝袜中文字幕 | 91在线免费观看处女| 91在线欧色| 婷婷色一区| 久久熟女人| 欧美欲色| 免费亚洲国产精品久久一区| 久久精品国产97欧美精品亚洲 | 69XX一中文字幕人妻91| 人人操人人摸人人看人人插| 激情视屏国产乱伦强奸| 人人扣人人操| 国产精品国产自产拍高清AV| 久久综合女优| 久久黄黄黄| 2020中文字幕在线观看| 成人一道本免费视频| 2017人人操,人人摸| 亚洲毛片一级带毛片基地| 另类 日韩 熟女| 色狠狠综合| 成人影 天天操 亚洲| 欧美日本天堂| 黄色成年| 思思视频免费看网站| 国产极品美女高潮无套在线观看| 调教熟妇 久久久久久| 99www.bibizy香蕉资源国产一区二区三区高清 | 妺妺跟我一起洗澡没忍住| 伊人AAA| 日韩99999色| 超碰久久网| 9久精品| 日本成人A片免费看| 六月丁香久久| 中文字幕文字幕无码一区二区三区电影99 | 91色综合| 国产 v乱码一区二| 啊啊啊啊啊啊好湿好爽视频| 91性感在线| 国产免a费看黄片在线| 久久婷婷视频| 久久久精品久久| 欧美91精品国产自产| 免费看A片毛毛片在线播| 玖玖视频在线资源一区二区三区| 黄色片G G G| 女沟厕偷窥piss小便| 艹比视频国产精品| 大香蕉欧美伊| 91网站18禁| 国产精品三级视频网站| 欧美成人色| 久久久一区二区三区四区五区| 久久精品中文字幕无码l| 超碰97人人乐| 色综合久久av| 九一屌逼| 国产后入| 婷婷色一区| 抽插亚洲无码| 丁香五月性| 久久人妻少妇| 草草影院最新网址| 大香蕉欧美伊| 婷婷丁香九月| 韩国国产欧美情侣视频在线| WWW啪啪的com| 日本淫穴在线| 久久久久亚洲AV无码专区少妇| 免费看污网站| 日本操逼aaaaa| 伊人影院中文字幕| 97亚洲欧美| 亚洲色图久久精品蜜| 91情色在线| 综合色99| suv精产一二三区| 五月婷婷激情综合| 天美传媒AV在线| 免费观看的av| 免费视频一二三区| 高潮内射在线| 国产a片操逼| 欧美A√综合网| 在线综合 亚洲 欧美中文字幕 | www.av在线视频| 日韩精品9999| 男女激情黄色网址| 一二三四区操操Av| 五月丁香激情综合网| 大粗鳼巴久久久久| 蜜臀久久99精品久久久久久久久| 九色黄站| 久久蜜色情在线视频xxx免费观看| 欧美成人一级麻豆| 一级黄碟在线观看| 日韩国产乱子伦App| 午夜精品人妻二区三区| 超碰九色| 性色AV网站| 日本 免费 一区二区三区 久久香蕉| 精品国模无码| 日韩高清一二三| 九九色热| 天天射天天| 亚欧美综合网。| 一区在线观看中文字幕| 国产精品剧情| 东北女人操比视频| 偷窥自拍亚洲天堂网爆| 亚洲国产美女久久久久| 亚洲999综合| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 秋霞一级鲁丝片A片| 日日妻色网| 99爱视频| 最新中文字幕精品在线| 啊啊啊爽爽| 少妇色综合| 亚洲,欧美,春色,另类| 亚洲精品国产专区在线观看| 欧美九九九九九| 亚洲熟女乱熟乱熟妇综合网二区| 青青草天天亲夜夜操网| av网站免费线看| 中出20p| 午夜天堂网| 日本污ww视频网站| 成人av在线播放| 日本精品一区二区不卡| 久久久久人| 校园春色欧美色图| 97人妻色| 啪啪综合网| 福利视频一区二区微拍| 亚洲在线网站| 蜜臀中文字幕| 欧成人在线| 是还免费视频1727我| 日本免费一区二| 99久视频| 99色色网| 亚洲成av人片色午夜乱码| 成人免费视瓶| 欧美狠狠干| 南澳成人一级片在线播放| 亚州欧美总和| 国产美女高潮| 久久久久白虎| 美女黄页网站| 99这里只有精品| 欧美亚洲宗合色性图| 国产SV一线| 极品粉嫩一区二区| 久久久工口| 女优视频第10页| 久久久中文| 新版天堂中文资源8在线| 国产精品极品美女视频| 欧美另类精品xxxx| 久草视频在线视频在线视频在线观看 | 思思热免费在线视频| 无码一区免费在线不卡| 五月天我淫我色av| 人妻一区二区三区视频 | 亚洲熟妇自偷自拍另欧美| 五月婷婷激情综合| 激情五月激情综合网| 亚洲精品视频在线播放| 97自拍视频在线| 99热网站| 久久久亚洲精品电影免费看| 久久久久久久少妇| a人欧美综合天堂麻豆| 麻豆九九九| 区二区亚洲婷| 超碰 国产熟女精品一区| 死我十八禁| 亚洲天堂资源在线| 亚洲综合影院| 在线观看免费视频国产| 亚洲 日韩 丝袜 熟女 变态| 强奸乱伦αv片| 中文字幕在线观看视频www| 激情五月天网站| 色性荡荡荡荡视频| 日韩一级二级三级免费看完整版国语版| 国产一区二区三区,在线观看观看| 色眯眯av| 精品天堂| 日韩簧片免费看| 亚洲精品亚洲人成在线麻豆| 120分钟婬片免费看| 天美麻豆精品视频99| 五月天久久婷婷亚洲 | 超碰人人干| 美女啊啊啊啊啊啊啊| 欧美精品偷拍| 91制服丝袜| 亚洲视频中文一区| 郑州宾馆老熟女露脸啪啪| 毛片电影一区二区三区| 蜜桃精品一区二区三区ww| 欧美中字二区| 少妇天堂| 亚乱色| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 九月丁香| 秋霞午夜视频一区二区| 日韩精品午夜操呦呦不卡影院| 人人搞人人插人人操| 婷婷中文网| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 综合色色网| 99re69| 加勒比99999| 亚洲精品一二区| 玖玖97综合| 蜜臀99久久精品| 波多野结衣AV无码一区| 五月丁香网站| 伊人视频| av网站在线观看了| 欧美最婬乱婬爆婬性视频| 青青草导航在线视频| 久久性爱精品一区| www.狠狠干.coom| 在线播放中文字幕| 日韩欧美成人午夜福利| 日韩内射视频| 美女黄站| 久久九九综合| 青青青草原| 国产不卡免费在线视频| 欧美另类自拍 | 国产60区。| 91久久久久久久久18| 中文字幕日本久久| 欧亚韩国999| 亚洲国产成人福利在线观看| 色婷婷综合久久久久中文一区二区 | AA级电影三区| 暖暖精品二区三区观看| 亚洲少妇在线观看| 国产成人亚洲精品自产在线| 日本黄色精品| 久久久久久欧美精品se一二三四| 日韩二区三四区五区六区在线看| 国产无码久久高清| 91狠狠综合久久久久久| 亚州一区二区| 骚货| 亚洲熟妇一,二,三期| 日日夜夜干| 99在线精品视频| 久久综合婷婷| 91成人无码| 亚洲 欧美 中文 日韩超碰 | 天天干2019| 啪啪啪综合网| 国精品一区二区三| 久久精品国产AV一区二区三区| 九九久久久久久爱| 翔田千里AⅤHD无码| 97 国产一区| av无线看| 久久中文字幕人妻熟av女蜜柚| 亚洲免费人妻在| 9久久久久久| 亚洲精品丝袜-不卡成人免费……| 超碰97COm中文| 精品人人| 人妻干天天| 欧洲亚洲综合| 99精彩视频| 国产精品高潮久久久无码| 色哟哟-国产专区| 成人麻豆av电影网站| 欧亚韩国999| 东京热激情视频一二三区| 亚洲婷婷丁香在线| 精品久久九| 欧美性爱在线无码| 超碰色综合| 97色妞| 91GD.COM| www久久国产精品| 97精品中文字幕| 欧美日韩99| 韩国三级一线观看久| 999 久久久| 天天色粽合合合合合合合| 91福利网在线观看| 欧美性综合| 狠狠中文字幕| 性爱边摸边日免费AV| 亚洲丨在线| 麻豆久久久久久久久丝袜| 粉嫩粉嫩一区性色AV片| 97精品免费视频网站| 91性高| 青青草日韩无码| 国产乱色国产精品免费视| 久久风骚城市人| 97蜜桃综合| 麻豆啪啪啪视频| 秋霞免费无码视频日韩A片 | 99热这里是精品| 6080YYY午夜理论片在线观看| 加勒比综合在线| 99热导航| 91久久国产综合久久| 亚洲精品影视老司机| 舔足天天操天天射| 亚洲极品| 一区二区三区无卡视频在线观看| 长长久久88视频| 亚洲黄色网址视频| 国产强奸AV在线| 久久粉色| 麻豆区久久久久亚| 97 九色| 97综合在线观看| 狠狠干,狠狠操| 一区二区视频在线播放| 日韩99精品视频综合区| 日韩在线国产字幕| 亚洲美女精品九九视频| 麻豆区久久久久亚| 欧美乱妇狂野欧美在线视频| 在线人妻熟女一区二区三区四区五区| 中文字幕一区二区三区视频播放| 日韩中文字幕精品一区在线| 国产毛片毛片4p懂色| 夜夜夜夜久久久久| 日日AAvv| 九九九国产精品| 怡红院亚洲怡春院av| 97爱b| 亚洲视频一二区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲av国产av综合av卡| 日语五十路和六十路亚洲国产精品| 97国产精品一区| 人妻熟女一区二区三区视频| 日本二区不卡| 91综合天天| 久热这里只有精品9| 欧美日韩制服| 午夜精品久久久久久久久久久久久| 久伊人网78| 欧美综合中文| 超碰色97| 中文字幕国产在线天堂| 亚洲影院365| 99视频这有这里有精品| 精品毛片av一区二区 | 五十路成人在线视频二区三区| 日韩熟女视频二区| 亚洲色图欧美色图综合| 99精品九九九九九九| 91精品网站| 国产女同在线观看视频| 国产精品不卡一区二区三区av| 肉动漫无遮挡h在线观看| 国产高清视频无码在线| 久久久啊啊| 啊啊啊啊视频免费| 超碰 另类 欧美| 99黄页网站| 亚洲成人在线资源| 欧美啪啪色吧在线| 日韩有码 一区二区三区| 欧美精品一区二区少妇免费A片| 国产亚洲精品农村妇女 | 97色欧洲| 97啪啪| 这里只有精品视频在线观看麻豆| 国产美女高潮叫床视频| 920日本午夜免费| 丝袜制服字幕在线| av久日| 丰满人妻一区二区三区免费| 极品销魂美女一区二区| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 蜜乳AV网址| 啪啪视频亚洲第一| 国产99久久99热这里只有精品15| 色综合尤物| 天天摸天天插天天日| 黑人与人妻| 麻豆熟妇乱妇熟色A片在线看| 永久免费观看的毛片的网站| 国产精品久久久久久照片| AAA久久| 丰满欧美少妇| 91欧美性| 天天干人人看综合| 亚洲成人一区二区精品| 伊人91| 亚洲限制级| 天天综合网在线观看| 上海一级黄片| 国产超碰国产97| 亚洲自拍青操视频| 亚洲国产丝袜熟女av| 日韩性爱视频免费在线| 国产SV一线| 国产激情在线| 日本Xx性爱| 麻豆福利视频导航| 久久久久久人体| 国产人妖视频一区在线观看| 亚洲另类久操网| 超碰97综合网| 无码最新| 国产一区二区三区不卡手机在线| 少妇精品| 中国国国产一级特黄毛片| 97 超碰 人人做 人人爱| 国产精品久久泡妞网站| 96久久精品一二三区色欲| 成人日本精品九区| 国产精选视频| 日韩av影片在线观看| 91九九九小逼| 边做饭边操逼逼| 国产精品老熟女一区二区| 中文字幕第7页| 九九探花视频在线观看| 国产精品久久久久久久久久久久久久久久 | 青草影院内射高潮| 欧美人人操人人插| 久久精品亚洲婷婷| 久操免费在线| 盗摄 精品 另类 一区| 亚洲欧美综合网| 婷婷亚洲综合| 黄色交缠性感爆操91国产精品免费一区二区三区 | 精品久久一区二区三区四区五区| 亚洲天堂久久| 日韩精品一区二区三区色欲| 视频在线观看青青99国产| 日人妻视频91| 日本道日本道中文字幕日本道最新日本道在线观看 | 思思热在线视频免费| 操穴国产| 亚洲影院无码在线| 有码色中文字幕在线观看| 国产不良强奸视频免费看| 欧美se亚洲| 中文精品一区二去| 亚洲涩涩| 亚洲偷拍自拍在线视频| 国产丝袜一区二区三区| 国产亚洲色婷婷久久99精品91| 青青草色AV| 久久久蜜桃一区二区三区| 97碰| 久久久久久中文版| 久久精品国产亚洲AV无码做| 十八禁一区二区无码观看| 99久久精品国产高潮| 综合少妇网| 91色碰| 日韩乱伦AⅤ| 美国三级日本三级久久99| 精品久久人妻成人网| 久久99国产精品| 九九九久千久久激情蜜桃在线看 | 超碰79人人乐| 免费一级性爱久久| 亚洲图片偷拍欧美| 精品精品精品| 99爱爱| 亚洲色图欧美一区二区不卡| 91熟女综合| 深夜激情无码| 欧美综合天天| 亚洲综合骚逼| 狂操嫩妻视频一区二区三区| 久久久久亚洲熟妇熟女| 97视频在线观看网站| 日本免费中文一区二区三区四区| 国产91亚洲精品一区二区三区| 久久妇| 欧美久久九九| 亚洲一级特黄大片在线播放91| 999国产精品999久久久久久| 97人人爱人人做人人乐| 熟女被操视频网址| a亚洲欧美色欲| 999久久芭蕾| 精品无吗久久| 99色婷婷| www.av在线视频| 亚洲情色视频| 国产99999久久精品| 久久婷婷色综合一区二区三区| 老熟妇一区二区三区…| 91少妇人妻| 欧美日韩美女精品久草一区二区三区| 五月天婷婷成人网| 亚洲一卡2卡3卡4卡乱码网站| 天天射夜夜操| 999久久久久久久久| 超碰午夜在线| 日韩精品 资源| 久久精品国产96精品亚洲拳交| 日韩无码一级黄色av片| 91痴汉| 超碰97久久国| 在线 亚洲 网爆 自拍| 9久热| 尤物一级在线免费观看| 豆花视频操逼网址 | 激情五月丁香五月| 亚洲精品无码久久AV| 26uuu最新| 97亚洲中文| 国产97av| 日本精品一区二区三| 久久久熟妇熟女国产| 人妻天天操天天爽视频免费| 国产免费一区在线观看| 夜间福利片1000无码| 久久受www免费人成| 婷婷久久五月综合激情| 1240青青草一区二区三区视频天爱| 亚州男人的天堂| 成人综合视频久久| 九九九综合精品| 欧美日韩情色一区二区| 99热这里| 丁香五月激情网| 日韩成人精品中文字幕| av一区二区三区 中文| 久久久久久精品免费看A级| 日韩性爱1级片视频| 国产美女自拍AV| 另类TS人妖一区二区三区| 毛片久久| 激情小说图片亚洲首页| 亚洲国产成人精品久久久国产成人一区二区| 中文字幕一区二区无码成人| 蜜臀久久99精品久久久久久成人小说 | 欧美姓爱综合网| 久久精品国产亚洲av水密被窝| 深夜激情| 久操国产在线| 欧美色宗合| 久久只有精品| 亚洲天堂在线怕怕视频 | 国产精品网站www| 日韩ab网| 亚洲综合射| 大香交| 成人国产二区三区在线,男女精品。| 啊啊啊水好多| 婷婷涩嫩草鲁丝久久午夜精品| 精品欧美老熟女一二区| 激情黄色片在线观看| 家庭乱伦国产| 人人插人人摸人人| 柠檬AV导航| 96AV精品| 亚洲AV无码久久精品蜜桃小说| 中文字幕精品久久久久人妻红杏ⅰ | 国产肏逼网站| 国产精品久久久久亚洲av| 欧美强奸一区二区诱惑| 成人在线日韩| 蜜桃视频一区二区三区在线观看| 97免费视频网| 欧美日韩亚洲国产中文永久天天看 | 国产精品久久久久久久黄无码 | 大逼色网站| AAAA级日本片免费视频| 91午夜无码| 中文字幕成人| 男人天堂久久日韩| 我想要啊 啊 啊| 婷婷五月天激情四射| 亚洲国产av中文字幕久久 | 国产AV中文| 国产一级137片内射麻豆| 强奸乱伦动态污图免费 | 国产后入| 国产中文字幕曰本毛片| 亚州色交| 综合激情一一91| 日本一区不卡| 日本人人操人人操| 九九久久久九九| 久久成人精品| 亚洲āv网址在线观看| 破苞ⅩXXX性无码动漫无码| 久妇网| 夜夜春夜夜操| 亚洲国产av中文字幕久久| 日日夜夜狠狠| 97se综合| 人人干人人操人人爱| 中文字幕 国产区| 青青草白白色| 精品人妻一区二区三区在线视频不卡| 无码人妻精品一区二区中文| 欧美综合自拍成人自拍第二十页| 亚洲性图91| 插入逼91| 婷婷五月天小说| 国产精彩女在线观看视频| 国产精品96| 午夜一区| 综合97久久| 17c在线成人免费A片观看| 欧美淫穴| 91操熟女视频 | 香蕉国产精品麻豆亚洲欧美日韩| 狠狠色婷婷7777久| 欧美第一页| heyZO天然素人无码AⅤ专区| 国产免费一区二区三区最新不卡| 亚洲女人毛茸茸91| 又大又长又粗又爽又黄| 77777亚洲蜜臀精品久久综合蜜臀| 欧日韩一二三f区| 中文字幕日韩人妻视频一区二区三区| 日韩av三四区| 久久久久亚洲Av无码专区老牛影视| 99视频在线| 97ai亚洲| 国产动漫操逼视频| 大屁股熟女一区二区三区| 一类av片在线看| 精彩国产视频播放1区2区| 黄片www视频免费| 女色视频社区| 精品人妻一区二区免费蜜桃视频| 欧美十八禁在线看| 99精品在线| 伊人女女资源在线观看| 精吧天堂| 人人摸人人摸人人干| 黑人与人妻| av在线观看不卡网站| 伦在线97| 日韩色欲久久一二三四区| 牛牛久久国产精品视频一二三| 免费?级毛片无码?∨蜜芽试看| 91久久午夜无码鲁丝片久久人妻| 成人小说另类在线| 亚洲棕合电彰| 久久久精品91八戒| 亚洲熟女乱熟乱熟妇综合网二区| 亚洲熟女精品| 无毛精品| 久久东京国产精品视频| 超碰色大香蕉| 天美传媒av 在线| 国产粉嫩蜜臀av一区二区三区| 日韩中文字幕熟妇人妻| 无码一区二区精品视频久久久春药| 综合网欧| 亚乱色| 超碰97综合在线| 欧美天天拍| 被窝影院午夜看片无码| 欧美在线大香蕉| 日操粉逼逼| 99久久99九九99九九九| 91N欧美| 国产精品高清2021在线| 色妇91| 国产一级片| 老司机福利青青草| 欧美伦乱爱| 欧美黄色片AAAAA| 日本不卡一区二区| 中文字幕日韩人妻视频一区二区三区交换夫妻 | 国产精品老熟女一区二区| 天天影视色香欲综合网小说| 久久这里| 色婷婷电影网| av一区二区三区不卡| 欧美色图97| 亚洲情色五月天 | 97欧美色资源| 婷婷五月天色| 国产乱伦亚洲色图高清无码| 伊人四虎综合| 97超碰美国| 日韩欧美中文| 看全色黄大色大片免费视频| 青春草A| 深爱激情五月天| 黄色电影在线播放综合网站| 欧美91网| 国产美女口爆吞精| 婷婷久久五月天| 成人乱人伦一区二区| 中文不卡视频| 一区二区国产视频在线观看| 人妻少妇一区二区| 强奸乱伦Av网| 精品性爱| 超碰97伊人| 校园春色综合香蕉| 久久久久久大| 日本午夜久久电影| 国产一区自拍欧美日韩| 天天上日日上日韩精品| 我爱搞逼综合网| 国产精品91一样| 午夜男女爽爽爽在线视频 | 久99久视频| wwwxxx日本爽| 色婷婷一区二区三区久久| 日韩特一级久久| 天天看高清麻豆| 国产精品久久久视频| 丁香五月性| 天天干夜夜一操| 岛国福利在线精品播放| 国产一区在线看| 亚洲第一页综合在线| 大乔未久88一区| 亚洲免费97免费| 人妻一区二区三区| 国产少妇肉丝在线观看| 国内精品伊人久久久久影院会| 国产一级特黄大片处女| 日韩强奸av| 国产精品白领在线观看| 神马麻豆福利院| 人妻第一页| 一本色道人妻久久| 人妻人久久精品中文字幕| 国产情色第一第二页在线观看| 美女91在线观看| 欧美天堂日韩三级国产传媒| 黄色污污污污污污网站| 亚洲日韩一区电影| 亚洲超碰在线| 日本人妻A片成人免费看片| 3p国产欧美99热| 久久精品国产72国产精品福利| 成年女人黄网站| 久久亚洲AV无码专区国产精品| 中文字幕一区二区免费在线| 亚欧毛片基地国产毛片基地| 无码久久国产| 综合伊人激情| 人妻偷拍一区二区三区| 三级日韩一区二区三区| 亚洲国产一级黄色视频| 亚洲av综合伊人久久| 亚洲成人精品在线一区| 国产在线视频午夜精华在| 一级乱伦网站| 婷婷av在线中文字幕| 国产无码高清操逼视频| 福利操逼| 一区二区视频在线播放| 91干熟女| 婷婷五月天小说| 青青草久久| 91美女片在线| 精品人妻一区二区三区四区不卡在| 男人的天堂 在线一区| 91成人高清在线观看|