@@ -2493,6 +2493,7 @@ Java_ai_rapids_cudf_Table_readORCFromDataSource(JNIEnv* env,
24932493 jint unit,
24942494 jobjectArray dec128_col_names,
24952495 jboolean ignore_timezone_in_stripe_footer,
2496+ jboolean convert_dates_to_proleptic,
24962497 jlong ds_handle)
24972498{
24982499 JNI_NULL_CHECK (env, ds_handle, " no data source handle given" , 0 );
@@ -2519,6 +2520,7 @@ Java_ai_rapids_cudf_Table_readORCFromDataSource(JNIEnv* env,
25192520 .timestamp_type (cudf::data_type (static_cast <cudf::type_id>(unit)))
25202521 .decimal128_columns (n_dec128_col_names.as_cpp_vector ())
25212522 .ignore_timezone_in_stripe_footer (ignore_timezone_in_stripe_footer)
2523+ .convert_dates_to_proleptic (convert_dates_to_proleptic)
25222524 .build ();
25232525 return convert_table_for_return (env, cudf::io::read_orc (opts).tbl );
25242526 }
@@ -2535,7 +2537,8 @@ Java_ai_rapids_cudf_Table_readORC(JNIEnv* env,
25352537 jboolean usingNumPyTypes,
25362538 jint unit,
25372539 jobjectArray dec128_col_names,
2538- jboolean ignore_timezone_in_stripe_footer)
2540+ jboolean ignore_timezone_in_stripe_footer,
2541+ jboolean convert_dates_to_proleptic)
25392542{
25402543 bool read_buffer = true ;
25412544 if (buffer == 0 ) {
@@ -2579,6 +2582,7 @@ Java_ai_rapids_cudf_Table_readORC(JNIEnv* env,
25792582 .timestamp_type (cudf::data_type (static_cast <cudf::type_id>(unit)))
25802583 .decimal128_columns (n_dec128_col_names.as_cpp_vector ())
25812584 .ignore_timezone_in_stripe_footer (ignore_timezone_in_stripe_footer)
2585+ .convert_dates_to_proleptic (convert_dates_to_proleptic)
25822586 .build ();
25832587 return convert_table_for_return (env, cudf::io::read_orc (opts).tbl );
25842588 }
@@ -2599,6 +2603,7 @@ Java_ai_rapids_cudf_Table_writeORCBufferBegin(JNIEnv* env,
25992603 jbooleanArray j_is_map,
26002604 jint j_stripe_size_rows,
26012605 jstring j_writer_timezone,
2606+ jint j_calendar_kind,
26022607 jobject consumer,
26032608 jobject host_memory_allocator)
26042609{
@@ -2650,16 +2655,18 @@ Java_ai_rapids_cudf_Table_writeORCBufferBegin(JNIEnv* env,
26502655 new cudf::jni::jni_writer_data_sink (env, consumer, host_memory_allocator));
26512656 sink_info sink{data_sink.get ()};
26522657
2653- auto stats = std::make_shared<cudf::io::writer_compression_statistics>();
2654- chunked_orc_writer_options opts = chunked_orc_writer_options::builder (sink)
2655- .metadata (std::move (metadata))
2656- .compression (static_cast <compression_type>(j_compression))
2657- .enable_statistics (ORC_STATISTICS_ROW_GROUP )
2658- .key_value_metadata (kv_metadata)
2659- .compression_statistics (stats)
2660- .stripe_size_rows (j_stripe_size_rows)
2661- .writer_timezone (writer_timezone.get ())
2662- .build ();
2658+ auto stats = std::make_shared<cudf::io::writer_compression_statistics>();
2659+ chunked_orc_writer_options opts =
2660+ chunked_orc_writer_options::builder (sink)
2661+ .metadata (std::move (metadata))
2662+ .compression (static_cast <compression_type>(j_compression))
2663+ .enable_statistics (ORC_STATISTICS_ROW_GROUP )
2664+ .key_value_metadata (kv_metadata)
2665+ .compression_statistics (stats)
2666+ .stripe_size_rows (j_stripe_size_rows)
2667+ .writer_timezone (writer_timezone.get ())
2668+ .calendar_kind (static_cast <orc::CalendarKind>(j_calendar_kind))
2669+ .build ();
26632670 auto writer_ptr = std::make_unique<cudf::io::orc_chunked_writer>(opts);
26642671 cudf::jni::native_orc_writer_handle* ret = new cudf::jni::native_orc_writer_handle (
26652672 std::move (writer_ptr), std::move (data_sink), std::move (stats));
@@ -2681,6 +2688,7 @@ JNIEXPORT long JNICALL Java_ai_rapids_cudf_Table_writeORCFileBegin(JNIEnv* env,
26812688 jbooleanArray j_is_map,
26822689 jint j_stripe_size_rows,
26832690 jstring j_writer_timezone,
2691+ jint j_calendar_kind,
26842692 jstring j_output_path)
26852693{
26862694 JNI_NULL_CHECK (env, j_col_names, " null columns" , 0 );
@@ -2728,16 +2736,18 @@ JNIEXPORT long JNICALL Java_ai_rapids_cudf_Table_writeORCFileBegin(JNIEnv* env,
27282736 [](std::string const & k, std::string const & v) { return std::make_pair (k, v); });
27292737
27302738 sink_info sink{output_path};
2731- auto stats = std::make_shared<cudf::io::writer_compression_statistics>();
2732- chunked_orc_writer_options opts = chunked_orc_writer_options::builder (sink)
2733- .metadata (std::move (metadata))
2734- .compression (static_cast <compression_type>(j_compression))
2735- .enable_statistics (ORC_STATISTICS_ROW_GROUP )
2736- .key_value_metadata (kv_metadata)
2737- .compression_statistics (stats)
2738- .stripe_size_rows (j_stripe_size_rows)
2739- .writer_timezone (writer_timezone.get ())
2740- .build ();
2739+ auto stats = std::make_shared<cudf::io::writer_compression_statistics>();
2740+ chunked_orc_writer_options opts =
2741+ chunked_orc_writer_options::builder (sink)
2742+ .metadata (std::move (metadata))
2743+ .compression (static_cast <compression_type>(j_compression))
2744+ .enable_statistics (ORC_STATISTICS_ROW_GROUP )
2745+ .key_value_metadata (kv_metadata)
2746+ .compression_statistics (stats)
2747+ .stripe_size_rows (j_stripe_size_rows)
2748+ .writer_timezone (writer_timezone.get ())
2749+ .calendar_kind (static_cast <orc::CalendarKind>(j_calendar_kind))
2750+ .build ();
27412751 auto writer_ptr = std::make_unique<cudf::io::orc_chunked_writer>(opts);
27422752 cudf::jni::native_orc_writer_handle* ret =
27432753 new cudf::jni::native_orc_writer_handle (std::move (writer_ptr), nullptr , std::move (stats));
0 commit comments