Import/Export Data fails for a file name containing a backslash, and creates a stray file named E
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Inizia dai template SQL di Import/Export Data in web/pgadmin/tools/import_export/templates/import_export/sql/*/cmd.sql e segui come viene racchiuso tra virgolette il percorso del file selezionato per il comando \copy. Verifica come i template distinguono il nome del file dai valori delle opzioni analizzati dal server. Il lavoro è completato quando i percorsi contenenti barre rovesciate funzionano per l’importazione e l’esportazione senza creare un file E isolato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Import/Export Data fails for any file whose path contains a backslash (\), and leaves behind an empty file named E in psql's working directory.
The file name is written into the \copy command with qtLiteral() (web/pgadmin/tools/import_export/templates/import_export/sql/*/cmd.sql). For a value containing a backslash, that produces an escape-string literal, E'...'. psql parses the file name of \copy itself, and its tokenizer doesn't recognise the E'...' form there. It takes the file name as just E, opens (and, for an export, creates or truncates) ./E, and sends the rest of the line to the server. The server then fails with a syntax error.
To Reproduce
- Create a file or directory whose name contains a backslash, e.g.
/tmp/a\b.csv(possible on Linux and macOS). - Right-click a table > Import/Export Data, choose Export, and select that file.
- Run the job.
- The job fails, and an empty file named
Eappears in psql's working directory.
The same happens with psql directly:
\copy (select 1) TO E'/tmp/a\\b.csv' WITH(FORMAT csv)
Expected behavior
The data is exported to (or imported from) the selected file, and no other file is created.
Error message
ERROR: syntax error at or near "'/tmp/a\\b.csv'"
Desktop (please complete the following information):
- OS: Linux, macOS
- pgAdmin version: 9.18 (also current master)
- Mode: Desktop and Server
- Package type: any
Additional context
psql's \copy file-name token has no backslash escapes, so the file name should be written as a plain '...' literal with only embedded single quotes doubled, never as E'...'. The option values later in the command (DELIMITER, QUOTE, ESCAPE, NULL, ENCODING) are parsed by the server, where E'...' is valid, so they are not affected.
- Lingua principale
- Python
- Stelle
- 3.9k
- Fork
- 914
- Merge medio
- 1g 15h
- PR unite (30g)
- 39
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pgadmin-org/pgadmin4
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
pgadmin-org/pgadmin4#10673 ·
I maintainer di solito rispondono entro 1 giorno
-
Helm chart: allow setting ingressClassName on the IngressForse già presa @commarla l’ha presa 4 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
pgadmin-org/pgadmin4#10658 ·
I maintainer di solito rispondono entro 1 giorno
-
Feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
pgadmin-org/pgadmin4#10426 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
pgadmin-org/pgadmin4#10272 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Housekeeping
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
pgadmin-org/pgadmin4#10157 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di pgadmin-org/pgadmin4
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
UKGovernmentBEIS/optstop#10 ·
-
maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pollen-robotics/reachy_mini#1508 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] `cloud-keys.env` values retain enclosing quotes causing 401 Unauthorized, and missing utf-8 encoding crashes on WindowsForse già presa @divyanshu07-code l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
open-jarvis/OpenJarvis#1192 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
sylvainmetayer/homelab#851 ·
I maintainer di solito rispondono entro 1 giorno