Skip to content

[CALCITE-2483] Fix integer overflow in Druid segment metadata query - #799

Closed
zhztheplayer wants to merge 1 commit into
apache:masterfrom
zhztheplayer:2483
Closed

[CALCITE-2483] Fix integer overflow in Druid segment metadata query#799
zhztheplayer wants to merge 1 commit into
apache:masterfrom
zhztheplayer:2483

Conversation

@zhztheplayer

@zhztheplayer zhztheplayer commented Aug 22, 2018

Copy link
Copy Markdown
Member

As description at CALCITE-2483. Both the numRows and size have long type in Druid source code, Calcite should match that.

…hrows when row number is larger than Integer.MAX_VALUE
julianhyde pushed a commit to julianhyde/calcite that referenced this pull request Aug 29, 2018
…hrows when row number is larger than Integer.MAX_VALUE (Hongze Zhang)

Close apache#799
@asfgit asfgit closed this in 0d707e4 Aug 29, 2018
pengzhiwei2018 pushed a commit to pengzhiwei2018/calcite that referenced this pull request Sep 11, 2018
[CALCITE-2462] RexProgramTest: replace nullLiteral->nullInt, unknownLiteral->nullBool for brevity

Update Michael Mior's affiliation

Site: Update Julian Hyde's affiliation

[CALCITE-2480] NameSet.contains wrongly returns false when element in set is upper-case and seek is lower-case

Implement toString, hashCode and equals for NameSet, NameMap and
NameMultimap; and add tests.

Fix some cosmetic issues in other code, such as missing newline at end
of file.

[CALCITE-2467] Upgrade owasp-dependency-check maven plugin to 3.3.1

[CALCITE-2481] NameSet assumes lower-case characters have greater codes, which does not hold for certain characters

Includes EquivalenceSet, a nice general-purpose class to compute
reflexive, symmetric, transitive closure.

[CALCITE-2271] Join of two views with window aggregates produces incorrect results or NPE

Avoid NPE in BlockBuilder.append when empty variable initializer is used

closes apache#673

[CALCITE-2327] Avoid simplification of x AND NOT(x) to false for nullable x

x AND NOT(x) ==> FALSE AND x IS NULL

closes apache#707

[CALCITE-311] Added a test-case for filter after window aggregate

Filters should not be pushed through window aggregate since it might impact results.

[CALCITE-2494] RexFieldAccess should implement equals/hashCode

[CALCITE-2327] RexSimplify: AND(x, y, NOT(y)) ==> AND(x, null, IS NULL(y))

[CALCITE-2497] Update Janino version to 3.0.9

[CALCITE-2495] Support encoded URLs in calcite.util.Source, and use it for URL->File conversion in tests

For the record:
1) URL.getPath() produces %20, so it is added to forbidden signatures
2) Paths.get(url.toURI()).toFile() almost works, however it fails with URL is not hierarchical for new URL("file:test.java")
3) new File(URL.toURI() is worse than apache#2
4) URLDecoder must not be used to decode %20, since it will convert + to spaces as well, thus it will corrupt test.c++ filenames
5) It looks like url.toURI().getSchemeSpecificPart()) properly handles "opaque" URIs (which are relative file:test.java kind of URLs)
6) file:/test is relative for Windows, and absolute would be like file:c:/test

MockCatalogReader is used in testing, so cache should be disabled there to avoid thread conflicts and/or stale results

Support AND, OR, COALESCE, IS...DISTINCT in RexUtil#op

[CALCITE-2505] Add ignored test for fail in RexSimplify with IS DISTINCT FROM

Simplification of isFalse(isNotDistinctFrom(vBool(0), vBool(1))) causes AssertionError: wrong operand count 1 for IS DISTINCT FROM

[CALCITE-2506] Add ignored test for fail in RexSimplify with coalesce

coalesce(unaryPlus(nullInt), unaryPlus(vInt())) fails with
result mismatch: when applied to {?0.int0=-1}, COALESCE(+(null), +(?0.int0)) yielded -1, and +(null) yielded NULL

