You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Magda (JIRA)" <ji...@apache.org> on 2016/11/30 23:33:58 UTC

[jira] [Created] (IGNITE-4346) DML and PHP PDO: double field is converted to bigdecimal

Denis Magda created IGNITE-4346:
-----------------------------------

             Summary: DML and PHP PDO: double field is converted to bigdecimal
                 Key: IGNITE-4346
                 URL: https://issues.apache.org/jira/browse/IGNITE-4346
             Project: Ignite
          Issue Type: Bug
            Reporter: Denis Magda
            Assignee: Alexander Paschenko
            Priority: Blocker


I've set up PHP PDO and ODBC environment according to the following documentation
https://apacheignite-mix.readme.io/docs/php-pdo

In particular:
- The ODBC driver was built from the latest 1.8 sources located in ignite-1.8 branch. 
- The DSN configuration is shown in the attached screenshot name "dsn_configuration"
- Ignite's cluster configuration is attached as well.

To reproduce the issue do the following:
- start a node using attached default-config.xml
- execute insert.php. There won't be any error.
- execute update.php and you'll get the error with the stack trace below

{code}
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute DML
 statement [qry=UPDATE Person SET salary = 42000.0 WHERE salary > 50000.0, param
s=[]]
        at org.apache.ignite.internal.processors.query.GridQueryProcessor.execut
eQuery(GridQueryProcessor.java:1800)
        at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryT
woStep(GridQueryProcessor.java:810)
        ... 13 more
Caused by: class org.apache.ignite.internal.processors.query.IgniteSQLException:
 Failed to execute DML statement [qry=UPDATE Person SET salary = 42000.0 WHERE s
alary > 50000.0, params=[]]
        at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.query
TwoStep(IgniteH2Indexing.java:1270)
        at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.appl
yx(GridQueryProcessor.java:812)
        at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.appl
yx(GridQueryProcessor.java:810)
        at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOu
tClosureX.java:36)
        at org.apache.ignite.internal.processors.query.GridQueryProcessor.execut
eQuery(GridQueryProcessor.java:1777)
        ... 14 more
