Skip to content

Commit 310fc71

Browse files
committed
Fix defects.
1 parent 04a7bf3 commit 310fc71

File tree

6 files changed

+21
-15
lines changed

6 files changed

+21
-15
lines changed

distribution/lib/Standard/Table/0.0.0-dev/src/Internal/Java_Problems.enso

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ from project.Internal.Storage import java_to_enso
1111

1212
polyglot java import org.enso.table.data.column.builder.LossOfBigDecimalPrecision
1313
polyglot java import org.enso.table.data.column.builder.LossOfIntegerPrecision
14-
polyglot java import org.enso.table.data.column.operation.cast.CastOperation
1514
polyglot java import org.enso.table.data.column.operation.cast.ConversionFailure
1615
polyglot java import org.enso.table.data.column.operation.cast.ConversionFailureType
16+
polyglot java import org.enso.table.data.column.storage.type.StorageType
1717
polyglot java import org.enso.table.data.table.problems.ArithmeticError
1818
polyglot java import org.enso.table.data.table.problems.ArithmeticOverflow
1919
polyglot java import org.enso.table.data.table.problems.FloatingPointGrouping
@@ -57,15 +57,15 @@ translate_problem p = case p.problemType of
5757
"LossOfBigDecimalPrecision" ->
5858
Loss_Of_Decimal_Precision.Warning p.getAffectedRowsCount (java_to_enso p.getExampleValue) p.getExampleValueConverted
5959
"ArithmeticOverflow" ->
60-
storage_type = CastOperation.makeLocalType p.targetType
60+
storage_type = StorageType.fromTypeCharAndSize p.targetTypeChar p.targetTypeSize
6161
target_type = Storage.to_value_type storage_type
6262
example_operands = case p.exampleOperands of
6363
Nothing -> Nothing
6464
array -> Vector.from_polyglot_array array
6565
Arithmetic_Overflow.Warning target_type p.affectedRowCount example_operands
6666
"ConversionFailure" ->
6767
examples = Vector.from_polyglot_array p.examples
68-
storage_type = CastOperation.makeLocalType p.targetType
68+
storage_type = StorageType.fromTypeCharAndSize p.targetTypeChar p.targetTypeSize
6969
target_type = Storage.to_value_type storage_type
7070
related_column = p.relatedColumn
7171
affected_rows_count = p.affectedRowCount

std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/CastProblemAggregator.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ public ProblemSummary summarize() {
5454
problems.add(
5555
new ConversionFailure(
5656
ConversionFailureType.FAILED_CONVERSION,
57-
targetType,
57+
targetType.typeChar(),
58+
targetType.size(),
5859
columnName,
5960
failedConversionsCount,
6061
failedConversionExamples));
@@ -64,7 +65,8 @@ public ProblemSummary summarize() {
6465
problems.add(
6566
new ConversionFailure(
6667
ConversionFailureType.NUMBER_OUT_OF_RANGE,
67-
targetType,
68+
targetType.typeChar(),
69+
targetType.size(),
6870
columnName,
6971
numberOutOfRangeCount,
7072
numberOutOfRangeExamples));
@@ -74,7 +76,8 @@ public ProblemSummary summarize() {
7476
problems.add(
7577
new ConversionFailure(
7678
ConversionFailureType.TEXT_TOO_LONG,
77-
targetType,
79+
targetType.typeChar(),
80+
targetType.size(),
7881
columnName,
7982
textTooLongCount,
8083
textTooLongExamples));

std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ConversionFailure.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package org.enso.table.data.column.operation.cast;
22

33
import java.util.List;
4-
import org.enso.table.data.column.storage.type.StorageType;
54
import org.enso.table.problems.Problem;
65

76
public record ConversionFailure(
87
ConversionFailureType errorType,
9-
StorageType<?> targetType,
8+
char targetTypeChar,
9+
long targetTypeSize,
1010
String relatedColumn,
1111
long affectedRowCount,
1212
List<?> examples)

std-bits/table/src/main/java/org/enso/table/data/table/Table.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -580,10 +580,9 @@ public static Table transpose(
580580
int new_count = size * to_transpose.length;
581581

582582
// Create Storage
583-
var storage =
584-
Arrays.stream(id_columns)
585-
.map(c -> c.getStorageType().makeBuilder(new_count, problemAggregator))
586-
.toArray(Builder[]::new);
583+
var storage = new Builder[id_columns.length + 2];
584+
IntStream.range(0, id_columns.length)
585+
.forEach(i -> id_columns[i].getStorageType().makeBuilder(new_count, problemAggregator));
587586
storage[id_columns.length] = Builder.getForText(TextType.VARIABLE_LENGTH, new_count);
588587
storage[id_columns.length + 1] = Builder.getInferredBuilder(new_count, problemAggregator);
589588

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package org.enso.table.data.table.problems;
22

3-
import org.enso.table.data.column.storage.type.StorageType;
43
import org.enso.table.problems.Problem;
54

65
/** Indicates that an arithmetic operation did not fit in the target type. */
76
public record ArithmeticOverflow(
8-
StorageType<?> targetType, long affectedRowCount, Object[] exampleOperands)
7+
char targetTypeChar, long targetTypeSize, long affectedRowCount, Object[] exampleOperands)
98
implements Problem {}

std-bits/table/src/main/java/org/enso/table/data/table/problems/MapOperationProblemAggregator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ public void reportDivisionByZero(long row) {
4949
public ProblemSummary summarize() {
5050
var summary = super.summarize();
5151
if (overflowCount > 0) {
52-
summary.add(new ArithmeticOverflow(overflowTargetType, overflowCount, overflowExample));
52+
summary.add(
53+
new ArithmeticOverflow(
54+
overflowTargetType.typeChar(),
55+
overflowTargetType.size(),
56+
overflowCount,
57+
overflowExample));
5358
}
5459
return summary;
5560
}

0 commit comments

Comments
 (0)