再下有个疑问,比如sqlite以内存的形式运行:memory:,sqlite内部是怎么新建一张表或者新插入表的一个属性的。内存空间不是已经分配好的吗?我看了sqlite源码中main函数可以一直接受命令行输入,难道是每一条命令之后,sqlite内存都重新构建一次??望高手指教
------解决方案--------------------------------------------------------
sqlite源码有个process_input函数一直循环处理sql语句,然后经过语法分析、gernerate code生成操作的选项,进行插入、删除的操作。sqlite内部维护一个空闲内存链表,可以分配。