此仓库包含Opengauss-embedded嵌入式数据库的源代码 ,还包括一些测试工具。
支持以下操作系统:
编译工具:
当前在windows上编译暂时只支持通过minGW工具进行编译,需要安装minGW/cmake/make,前提环境准备好后,在工程目录,执行 mingw32-make.exe 进行编译。
交叉编译需要配置交叉编译环境,当前交叉编译ARM仅针对鸿蒙系统,需要将鸿蒙交叉工具链和头文件准备好,并通过命令传入到编译脚本中 例如:编译arm32命令:
使用安卓官方ndk工具,将intarkdb项目放进安卓的cpp文件夹下 修改安卓项目的src目录下的build.gradle文件,在android - defaultConfig属性下添加externalNativeBuild和ndk属性,及使用externalNativeBuild属性指定CmakeLists.txt的路径,如
android {
defaultConfig {
externalNativeBuild {
cmake {
cppFlags "-landroid -std=c++17 -Wno-error=format-security -DANDROID=On -DUT=OFF -DENABLE_GCOV=OFF -DENABLE_MEMCHECK=OFF -DENABLE_EXPORT_API=ON -DSTATISTICS_O=OFF -DENABLE_BACKUP=OFF -DENABLE_LIBAIO=OFF -DSSL=OFF -DCRYPTO=OFF -DBUILD_TESTS=OFF"
arguments "-DANDROID_STL=c++_static", "-DOS_ARCH=aarch64", "-DCMAKE_BUILD_TYPE=Debug", "-DENABLE_DCC_LITE=ON"
}
}
ndk {
abiFilters 'arm64-v8a'
}
}
externalNativeBuild {
cmake {
path file('src/main/cpp/openGauss-embedded/CMakeLists.txt')
version '3.22.1'
}
}
// 其余属性如namespace、compileSdk、compileOptions、buildFeatures等按需配置,在此省略
}
然后编译项目即可
编译完成后,会在工程目录下生成output目录,当前生成两个测试demo提供对嵌入式数据库的测试。
output目录结构如下:
├── debug # 使用make/make debug/make test编译时debug版本存储引擎和SQL引擎的可执行文件和库文件保存路径
│ ├── bin # debug版本可执行文件保存路径
│ └── lib # debug版本库文件保存路径
├── inc # 第三方库文件的头文件保存路径,同以前
│ ├── cJSON
│ ├── huawei_security
│ ├── libpg_query
│ ├── libutf8proc
│ ├── zlib
│ └── fmt
└── release # 使用make release 编译时release版本存储引擎和SQL引擎的可执行文件和库文件保存路径
├── bin # release版本可执行文件保存路径
└── lib # release版本库文件保存路径
进入 output/<debug|release>/bin/目录, 可以启动客户端测试工具intarkdb_cli,后面可以跟参数指定数据文件位置 eg: ./intarkdb_cli test 进入 output/<debug|release>/bin/目录, 可以启动客户端测试工具intarkdb_cli,后面可以跟参数指定数据文件位置 eg: ./intarkdb_cli test
运行单例测试:
先执行make test
进行编译测试
运行测试: bash testshell.sh <all|sql|ts>
说明:
测试sql语句支持的类型字符串
进入build/debug/src/compute/sql/test目录
执行./pg_type_test
时,会测试固定的34中sql语句类型关键字
执行./pg_type_test [type keyword]
时,会测试[type keyword]是否是sql-engine支持的类型关键字
打印指定表元信息:
将build/debug/src/compute/sql/test目录下的assist_test拷贝到数据库所在目录
执行./assist_test <table name>
{"STACK_SIZE",GS_TRUE,ATTR_NONE,"512K","512K",NULL, "-", "-","GS_TYPE_INTEGER",GS_FALSE },
GS_RETURN_IFERR(knl_param_get_size_uint32(g_config, "STACK_SIZE", &g_instance->attr.stack_size));
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型