Caused by: class org.apache.ignite.internal.transactions.IgniteTxHeuristicChecke
dException: Failed to locally write to cache (all transaction entries will be in
validated, however there was a window when entries for this transaction were vis
ible to others): GridNearTxLocal [mappings=IgniteTxMappingsSingleImpl [mapping=G
ridDistributedTxMapping [entries=[IgniteTxEntry [key=KeyCacheObjectImpl [val=777
, hasValBytes=false], cacheId=1215863053, partId=-1, txKey=IgniteTxKey [key=KeyC
acheObjectImpl [val=777, hasValBytes=false], cacheId=1215863053], val=[op=TRANSF
ORM, val=null], prevVal=[op=NOOP, val=null], oldVal=[op=NOOP, val=null], entryPr
ocessorsCol=[IgniteBiTuple [val1=org.apache.ignite.internal.processors.query.h2.
DmlStatementsProcessor$ModifyingEntryProcessor@1f2f10da, val2=[Ljava.lang.Object
;@2bfa5294]], ttl=-1, conflictExpireTime=-1, conflictVer=null, explicitVer=null,
 dhtVer=GridCacheVersion [topVer=92027384, time=1480547401695, order=14805473813
93, nodeOrder=1], filters=[], filtersPassed=false, filtersSet=true, entry=GridDh
tColocatedCacheEntry [super=GridDhtCacheEntry [rdrs=[], locPart=GridDhtLocalPart
ition [id=777, map=org.apache.ignite.internal.processors.cache.GridCacheConcurre
ntMapImpl@24c94530, rmvQueue=GridCircularBuffer [sizeMask=255, idxGen=0], cntr=1
, shouldBeRenting=false, state=OWNING, reservations=0, empty=false, createTime=1
1/30/2016 15:09:45], super=GridDistributedCacheEntry [super=GridCacheMapEntry [k
ey=KeyCacheObjectImpl [val=777, hasValBytes=false], val=Person [idHash=659295625
, hash=-322179972, resume=Secret Service agent, firstName=James, lastName=Bond,
salary=65000.0], startVer=1480547381389, ver=GridCacheVersion [topVer=92027384,
time=1480547394518, order=1480547381390, nodeOrder=1], hash=777, extras=GridCach
eMvccEntryExtras [mvcc=GridCacheMvcc [locs=[GridCacheMvccCandidate [nodeId=08b20
b4b-3ca6-4c05-aa9d-4219cbc3f3f5, ver=GridCacheVersion [topVer=92027384, time=148
0547401693, order=1480547381392, nodeOrder=1], timeout=0, ts=1480547401693, thre
adId=57, id=3, topVer=AffinityTopologyVersion [topVer=1, minorTopVer=0], reentry
=null, otherNodeId=08b20b4b-3ca6-4c05-aa9d-4219cbc3f3f5, otherVer=GridCacheVersi
on [topVer=92027384, time=1480547401693, order=1480547381392, nodeOrder=1], mapp
edDhtNodes=null, mappedNearNodes=null, ownerVer=null, serOrder=null, key=KeyCach
eObjectImpl [val=777, hasValBytes=false], masks=local=1|owner=1|ready=1|reentry=
0|used=0|tx=1|single_implicit=1|dht_local=1|near_local=0|removed=0, prevVer=null
, nextVer=null]], rmts=null]], flags=0]]]], prepared=1, locked=false, nodeId=08b
20b4b-3ca6-4c05-aa9d-4219cbc3f3f5, locMapped=false, expiryPlc=null, transferExpi
ryPlc=false, flags=6, partUpdateCntr=0, serReadVer=null, xidVer=GridCacheVersion
 [topVer=92027384, time=1480547401693, order=1480547381392, nodeOrder=1]]], expl
icitLock=false, dhtVer=GridCacheVersion [topVer=92027384, time=1480547401693, or
der=1480547381392, nodeOrder=1], last=false, near=false, clientFirst=false, node
=08b20b4b-3ca6-4c05-aa9d-4219cbc3f3f5]], nearLocallyMapped=false, colocatedLocal
lyMapped=true, needCheckBackup=null, hasRemoteLocks=false, thread=odbc-#27%null%
, mappings=IgniteTxMappingsSingleImpl [mapping=GridDistributedTxMapping [entries
=[IgniteTxEntry [key=KeyCacheObjectImpl [val=777, hasValBytes=false], cacheId=12
15863053, partId=-1, txKey=IgniteTxKey [key=KeyCacheObjectImpl [val=777, hasValB
ytes=false], cacheId=1215863053], val=[op=TRANSFORM, val=null], prevVal=[op=NOOP
, val=null], oldVal=[op=NOOP, val=null], entryProcessorsCol=[IgniteBiTuple [val1
=org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor$Modifying
EntryProcessor@1f2f10da, val2=[Ljava.lang.Object;@2bfa5294]], ttl=-1, conflictEx
pireTime=-1, conflictVer=null, explicitVer=null, dhtVer=GridCacheVersion [topVer
=92027384, time=1480547401695, order=1480547381393, nodeOrder=1], filters=[], fi
ltersPassed=false, filtersSet=true, entry=GridDhtColocatedCacheEntry [super=Grid
DhtCacheEntry [rdrs=[], locPart=GridDhtLocalPartition [id=777, map=org.apache.ig
nite.internal.processors.cache.GridCacheConcurrentMapImpl@24c94530, rmvQueue=Gri
dCircularBuffer [sizeMask=255, idxGen=0], cntr=1, shouldBeRenting=false, state=O
WNING, reservations=0, empty=false, createTime=11/30/2016 15:09:45], super=GridD
istributedCacheEntry [super=GridCacheMapEntry [key=KeyCacheObjectImpl [val=777,
hasValBytes=false], val=Person [idHash=659295625, hash=-322179972, resume=Secret
 Service agent, firstName=James, lastName=Bond, salary=65000.0], startVer=148054
7381389, ver=GridCacheVersion [topVer=92027384, time=1480547394518, order=148054
7381390, nodeOrder=1], hash=777, extras=GridCacheMvccEntryExtras [mvcc=GridCache
Mvcc [locs=[GridCacheMvccCandidate [nodeId=08b20b4b-3ca6-4c05-aa9d-4219cbc3f3f5,
 ver=GridCacheVersion [topVer=92027384, time=1480547401693, order=1480547381392,
 nodeOrder=1], timeout=0, ts=1480547401693, threadId=57, id=3, topVer=AffinityTo
pologyVersion [topVer=1, minorTopVer=0], reentry=null, otherNodeId=08b20b4b-3ca6
-4c05-aa9d-4219cbc3f3f5, otherVer=GridCacheVersion [topVer=92027384, time=148054
7401693, order=1480547381392, nodeOrder=1], mappedDhtNodes=null, mappedNearNodes
=null, ownerVer=null, serOrder=null, key=KeyCacheObjectImpl [val=777, hasValByte
s=false], masks=local=1|owner=1|ready=1|reentry=0|used=0|tx=1|single_implicit=1|
dht_local=1|near_local=0|removed=0, prevVer=null, nextVer=null]], rmts=null]], f
lags=0]]]], prepared=1, locked=false, nodeId=08b20b4b-3ca6-4c05-aa9d-4219cbc3f3f
5, locMapped=false, expiryPlc=null, transferExpiryPlc=false, flags=6, partUpdate
Cntr=0, serReadVer=null, xidVer=GridCacheVersion [topVer=92027384, time=14805474
01693, order=1480547381392, nodeOrder=1]]], explicitLock=false, dhtVer=GridCache
Version [topVer=92027384, time=1480547401693, order=1480547381392, nodeOrder=1],
 last=false, near=false, clientFirst=false, node=08b20b4b-3ca6-4c05-aa9d-4219cbc
3f3f5]], super=GridDhtTxLocalAdapter [nearOnOriginatingNode=false, nearNodes=[],
 dhtNodes=[], explicitLock=false, super=IgniteTxLocalAdapter [completedBase=null
, sndTransformedVals=false, depEnabled=false, txState=IgniteTxImplicitSingleStat
eImpl [init=true], super=IgniteTxAdapter [xidVer=GridCacheVersion [topVer=920273
84, time=1480547401693, order=1480547381392, nodeOrder=1], writeVer=GridCacheVer
sion [topVer=92027384, time=1480547401695, order=1480547381393, nodeOrder=1], im
plicit=true, loc=true, threadId=57, startTime=1480547401693, nodeId=08b20b4b-3ca
6-4c05-aa9d-4219cbc3f3f5, startVer=GridCacheVersion [topVer=92027384, time=14805
47401693, order=1480547381392, nodeOrder=1], endVer=null, isolation=READ_COMMITT
ED, concurrency=OPTIMISTIC, timeout=0, sysInvalidate=false, sys=false, plc=2, co
mmitVer=GridCacheVersion [topVer=92027384, time=1480547401693, order=14805473813
92, nodeOrder=1], finalizing=NONE, preparing=false, invalidParts=null, state=COM
MITTING, timedOut=false, topVer=AffinityTopologyVersion [topVer=1, minorTopVer=0
], duration=0ms, onePhaseCommit=true], size=1]]]
        at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLoca
lAdapter.userCommit(IgniteTxLocalAdapter.java:950)
        at org.apache.ignite.internal.processors.cache.distributed.near.GridNear
TxLocal.finish(GridNearTxLocal.java:747)
        at org.apache.ignite.internal.processors.cache.distributed.near.GridNear
TxFinishFuture.finish(GridNearTxFinishFuture.java:418)
        at org.apache.ignite.internal.processors.cache.distributed.near.GridNear
TxLocal$4.apply(GridNearTxLocal.java:868)
        at org.apache.ignite.internal.processors.cache.distributed.near.GridNear
TxLocal$4.apply(GridNearTxLocal.java:860)
        at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListen
er(GridFutureAdapter.java:264)
        at org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridF
utureAdapter.java:227)
        at org.apache.ignite.internal.processors.cache.distributed.near.GridNear
TxLocal.commitAsync(GridNearTxLocal.java:860)
        at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLoca
lAdapter.optimisticPutFuture(IgniteTxLocalAdapter.java:3219)
        at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLoca
lAdapter.putAllAsync0(IgniteTxLocalAdapter.java:3185)
        at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLoca
lAdapter.invokeAsync(IgniteTxLocalAdapter.java:1907)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter$33.op(Gr
idCacheAdapter.java:2518)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter$33.op(Gr
idCacheAdapter.java:2514)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter.syncOp(G
ridCacheAdapter.java:4351)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter.invokeAl
l(GridCacheAdapter.java:2514)
        at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor
.processPage(DmlStatementsProcessor.java:758)
        at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor
.doUpdate(DmlStatementsProcessor.java:535)
        at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor
.executeUpdateStatement(DmlStatementsProcessor.java:285)
        at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor
.updateSqlFields(DmlStatementsProcessor.java:155)
        at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor
.updateSqlFieldsTwoStep(DmlStatementsProcessor.java:185)
        at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.query
TwoStep(IgniteH2Indexing.java:1266)
        ... 18 more
Caused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to
java.lang.Double
        at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$RowDe
scriptor.wrap(IgniteH2Indexing.java:2962)
        at org.apache.ignite.internal.processors.query.h2.opt.GridH2AbstractKeyV
alueRow.getValue(GridH2AbstractKeyValueRow.java:316)
        at org.h2.index.BaseIndex.compareRows(BaseIndex.java:294)
        at org.apache.ignite.internal.processors.query.h2.opt.GridH2TreeIndex$2.
compare(GridH2TreeIndex.java:103)
        at org.apache.ignite.internal.processors.query.h2.opt.GridH2TreeIndex$2.
compare(GridH2TreeIndex.java:95)
        at java.util.concurrent.ConcurrentSkipListMap.cpr(ConcurrentSkipListMap.
java:655)
        at java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMa
p.java:835)
        at java.util.concurrent.ConcurrentSkipListMap.put(ConcurrentSkipListMap.
java:1581)
        at org.apache.ignite.internal.processors.query.h2.opt.GridH2TreeIndex.pu
t(GridH2TreeIndex.java:362)
        at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.doUpda
te(GridH2Table.java:566)
        at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.update
(GridH2Table.java:495)
        at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.store
(IgniteH2Indexing.java:603)
        at org.apache.ignite.internal.processors.query.GridQueryProcessor.store(
GridQueryProcessor.java:737)
        at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManag
er.store(GridCacheQueryManager.java:431)
        at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.updateI
ndex(GridCacheMapEntry.java:4019)
        at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerSe
t(GridCacheMapEntry.java:1253)
        at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLoca
lAdapter.userCommit(IgniteTxLocalAdapter.java:784)
        ... 38 more
{code} 





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)