[ 
https://issues.apache.org/jira/browse/IGNITE-4346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Sapego resolved IGNITE-4346.
---------------------------------
    Resolution: Fixed
      Assignee: Alexander Paschenko  (was: Igor Sapego)

> 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
>             Fix For: 1.8
>
>         Attachments: default-config.xml, dsn_configuration.png, insert.php, 
> update.php
>
>
> 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)

Reply via email to