[CALCITE-2483] Druid adapter, when querying Druid segment metadata, throws when row number is larger than Integer.MAX_VALUE (Hongze Zhang)

Close apache#799

[CALCITE-2469] RexSimplify should optimize '(NOT x) IS NULL' to 'x IS NULL' (pengzhiwei)

Previously it optimized '(NOT x) IS NULL' to 'x IS NOT NULL', which is
wrong.

Generalize the above, to simplify 'f(x) IS NULL' to 'x IS NULL' for any
operator 'f' that is known to be strong. (Julian Hyde)

Close apache#796

[CALCITE-1026] Allow models in YAML format

Make JSON/YAML mappers static final.

Add tests to check model inline: json and yaml and to check model uri
to hson/yaml files.

Close apache#791

[CALCITE-2486] Upgrade Apache parent POM to version 21

Also upgrade
commons-dbcp2 to 2.5.0,
commons-lang3 to 3.8,
commons-pool to 2.6.0,
esri-geometry-api to 2.2.0,
h2 to 1.4.197,
hsqldb to 2.4.1,
httpclient to 2.5.6,
httpcore to 4.4.10,
java-diff to 1.1.2,
jsoup to 1.11.3,
maven-dependency-plugin to 3.1.1,
maven-enforcer-plugin to 3.0.0-M2,
mockito to 2.21.0.

[CALCITE-2470] In RelBuilder, project method should combine expressions if the underlying node is a Project

Add RelBuilder.shouldMergeProject() to allow sub-classes to disable
merging.

Improve the message given by CompositeMatcher when match fails.

When RelStructuredTypeFlattener rewrites a RexInputRef be sure to use
the field's new type. (It might have strengthened from say INTEGER to
INTEGER NOT NULL.)

Add a test case inspired by Drill (it passes in Calcite, but I gather
it fails in Drill).

[CALCITE-1026] Fix ModelTest#testYamlFileDetection when source folder has spaces

[CALCITE-1026] Remove unused import

[CALCITE-2520] Make SparkHandlerImpl#compile silent by default, print code in calcite.debug=true mode only

[CALCITE-2519] Silence ERROR logs from CalciteException, SqlValidatorException during tests

Use threadCount=1/perCoreThreadCount=false to disable parallel test execution at Travis

Previous option -Dsurefire.parallel= made JUnit to log just CalciteSuite details,
thus the test looked like a stuck one

fixes apache#816

Skip second Checkstyle execution during Travis CI build

Checkstyle is validated during mvn install part, so there's no need to repeat that

[CALCITE-2491] Refactor NameSet, NameMap, and NameMultimap

Collections are thread-safe when used in read-only scenarios.
Name*.immutableCopyOf are always thread-safe as writes are prohibited :)

fixes apache#815

[CALCITE-2512] Move StreamTest#ROW_GENERATOR to Table.scan().iterator to make it not shared between threads (Sergey Nuyanzin)

fixes apache#813

[CALCITE-2498] fix bug when geode adapter quotes booleans as strings (Andrei Sereda)

GeodeFilter was incorrectly quoting boolean literals as SQL strings ('true' instead of true)

fixes apache#809

[CALCITE-2522] Remove e.printStackTrace() from CalciteAssert#returns

[CALCITE-2514] Add SqlIdentifier conversion to ITEM operator for dynamic tables in ExtendedExpander (Arina Ielchiieva)

Close apache#814

Following [CALCITE-2469] simplify "f(x, y) IS NULL" to "x IS NULL OR y IS NULL" if "f" is strong

Previously we did not use OR, which was wrong.

[CALCITE-2418] Remove matchRecognize field of SqlSelect

[CALCITE-2433] SqlAdvisor: support configurable quoting characters

[CALCITE-2434] SqlAdvisor: support hints for nested tables/schemas

