penberg / limbo

Limbo is a work-in-progress, in-process OLTP database management system, compatible with SQLite.
MIT License
960 stars 53 forks source link

Case insensitive column lookup #200

Closed benclmnt closed 1 month ago

benclmnt commented 1 month ago

Fix #193

Welcome to Limbo SQL shell!
> explain SELECT l_returnflag, l_linestatus FROM lineitem GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus;
addr  opcode             p1    p2    p3    p4             p5  comment
----  -----------------  ----  ----  ----  -------------  --  -------
0     Init               0     22    0                    0   Start at 22
1     SorterOpen         0     3     0     k(3,B,B)       0   cursor=0
2     OpenReadAsync      1     10    0                    0   root=10
3     OpenReadAwait      0     0     0                    0   
4     RewindAsync        1     0     0                    0   
5     RewindAwait        1     14    0                    0   
6       Column           1     8     1                    0   r[1]=lineitem.l_returnflag
7       Column           1     9     2                    0   r[2]=lineitem.l_linestatus
8       Column           1     8     3                    0   r[3]=lineitem.l_returnflag
9       Column           1     9     4                    0   r[4]=lineitem.l_linestatus
10      MakeRecord       1     4     5                    0   r[5]=mkrec(r[1..4])
11      SorterInsert     0     5     0     0              0   key=r[5]
12    NextAsync          1     0     0                    0   
13    NextAwait          1     5     0                    0   
14    OpenPseudo         2     6     5                    0   5 columns in r[6]
15    SorterSort         0     21    0                    0   
16      SorterData       0     6     2                    0   r[6]=data
17      Column           2     0     7                    0   r[7]=.l_returnflag
18      Column           2     1     8                    0   r[8]=.l_linestatus
19      ResultRow        7     2     0                    0   output=r[7..8]
20    SorterNext         0     16    0                    0   
21    Halt               0     0     0                    0   
22    Transaction        0     0     0                    0   
23    Goto               0     1     0                    0   
>