>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 (#9).

The following approvals got outdated and were removed:
Contrib-2 by Anon. E. Moose #1000171, Integration-Tests+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 AS alias 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 an alias that was never declared 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 alias 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/9
--
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: 9
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]>

Reply via email to