国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PgSQL-執(zhí)行器機(jī)制-Unique算子

這篇具有很好參考價(jià)值的文章主要介紹了PgSQL-執(zhí)行器機(jī)制-Unique算子。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

PgSQL-執(zhí)行器機(jī)制-Unique算子

PgSQL中輸出去重的元組有多種方法,比如通過HashAgg或者GroupAgg。這里我們介紹第三種方法,通過Unique算子來完成這個(gè)功能。當(dāng)然語句上可以是:select distinct(id1) from t;

1、ExecUnique

執(zhí)行器執(zhí)行算子的函數(shù)都是ExecXXX,其中XXX代表某個(gè)算子。Unique算子的執(zhí)行是由函數(shù)ExecUnqiue完成,當(dāng)然這個(gè)函數(shù)執(zhí)行的前提是Unique節(jié)點(diǎn)的子節(jié)點(diǎn)傳來的元組是有序的,比如子節(jié)點(diǎn)是Sort算子。

執(zhí)行邏輯比較簡(jiǎn)單:

ExecUnique
  outerPlan = outerPlanState(node);//子計(jì)劃節(jié)點(diǎn)
  resultTupleSlot = node->ps.ps_ResultTupleSlot;//返回的元組存在此處
  for (;;){//for循環(huán)找到最后一個(gè)重復(fù)的值
    slot = ExecProcNode(outerPlan);//從子節(jié)點(diǎn)拉取數(shù)據(jù)
    if (TupIsNull(slot)){//子節(jié)點(diǎn)拉取完
      return NULL;//執(zhí)行結(jié)束
    }
    //總是返回第一個(gè)元組,第一個(gè)元組時(shí)resultTupleSlot為空
    if (TupIsNull(resultTupleSlot))
      break;
    //后面相同的記錄進(jìn)行Qual比較
    econtext->ecxt_innertuple = slot;
    econtext->ecxt_outertuple = resultTupleSlot;
    if (!ExecQualAndReset(node->eqfunction, econtext))
      break;//直到元組不同時(shí)結(jié)束循環(huán)
  }
  //將獲取的元組拷貝到resultTupleSlot中并返回
  return ExecCopySlot(resultTupleSlot, slot);

1)獲取第一個(gè)元組時(shí),node->ps.ps_ResultTupleSlot中沒有數(shù)值,即為NULL

2)從子節(jié)點(diǎn)拉取一個(gè)元組值,此時(shí)直接中斷循環(huán),將該元組值賦值給node->ps.ps_ResultTupleSlot并返回

3)再次迭代進(jìn)入ExecUnique函數(shù),node->ps.ps_ResultTupleSlot仍舊是上次保存的元組值,不為空。For循環(huán)從子節(jié)點(diǎn)再拉取一個(gè)元組值,需要和上次保存的值進(jìn)行比較,若相同則繼續(xù)循環(huán)拉取下個(gè)值進(jìn)行比較,直到和node->ps.ps_ResultTupleSlot值不相等

4)退出循環(huán)后,將下一組的第一個(gè)值保存到node->ps.ps_ResultTupleSlot返回。

這樣就完成了數(shù)值的去重,這里重申下,使用ExecUnique的前提是子節(jié)點(diǎn)的元組是有序的。

2、ExecQualAndReset

看下實(shí)現(xiàn)的關(guān)鍵函數(shù)ExecQualAndReset,該函數(shù)通過表達(dá)式計(jì)算完成數(shù)值比較。

表達(dá)式的計(jì)算步驟為ExprState *eqfunction。由函數(shù)ExecInitUnique進(jìn)行初始化:

PgSQL-執(zhí)行器機(jī)制-Unique算子,java,前端,服務(wù)器,linux,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-734406.html

