>From Hongyu Shi <[email protected]>:
Attention is currently required from: Hongyu Shi, Shahrzad Shirazi.
Hello Anon. E. Moose #1000171, Jenkins, Shahrzad Shirazi,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21618?usp=email
to look at the new patch set (#8).
The following approvals got outdated and were removed:
Code-Review+1 by Hongyu Shi, Integration-Tests+1 by Jenkins, Verified+1 by
Jenkins
Change subject: [ASTERIXDB-3785][COMP] Formalize CLUSTER BY WITH options
......................................................................
[ASTERIXDB-3785][COMP] Formalize CLUSTER BY WITH options
- user model changes: yes
- storage format changes: no
- interface changes: no
Details: clustering_algorithm and dimension both become mandatory and
are independent of each other. The algorithm decides which of the
remaining options a query may pass so it is no longer left to a default.
dimension is required whatever the algorithm is because it describes the
data rather than the algorithm; how many elements it must hold is the
algorithm's to say and K-Means needs one because it clusters a single
field. num_clusters, init_mode, seed, similarity and cross_pollination
are allowed only when the algorithm is K-Means where num_clusters is
mandatory.
The descriptor's AS binding becomes optional. Without it the clustering is
still readable through CLUSTER AS members and through SQL-92 style aggregates
such as COUNT(*), and a reference to a descriptor that was never named fails as
any undefined identifier does. GROUP BY can leave its key unnamed because the
key's output is the key expression's own value, so the expression itself names
it. cluster_id and centroid are computed by the algorithm and are the value of
no expression in the query, so the AS binding remains the only way to read
them. It is simply no longer required when the query does not.
Ext-ref: MB-72552
Change-Id: Iaa3724bf50fffd3b1d384a8243f5866461eabb5d
---
M
asterixdb/asterix-app/src/test/resources/optimizerts/queries/cluster-by/kmeans-init-random-validate.sqlpp
M
asterixdb/asterix-app/src/test/resources/optimizerts/queries/cluster-by/kmeans-limit-input-validate.sqlpp
M
asterixdb/asterix-app/src/test/resources/optimizerts/queries/cluster-by/kmeans-syntax-validate.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/ClusterByQueries.xml
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/join-in-from/join-in-from.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/join-in-from/join-in-from.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-budget-sensitivity/kmeans-budget-sensitivity.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-budget-sensitivity/kmeans-budget-sensitivity.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-budget-sensitivity/kmeans-budget-sensitivity.5.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-duplicate-points/kmeans-duplicate-points.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-duplicate-points/kmeans-duplicate-points.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-in-view/kmeans-in-view.1.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-init-kmeanspp/kmeans-init-kmeanspp.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-init-kmeanspp/kmeans-init-kmeanspp.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-init-random/kmeans-init-random.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-limit-input/kmeans-limit-input.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-mixed-dimensions/kmeans-mixed-dimensions.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-mixed-dimensions/kmeans-mixed-dimensions.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-mixed-dimensions/kmeans-mixed-dimensions.5.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-mixed-dimensions/kmeans-mixed-dimensions.6.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-more-clusters-than-data/kmeans-more-clusters-than-data.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-more-clusters-than-data/kmeans-more-clusters-than-data.4.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-no-descriptor/kmeans-no-descriptor.1.ddl.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-no-descriptor/kmeans-no-descriptor.2.update.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-no-descriptor/kmeans-no-descriptor.3.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-no-descriptor/kmeans-no-descriptor.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-random-init-short/kmeans-random-init-short.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-seed/kmeans-seed.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-seed/kmeans-seed.4.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-seed/kmeans-seed.5.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-syntax-noinline/kmeans-syntax-noinline.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-syntax-random/kmeans-syntax-random.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/kmeans-syntax/kmeans-syntax.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/bare-descriptor/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/clusterbymemory-below-minimum/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/dimension-nonpositive/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/dimension-not-array/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/dimension-wrong-arity/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/let-in-block/test.1.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/missing-algorithm/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/missing-dimension/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/missing-numclusters/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/nonpositive-numclusters/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/seed-not-integer/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/seed-out-of-int-range/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/setop-with-clusterby/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/unknown-descriptor-field/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/unknown-distance/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/unknown-init-mode/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/unknown-option/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/negative/unsupported-distance/test.1.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/unnest-in-from/unnest-in-from.3.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cluster-by/unnest-in-from/unnest-in-from.4.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/results/cluster-by/kmeans-no-descriptor/kmeans-no-descriptor.3.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/cluster-by/kmeans-no-descriptor/kmeans-no-descriptor.4.adm
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/ClusterbyClause.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppClusterByVisitor.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppAstPrintVisitor.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppCloneAndSubstituteVariablesVisitor.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppFormatPrintVisitor.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppExpressionScopingVisitor.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
63 files changed, 253 insertions(+), 103 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/18/21618/8
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21618?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Iaa3724bf50fffd3b1d384a8243f5866461eabb5d
Gerrit-Change-Number: 21618
Gerrit-PatchSet: 8
Gerrit-Owner: Hongyu Shi <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Hongyu Shi <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Shahrzad Shirazi <[email protected]>
Gerrit-Attention: Shahrzad Shirazi <[email protected]>
Gerrit-Attention: Hongyu Shi <[email protected]>