UTL_FILE.NEW_LINE silently ignores negative line counts

Abierto Apto para principiantes
#2,634 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@X-LightYear ya está trabajando en esto.

Desde el 25/10/2026.

  • #2917 de @X-LightYear — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
64/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
c, postgresql
Área
databases

Línea de trabajo

Empieza por localizar la implementación compatible con Oracle de UTL_FILE y sus pruebas. Después, inspecciona la validación de argumentos y el bucle de nueva línea de sys.ora_utl_file_new_line. Añade pruebas de regresión para que un recuento negativo siga la ruta VALUE_ERROR, mientras que los recuentos cero y positivos mantienen su comportamiento. El trabajo estará terminado cuando esos casos de SQL pasen en modo compatible con Oracle.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What happened?

The Oracle signature defines UTL_FILE.NEW_LINE's lines parameter as NATURAL, but IvorySQL exposes it as INTEGER and silently loops zero times for a negative value. A caller receives success without writing anything, hiding an invalid argument.

What did you expect to happen?

Negative lines values should be rejected through the package's VALUE_ERROR path. Zero and positive counts should retain their existing behavior. This expectation follows the Oracle-compatible UTL_FILE contract; no Oracle server output is being claimed here.

How can we reproduce it (as minimally and precisely as possible)?

In Oracle-compatible mode, open a writable file and call:

-- Use the repository's UTL_FILE test directory or another writable directory.
SELECT sys.ora_utl_file_new_line(file_handle, -1);

The pre-fix implementation returns successfully and writes no newline. The regression should verify the error for a negative count and preserve the zero/positive cases.

IvorySQL version

master

Compatible mode

oracle

Server encoding

UTF8

Anything else we need to know?

This is limited to the IvorySQL Oracle-compatible UTL_FILE package. The issue concerns argument validation before the newline loop. Oracle server version/output is not available for this report.

OS version

The reproducer is SQL-level and should run on all supported platforms; CI should cover the platform-specific builds.

Before submitting

  • I confirmed the problem still happens on current master
  • I searched existing issues and found no duplicate
Lenguaje dominante
C
Estrellas
1.1k
Forks
232
Merge medio
3 d 2 h
PR fusionados (30 d)
15

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de IvorySQL/IvorySQL

Todos los issues de IvorySQL/IvorySQL

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.