到了這里,關(guān)于PgSQL-執(zhí)行器機(jī)制-Unique算子的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 機(jī)械臂速成小指南(五):末端執(zhí)行器

    機(jī)械臂速成小指南(五):末端執(zhí)行器

    ?????????需要機(jī)械臂相關(guān)資源的同學(xué)可以在評(píng)論區(qū)中留言哦?????? 指南目錄??: ????機(jī)械臂速成小指南(零點(diǎn)五):機(jī)械臂相關(guān)資源???? 機(jī)械臂速成小指南(零):指南主要內(nèi)容及分析方法 機(jī)械臂速成小指南(一):機(jī)械臂發(fā)展概況 機(jī)械臂速成小指南(二):

    2024年02月03日
    瀏覽(23)
  • 【PostgreSQL內(nèi)核學(xué)習(xí)(二十三)—— 執(zhí)行器(ExecEndPlan)】

    【PostgreSQL內(nèi)核學(xué)習(xí)(二十三)—— 執(zhí)行器(ExecEndPlan)】

    聲明 :本文的部分內(nèi)容參考了他人的文章。在編寫過程中,我們尊重他人的知識(shí)產(chǎn)權(quán)和學(xué)術(shù)成果,力求遵循合理使用原則,并在適用的情況下注明引用來源。 本文主要參考了 postgresql-10.1 的開源代碼和《OpenGauss數(shù)據(jù)庫(kù)源碼解析》和《PostgresSQL數(shù)據(jù)庫(kù)內(nèi)核分析》一書 ??在這三

    2024年01月17日
    瀏覽(30)
  • 【PostgreSQL內(nèi)核學(xué)習(xí)(二十一)—— 執(zhí)行器(InitPlan)】

    【PostgreSQL內(nèi)核學(xué)習(xí)(二十一)—— 執(zhí)行器(InitPlan)】

    聲明 :本文的部分內(nèi)容參考了他人的文章。在編寫過程中,我們尊重他人的知識(shí)產(chǎn)權(quán)和學(xué)術(shù)成果,力求遵循合理使用原則,并在適用的情況下注明引用來源。 本文主要參考了 postgresql-10.1 的開源代碼和《OpenGauss數(shù)據(jù)庫(kù)源碼解析》和《PostgresSQL數(shù)據(jù)庫(kù)內(nèi)核分析》一書 ??在【

    2024年01月16日
    瀏覽(24)
  • Camunda 7.x 系列【53】Job 執(zhí)行器

    有道無術(shù),術(shù)尚可求,有術(shù)無道,止于術(shù)。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源碼地址:https://gitee.com/pearl-organization/camunda-study-demo Job Executor 即任務(wù)執(zhí)行器,是 Camunda 中的一個(gè)調(diào)度組件,負(fù)責(zé)執(zhí)行異步后臺(tái)作業(yè)。 Job 表示 Job Executor 執(zhí)行的某一作業(yè),例如,在定

    2024年02月09日
    瀏覽(33)
  • xxl-job執(zhí)行器無法自動(dòng)注冊(cè)

    xxl-job執(zhí)行器無法自動(dòng)注冊(cè)

    問題描述 在springboot項(xiàng)目里配置了xxl-job2.3.0,但是執(zhí)行器無法自動(dòng)注冊(cè) yaml配置如下: 執(zhí)行器無法自動(dòng)注冊(cè)到xxl-job-admin 排查過程 經(jīng)過debug發(fā)現(xiàn),是spring沒有加載xxlJobExecutor這個(gè)Bean debug流程(SpringApplication.run()–SpringApplication.refreshContext()–SpringApplication.refresh() --SpringApplication

    2024年02月16日
    瀏覽(22)
  • Spring Boot 中的任務(wù)執(zhí)行器是什么,如何使用

    Spring Boot 中的任務(wù)執(zhí)行器是什么,如何使用

    Spring Boot 是一個(gè)非常流行的 Java 開發(fā)框架,它的核心理念是通過簡(jiǎn)單的配置和約定來提高開發(fā)效率。在很多情況下,我們需要在后臺(tái)執(zhí)行一些任務(wù),比如異步處理、定時(shí)任務(wù)等等。為了簡(jiǎn)化這些任務(wù)的開發(fā)和管理,Spring Boot 提供了一個(gè)任務(wù)執(zhí)行器(Task Executor)。 任務(wù)執(zhí)行器

    2024年02月15日
    瀏覽(19)
  • 【源碼分析】XXL-JOB的執(zhí)行器的注冊(cè)流程

    目的:分析xxl-job執(zhí)行器的注冊(cè)過程 流程: 獲取執(zhí)行器中所有被注解( @xxlJjob )修飾的 handler 執(zhí)行器注冊(cè)過程 執(zhí)行器中任務(wù)執(zhí)行過程 版本: xxl-job 2.3.1 建議:下載 xxl-job 源碼,按流程圖 debug 調(diào)試, 看堆棧信息并按文章內(nèi)容理解執(zhí)行流程 。 完整流程圖: 部分流程圖: 首先啟

    2023年04月22日
    瀏覽(23)
  • 【微軟】【ICLR 2022】TAPEX:通過學(xué)習(xí)神經(jīng) SQL 執(zhí)行器進(jìn)行表預(yù)訓(xùn)練

    【微軟】【ICLR 2022】TAPEX:通過學(xué)習(xí)神經(jīng) SQL 執(zhí)行器進(jìn)行表預(yù)訓(xùn)練

    重磅推薦專欄: 《大模型AIGC》;《課程大綱》 本專欄致力于探索和討論當(dāng)今最前沿的技術(shù)趨勢(shì)和應(yīng)用領(lǐng)域,包括但不限于ChatGPT和Stable Diffusion等。我們將深入研究大型模型的開發(fā)和應(yīng)用,以及與之相關(guān)的人工智能生成內(nèi)容(AIGC)技術(shù)。通過深入的技術(shù)解析和實(shí)踐經(jīng)驗(yàn)分享,

    2024年02月05日
    瀏覽(27)
  • MYSQL04高級(jí)_邏輯架構(gòu)剖析、查詢緩存、解析器、優(yōu)化器、執(zhí)行器、存儲(chǔ)引擎

    MYSQL04高級(jí)_邏輯架構(gòu)剖析、查詢緩存、解析器、優(yōu)化器、執(zhí)行器、存儲(chǔ)引擎

    ①. 服務(wù)器處理客戶端請(qǐng)求 ②. 連接層 系統(tǒng)(客戶端)訪問MySQL服務(wù)器前,做的第一件事就是建立TCP連接 經(jīng)過三次握手建立連接成功后,MySQL服務(wù)器對(duì)TCP傳輸過來的賬號(hào)密碼做身份認(rèn)證、權(quán)限獲取 用戶名或密碼不對(duì),會(huì)收到一個(gè)Access denied for user錯(cuò)誤,客戶端程序結(jié)束執(zhí)行用戶名密碼認(rèn)

    2024年02月12日
    瀏覽(57)
  • xxl-job中在分片的時(shí)候項(xiàng)目模塊如何開啟多個(gè)執(zhí)行器?

    在xxl-job中,要在分片時(shí)開啟多個(gè)執(zhí)行器,您需要按照以下步驟進(jìn)行操作: 1.在xxl-job的項(xiàng)目中,找到對(duì)應(yīng)的模塊(即需要開啟多個(gè)執(zhí)行器的模塊)。 2.在模塊的配置文件(通常是application.properties或application.yml)中,找到以下屬性: properties xxl.job.executor.appname= ? xxl.job.executor

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包