Guest User

Untitled

a guest
Dec 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. void
  2. mpstream_encode_vdbe_mem(struct mpstream *stream, struct Mem *var)
  3. {
  4. assert(memIsValid(var));
  5. if (var->flags & MEM_Null) {
  6. mpstream_encode_nil(stream);
  7. } else if (var->flags & MEM_Real) {
  8. mpstream_encode_double(stream, var->u.r);
  9. } else if (var->flags & MEM_Int) {
  10. if (var->u.i >= 0) {
  11. mpstream_encode_uint(stream, var->u.i);
  12. } else {
  13. mpstream_encode_int(stream, var->u.i);
  14. }
  15. } else if (var->flags & MEM_Str) {
  16. mpstream_encode_strn(stream, var->z, var->n);
  17. } else if (var->flags & MEM_Bool) {
  18. mpstream_encode_bool(stream, var->u.b);
  19. } else {
  20. /* Emit BIN header iff the BLOB doesn't store MsgPack content */
  21. if ((var->flags & MEM_Subtype) == 0 ||
  22. var->subtype != SQL_SUBTYPE_MSGPACK) {
  23. uint32_t binl = var->n +
  24. ((var->flags & MEM_Zero) ?
  25. var->u.nZero : 0);
  26. mpstream_encode_binl(stream, binl);
  27. }
  28. mpstream_encode_raw(stream, var->z, var->n);
  29. if (var->flags & MEM_Zero) {
  30. for (int i = 0; i < var->u.nZero; i ++)
  31. mpstream_encode_nil(stream);
  32. }
  33. }
  34. }
Add Comment
Please, Sign In to add comment