[CALCITE-2473] SqlAdvisor: support -- comments

[CALCITE-2474] SqlAdvisor: avoid NPE in lookupFromHints where FROM is empty

[CALCITE-2475] SqlAdvisor: support MINUS

[CALCITE-2476] SqlAdvisor: produce hints when sub-query with * is present in query

simplifySql produced 0 AS "*", and it caused the SQL to fail validation.
The fix is to disable transformation of expressions to "0 as ...", so it keeps select * as is.

[CALCITE-2477] SqlAdvisor: scalar sub-query support

[CALCITE-2478] SqlAdvisor: purge from_clause when _suggest_ token is located in one of the from sub-queries

[CALCITE-2479] SqlAdvisor: automatically quote identifiers that look like SQL keywords

[CALCITE-2484] Move dynamic tests to a separate class like SqlValidatorDynamicTest, and  avoid reuse of MockCatalogReaderDynamic

[CALCITE-2484] Add SqlValidatorDynamicTest to CalciteSuite

[CALCITE-2521] Guard RelMetadataTest#testMetadataHandlerCacheLimit with CalciteAssert.ENABLE_SLOW

The test does not reproduce the original bug, and it is very slow to execute.

[CALCITE-2523] Guard PartiallyOrderedSetTest#testPosetBitsLarge with CalciteAssert.ENABLE_SLOW

Reduce HepPlannerTest#testRuleApplyCount complexity

[CALCITE-2543] Upgrade SQLLine to 1.5.0

[CALCITE-2112] Add Maven wrapper for Calcite (Ratandeep S. Ratti)

Update doc, remove maven jar; add jar to .gitignore (Julian Hyde)

Use TLS 1.2 on windows (Sergey Nuyanzin)

[CALCITE-2412] Add Windows CI via AppVeyor (Sergey Nuyanzin)

fixes apache#757
pengzhiwei2018 pushed a commit to pengzhiwei2018/calcite that referenced this pull request Sep 17, 2018
[CALCITE-2462] RexProgramTest: replace nullLiteral->nullInt, unknownLiteral->nullBool for brevity

Update Michael Mior's affiliation

Site: Update Julian Hyde's affiliation

[CALCITE-2480] NameSet.contains wrongly returns false when element in set is upper-case and seek is lower-case

Implement toString, hashCode and equals for NameSet, NameMap and
NameMultimap; and add tests.

Fix some cosmetic issues in other code, such as missing newline at end
of file.

[CALCITE-2467] Upgrade owasp-dependency-check maven plugin to 3.3.1

[CALCITE-2481] NameSet assumes lower-case characters have greater codes, which does not hold for certain characters

Includes EquivalenceSet, a nice general-purpose class to compute
reflexive, symmetric, transitive closure.

[CALCITE-2271] Join of two views with window aggregates produces incorrect results or NPE

Avoid NPE in BlockBuilder.append when empty variable initializer is used

closes apache#673

[CALCITE-2327] Avoid simplification of x AND NOT(x) to false for nullable x

x AND NOT(x) ==> FALSE AND x IS NULL

closes apache#707

[CALCITE-311] Added a test-case for filter after window aggregate

Filters should not be pushed through window aggregate since it might impact results.

[CALCITE-2494] RexFieldAccess should implement equals/hashCode

[CALCITE-2327] RexSimplify: AND(x, y, NOT(y)) ==> AND(x, null, IS NULL(y))

[CALCITE-2497] Update Janino version to 3.0.9

[CALCITE-2495] Support encoded URLs in calcite.util.Source, and use it for URL->File conversion in tests

For the record:
1) URL.getPath() produces %20, so it is added to forbidden signatures
2) Paths.get(url.toURI()).toFile() almost works, however it fails with URL is not hierarchical for new URL("file:test.java")
3) new File(URL.toURI() is worse than apache#2
4) URLDecoder must not be used to decode %20, since it will convert + to spaces as well, thus it will corrupt test.c++ filenames
5) It looks like url.toURI().getSchemeSpecificPart()) properly handles "opaque" URIs (which are relative file:test.java kind of URLs)
6) file:/test is relative for Windows, and absolute would be like file:c:/test

