Skip to content

Support full SQL standard binary string literal syntax [CORE5311] #5588

@firebird-automations

Description

@firebird-automations

Submitted by: @mrotteveel

Is related to CORE5312

Currently Firebird supports a limited form of the binary string literal, please add support for the full syntax defined in the SQL standard.

In SQL:2011 binary string literal is defined as:

<binary string literal> ::=
X <quote> [ <space>... ] [ { <hexit> [ <space>... ] <hexit> [ <space>... ] }... ] <quote>
[ { <separator> <quote> [ <space>... ] [ { <hexit> [ <space>... ]
<hexit> [ <space>... ] }... ] <quote> }... ]

<hexit> ::=
<digit> | A | B | C | D | E | F | a | b | c | d | e | f

<digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<separator> ::=
{ <comment> | <white space> }...

This means that the below samples are all valid binary string literals according to the standard, Firebird only supports the first:

* X'01AB'
* X' 0 1 a b'
* X'01' 'ab'
* X'01'/*comment*/'a b'
* X'01' 'ab' /*comment*/ 'ff00'
* X'01' -- comment and newline
'ab'

x'  a  b  c d   '  'ab'/*x*/''
'ab' ' '

etc.

See also CORE5312 for character string literal

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions