首页 > 其他分享 >risinglight-tutorial 学习笔记

risinglight-tutorial 学习笔记

时间:2024-02-13 09:55:06浏览次数:35  
标签:risinglight outputs sql 笔记 let stmt Sql 解析 tutorial

01-01 hello-sql

该示例提供了一个将Sql解析为语法树并返回select 'hello';中字符串的逻辑
其核心逻辑如下:

    pub fn run(&self, sql: &str) -> Result<Vec<String>, Error> {
        // parse -- 借用开源的PostgreSqlDialect进行Sql的解析
        // 来自 sqlparser-0.13.0 解析为Statement类型
        // 返回的是一个list的原因是一个Sql可能包含多条语句
        let stmts = parse(sql)?;

        let mut outputs = vec![];
        // 这里直接对每条Sql的输出进行打印. 没有做跨Sql语句的变量什么的定义
        for stmt in stmts {
            debug!("execute: {:#?}", stmt);
            // 实际的执行函数
            let output = execute(&stmt);
            // 插入结果列表
            outputs.extend(output);
        }
        Ok(outputs)
    }

该项目学习停止了, 由于进行测试后发现, 该项目在较为复杂的谓词下推中存在错误, 其本身节点实现方式存在问题

标签:risinglight,outputs,sql,笔记,let,stmt,Sql,解析,tutorial
From: https://www.cnblogs.com/NoobSirPersonalBlog/p/17595082.html

相关文章

  • 读千脑智能笔记12_阻止人类灭绝
    1. 阻止人类灭绝1.1. 宇宙中唯一知道这些的物体,唯一知道宇宙存在的物体,是我们的大脑1.2. 如果没有关于某个事物的知识,我们能说这个事物就一定存在吗?1.2.1. 我们的大脑扮演着这样一个独特的角色,这很令人着迷1.3. 30%的大脑,即旧脑,是由许多不同部分组成的1.3.1. 旧脑......
  • 2024/2/12学习进度笔记
    sparkrdd持久化frompysparkimportSparkContext,SparkConfimportosimportrefrompyspark.storagelevelimportStorageLevelos.environ['SPARK_HOME']='/export/server/spark'PYSPARK_PYTHON="/root/anaconda3/envs/pyspark_env/bin......
  • Suffix Array:后缀数组学习笔记
    后缀排序后缀排序,顾名思义就是给后缀排个序。朴素做法是\(O(n^2\logn)\)的,无法接受。因此诞生了基于倍增思想的后缀排序算法。其中倍增思想在集训队论文中讲得很好,在此不再赘述。这里主要讲代码实现。constintN=2e6+10;chars[N];intn,m,sa[N],rk[N],tp[N],b[N];void......
  • 图论笔记
    最短路相关最短路基础\(\mathbf{Floyed}\)求最短路本质上是dp。设\(f(w,i,j)\)表示当前松弛到第\(w\)轮,\(i\rightarrowj\)的最短路是\(f(w,i,j)\)。转移显然是:\[f(w,i,j)=f(w-1,i,k)+f(w-1,k,j)\]\(w\)显然可以滚掉。时间复杂度\(O(n^3)\)......
  • esp32笔记[15]-使用LVGL 9.0显示图片
    摘要在esp32s3上使用LVGL9.0显示图片.关键信息编译环境:ESP-IDFv4.4LVGL:9.0board:酷世DIYESP32S3开发板Link:https://item.taobao.com/item.htm?&id=655913924680flashsize:8MBLCDdriver:ILI9341LCDmodule:2.4TFTSPI240x320v1.2Touchdriver:XPT2046......
  • 线段树分治学习笔记
    线段树分治线段树分治是一种可以离线处理带撤销问题的常用手段。一般而言,题目中加入操作很好维护,但删除操作不好维护,这时可以对时间维建线段树,把每一个操作加入其存在时间段对应的线段树节点上,然后处理所有询问,进入一个节点时将这个节点里的操作加入,递归左右儿子,然后撤销这一次做......
  • 快速幂学习笔记
    我们不妨先来看一道例题了解一下快速幂:【模板】快速幂Atemplate.观察到数据,\(a,b\le2^{31}\),普通的乘法是肯定不行的。因此考虑优化:快速幂。什么是快速幂?顾名思义,就是快速地求出幂(\(a^b\))。怎么快速地求出幂?将\(a^b\)展开,可得:\[a^b=\underbrace{a\timesa\timesa......
  • 【笔记】矩阵快速幂
    前置芝士快速幂。什么是矩阵?矩阵,是由\(\begin{bmatrix}\end{bmatrix}\)组成的一个方阵(就这么理解好啦)。比如:\(\begin{bmatrix}1&2\\3&4\end{bmatrix}\)是一个\(2\times2\)的矩阵。矩阵乘法矩阵乘法的条件:仅当第\(1\)个矩阵的列数\(=\)第\(2\)个矩阵的行数才有......
  • boruvka 算法学习笔记
    boruvka算法就是最小生成树B算法。B算法的思路是每次对每个连通块,求出它能连出去的权值最小的边,然后再按边权从小到大合并。由于每次操作连通块数至少减半,所以复杂度是\(O(m\logn)\)。1.CF1305GKuroniandAntihype题意:长为\(n\)的数列\(a\),现在要选择全部数,每一次你......
  • C++——异常处理模块笔记
    异常处理是C++中的重要概念之一,用于处理在程序执行过程中可能发生的错误或异常情况。异常是指在程序执行过程中发生的一些不寻常的事件,例如除零错误、访问无效内存等。C++提供了一套异常处理机制,使得程序可以优雅地处理这些异常,提高程序的可靠性和健壮性。异常是一种程序......