MockCatalogReader is used in testing, so cache should be disabled there to avoid thread conflicts and/or stale results

Support AND, OR, COALESCE, IS...DISTINCT in RexUtil#op

[CALCITE-2505] Add ignored test for fail in RexSimplify with IS DISTINCT FROM

Simplification of isFalse(isNotDistinctFrom(vBool(0), vBool(1))) causes AssertionError: wrong operand count 1 for IS DISTINCT FROM

[CALCITE-2506] Add ignored test for fail in RexSimplify with coalesce

coalesce(unaryPlus(nullInt), unaryPlus(vInt())) fails with
result mismatch: when applied to {?0.int0=-1}, COALESCE(+(null), +(?0.int0)) yielded -1, and +(null) yielded NULL

[CALCITE-2483] Druid adapter, when querying Druid segment metadata, throws when row number is larger than Integer.MAX_VALUE (Hongze Zhang)

Close apache#799

[CALCITE-2469] RexSimplify should optimize '(NOT x) IS NULL' to 'x IS NULL' (pengzhiwei)

Previously it optimized '(NOT x) IS NULL' to 'x IS NOT NULL', which is
wrong.

Generalize the above, to simplify 'f(x) IS NULL' to 'x IS NULL' for any
operator 'f' that is known to be strong. (Julian Hyde)

Close apache#796

[CALCITE-1026] Allow models in YAML format

Make JSON/YAML mappers static final.

Add tests to check model inline: json and yaml and to check model uri
to hson/yaml files.

Close apache#791

[CALCITE-2486] Upgrade Apache parent POM to version 21

Also upgrade
commons-dbcp2 to 2.5.0,
commons-lang3 to 3.8,
commons-pool to 2.6.0,
esri-geometry-api to 2.2.0,
h2 to 1.4.197,
hsqldb to 2.4.1,
httpclient to 2.5.6,
httpcore to 4.4.10,
java-diff to 1.1.2,
jsoup to 1.11.3,
maven-dependency-plugin to 3.1.1,
maven-enforcer-plugin to 3.0.0-M2,
mockito to 2.21.0.

[CALCITE-2470] In RelBuilder, project method should combine expressions if the underlying node is a Project

Add RelBuilder.shouldMergeProject() to allow sub-classes to disable
merging.

Improve the message given by CompositeMatcher when match fails.

When RelStructuredTypeFlattener rewrites a RexInputRef be sure to use
the field's new type. (It might have strengthened from say INTEGER to
INTEGER NOT NULL.)

Add a test case inspired by Drill (it passes in Calcite, but I gather
it fails in Drill).

[CALCITE-1026] Fix ModelTest#testYamlFileDetection when source folder has spaces

[CALCITE-1026] Remove unused import

[CALCITE-2520] Make SparkHandlerImpl#compile silent by default, print code in calcite.debug=true mode only

[CALCITE-2519] Silence ERROR logs from CalciteException, SqlValidatorException during tests

Use threadCount=1/perCoreThreadCount=false to disable parallel test execution at Travis

Previous option -Dsurefire.parallel= made JUnit to log just CalciteSuite details,
thus the test looked like a stuck one

fixes apache#816

Skip second Checkstyle execution during Travis CI build

Checkstyle is validated during mvn install part, so there's no need to repeat that

[CALCITE-2491] Refactor NameSet, NameMap, and NameMultimap

Collections are thread-safe when used in read-only scenarios.
Name*.immutableCopyOf are always thread-safe as writes are prohibited :)

fixes apache#815

[CALCITE-2512] Move StreamTest#ROW_GENERATOR to Table.scan().iterator to make it not shared between threads (Sergey Nuyanzin)

fixes apache#813

