Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Support jodatime_format function to partition pruning #52620

Merged
merged 19 commits into from
Nov 14, 2024
Merged
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
16dedb1
Support jodatime_fata function to partition pruning
renzhimin7 Nov 5, 2024
2ecbdb8
Support jodatime_fata function to partition pruning
renzhimin7 Nov 5, 2024
5d21686
Support jodatime_fata function to partition pruning
renzhimin7 Nov 5, 2024
fc91bff
Support jodatime_fata function to partition pruning
renzhimin7 Nov 7, 2024
f0cd76f
Support jodatime_format function to partition pruning
renzhimin7 Nov 7, 2024
ef9b875
Support jodatime_format function to partition pruning
renzhimin7 Nov 7, 2024
2ecf4c1
Merge remote-tracking branch 'renzhimin7/renzhimin7-main' into renzhi…
renzhimin7 Nov 7, 2024
90fc56c
Support jodatime_format function to partition pruning
renzhimin7 Nov 7, 2024
08a9538
Support jodatime_format function to partition pruning
renzhimin7 Nov 8, 2024
da5caec
Support jodatime_format function to partition pruning
renzhimin7 Nov 8, 2024
3b90ee7
Support jodatime_format function to partition pruning
renzhimin7 Nov 8, 2024
68ae47f
Support jodatime_format function to partition pruning
renzhimin7 Nov 8, 2024
f28884b
Support jodatime_format function to partition pruning
renzhimin7 Nov 8, 2024
8f68eb5
Support jodatime_format function to partition pruning
renzhimin7 Nov 9, 2024
87743af
Support jodatime_format function to partition pruning
renzhimin7 Nov 9, 2024
199c8a8
Support jodatime_format function to partition pruning
renzhimin7 Nov 9, 2024
b3239e4
Support jodatime_format function to partition pruning
renzhimin7 Nov 9, 2024
dee396c
Support jodatime_format function to partition pruning
renzhimin7 Nov 9, 2024
ce1c6b7
Support jodatime_format function to partition pruning
renzhimin7 Nov 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Support jodatime_format function to partition pruning
Signed-off-by: zhiminr.ren <1240388654@qq.com>
  • Loading branch information
renzhimin7 committed Nov 8, 2024
commit da5caec64280ed8e738de00c57c0b71f2a69fab1
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
import org.apache.commons.lang.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;

import java.math.BigDecimal;
import java.math.BigInteger;
Expand Down Expand Up @@ -106,8 +108,7 @@
*/
public class ScalarOperatorFunctions {
public static final Set<String> SUPPORT_JAVA_STYLE_DATETIME_FORMATTER =
ImmutableSet.<String>builder().add("yyyy-MM-dd").add("yyyy-MM-dd HH:mm:ss").add("yyyyMMdd").
add("yyyyMMdd HH:mm:ss").add("yyyy-MM-dd'T'HH:mm:ssZZ").add("yyyy-MM-dd hh:mm:ssa").build();
ImmutableSet.<String>builder().add("yyyy-MM-dd").add("yyyy-MM-dd HH:mm:ss").add("yyyyMMdd").build();

private static final int CONSTANT_128 = 128;
private static final BigInteger INT_128_OPENER = BigInteger.ONE.shiftLeft(CONSTANT_128 + 1);
Expand Down Expand Up @@ -392,14 +393,9 @@ public static ConstantOperator jodatimeFormat(ConstantOperator date, ConstantOpe
if (format.isEmpty()) {
return ConstantOperator.createNull(Type.VARCHAR);
}
// unix style
if (!SUPPORT_JAVA_STYLE_DATETIME_FORMATTER.contains(format.trim())) {
DateTimeFormatter builder = DateUtils.unixDatetimeFormatter(fmtLiteral.getVarchar());
return ConstantOperator.createVarchar(builder.format(date.getDatetime()));
} else {
String result = date.getDatetime().format(DateTimeFormatter.ofPattern(fmtLiteral.getVarchar()));
return ConstantOperator.createVarchar(result);
}
org.joda.time.format.DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
DateTime dateTime = new DateTime(date.getDatetime().toLocalDate());
return ConstantOperator.createVarchar(dateTime.toString(formatter));
}


Expand Down