Fix bug. Date value was null when retrieved from a json expanded array.

modified:   storage/connect/tabjson.cpp

Assume timestamp is in milliseconds when it is a big integer
that is multiple of 1000.
  modified:   storage/connect/value.cpp
This commit is contained in:
Olivier Bertrand 2017-04-06 19:45:19 +02:00
parent fcfcd99e64
commit 2c16792995
2 changed files with 7 additions and 2 deletions
storage/connect

View file

@ -1171,7 +1171,8 @@ void JSONCOL::SetJsonValue(PGLOBAL g, PVAL vp, PJVAL val, int n)
case TYPE_INTG:
case TYPE_BINT:
case TYPE_DBL:
vp->SetValue_pval(val->GetValue());
case TYPE_DATE:
vp->SetValue_pval(val->GetValue());
break;
case TYPE_BOOL:
if (vp->IsTypeNum())

View file

@ -2707,7 +2707,11 @@ bool DTVAL::SetValue_pval(PVAL valp, bool chktype)
ndv = ExtractDate(valp->GetCharValue(), Pdtp, DefYear, dval);
MakeDate(NULL, dval, ndv);
} else
} else if (valp->GetType() == TYPE_BIGINT &&
!(valp->GetBigintValue() % 1000)) {
// Assuming that this timestamp is in milliseconds
Tval = valp->GetBigintValue() / 1000;
} else
Tval = valp->GetIntValue();
} else