Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Close connections when using a datasource directly, or don't let it be used directly.

Abierto
#38 0 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
clojure
Área
databases

Línea de trabajo

Comienza con la implementación de proto/IConnection para javax.sql.DataSource y los puntos de entrada jdbc/fetch y jdbc/connection descritos en el issue. Compara el ejemplo de uso directo de la datasource con el ejemplo de conexión con with-open; se considera terminado cuando el uso directo ya no deja una conexión sin liberar ni es rechazado, mientras que la forma envuelta sigue funcionando.

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

Descripción

javax.sql.DataSource implements the proto/IConnection protocol, but it's difficult to see how directly using it like that is anything but a misfeature. This protocol implementation lets you do the following:

(jdbc/fetch datasource "select whatever from whatever;")

If you do this, the connection that gets created will never get closed. You need to wrap the whole thing in a with-open, jdbc/connection like this:

(with-open [conn (jdbc/connection datasource)]
  (jdbc/fetch conn "select whatever from whatever;"))

Seeing as how the first snippet is always a bad idea, it shouldn't be possible to write the first and have it succeed at all. If we're supposed to go through the connection wrapper jdbc/connection, then the api should force us to do exactly that and not silently succeed when misused.

Lenguaje dominante
Clojure
Estrellas
106
Forks
23
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

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 funcool/clojure.jdbc

Todos los issues de funcool/clojure.jdbc

Issues similares

Más issues de Clojure

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.