DBMS_RANDOM.STRING rejects a single multibyte option character
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Find the C implementation of DBMS_RANDOM.STRING and read how it validates the option character, especially the check that uses opt[1]. Trace the relevant character encoding and string handling, then run the SQL reproduction in an Oracle-compatible UTF-8 database. Done means a single multibyte option passes validation and returns three uppercase ASCII letters, with existing ASCII behavior preserved.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
What happened?
On current master (2c5e8dd667), a UTF-8 database rejects DBMS_RANDOM.STRING('é', 3) with: ERROR: the character class must be a single character: u, l, a, x or p. The implementation checks opt[1], so it counts bytes instead of characters. The ASCII unknown-option case already works.
What did you expect to happen?
The single-character option should pass validation. Because é is not one of u/l/a/x/p, the result should contain three uppercase ASCII letters. Oracle's DBMS_RANDOM.STRING documentation declares opt IN CHAR and says other options return uppercase alpha characters: https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_RANDOM.html . This expectation comes from the documentation; I have not tested a live Oracle server.
How can we reproduce it (as minimally and precisely as possible)?
In an IvorySQL UTF-8 database:
SET ivorysql.compatible_mode = oracle;
SELECT dbms_random.string('é', 3);
Actual: ERROR: the character class must be a single character: u, l, a, x or p. A single UTF-8 character is incorrectly treated as multiple bytes.
IvorySQL version
master
Compatible mode
oracle
Server encoding
UTF8
Anything else we need to know?
Source build at master commit 2c5e8dd667 in the repository Ubuntu 22.04 development container; disposable Oracle-mode test cluster. No live Oracle comparison.
OS version
Ubuntu 22.04 development container on WSL2.
Before submitting
- I confirmed the problem still happens on current
master - I searched existing issues and found no duplicate
- Vorherrschende Sprache
- C
- Sterne
- 1.1k
- Forks
- 232
- Ø Merge
- 3 T. 2 Std.
- Gemergte PRs (30 T.)
- 15
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus IvorySQL/IvorySQL
-
PostgreSQL::Version rejects documented full psql version outputEvtl. vergeben @feitiansiyan hat das vor 2 Tagen übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
IvorySQL/IvorySQL#2999 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
UTL_FILE.NEW_LINE silently ignores negative line countsEvtl. vergeben @X-LightYear hat das vor 9 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
IvorySQL/IvorySQL#2634 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Character function regression assumes normal identifier case on default interchange clustersEvtl. vergeben @zhouxj52 hat das vor 16 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
IvorySQL/IvorySQL#2470 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
xml2 no-libxslt expected files do not match PG/Oracle input scriptsEvtl. vergeben @zhouxj52 hat das vor 16 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
IvorySQL/IvorySQL#2468 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Title: Build failure in DBMS_SCHEDULER due to incorrect placement of pg_noreturnEvtl. vergeben @darshan-s-44 hat das vor 23 Tagen übernommen. Offenbug good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in IvorySQL/IvorySQL
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
meshcore-dev/MeshCore#3760 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
ly05010419/MacNativeGames#1697 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
colbymchenry/codegraph#3228 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
aminya/project_options#303 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag