Bugs or am I just misreading things?

5 views
Skip to first unread message

Pál Teleki

unread,
Jun 18, 2021, 12:20:48 PMJun 18
to firebird-general

Hi all,

I read with interest about the launch of Firebird 4 - and I noticed many fields which are all "CHAR(31) CHARACTER SET UNICODE_FSS" which appear  to refer to object identifiers - but I also read this:


in the section "Complete in Beta 1"
=======================================
Extended length of metadata identifiers

Metadata names longer than 31 bytes: new maximum length of object names is 63 characters.

The changes are described in more detail in the topic Extended Length for Object Names in the chapter Data Definition Language.

===========================================

and also here:

Section "Parameters to Restrict Length of Object Identifiers"

================================================

Object identifiers in an ODS 13 database can be up to 63 characters in length, and the engine stores them in UTF-8, not UNICODE_FSS as previously.

=====================================================

Now, I compiled FB4.0 from source as follows:

./configure --prefix=/home/pol/Downloads/db/gcc/fb/fb/fb4.0/inst

It's  a standard g++ on Fedora 34

[pal@fedora fb4]$ g++ --version

g++ (GCC) 11.1.1 20210428 (Red Hat 11.1.1-1)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[pal@fedora fb4]$

I have nothing like $FIREBIRD, $INTERBASE or anything related in my environment variables:

[pol@fedora fb4]$ env | grep -i fb
PWD=/home/pol/Downloads/db/gcc/fb/fb/fb4.0/fb4
OLDPWD=/home/pol/Downloads/db/gcc/fb/fb/fb4.0
[pol@fedora fb4]$ env | grep -i interb
[pol@fedora fb4]$


But, I didn't do a standard install - I ran make and make install, but I **_didn't** run make install as root - so, it did a few things and then failed by telling me that I had to be root (why??? - PostgreSQL has no such requirement - but that's another issue - not what I'm talking about today).

So I copied libEngine13.so and isql and put them into an independent directory and ran isql and created a database called blah.fdb - created a table "test" and put 2 records into it - commited and exited isql and then ran it again.

I was looking at the MON$ tables and noticed the situation below - it seems to me that most (all?) of these fields contain object identifiers and therefore should be ... CHAR(63) CHARACTER SET UTF-8... ? It seems like the RDB$ tables also have the same thing - didn't look at them all!

If this is not the right place for this issue, then please let me know!

Rgs,

Pál,

SQL> SHOW TABLE mon$DATABASE;

MON$OWNER                       (RDB$USER) CHAR(31) CHARACTER SET UNICODE_FSS Nullable

SHOW TABLE mon$ATTACHMENTS;

MON$USER                        (RDB$USER) CHAR(31) CHARACTER SET UNICODE_FSS Nullable
MON$ROLE                        (RDB$USER) CHAR(31) CHARACTER SET UNICODE_FSS Nullable

 SHOW TABLE mon$call_stack;

MON$PACKAGE_NAME                (RDB$PACKAGE_NAME) CHAR(31) CHARACTER SET UNICODE_FSS Nullable

SHOW TABLE mon$table_stats;

MON$TABLE_NAME                  (RDB$RELATION_NAME) CHAR(31) CHARACTER SET UNICODE_FSS Nullable


SHOW TABLE rdb$fields;

RDB$FIELD_NAME                  (RDB$FIELD_NAME) CHAR(31) CHARACTER SET UNICODE_FSS Nullable
RDB$QUERY_NAME                  (RDB$FIELD_NAME) CHAR(31) CHARACTER SET UNICODE_FSS Nullable

RDB$OWNER_NAME                  (RDB$USER) CHAR(31) CHARACTER SET UNICODE_FSS Nullable

Mark Rotteveel

unread,
Jun 18, 2021, 12:24:13 PMJun 18
to firebird...@googlegroups.com
Your question is more suitable for firebird-devel, I recommend you ask
it there.

Mark

On 18-06-2021 18:06, Pál Teleki wrote:
>
> Hi all,
>
> I read with interest about the launch of Firebird 4 - and I noticed many
> fields which are all "CHAR(31) CHARACTER SET UNICODE_FSS" which appear
> to refer to object identifiers - but I also read this:
>
> http://firebirdsql.org/file/documentation/release_notes/html/en/4_0/rlsnotes40.html
>
> in the section "Complete in Beta 1"
> =======================================
> Extended length of metadata identifiers
>
> Metadata names longer than 31 bytes: new maximum length of object names
> is 63 characters.
>
> The changes are described in more detail in the topic Extended Length
> for Object Names
> <http://firebirdsql.org/file/documentation/release_notes/html/en/4_0/rlsnotes40.html#rnfb40-ddl-objectnames>
> in the chapter Data Definition Language
> <http://firebirdsql.org/file/documentation/release_notes/html/en/4_0/rlsnotes40.html#rnfb40-ddl>.
--
Mark Rotteveel

Dimitry Sibiryakov

unread,
Jun 18, 2021, 12:26:55 PMJun 18
to firebird...@googlegroups.com
18.06.2021 18:06, Pál Teleki wrote:
> ran isql and created a database called blah.fdb

Now connect to this database and show the results of "SHOW DATABASE" command.

It looks like you have Firebird 3 or older installed and use it instead of Firebird 4
because in no way "copied libEngine13.so and isql and put them into an independent
directory" can work on Linux.

--
WBR, SD.
Reply all
Reply to author
Forward
0 new messages