Commit f5601f4
authored
fix(bigquery): preserve page token and paginate correctly in Arrow query when maxResults is set (#14469)
When `maxResults` is set on `QueryJobConfiguration` for row-based Arrow
queries, the initial REST response uses it as the page size for page 1.
Previously, the client treated `initialRowOffset >= maxResults` as an
indication to terminate pagination early and passed `maxResults` as the
total row ceiling to `ArrowQueryPageFetcher`, preventing subsequent
pages from being fetched.
This updates `queryRpcArrow` to preserve the page token, pass
`maxResults` as the page size option to `ArrowQueryPageFetcher`, and
verifies pagination behavior in both unit tests and
`testQueryRowBasedWithArrowFormatMultiPage`.1 parent bd363f6 commit f5601f4
3 files changed
Lines changed: 98 additions & 21 deletions
File tree
- java-bigquery/google-cloud-bigquery/src
- main/java/com/google/cloud/bigquery
- test/java/com/google/cloud/bigquery
- it
Lines changed: 14 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
77 | 78 | | |
78 | 79 | | |
79 | 80 | | |
| |||
2655 | 2656 | | |
2656 | 2657 | | |
2657 | 2658 | | |
2658 | | - | |
2659 | | - | |
2660 | | - | |
2661 | | - | |
2662 | | - | |
2663 | 2659 | | |
2664 | 2660 | | |
2665 | 2661 | | |
| |||
2669 | 2665 | | |
2670 | 2666 | | |
2671 | 2667 | | |
| 2668 | + | |
| 2669 | + | |
| 2670 | + | |
| 2671 | + | |
| 2672 | + | |
2672 | 2673 | | |
2673 | 2674 | | |
2674 | 2675 | | |
| |||
2677 | 2678 | | |
2678 | 2679 | | |
2679 | 2680 | | |
2680 | | - | |
2681 | | - | |
| 2681 | + | |
| 2682 | + | |
2682 | 2683 | | |
2683 | 2684 | | |
2684 | 2685 | | |
| |||
3190 | 3191 | | |
3191 | 3192 | | |
3192 | 3193 | | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
| 3197 | + | |
3193 | 3198 | | |
3194 | 3199 | | |
3195 | 3200 | | |
| |||
3199 | 3204 | | |
3200 | 3205 | | |
3201 | 3206 | | |
3202 | | - | |
3203 | | - | |
| 3207 | + | |
| 3208 | + | |
3204 | 3209 | | |
3205 | 3210 | | |
3206 | 3211 | | |
| |||
Lines changed: 13 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3354 | 3354 | | |
3355 | 3355 | | |
3356 | 3356 | | |
3357 | | - | |
| 3357 | + | |
| 3358 | + | |
3358 | 3359 | | |
3359 | 3360 | | |
3360 | 3361 | | |
| |||
3375 | 3376 | | |
3376 | 3377 | | |
3377 | 3378 | | |
3378 | | - | |
3379 | | - | |
3380 | | - | |
| 3379 | + | |
| 3380 | + | |
3381 | 3381 | | |
3382 | | - | |
| 3382 | + | |
| 3383 | + | |
3383 | 3384 | | |
3384 | 3385 | | |
3385 | 3386 | | |
3386 | | - | |
3387 | | - | |
| 3387 | + | |
3388 | 3388 | | |
3389 | 3389 | | |
3390 | 3390 | | |
3391 | 3391 | | |
3392 | 3392 | | |
3393 | 3393 | | |
3394 | 3394 | | |
3395 | | - | |
3396 | | - | |
| 3395 | + | |
| 3396 | + | |
| 3397 | + | |
| 3398 | + | |
| 3399 | + | |
| 3400 | + | |
3397 | 3401 | | |
3398 | 3402 | | |
3399 | 3403 | | |
| |||
java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java
Lines changed: 71 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7570 | 7570 | | |
7571 | 7571 | | |
7572 | 7572 | | |
| 7573 | + | |
| 7574 | + | |
| 7575 | + | |
7573 | 7576 | | |
7574 | 7577 | | |
7575 | 7578 | | |
7576 | 7579 | | |
7577 | 7580 | | |
| 7581 | + | |
7578 | 7582 | | |
7579 | 7583 | | |
7580 | 7584 | | |
7581 | 7585 | | |
| 7586 | + | |
| 7587 | + | |
7582 | 7588 | | |
7583 | | - | |
7584 | | - | |
7585 | | - | |
| 7589 | + | |
| 7590 | + | |
| 7591 | + | |
| 7592 | + | |
| 7593 | + | |
| 7594 | + | |
| 7595 | + | |
| 7596 | + | |
7586 | 7597 | | |
| 7598 | + | |
7587 | 7599 | | |
7588 | 7600 | | |
7589 | 7601 | | |
| |||
7635 | 7647 | | |
7636 | 7648 | | |
7637 | 7649 | | |
| 7650 | + | |
| 7651 | + | |
| 7652 | + | |
| 7653 | + | |
| 7654 | + | |
| 7655 | + | |
| 7656 | + | |
| 7657 | + | |
| 7658 | + | |
| 7659 | + | |
| 7660 | + | |
| 7661 | + | |
| 7662 | + | |
| 7663 | + | |
| 7664 | + | |
| 7665 | + | |
| 7666 | + | |
| 7667 | + | |
| 7668 | + | |
| 7669 | + | |
| 7670 | + | |
| 7671 | + | |
| 7672 | + | |
| 7673 | + | |
| 7674 | + | |
| 7675 | + | |
| 7676 | + | |
| 7677 | + | |
| 7678 | + | |
| 7679 | + | |
| 7680 | + | |
| 7681 | + | |
| 7682 | + | |
| 7683 | + | |
| 7684 | + | |
| 7685 | + | |
| 7686 | + | |
| 7687 | + | |
| 7688 | + | |
| 7689 | + | |
| 7690 | + | |
| 7691 | + | |
| 7692 | + | |
| 7693 | + | |
| 7694 | + | |
| 7695 | + | |
| 7696 | + | |
| 7697 | + | |
| 7698 | + | |
| 7699 | + | |
| 7700 | + | |
| 7701 | + | |
| 7702 | + | |
| 7703 | + | |
| 7704 | + | |
| 7705 | + | |
7638 | 7706 | | |
7639 | 7707 | | |
7640 | 7708 | | |
| |||
0 commit comments