Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

exports: per-field quoting and an end-of-file marker for delimited files (statutory text files)

Open
#7,912 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
java, yaml
Domain
backend, data

Research direction

Start by reading the implementation and tests for exports: with format: delimited, introduced in #7855; the payload does not name their file paths. Trace how field values are quoted and how record terminators are written. Done means a field-level quote override works alongside export-level quoting:, and endOfFile is written once, unquoted, after the final record terminator.

Written by the indexing model from the issue text.

Description

Ask

exports: with format: delimited (#7855, in 14.90.0) can quote none, what needs it or every value. A statutory file sometimes needs a mix, and an explicit end-of-file byte:

  1. Per-field quoting. A field-level quote: true|false that overrides the export's quoting:.
  2. An end-of-file marker. An export-level endOfFile: (for example "\u001A"), written once after the last record terminator, unquoted and with no terminator of its own.

Why

The Bulgarian NRA's published rules for the Declaration 1 input file (Ordinance N-13 payroll declarations) are:

  • windows-1251
  • comma-separated
  • Character data in double quotes, Number data not quoted
  • every record ends CR LF
  • the end of the file is CTRL+Z (0x1A)

Today the closest declaration is quoting: all, which also quotes the numbers. A trailer cannot write the marker either: under quoting: all the marker gets quoted, and every trailer gets a CR LF after it.

Repro (14.90.0)

exports:
  - name: Declaration1
    source: Declaration1Rows   # a plain report
    format: delimited
    encoding: windows-1251
    delimiter: ","
    quote: '"'
    quoting: all
    lineEnding: crlf
    ledger: DeclarationExport
    parameters: [{ name: run, required: true }]
    records:
      - type: line
        fields:
          - { from: Employee.nationalId }        # should be quoted
          - { from: insuredDays }                # should NOT be quoted
          - { from: sum(insurableIncome), scale: 2 }   # should NOT be quoted

Actual record: "7501010010","18","1500.00". The spec expects "7501010010",18,1500.00, and the file must end with 0x1A.

Where it is used

BusinessIntents/base-payroll#46. It is a draft on 14.90.0 and uses quoting: all until this ask lands. The same per-field need applies to Declaration 6 and to the other N-13 files.

Dominant language
Java
Stars
278
Forks
97
Avg merge
18h 53m
Merged PRs (30d)
228

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from eclipse-dirigible/dirigible

All issues in eclipse-dirigible/dirigible

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.