[jOOQ/jOOQ#7539] Improved GENERATE_SERIES() / NUMBERS() support

- Step is now supported by ClickHouse
- Fix off-by-1 errors
- Fix data types
This commit is contained in:
Lukas Eder 2024-10-17 12:47:55 +02:00
parent 2e7be261c6
commit 60a57b6b15

View File

@ -184,10 +184,10 @@ implements
visitSubquery(
ctx,
step == null
? select(DSL.field(unquotedName("number"), INTEGER).as(name))
.from(table("{0}({1}, {2})", N_NUMBERS, from, iadd(isub(to, from), one())))
: select(iadd(imul(isub(DSL.field(unquotedName("number"), INTEGER), one()), step), from).as(name))
.from(table("{0}({1}, {2})", N_NUMBERS, one(), idiv(to, step).cast(BIGINT))),
? select(DSL.field(unquotedName("number"), INTEGER).cast(INTEGER).as(name))
.from(table("{0}({1}, {2})", N_NUMBERS, from, iadd(to, one())))
: select(DSL.field(unquotedName("number"), INTEGER).cast(INTEGER).as(name))
.from(table("{0}({1}, {2}, {3})", N_NUMBERS, from, iadd(to, one()), step)),
DERIVED_TABLE
);
}