MCPcopy Create free account
hub / github.com/bloomberg/comdb2 / lua_to_sqlite

Function lua_to_sqlite

lua/sp.c:6902–6955  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6900}
6901
6902static int lua_to_sqlite(Lua L, sqlite3_context *context)
6903{
6904 if (lua_isnil(L, 1) || luabb_isnull(L, 1)) {
6905 sqlite3_result_null(context);
6906 return 0;
6907 }
6908
6909 all_types_t t;
6910 dttz_t dt;
6911
6912 switch (luabb_type(L, 1)) {
6913 case LUA_TBOOLEAN:
6914 sqlite3_result_int64(context, lua_toboolean(L, 1));
6915 break;
6916 case LUA_TNUMBER: sqlite3_result_double(context, lua_tonumber(L, 1)); break;
6917 case DBTYPES_REAL:
6918 sqlite3_result_double(context, luabb_tonumber(L, 1));
6919 break;
6920 case LUA_TSTRING:
6921 case DBTYPES_CSTRING:
6922 sqlite3_result_text(context, luabb_tostring(L, 1), -1,
6923 SQLITE_TRANSIENT);
6924 break;
6925 case DBTYPES_INTEGER:
6926 luabb_tointeger(L, 1, &t.in);
6927 sqlite3_result_int64(context, t.in);
6928 break;
6929 case DBTYPES_BLOB:
6930 luabb_toblob(L, 1, &t.bl);
6931 sqlite3_result_blob(context, t.bl.data, t.bl.length, SQLITE_TRANSIENT);
6932 break;
6933 case DBTYPES_DATETIME:
6934 luabb_todatetime(L, 1, &t.dt);
6935 datetime_t_to_dttz(&t.dt, &dt);
6936 sqlite3_result_datetime(context, &dt, t.dt.tzname);
6937 break;
6938 case DBTYPES_INTERVALDS:
6939 luabb_tointervalds(L, 1, &t.iv);
6940 sqlite3_result_interval(context, &t.iv);
6941 break;
6942 case DBTYPES_INTERVALYM:
6943 luabb_tointervalym(L, 1, &t.iv);
6944 sqlite3_result_interval(context, &t.iv);
6945 break;
6946 case DBTYPES_DECIMAL:
6947 luabb_todecimal(L, 1, &t.dq);
6948 sqlite3_result_decimal(context, &t.dq);
6949 break;
6950 default:
6951 sqlite3_result_error(context, "can't return that type, yet..", -1);
6952 return -1;
6953 }
6954 return 0;
6955}
6956
6957static int sqlite_to_lua(Lua L, const char *tz, int argc, sqlite3_value **argv)
6958{

Callers 1

emit_sqlite_resultFunction · 0.85

Calls 15

luabb_isnullFunction · 0.85
sqlite3_result_nullFunction · 0.85
luabb_typeFunction · 0.85
sqlite3_result_int64Function · 0.85
lua_tobooleanFunction · 0.85
sqlite3_result_doubleFunction · 0.85
lua_tonumberFunction · 0.85
luabb_tonumberFunction · 0.85
sqlite3_result_textFunction · 0.85
luabb_tostringFunction · 0.85
luabb_tointegerFunction · 0.85
luabb_toblobFunction · 0.85

Tested by

no test coverage detected