[CALCITE-2498] fix bug when geode adapter quotes booleans as strings (Andrei Sereda)

GeodeFilter was incorrectly quoting boolean literals as SQL strings ('true' instead of true)

fixes apache#809

[CALCITE-2522] Remove e.printStackTrace() from CalciteAssert#returns

[CALCITE-2514] Add SqlIdentifier conversion to ITEM operator for dynamic tables in ExtendedExpander (Arina Ielchiieva)

Close apache#814

Following [CALCITE-2469] simplify "f(x, y) IS NULL" to "x IS NULL OR y IS NULL" if "f" is strong

Previously we did not use OR, which was wrong.

[CALCITE-2418] Remove matchRecognize field of SqlSelect

[CALCITE-2433] SqlAdvisor: support configurable quoting characters

[CALCITE-2434] SqlAdvisor: support hints for nested tables/schemas

[CALCITE-2473] SqlAdvisor: support -- comments

[CALCITE-2474] SqlAdvisor: avoid NPE in lookupFromHints where FROM is empty

[CALCITE-2475] SqlAdvisor: support MINUS

[CALCITE-2476] SqlAdvisor: produce hints when sub-query with * is present in query

simplifySql produced 0 AS "*", and it caused the SQL to fail validation.
The fix is to disable transformation of expressions to "0 as ...", so it keeps select * as is.

[CALCITE-2477] SqlAdvisor: scalar sub-query support

[CALCITE-2478] SqlAdvisor: purge from_clause when _suggest_ token is located in one of the from sub-queries

[CALCITE-2479] SqlAdvisor: automatically quote identifiers that look like SQL keywords

[CALCITE-2484] Move dynamic tests to a separate class like SqlValidatorDynamicTest, and  avoid reuse of MockCatalogReaderDynamic

[CALCITE-2484] Add SqlValidatorDynamicTest to CalciteSuite

[CALCITE-2521] Guard RelMetadataTest#testMetadataHandlerCacheLimit with CalciteAssert.ENABLE_SLOW

The test does not reproduce the original bug, and it is very slow to execute.

[CALCITE-2523] Guard PartiallyOrderedSetTest#testPosetBitsLarge with CalciteAssert.ENABLE_SLOW

Reduce HepPlannerTest#testRuleApplyCount complexity

[CALCITE-2543] Upgrade SQLLine to 1.5.0

[CALCITE-2112] Add Maven wrapper for Calcite (Ratandeep S. Ratti)

Update doc, remove maven jar; add jar to .gitignore (Julian Hyde)

Use TLS 1.2 on windows (Sergey Nuyanzin)

[CALCITE-2412] Add Windows CI via AppVeyor (Sergey Nuyanzin)

fixes apache#757

[CALCITE-2505] Fix assertion error when simplifying is [not] distinct expressions (Haisheng Yuan)

Sample expression that caused failure: isFalse(isNotDistinctFrom(vBool(0), vBool(1)))

closes apache#828

Increase timeout for Cassandra daemon startup for CassandraAdapterTest

Remove redundant 'new' expression in constant array creation

add simplifyStrong for generic simplification for operand with null

add comment for policy might be null

make policy() return AS_IS by default

remove unused null test

simplify duplication code

remove unused empty line

fix duplicate call of simplify operand

add comment for simplifyStrong
F21 pushed a commit to F21/calcite that referenced this pull request Jan 3, 2019
…hrows when row number is larger than Integer.MAX_VALUE (Hongze Zhang)

Close apache#799
wangxlong pushed a commit to wangxlong/calcite that referenced this pull request Feb 13, 2020
…hrows when row number is larger than Integer.MAX_VALUE (Hongze Zhang)

Close apache#799
jamesstarr pushed a commit to jamesstarr/calcite that referenced this pull request Aug 28, 2025
…hrows when row number is larger than Integer.MAX_VALUE (Hongze Zhang)

Close apache#799

Change-Id: Ia698049584da6b73d0380307ff00887b7be842eb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant