Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Leyne, Sean
Roman, > May I ask an example? > > Will it work? > > start transaction; > > alter table T add column N INTEGER; > > insert into T (..., N) values (..., 10); > > commit; IMO, it should. But, the interesting question would be: What would be the state if instead of "commit", you executed "rol

[Firebird-devel] node-firebird-libfbclient SEG FAULT when nodejs exits

2017-01-17 Thread Denys Khanzhyiev
Hi all, trying to setup a kind of CI with travis for node-firebird-libfbclient. Keep getting SEG FAULT when tests are finished and nodejs exists. Isolated it to one test case: the test tests the case when erronous query is called async, i.e. 1. isc_attach_database is called on some thread from th

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dmitry Yemanov
17.01.2017 14:28, Alex Peshkoff wrote: > >>> Returning to 'allow concurrent transactions to change the same objects'. >>> What if both transactions create same objects or any other phase 1 >>> conflict? >>> First committed wins? >> Yes. > > That's OK for me. I don't think I like it. With DML, conf

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 17:24, Adriano dos Santos Fernandes wrote: >>From these two, I know the later is the worse thing can happen in a > production environment: > > - A database with can't be updated due to locks > > - A updated database which code running various versions of changed > logic depending on when

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 14:19, Dimitry Sibiryakov wrote: > 17.01.2017 17:07, Adriano dos Santos Fernandes wrote: >> Statement may already be prepared and allowed to be used not only in >> this dirty transaction, but in others one. >I would say that some kind "statement-level metadata consistency" should

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 17:07, Adriano dos Santos Fernandes wrote: > Statement may already be prepared and allowed to be used not only in > this dirty transaction, but in others one. I would say that some kind "statement-level metadata consistency" should be used for such cases: statement to see metadata

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 13:48, Dimitry Sibiryakov wrote: > 17.01.2017 16:35, Adriano dos Santos Fernandes wrote: >> Temporary invalidated state is incompatible with DDL+DML using the >> being-changed DDL: >It just require some decisions. > >> create table t (n integer, c computed by (f(n))); >> -- create

Re: [Firebird-devel] [FB-Tracker] Created: (CORE-5458) Connections fail due to dead NFS mount points

2017-01-17 Thread Pablo Sánchez
I know this is not the place for this, but downed NFS connections ("dead" ones) can take anything on server down with it, just consuming resources retrying connection. Just read server load average to get the picture. You'll be lucky if you manage to kill "dead" nfs processes . Regards . Pablo

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 16:35, Adriano dos Santos Fernandes wrote: > Temporary invalidated state is incompatible with DDL+DML using the > being-changed DDL: It just require some decisions. > create table t (n integer, c computed by (f(n))); > -- create function f ... > commit; > > drop function f; > s

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 11:59, Dimitry Sibiryakov wrote: >> A classical example: isql -x >> >> Creates lots of workarounds and many times has problems with >> dependencies, while it could instead create all metadata in the same >> transaction without care about order and commit everything together >> letting

[Firebird-devel] [FB-Tracker] Created: (CORE-5458) Connections fail due to dead NFS mount points

