Skip to content

Unnecessary quotation marks in names when using IUTILS_name_to_string #8730

@Ev3nt

Description

@Ev3nt

IUTILS_name_to_string contains a call to KEYWORD_stringIsAToken, which is triggered by any keyword, even if it is not actually needed. For example, when calling SHOW SYSTEM FUNCTIONs RDB$BLOB_UTIL.SEEK; we expect the following output:

Engine: SYSTEM
Parameters:
OUTPUT (RDB$INTEGER) INTEGER
HANDLE                            INPUT (RDB$BLOB_UTIL_HANDLE) INTEGER
MODE                              INPUT (RDB$INTEGER) INTEGER
OFFSET                            INPUT (RDB$INTEGER) INTEGER

However, we end up with the following output:

Engine: SYSTEM
Parameters:
OUTPUT (RDB$INTEGER) INTEGER
HANDLE                            INPUT (RDB$BLOB_UTIL_HANDLE) INTEGER
MODE                              INPUT (RDB$INTEGER) INTEGER
"OFFSET"                            INPUT (RDB$INTEGER) INTEGER

I have investigated the code, and this is happening because the word OFFSET is included in ParserTokens.h, which is causing this issue. Similar triggers occur with other keywords.

For example, if you call SHOW SYSTEM PROCEDURE RDB$BLOB_UTIL.CANCEL_BLOB;, you should see:

Engine: SYSTEM
Parameters:
BLOB                              INPUT (RDB$BLOB) BLOB CHARACTER SET NONE
=============================================================================

However, in the end we get:

Engine: SYSTEM
Parameters:
"BLOB"                              INPUT (RDB$BLOB) BLOB CHARACTER SET SYSTEM.NONE
=============================================================================

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions