Compare commits

..

4 Commits

Author SHA1 Message Date
hainenber
46c2c9c48f chore: ensure hyphen as seperator for GHA workflow filename
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-07-26 11:22:16 +07:00
hainenber
801baf0a0a chore(ci): resolve shellcheck-flagged errors
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-07-26 11:08:58 +07:00
dependabot[bot]
e3d3262e97 chore(deps-dev): bump grpcio from 1.81.1 to 1.83.0 (#42414)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-07-25 18:47:24 -07:00
Evan Rusackas
6c2ccc44bd chore(table): drop dead th.ant-column-cell selector (#42407)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 18:31:07 -07:00
12 changed files with 13 additions and 89 deletions

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -15,8 +17,6 @@
# specific language governing permissions and limitations
# under the License.
#!/bin/bash
# Function to determine Python command
get_python_command() {
if command -v python3 &>/dev/null; then

View File

@@ -38,7 +38,7 @@ RESET='\033[0m'
echo -e "${GREEN}Updating package lists...${RESET}"
apt-get update -qq
echo -e "${GREEN}Installing packages: $@${RESET}"
echo -e "${GREEN}Installing packages: $*${RESET}"
apt-get install -yqq --no-install-recommends "$@"
echo -e "${GREEN}Autoremoving unnecessary packages...${RESET}"

View File

@@ -163,10 +163,10 @@ do
# Iterate through the components of the version strings
for (( j=0; j<${#THIS_TAG_NAME_ARRAY[@]}; j++ )); do
echo "Comparing ${THIS_TAG_NAME_ARRAY[$j]} to ${LATEST_RELEASE_TAG_ARRAY[$j]}"
if [[ $((THIS_TAG_NAME_ARRAY[$j])) > $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
if [[ $((THIS_TAG_NAME_ARRAY[$j])) -gt $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
compare_result="greater"
break
elif [[ $((THIS_TAG_NAME_ARRAY[$j])) < $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
elif [[ $((THIS_TAG_NAME_ARRAY[$j])) -lt $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
compare_result="lesser"
break
fi

View File

@@ -227,7 +227,7 @@ development = [
"docker",
"flask-testing",
"freezegun",
"grpcio>=1.81.1",
"grpcio>=1.82.1",
"openapi-spec-validator",
"parameterized",
"pip",

View File

@@ -386,7 +386,7 @@ greenlet==3.5.3
# sqlalchemy
griffelib==2.0.2
# via fastmcp-slim
grpcio==1.81.1
grpcio==1.83.0
# via
# apache-superset
# google-api-core

View File

@@ -35,7 +35,7 @@ acquire_rat_jar () {
wget --quiet ${URL} -O "$JAR_DL" && mv "$JAR_DL" "$JAR"
else
printf "You do not have curl or wget installed, please install rat manually.\n"
exit -1
exit 255
fi
fi
@@ -44,7 +44,7 @@ acquire_rat_jar () {
# We failed to download
rm "$JAR"
printf "Our attempt to download rat locally to ${JAR} failed. Please install rat manually.\n"
exit -1
exit 255
fi
printf "Done downloading.\n"
}

View File

@@ -163,10 +163,10 @@ do
# Iterate through the components of the version strings
for (( j=0; j<${#THIS_TAG_NAME_ARRAY[@]}; j++ )); do
echo "Comparing ${THIS_TAG_NAME_ARRAY[$j]} to ${LATEST_RELEASE_TAG_ARRAY[$j]}"
if [[ $((THIS_TAG_NAME_ARRAY[$j])) > $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
if [[ $((THIS_TAG_NAME_ARRAY[$j])) -gt $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
compare_result="greater"
break
elif [[ $((THIS_TAG_NAME_ARRAY[$j])) < $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
elif [[ $((THIS_TAG_NAME_ARRAY[$j])) -lt $((LATEST_RELEASE_TAG_ARRAY[$j])) ]]; then
compare_result="lesser"
break
fi

View File

@@ -66,12 +66,6 @@ const StyledTable = styled(Table)<{
showRowCount?: boolean;
}>`
${({ theme, isPaginationSticky, showRowCount }) => `
th.ant-column-cell {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.actions {
opacity: 0;
font-size: ${theme.fontSizeXL}px;

View File

@@ -712,27 +712,12 @@ const transformProps = (
let totalQuery;
let rowCount;
if (serverPagination) {
[baseQuery, countQuery] = queriesData;
[baseQuery, countQuery, totalQuery] = queriesData;
rowCount = (countQuery?.data?.[0]?.rowcount as number) ?? 0;
} else {
[baseQuery] = queriesData;
[baseQuery, totalQuery] = queriesData;
rowCount = baseQuery?.rowcount ?? 0;
}
// `buildQuery` may prepend an extra query (used to compute percent metrics
// against the entire result set when `percent_metric_calculation` is set to
// `all_records`) before the totals query. Since the totals query, when
// present, is always the last entry in `queriesData`, look it up positionally
// from the end rather than assuming a fixed index. The minimum number of
// queries expected without a totals query is 1 (base query), or 2 when
// server pagination is enabled (base query + row count query).
const minQueriesWithoutTotals = serverPagination ? 2 : 1;
if (
showTotals &&
queryMode === QueryMode.Aggregate &&
queriesData.length > minQueriesWithoutTotals
) {
totalQuery = queriesData[queriesData.length - 1];
}
const data = processDataRecords(baseQuery?.data, columns);
const comparisonData = processComparisonDataRecords(
baseQuery?.data,

View File

@@ -2575,61 +2575,6 @@ describe('plugin-chart-table', () => {
);
expect(screen.queryByText('Search by')).toBeInTheDocument();
});
test(
'should read the totals row from the correct query when percent metrics ' +
'use the "all records" calculation mode',
() => {
// When `percent_metric_calculation` is `all_records`, buildQuery adds an
// extra query (used to compute percentages against the entire result set)
// *before* the totals query in `queriesData`. Verify totals are still
// sourced from the actual totals query and not this preceding query.
const props = {
...testData.basic,
rawFormData: {
...testData.basic.rawFormData,
query_mode: QueryMode.Aggregate,
metrics: ['sum__num'],
percent_metrics: ['count'],
percent_metric_calculation: 'all_records',
show_totals: true,
column_config: {
sum__num: { d3NumberFormat: '.0%' },
},
},
queriesData: [
{
...testData.basic.queriesData[0],
colnames: ['name', 'sum__num', '%count'],
coltypes: [
GenericDataType.String,
GenericDataType.Numeric,
GenericDataType.Numeric,
],
data: [{ name: 'Michael', sum__num: 0.1, '%count': 0.05 }],
},
// extra "all records" query used only to compute percent metrics
{
...testData.basic.queriesData[0],
colnames: ['count'],
coltypes: [GenericDataType.Numeric],
data: [{ count: 999 }],
},
// actual totals query
{
...testData.basic.queriesData[0],
colnames: ['sum__num'],
coltypes: [GenericDataType.Numeric],
data: [{ sum__num: 0.27 }],
},
],
};
const transformedProps = transformProps(props);
expect(transformedProps.totals).toEqual({ sum__num: 0.27 });
},
);
});
/**