calcite sqlNode-->relNode(SqlInsert)

String sql = "insert into users (id,names) values ('3', 'gaowei')";
// 一條插入語(yǔ)句

DEBUG 過(guò)程

SqlInsert有以下幾個(gè)屬性

SqlNodeList keywords;
SqlNode targetTable;
SqlNode source;
SqlNodeList columnList;

SqlInsert 的 targetTable 是users
也就是一開(kāi)始注冊(cè)進(jìn)入rootSchema 中的users 這張表

image.png

SqlInsert 的source
也就是我們要插入的數(shù)據(jù)
source 中的內(nèi)容仍然以是一個(gè)SqlBasicCall , VALUES 是他的oprator 操作符


image.png

對(duì)于這個(gè)Insert 的targetNameSpace 是一個(gè)tableNameSpace
nameSpace 是一個(gè)點(diǎn)前的操作的上下文,也就是他可以看到的一個(gè)空間,和scope 一樣, 是在特定的操作之下的一個(gè)范圍的限制。 后面會(huì)單獨(dú)在去做這種解析。
在debug 過(guò)程中看到的幾個(gè)table ,這幾個(gè)relOptTable 中都最后含有一個(gè)table對(duì)象,他們的地址都是一樣的,是我們最早在test里面注冊(cè)到meta里面的users 表。 這個(gè)表是直接new 出來(lái)的,override 了抽象類(lèi)AbstractTable的getRowType方法,所以在debug過(guò)程中是以CalciteProcessTest$1的形式出現(xiàn)。 并在在那個(gè)表的實(shí)現(xiàn)中沒(méi)有補(bǔ)足他的任何field, 在debug過(guò)程中會(huì)顯示has no class filed。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 7,964評(píng)論 0 4
  • 公元:2019年11月28日19時(shí)42分農(nóng)歷:二零一九年 十一月 初三日 戌時(shí)干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 7,489評(píng)論 0 2
  • 年紀(jì)越大,人的反應(yīng)就越遲鈍,腦子就越不好使,計(jì)劃稍有變化,就容易手忙腳亂,亂了方寸。 “玩壞了”也是如此,不但會(huì)亂...
    玩壞了閱讀 2,351評(píng)論 2 1
  • 感動(dòng) 我在你的眼里的樣子,就是你的樣子。 相互內(nèi)化 沒(méi)有絕對(duì)的善惡 有因必有果 當(dāng)你以自己的價(jià)值觀幸福感去要求其他...
    周粥粥叭閱讀 1,741評(píng)論 1 5
  • 昨天考過(guò)了阿里規(guī)范,心里舒坦了好多,敲代碼也猶如神助。早早完成工作回家嘍
    常亞星閱讀 3,267評(píng)論 0 1

友情鏈接更多精彩內(nèi)容