[
https://issues.apache.org/jira/browse/ASTERIXDB-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17895614#comment-17895614
]
ASF subversion and git services commented on ASTERIXDB-3521:
------------------------------------------------------------
Commit ce064bdf040149c7811bc8bb83c4b820af24b452 in asterixdb's branch
refs/heads/master from Hussain Towaileb
[ https://gitbox.apache.org/repos/asf?p=asterixdb.git;h=ce064bdf04 ]
[ASTERIXDB-3521][FUN]: Verify datasource function args before replicating
Ext-ref: MB-63994
Change-Id: I94f86e0f1e949e94a161d72be5531233192dd0c8
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19005
Tested-by: Jenkins <[email protected]>
Reviewed-by: Hussain Towaileb <[email protected]>
Reviewed-by: Ali Alsuliman <[email protected]>
> Datasource functions are replicated even if used with different arguments
> -------------------------------------------------------------------------
>
> Key: ASTERIXDB-3521
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-3521
> Project: Apache AsterixDB
> Issue Type: Bug
> Components: FUN - Functions
> Affects Versions: 0.9.9
> Reporter: Hussain Towaileb
> Assignee: Hussain Towaileb
> Priority: Major
> Labels: triaged
> Fix For: 0.9.10
>
>
> Datasource functions are replicated even if used with different argument
> For example the following even if called with different parameters, would end
> up replicating and returning the same result by randomly picking one of the
> functions and replicating it.
> {code:java}
> SELECT dump_index("Default", "test", "test_someName_idx") as stringIndex
> UNION ALL
> SELECT dump_index("Default", "test", "test_someField_idx") as intIndex; {code}
> Plan:
> {code:java}
> distribute result [$$11] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- DISTRIBUTE_RESULT |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> union ($$16, $$17, $$11) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- UNION_ALL |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> project ([$$16]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- STREAM_PROJECT |UNPARTITIONED|
> assign [$$16] <- [cast({"stringIndex": $$13})] [cardinality: 0.0,
> op-cost: 0.0, total-cost: 0.0]
> -- ASSIGN |UNPARTITIONED|
> project ([$$13]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- STREAM_PROJECT |UNPARTITIONED|
> assign [$$13] <- [$$15] [cardinality: 0.0, op-cost: 0.0,
> total-cost: 0.0]
> -- ASSIGN |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- REPLICATE |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> aggregate [$$15] <- [listify($$14)] [cardinality: 0.0,
> op-cost: 0.0, total-cost: 0.0]
> -- AGGREGATE |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost:
> 0.0]
> -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
> data-scan []<-[$$14] <- asterix.dump-index.
> [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- DATASOURCE_SCAN |PARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0,
> total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
> empty-tuple-source [cardinality: 0.0, op-cost:
> 0.0, total-cost: 0.0]
> -- EMPTY_TUPLE_SOURCE |PARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> project ([$$17]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- STREAM_PROJECT |UNPARTITIONED|
> assign [$$17] <- [cast({"intIndex": $$15})] [cardinality: 0.0,
> op-cost: 0.0, total-cost: 0.0]
> -- ASSIGN |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- REPLICATE |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
> aggregate [$$15] <- [listify($$14)] [cardinality: 0.0,
> op-cost: 0.0, total-cost: 0.0]
> -- AGGREGATE |UNPARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
> data-scan []<-[$$14] <- asterix.dump-index.
> [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
> -- DATASOURCE_SCAN |PARTITIONED|
> exchange [cardinality: 0.0, op-cost: 0.0, total-cost:
> 0.0]
> -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
> empty-tuple-source [cardinality: 0.0, op-cost: 0.0,
> total-cost: 0.0]
> -- EMPTY_TUPLE_SOURCE |PARTITIONED| {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)