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

Function l_cmp

lua/ltypes.c:1000–1033  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

998}
999
1000static int l_cmp(Lua lua, int op)
1001{
1002 nullchk(lua, 1);
1003 nullchk(lua, 2);
1004
1005 rank_t rank1 = getrank(lua, 1);
1006 rank_t rank2 = getrank(lua, 2);
1007
1008 rank_t min = rank1 < rank2 ? rank1 : rank2;
1009 rank_t max = rank1 > rank2 ? rank1 : rank2;
1010
1011 if (min == 0) { // got one nil
1012 if (op == LUA_OP_EQ)
1013 lua_pushboolean(lua, 0); // nil compares false in equality
1014 else
1015 typecmperr(lua, 1, 2);
1016 return 0;
1017 }
1018
1019 switch (max) {
1020 case RANK_INT: l_int_cmp(lua, op); break;
1021 case RANK_REAL: l_real_cmp(lua, op); break;
1022 case RANK_DECIMAL: l_decimal_cmp(lua, op); break;
1023 case RANK_INTERVALDS: l_intervalds_cmp(lua, op); break;
1024 case RANK_INTERVALYM: l_intervalym_cmp(lua, op); break;
1025 case RANK_DATETIME: l_datetime_cmp(lua, op); break;
1026 default:
1027 if (op == LUA_OP_EQ)
1028 lua_pushboolean(lua, 0);
1029 else
1030 typecmperr(lua, 1, 2);
1031 }
1032 return 0;
1033}
1034
1035static int l_eq(Lua lua)
1036{

Callers 6

l_eqFunction · 0.85
l_ltFunction · 0.85
l_leFunction · 0.85
l_cstring_eqFunction · 0.85
l_cstring_ltFunction · 0.85
l_cstring_leFunction · 0.85

Calls 9

getrankFunction · 0.85
lua_pushbooleanFunction · 0.85
typecmperrFunction · 0.85
l_int_cmpFunction · 0.85
l_real_cmpFunction · 0.85
l_decimal_cmpFunction · 0.85
l_intervalds_cmpFunction · 0.85
l_intervalym_cmpFunction · 0.85
l_datetime_cmpFunction · 0.85

Tested by

no test coverage detected