@@ -72,13 +72,13 @@ You can link against this library in your program at the following coordinates:
7272</tr >
7373<tr >
7474<td >
75- <pre >groupId: za.co.absa.cobrix<br >artifactId: spark-cobol_2.11<br >version: 2.9.3 </pre >
75+ <pre >groupId: za.co.absa.cobrix<br >artifactId: spark-cobol_2.11<br >version: 2.9.4 </pre >
7676</td >
7777<td >
78- <pre >groupId: za.co.absa.cobrix<br >artifactId: spark-cobol_2.12<br >version: 2.9.3 </pre >
78+ <pre >groupId: za.co.absa.cobrix<br >artifactId: spark-cobol_2.12<br >version: 2.9.4 </pre >
7979</td >
8080<td >
81- <pre >groupId: za.co.absa.cobrix<br >artifactId: spark-cobol_2.13<br >version: 2.9.3 </pre >
81+ <pre >groupId: za.co.absa.cobrix<br >artifactId: spark-cobol_2.13<br >version: 2.9.4 </pre >
8282</td >
8383</tr >
8484</table >
@@ -89,17 +89,17 @@ This package can be added to Spark using the `--packages` command line option. F
8989
9090### Spark compiled with Scala 2.11
9191```
92- $SPARK_HOME/bin/spark-shell --packages za.co.absa.cobrix:spark-cobol_2.11:2.9.3
92+ $SPARK_HOME/bin/spark-shell --packages za.co.absa.cobrix:spark-cobol_2.11:2.9.4
9393```
9494
9595### Spark compiled with Scala 2.12
9696```
97- $SPARK_HOME/bin/spark-shell --packages za.co.absa.cobrix:spark-cobol_2.12:2.9.3
97+ $SPARK_HOME/bin/spark-shell --packages za.co.absa.cobrix:spark-cobol_2.12:2.9.4
9898```
9999
100100### Spark compiled with Scala 2.13
101101```
102- $SPARK_HOME/bin/spark-shell --packages za.co.absa.cobrix:spark-cobol_2.13:2.9.3
102+ $SPARK_HOME/bin/spark-shell --packages za.co.absa.cobrix:spark-cobol_2.13:2.9.4
103103```
104104
105105## Usage
@@ -237,18 +237,18 @@ Cobrix's `spark-cobol` data source depends on the COBOL parser that is a part of
237237
238238The jars that you need to get are:
239239
240- * spark-cobol_2.12-2.9.3 .jar
241- * cobol-parser_2.12-2.9.3 .jar
240+ * spark-cobol_2.12-2.9.4 .jar
241+ * cobol-parser_2.12-2.9.4 .jar
242242
243243> Versions older than 2.8.0 also need ` scodec-core_2.12-1.10.3.jar ` and ` scodec-bits_2.12-1.1.4.jar ` .
244244
245245> Versions older than 2.7.1 also need ` antlr4-runtime-4.8.jar ` .
246246
247247After that you can specify these jars in ` spark-shell ` command line. Here is an example:
248248```
249- $ spark-shell --packages za.co.absa.cobrix:spark-cobol_2.12:2.9.3
249+ $ spark-shell --packages za.co.absa.cobrix:spark-cobol_2.12:2.9.4
250250or
251- $ spark-shell --master yarn --deploy-mode client --driver-cores 4 --driver-memory 4G --jars spark-cobol_2.12-2.9.3 .jar,cobol-parser_2.12-2.9.3 .jar
251+ $ spark-shell --master yarn --deploy-mode client --driver-cores 4 --driver-memory 4G --jars spark-cobol_2.12-2.9.4 .jar,cobol-parser_2.12-2.9.4 .jar
252252
253253Setting default log level to "WARN".
254254To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
@@ -316,7 +316,7 @@ The fat jar will have '-bundle' suffix. You can also download pre-built bundles
316316
317317Then, run ` spark-shell` or ` spark-submit` adding the fat jar as the option.
318318` ` ` sh
319- $ spark-shell --jars spark-cobol_2.12_3.3-2.9.4 -SNAPSHOT-bundle.jar
319+ $ spark-shell --jars spark-cobol_2.12_3.3-2.9.5 -SNAPSHOT-bundle.jar
320320` ` `
321321
322322> < b> A note for building and running tests on Windows< /b>
@@ -1942,6 +1942,36 @@ at org.apache.hadoop.io.nativeio.NativeIO$POSIX.getStat(NativeIO.java:608)
19421942A: Update hadoop dll to version 3.2.2 or newer.
19431943
19441944## Changelog
1945+ - #### 2.9.4 released 26 November 2025.
1946+ - [ #805 ] ( https://github.com/AbsaOSS/cobrix/pull/805 ) Added the option to cache VRL indexes for better performance when same files are processed multiple times.
1947+ ``` scala
1948+ .option(" enable_index_cache" , " true" )
1949+ ```
1950+ - [# 807 ](https:// github.com/ AbsaOSS / cobrix/ pull/ 807 ) Added field name to AST object memoization for better performance of raw record processing.
1951+ ```scala
1952+ // Repeated calls to this method are now much faster
1953+ val value = copybook.getFieldValueByName(" some_field" , record)
1954+ ```
1955+ - [# 801 ](https:// github.com/ AbsaOSS / cobrix/ pull/ 801 ) Allow gaps between segment redefined fields as long as they have a single common base redefine.
1956+ For example, for this copybook :
1957+ ```cobol
1958+ 01 RECORD .
1959+ 05 SEGMENT - ID PIC X (5 ).
1960+ 05 SEGMENT - 1 .
1961+ 10 FIELD - A PIC X (10 ).
1962+ 05 SEGMENT - 2 REDEFINES SEGMENT - 1 .
1963+ 10 FIELD - B PIC X (20 ).
1964+ 05 SEGMENT - 3 REDEFINES SEGMENT - 1 .
1965+ 10 FIELD - C PIC X (15 ).
1966+ ```
1967+ This set of options is now acceptable :
1968+ ```scala
1969+ .option(" segment_field" , " SEGMENT-ID" )
1970+ .option(" redefine-segment-id-map:0" , " SEGMENT-1 => SEG1" )
1971+ .option(" redefine-segment-id-map:1" , " SEGMENT-3 => SEG3" ) // e.g. SEGMENT-2 is skipped
1972+ ```
1973+ - [# 803 ](https:// github.com/ AbsaOSS / cobrix/ pull/ 803 ) Fixed possible cases when Hadoop file streams are opened but not closed.
1974+
19451975- #### 2.9.3 released 13 November 2025 .
19461976 - [# 792 ](https:// github.com/ AbsaOSS / cobrix/ pull/ 792 ) Added EBCDIC to ASCII encoders for all single byte code pages.
19471977 ```scala
0 commit comments