2017-01-17 Thread Dirk Hagedorn (JIRA)
Connections fail due to dead NFS mount points - Key: CORE-5458 URL: http://tracker.firebirdsql.org/browse/CORE-5458 Project: Firebird Core Issue Type: Bug Affects Versions: 2.5.2 Envir

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Alex Peshkoff
On 01/17/17 17:17, Adriano dos Santos Fernandes wrote: > On 17/01/2017 12:07, Dmitry Yemanov wrote: >> 17.01.2017 16:13, Adriano dos Santos Fernandes wrote: >> It should be possible to add one or more alternative rules in the grammar where character set names are used in a way that preser

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 12:07, Dmitry Yemanov wrote: > 17.01.2017 16:13, Adriano dos Santos Fernandes wrote: > >>> It should be possible to add one or more alternative rules in the >>> grammar where character set names are used in a way that preserves the >>> backwards compatibility. >> I believe this is the

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Alex Peshkoff
On 01/17/17 17:06, Dimitry Sibiryakov wrote: > 17.01.2017 15:00, Alex Peshkoff wrote: >> This way reserved word becomes non-reserved. Looks at >> >> valid_symbol_name >> : SYMBOL >> | non_reserved_word >> ; >> >> followed by list of non_reserved_word-s. > Including "BINARY" in

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dmitry Yemanov
17.01.2017 16:13, Adriano dos Santos Fernandes wrote: >> It should be possible to add one or more alternative rules in the >> grammar where character set names are used in a way that preserves the >> backwards compatibility. > > I believe this is the thing we need to do. > > Just something as "ide

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 15:00, Alex Peshkoff wrote: > This way reserved word becomes non-reserved. Looks at > > valid_symbol_name > : SYMBOL > | non_reserved_word > ; > > followed by list of non_reserved_word-s. Including "BINARY" into caused a lot of reduce/reduce conflicts. -- WBR,

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Alex Peshkoff
On 01/17/17 16:54, Dimitry Sibiryakov wrote: > 17.01.2017 14:13, Adriano dos Santos Fernandes wrote: >> I believe this is the thing we need to do. >> >> Just something as "identifier | BINARY" rule. > Better would be something like "identifier | ", but I have > no idea how > to do it with btya

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 14:29, Adriano dos Santos Fernandes wrote: >>>But what exactly "invalid state" means? I can't imagine anything but >>> violation of >>> "foreign key" on table rdb$dependencies. If Firebird ever is going to have >>> deferred >>> constraints, allowing some metadata to be inconsistent

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 14:13, Adriano dos Santos Fernandes wrote: > I believe this is the thing we need to do. > > Just something as "identifier | BINARY" rule. Better would be something like "identifier | ", but I have no idea how to do it with btyacc. -- WBR, SD.

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 11:19, Adriano dos Santos Fernandes wrote: > On 17/01/2017 10:14, Dimitry Sibiryakov wrote: >> 17.01.2017 13:03, Adriano dos Santos Fernandes wrote: >>> If any other solution allows "valid state (initial) -> invalid state >>> (uncommitted) -> valid state (committed)" more DML changes

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 10:14, Dimitry Sibiryakov wrote: > 17.01.2017 13:03, Adriano dos Santos Fernandes wrote: >> If any other solution allows "valid state (initial) -> invalid state >> (uncommitted) -> valid state (committed)" more DML changes in the same >> objects, it's ok for me. Personally, I think th

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 10:40, Mark Rotteveel wrote: > On 2017-01-17 12:09, Dmitry Yemanov wrote: >> 17.01.2017 13:57, Adriano dos Santos Fernandes wrote: >>> Yep? Ok to break lots of applications? >> We cannot make all the new tokens non-reserved, it's practically >> impossible. BINARY/VARBINARY are standar

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Mark Rotteveel
On 2017-01-17 12:09, Dmitry Yemanov wrote: > 17.01.2017 13:57, Adriano dos Santos Fernandes wrote: >> >> Yep? Ok to break lots of applications? > > We cannot make all the new tokens non-reserved, it's practically > impossible. BINARY/VARBINARY are standard and reserved per SQL spec, so > affected

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 13:19, Michal Kubecek wrote: > This does the trick, the build succeeds then. Good to know, thanks. I'll create pull request. -- WBR, SD. -- Check out the vibrant tech community on one of the world's mo

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Michal Kubecek
On Tue, Jan 17, 2017 at 11:30:53AM +0100, Dimitry Sibiryakov wrote: > 17.01.2017 9:47, Michal Kubecek wrote: > > The offending line seems to be > > > > CREATE DOMAIN PLG$PASSWD AS VARCHAR(64) CHARACTER SET BINARY; > > > > I bisected it to commit > > > > 7b9b408658e1 Implementation of CORE-5064

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Roman Simakov
2017-01-17 15:03 GMT+03:00 Adriano dos Santos Fernandes : > If any other solution allows "valid state (initial) -> invalid state > (uncommitted) -> valid state (committed)" more DML changes in the same > objects, it's ok for me. Personally, I think the concepts does not match. May I ask an example

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 13:03, Adriano dos Santos Fernandes wrote: > If any other solution allows "valid state (initial) -> invalid state > (uncommitted) -> valid state (committed)" more DML changes in the same > objects, it's ok for me. Personally, I think the concepts does not match. But what exactly "inv

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 09:28, Alex Peshkoff wrote: > On 01/16/17 20:57, Adriano dos Santos Fernandes wrote: >> On 16/01/2017 15:40, Alex Peshkoff wrote: >>> On 01/15/17 21:00, Adriano dos Santos Fernandes wrote: >>> I like the suggestion in general but some details worth thinking more. >> Sure. It's yet mor

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 12:25, Dmitry Yemanov wrote: > Perhaps it's worth starting from deprecating DFW and only then come back > to the metadata versioning? I never suggested to run to everything at once. I don't know about Adriano's idea, but my one can be done step-by-step. -- WBR, SD. -

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Alex Peshkoff
On 01/16/17 20:57, Adriano dos Santos Fernandes wrote: > On 16/01/2017 15:40, Alex Peshkoff wrote: >> On 01/15/17 21:00, Adriano dos Santos Fernandes wrote: >> I like the suggestion in general but some details worth thinking more. > Sure. It's yet more an general idea than a proposal. > > What I li

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dmitry Yemanov
17.01.2017 13:32, Dimitry Sibiryakov wrote: > > I always feel the same when I see special treating of system tables and system > transaction in VIO routines. Perhaps it's worth starting from deprecating DFW and only then come back to the metadata versioning? Dmitry --

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dmitry Yemanov
17.01.2017 13:57, Adriano dos Santos Fernandes wrote: > > Yep? Ok to break lots of applications? We cannot make all the new tokens non-reserved, it's practically impossible. BINARY/VARBINARY are standard and reserved per SQL spec, so affected users will have to adjust their databases. Life is so

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 11:57, Adriano dos Santos Fernandes wrote: > Yep? Ok to break lots of applications? I, personally, always used "CHARACTER SET OCTETS" and never even heard about charset "BINARY". -- WBR, SD. -- Check

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 08:30, Dimitry Sibiryakov wrote: > 17.01.2017 9:47, Michal Kubecek wrote: >> The offending line seems to be >> >> CREATE DOMAIN PLG$PASSWD AS VARCHAR(64) CHARACTER SET BINARY; >> >> I bisected it to commit >> >> 7b9b408658e1 Implementation of CORE-5064 (#73) >> >> I didn't look t

[Firebird-devel] [FB-Tracker] Created: (CORE-5457) internal Firebird consistency check (invalid SEND request (167), file: JrdStatement.cpp line: 325)

2017-01-17 Thread Holger Klemt (JIRA)
internal Firebird consistency check (invalid SEND request (167), file: JrdStatement.cpp line: 325) --- Key: CORE-5457 URL: http://tracker.firebirdsql.org/browse/CORE-

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 11:26, Dmitry Yemanov wrote: > Sounds too hackish to my taste I always feel the same when I see special treating of system tables and system transaction in VIO routines. -- WBR, SD. -- Check out the

Re: [Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 9:47, Michal Kubecek wrote: > The offending line seems to be > > CREATE DOMAIN PLG$PASSWD AS VARCHAR(64) CHARACTER SET BINARY; > > I bisected it to commit > > 7b9b408658e1 Implementation of CORE-5064 (#73) > > I didn't look too deep but maybe newly introduced type "binary" collides

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 8:16, Dmitry Yemanov wrote: > Transaction creates a new format, stores some records using this new > format, then the server dies. After restart, changes in > RDB$FORMATS/RDB$RELATIONS are occasionally backed out. Then it could be > impossible to garbage collect the new record versions d

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dmitry Yemanov
17.01.2017 13:18, Dimitry Sibiryakov wrote: > >> How does your idea address this? Between CREATE TABLE and INSERT page >> space (PP, IRP) must be allocated and initialized. And this cannot be >> reverted via the undo log in the case of rollback. > > It can. PP is bound to RDB$RELATIONS and IRP to R

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 8:03, Dmitry Yemanov wrote: > You miss my point. It's written into RDB$FORMATS/RDB$RELATIONS but not > committed because transaction is still active. So concurrent > transactions cannot see these changes, accordingly to your versioning > approach. But VIO_get_current() must see them. Do

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Dimitry Sibiryakov
17.01.2017 7:54, Dmitry Yemanov wrote: > How does your idea address this? Between CREATE TABLE and INSERT page > space (PP, IRP) must be allocated and initialized. And this cannot be > reverted via the undo log in the case of rollback. It can. PP is bound to RDB$RELATIONS and IRP to RDB$INDICES

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Alex Peshkoff
On 01/17/17 10:16, Dmitry Yemanov wrote: > Yet another case: > > Transaction creates a new format, stores some records using this new > format, then the server dies. After restart, changes in > RDB$FORMATS/RDB$RELATIONS are occasionally backed out. Then it could be > impossible to garbage collect t

[Firebird-devel] linux build failure - security.sql (bisected)

2017-01-17 Thread Michal Kubecek
Hello, linux build of master branch currently fails on command .../gen/Release/firebird/bin/isql -i .../src/dbs/security.sql security.tmp with the following error: can't format message 17:0 -- message file /usr/lib64/firebird/lib/firebird.msg not found Dynamic SQL Error -SQL error code

Re: [Firebird-devel] Virtual metadata

2017-01-17 Thread Adriano dos Santos Fernandes
On 17/01/2017 04:56, Dmitry Yemanov wrote: > 16.01.2017 23:08, Adriano dos Santos Fernandes wrote: >> DML changes in the same transaction uses real metadata, i.e., DDL being >> changed does not affect DML or metadata cache. > I.e. one cannot add a field and populate it with data within a single >