[Firebird-devel] [FB-Tracker] Created: (CORE-4631) Lock manager out of room error hides the real cause of this problem

2014-12-02 Thread Dmitry Yemanov (JIRA)
Lock manager out of room error hides the real cause of this problem
-

 Key: CORE-4631
 URL: http://tracker.firebirdsql.org/browse/CORE-4631
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 2.5.3, 2.1.6, 2.5.2 Update 1, 2.1.5 Update 1, 2.5.2, 2.1.5
Reporter: Dmitry Yemanov
Priority: Minor


When the shared memory region backing the lock table cannot be remapped, the 
status vector returns the error message (lock manager out of room), but it 
lacks any low-level details (e.g. OS level error) causing this particular 
problem.

This is mostly fixed in v3, but some cases are not covered there either.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Reopened: (CORE-4602) RemoteServicePort is not working

2014-12-02 Thread Dmitry Yemanov (JIRA)

 [ 
http://tracker.firebirdsql.org/browse/CORE-4602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Yemanov reopened CORE-4602:
--

Fix Version/s: (was: 3.0 Beta 2)

Sean, pay attention to the build numbers. It works OK in official Beta (earlier 
build) but fails in the later build (snapshot). So you cannot resolve it as 
fixed, actually it's a recent regression.

 RemoteServicePort is not working
 

 Key: CORE-4602
 URL: http://tracker.firebirdsql.org/browse/CORE-4602
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 3.0 RC 1
 Environment: Windows 8.1 x64 , Firebird 3.0.0.31397 32bit
Reporter: Mercea Paul

 Setting different value for RemoteServicePort in firebird.conf has no effect. 
 Firebird runs on 3050.
 I have Firebird 2.5.2 32 bit installed, but stoped. FB3, start running on 
 3050 with any value on RemoteServicePort (3033,3053,etc).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] Firebird 3.0 Beta 1 release is available for testing

2014-12-01 Thread Dmitry Yemanov
Firebird Project announces the first Beta release of Firebird 3.0, the 
next major version of the Firebird relational database, which is now 
available for testing.

This Beta release demonstrates the features and improvements currently 
under development by the Firebird development team. Our users are 
appreciated giving it a try and providing feedback here. Apparent bugs 
can be reported directly to the bugtracker.

Beta releases are not encouraged for production usage or any other goals 
that require a stable system. They are, however, recommended for those 
users who want to help in identifying issues and bottlenecks thus 
allowing to progress faster through the Beta/RC stages towards the final 
release.

Please read the Release Notes carefully before installing and testing 
this Beta release.


Download page:
http://www.firebirdsql.org/en/firebird-3-0-0-beta1/

Release Notes:
http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_Beta1-ReleaseNotes.pdf


--
Dmitry Yemanov

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Tackling CORE-4526 (OFFSET FETCH)

2014-11-30 Thread Dmitry Yemanov
30.11.2014 15:37, Mark Rotteveel wrote:

 Well, that was quick ;) Should I go and implement it anyway, or do we
 leave this until it is reported against an actual 3.0 release?

So far it's about pure artificial testing, not something really used in 
production. So I'd wait a bit more ;-)


Dmitry



--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Tackling CORE-4526 (OFFSET FETCH)

2014-11-26 Thread Dmitry Yemanov
Mark,

 I'm looking at the patch, please be patient ;-)

 Any news on this?

I don't have any major problems with the patch. Just a few questions:

1) Why have you decided to extend select_expr via duplication rather 
than using something like this:

%type selectExprNode select_expr
select_expr
: with_clause select_expr_body order_clause limit_clause2
   {
 SelectExprNode* node = $$ = newNodeSelectExprNode();
 node-querySpec = $2;
 node-orderClause = $3;
 node-rowsClause = $4;
 node-withClause = $1;
   }
;

%type rowsClause limit_clause2
limit_clause2
: rows_clause
   { $$ = $1; }
| result_offset_clause fetch_first_clause
   {
 if ($1 || $2) {
   RowsClause* rowsNode = newNodeRowsClause();
   rowsNode-skip = $1;
   rowsNode-length = $2;
   $$ = rowsNode;
 } else {
   $$ = NULL;
 }
   }
;

2) You have left non-standard ROWS clause for searched UPDATE/DELETE 
statements because the standard does not define OFFSET/FETCH for them, 
right? In this case, generic recommendation to use OFFSET/FETCH instead 
of the [deperecated] ROWS looks too hard, as ROWS remains pretty valid 
(and the only option) for UPDATE/DELETE.

Would it make sense to adapt OFFSET/FETCH for UPDATE/DELETE as well? Or 
does it sound too weird for end-users (we're updating/deleting, not 
fetching)?

3) New reserved words (OFFSET and ROW) should be added to the 
keyword_or_column rule to simplify migration. That said, I'm wondering 
why ROWS wasn't added there too in v2.0. Probably my oversight.


Dmitry


--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Support for building Firebird with mingw-w64 toolchains.

2014-11-23 Thread Dmitry Yemanov
23.11.2014 19:12, Alexpux wrote:

 I’m use Firebird about 7 years and now I’m interesting in build Firebird
 with mingw-w64 toolchains.

Out of curiosity, why you need to build it yourself instead of using the 
official binaries? This is quite uncommon for Windows users.

 Most free databases build with mingw toolchains ok and used with it.

I have no problems with mingw used for compilation, but why would one 
prefer using the mingw-produced binaries to the MSVC-produced ones?

 I’m wonder why Firebird developers want to remove mingw support at all.

We remove support for something that's not maintained. If you will be 
maintaining the mingw port, your patches may be accepted. Did you test 
them with MSVC and Linux/gcc?


Dmitry


--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Support for building Firebird with mingw-w64 toolchains.

2014-11-23 Thread Dmitry Yemanov
23.11.2014 20:23, Dimitry Sibiryakov wrote:

 No dependency on C++ runtime

Is it really important for MSVC10 and higher?


Dmitry


--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-4616) Server crashes while accessing context variables concurrently

2014-11-21 Thread Dmitry Yemanov (JIRA)
Server crashes while accessing context variables concurrently
-

 Key: CORE-4616
 URL: http://tracker.firebirdsql.org/browse/CORE-4616
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 2.5.3, 2.5.2 Update 1, 2.5.2
Reporter: Dmitry Yemanov


Crash happens when one thread executes RDB$SET_CONTEXT:

fb_inet_server!set_context
fb_inet_server!CALL_UDFlong
fb_inet_server!invoke
fb_inet_server!FUN_evaluate
fb_inet_server!EVL_expr
fb_inet_server!EXE_assignment
fb_inet_server!EXE_looper
fb_inet_server!looper_seh
fb_inet_server!execute_looper
fb_inet_server!EXE_start
fb_inet_server!execute_triggers
fb_inet_server!EXE_execute_db_triggers
fb_inet_server!JRD_start_multiple
fb_inet_server!jrd8_start_transaction

and another one retrieves the list of context variables due to the MON$ table 
request:

fb_inet_server!Jrd::DatabaseSnapshot::putContextVars+0xc3
fb_inet_server!Jrd::DatabaseSnapshot::dumpData+0x128
fb_inet_server!Jrd::DatabaseSnapshot::blockingAst+0x9c
fb_inet_server!Jrd::LockManager::blocking_action+0x134
fb_inet_server!Jrd::LockManager::signal_owner+0x37
fb_inet_server!Jrd::LockManager::post_blockage+0x1b4
fb_inet_server!Jrd::LockManager::wait_for_request+0x3d9
fb_inet_server!Jrd::LockManager::grant_or_que+0x8c
fb_inet_server!Jrd::LockManager::enqueue+0x20e
fb_inet_server!enqueue+0x51
fb_inet_server!LCK_lock+0x8f
fb_inet_server!LCK_lock_opt+0x36
fb_inet_server!lock_buffer+0xdb
fb_inet_server!CCH_fetch_lock+0x132
fb_inet_server!CCH_fetch+0x2d
fb_inet_server!DPM_gen_id+0x152 

Bug is caused by the lack of proper synchronization inside RDB$SET_CONTEXT. 
v2.1 and v3 are not affected.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Tackling CORE-4526 (OFFSET FETCH)

2014-11-11 Thread Dmitry Yemanov
11.11.2014 21:02, Mark Rotteveel wrote:

 Anyone?

I'm looking at the patch, please be patient ;-)


Dmitry


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] DROP USER delayed until commit?

2014-11-09 Thread Dmitry Yemanov
09.11.2014 12:21, Mark Rotteveel wrote:

 I noticed that when dropping a user that does not exist (using DROP
 USER), the isc_gsec_err_rec_not_found error is not triggered on execute,
 but only on commit, which is rather unexpected and makes it harder to
 take appropriate actions.

 Why is this, and what is the state of the transaction afterwards (it
 seems to be active)?

 Anyone?

Usual DDL is performed partially immediately (updates of system tables) 
and partially at commit. Validation is mostly done during the first 
phase, so errors like something not found are reported immediately.

User management DDL, however, works exclusively at the commit time. This 
is because there are no local system tables to modify, they reside in 
security.fdb instead. The implementation is backed by the Services API 
calls and they don't support splitting execution into two steps. So we 
have to execute everything at once and this is done at commit to be 
consistent with other DDL (otherwise user management DDL would not be 
undoable at rollback after successful execution).

As with any failure during commit, the transaction remains active and 
can be rolled back.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] request operations

2014-11-04 Thread Dmitry Yemanov
04.11.2014 18:18, Dimitry Sibiryakov wrote:

 Could someone explain meaning of each of the values?

 enum req_s {
   req_evaluate,
   req_return,
   req_receive,
   req_send,
   req_proceed,
   req_sync,
   req_unwind
 };

req_evaluate - execute the node inside the main execution flow

req_return - node execution is finished and execution flow should be 
redirected back to the parent node (to continue with the next node)

req_unwind - custom exception handling for the node, without an 
exception handler it forces the whole execution tree to exit (i.e. node 
- parent - parent - ... - out)

req_send / req_receive - handle in/out messages, IIRC they're mostly 
bound to nod_send / nod_receive nodes

req_proceed - initial state to execute the request, also used together 
with req_sync to implement SUSPEND (nod_stall)

Most of the new nodes need only evaluate / return / unwind to be 
implemented. I don't remember us ever touching other request states.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] View Creation error on Firebird 3 Snapshot 31387

2014-11-03 Thread Dmitry Yemanov
Fabiano,

 I’m testing the new Firebird 3 Snapshot (31387) and I got a SP creation
 error that does not occur in FB 2.5.1.

 /Column unknown./
 /ITENS.BDCODNAT./

This is an intended limitation to comply with the SQL specification (and 
other databases as well).

 from vef_emp_tmovseritens itens , vef_emp_tmovser MOV
 join VEF_BASE_TNATOP nat on (itens.bdcodnat = nat.bdcodnat)

Mixed explicit and implicit joins should be used with care now. The join 
condition must include only the streams being joined (and outer streams, 
if exist). But A, B JOIN C actually means A, (B JOIN C) not (A, B) 
JOIN C. So your ON clause can reference MOV and NAT but it cannot 
reference ITENS. You probably need to move that condition to the WHERE 
clause instead.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Tackling CORE-4526 (OFFSET FETCH)

2014-11-03 Thread Dmitry Yemanov
03.11.2014 23:14, Mark Rotteveel wrote:

 For implementing this I need to add two keywords: ROW and OFFSET (note:
 defined as reserved in SQL standard), but looking at the definition in
 keywords.cpp, I wonder what I need to use for version (1 or 2, or maybe
 a different value.

Version 2.


Dmitry



--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Multiple instances under windows (was Re: UsingFirebird 3, beta 1 - installer report)

2014-10-31 Thread Dmitry Yemanov
31.10.2014 20:19, Leyne, Sean wrote:

 The only issue is that the restart will not happen immediately, but after 1 
 minute (interval granularity is minutes, not seconds)

Isn't zero interval allowed?


Dmitry



--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Thought about constraint declarations for V4

2014-10-28 Thread Dmitry Yemanov
Ann,

 I think it would be wise to add a [NO] VALIDATION modifier to constraint
 definitions, including NOT NULL and referential integrity definitions.
 In the presence of a VALIDATION modifier, Firebird would begin enforcing
 the constraint on commit (as now) and then start a pass to insure that
 the data complies with the constraint.  I'd also be tempted to add a
 database configuration option that makes validation the default.

AFAIK, all constraints backed by indices (i.e. PK/UK/FK) were always 
validated upon creation. Well, upon commit, actually.

Starting with v3, we also enforce NOT NULL constraints. The engine 
validates data when NOT NULL is added for an already populated column 
(also at the commit time).

So CHECK constraints seem to be the only ones that are not validated 
upon creation. Surely doable some day.

The good question is whether we really should be supporting the NO 
VALIDATION option. Personally, I don't like that, however I know that 
some other databases has such a feature. If somebody had a real need for 
that, please describe your use case(s).

All that said, I see no need for a configuration option. Validation 
should be always the default behavior. Any RDBMS is first of all about 
consistency and only then about performance.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Thought about constraint declarations for V4

2014-10-28 Thread Dmitry Yemanov
28.10.2014 00:14, Thomas Steinmaurer wrote:

 Now while constraints are under discussion, if we could put deferred
 constraints into the nice to have pot ... ;-)

Not for v4, sorry.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Multiple instances under windows (was Re: UsingFirebird 3, beta 1 - installer report)

2014-10-28 Thread Dmitry Yemanov
28.10.2014 10:34, Martijn Tonies wrote:

 It would be nice to be able to easily control the instances from a small
 application.

What's wrong with the Windows Service Manager? ;-)


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Thought about constraint declarations for V4

2014-10-28 Thread Dmitry Yemanov
28.10.2014 12:35, Dimitry Sibiryakov wrote:

 Oracle?.. Their invalid DB objects aren't about consistency even in the 
 smallest.

Invalid metadata  invalid data. We're speaking about the latter here.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Thought about constraint declarations for V4

2014-10-28 Thread Dmitry Yemanov
28.10.2014 13:28, Adriano dos Santos Fernandes wrote:

 If user knows what he's doing, then the database is not validating, it's
 just wasting his time.

 I think there should be a NO VALIDATION option.

Generally, I don't mind. My point was that *by default* VALIDATION 
should be implied and such clever users should explicitly specify their 
intentions by using the NO VALIDATION option. And that we shouldn't 
allow overriding NO VALIDATION to become a default behavior at the 
config level.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta 1: how to use additionalsecuritydatabases?

2014-10-28 Thread Dmitry Yemanov
28.10.2014 18:28, Alex Peshkoff wrote:

 I understand that using mon$ tables could be better but afraid for FB3
 time for such changes is gone.

Feel free to modify SEC$USERS, if needed. I'm likely to commit changes 
for MON$ tables before Beta 2 as well.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta 1: how to use additionalsecuritydatabases?

2014-10-28 Thread Dmitry Yemanov
28.10.2014 18:55, Alex Peshkoff wrote:

 What if I also add that info not to SEC$USERS but to MON$DATABASE?

No problem, but what is that info? Name of the security db or what?

I'm asking because we had plans to introduce all config settings (actual 
to this database) via a new MON$ table. So SecurityDatabase will surely 
be there and I don't want to duplicate this info.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta 1: how to use additionalsecuritydatabases?

2014-10-28 Thread Dmitry Yemanov
28.10.2014 19:06, Martijn Tonies wrote:

 MON$SEC_DATABASE_USED
 values: DEFAULT / SECONDARY

Maybe DEFAULT, SELF, OTHER?

I may imagine cases when EUA and other-non-default dbs should be 
distinguished.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta 1: how to use additionalsecuritydatabases?

2014-10-28 Thread Dmitry Yemanov
28.10.2014 19:19, Martijn Tonies wrote:

 What would self mean? Are the security tables inside the database
 you're connecting to?

Self = EUA. Not just having security tables but actually known to be 
authenticated using them while connecting.

 And other non default would be a few databases using a single secondary
 security database?

Other = everything neither self nor security3.fdb. So if you initialize 
some special security db to be used for few databases, then they will 
report OTHER (probably asking for a better name).


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta 1: how to use additionalsecuritydatabases?

2014-10-28 Thread Dmitry Yemanov
28.10.2014 19:37, Dimitry Sibiryakov wrote:

 Why it is security.fdb, not security3.fdb then?..

Actually, it's security.db, not security.fdb ;-)

security.db = $(dir_secDb)/security3.fdb


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0 Build 31369 gbak crash

2014-10-27 Thread Dmitry Yemanov
Fabiano,

 I’m testing the new Firebird 3.0 build 31369 and trying to restore a big
 database and at some point, creating an index gbak.exe crashes and
 database restore is interrupted.

 In the firebird.log I got 2 entries:

 FABIANOWed Oct 22 15:46:42 2014

  Database: C:\SCI\BANCO\VSCI3.FDB

  internal Firebird consistency check (index bucket
 overfilled (205), file: btr.cpp line: 3493)

Looks familiar. We had similar bugs in the past.

 This is a bug right? Can I help with more info?

I'm afraid the only way to resolve it is to have a copy of your database 
(or backup) at hands. If you can make it available for download, please 
contact me off-list (firebird2 at yandex.ru). Size is not a problem.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0 beta database recover problem: object has non-SQL security class defined

2014-10-27 Thread Dmitry Yemanov
27.10.2014 12:30, Robbert-Jan wrote:

 While restoring a database with FB 3.0 beta 1 (backed-up with FB3 alpha
 2), I get this error:
 action cancelled by trigger (3) to preserve data integrity
 object has non-SQL security class defined

Can you provide us with this backup?


Dmitry



--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0 beta database recover problem: object has non-SQL security class defined

2014-10-27 Thread Dmitry Yemanov
27.10.2014 13:34, Robbert-Jan wrote:

 Sure, I'm happy to.
 As long as I can put it somewhere privately (i.e. not on the internet) and
 you're willing to destroy it after analyzing/fixing.

I will destroy it for sure.

 Where can I put it?

Do you have FTP server in your company?

 The size of the fbk is 5 MB.

Quite small, you may send it via email (firebird2 at yandex.ru), 
probably encrypted.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0 beta database recover problem: object has non-SQL security class defined

2014-10-27 Thread Dmitry Yemanov
27.10.2014 15:20, Robbert-Jan wrote:

 But do I have to create a issue in the tracker for this? I guess not, if it
 only applies to converting from alpha2 to beta1.

I can now confirm this being an incompatibility in the backup format 
introduced between Alpha 2 and Beta 1. This affects packages only. So 
this is not a real bug.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 Beta 2 according to tracker

2014-10-27 Thread Dmitry Yemanov
28.10.2014 00:09, Thomas Steinmaurer wrote:

 does the following reflect the real status quo on what needs to be done
 for Beta 2?
 http://tracker.firebirdsql.org/browse/CORE/fixforversion/10586

More or less. Some items from that list can be postponed and some minor 
tasks may be not in the list.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Multiple instances under windows (was Re: UsingFirebird 3, beta 1 - installer report)

2014-10-27 Thread Dmitry Yemanov
27.10.2014 19:58, Paul Reeves wrote:

 What is - currently - the reason to keep supporting the cpl applet? Does it
 do anything more than just starting/stopping the service?

 It has always allowed switching the guardian on and off, as well as switching
 between running as an app or a service.

My vote would be to say goodbye to the CPL applet. And maybe to the 
guardian as well.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] SysFunctions returning non-null value for null input

2014-10-16 Thread Dmitry Yemanov
16.10.2014 14:55, Geoff Worboys wrote:

 I've cut the problem down to the thing that's giving me
 trouble:  I want to return a non-null value when when the
 input expression resolves to null.  In the code below I'm
 just trying to return a 0 (for the sake of the example).

 This executes but still gives me a null result:

 dsc* evlTestIt(Jrd::thread_db* tdbb, const SysFunction*,
  Jrd::jrd_nod* args, Jrd::impure_value* impure)
 {
  fb_assert(args-nod_count == 1);
  jrd_req* request = tdbb-getRequest();

  dsc* value = EVL_expr(tdbb, args-nod_arg[0]);
  if (request-req_flags  req_null)
  {
  impure-vlu_desc.makeLong(0);
  impure-vlu_desc.setNullable(false); // redundant??

request-req_flags = ~req_null;

  return impure-vlu_desc;
  }
  return value;
 }


Dmitry


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Linux requirements for FB3

2014-10-15 Thread Dmitry Yemanov
15.10.2014 18:50, Alex Peshkoff wrote:

 Distro   kernel  glibc  Firebird3 ok
 
 Debian 6 2.6.32  2.11.2  no
 Debian 7 3.2.41  2.13yes
 RHEL-5   2.6.18  2.5 no
 RHEL-6   2.6.32  2.12no
 RHEL-7   3.102.17yes
 SLE113.0.76  2.11.3  no
 OpenSuse12.3 3.7.10  2.17yes
 OpenSuse13.1 3.11.6  2.18yes
 Fedora19 3.9.5   2.17yes
 Fedora20 3.11.10 2.18yes
 Mageia4  3.12.21 2.18yes
 Mageia5  3.15.2  2.19yes
 Ubuntu10.04  2.6.32  2.11.1  no
 Ubuntu12.04  3.2 2.15yes
 Ubuntu14.04  3.2 2.15yes

 Sounds reasonable.

Maybe, although I'd prefer RHEL-6 to be supported as well.


Dmitry


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Linux requirements for FB3

2014-10-15 Thread Dmitry Yemanov
15.10.2014 19:20, Alex Peshkoff wrote:

 In that case we will have to keep suing a hack with a shared posix mutex
 to avoid an old bug in a kernel fixed in 2.6.33 or 24 (do not remember
 exactly). Showed itself on CS when accessing same db remotely (i.e. as
 firebird user from OS POV) and embedded as root.

This option is worse ;-)


Dmitry


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] openCursors works different in embedded and remote

2014-10-14 Thread Dmitry Yemanov
13.10.2014 19:23, Adriano dos Santos Fernandes wrote:

 Please look at test staticMessage2 at
 https://github.com/asfernandes/fbstuff/blob/master/src/test/v3api/StaticMessageTest.cpp

 The second openCursor tries to pass NULL to a not-NULL parameter.

 With embedded, the test works.

 With remote, openCursor returns a ResultSet and the exception happens
 only after a fetch.

AFAIU, this is due to the lazy port protocol optimization, i.e. 
op_execute is deferred and sent together with the first op-fetch. So any 
error happening during isc_dsql_execute is returned only after calling 
isc_dsql_fetch. This is more or less as designed / expected side effect.


Dmitry


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] wait vs nowait on meta data statements

2014-10-03 Thread Dmitry Yemanov
03.10.2014 10:31, Martijn Tonies wrote:

 I noticed that with Classic 2.5, you can get “object in use” when trying
 to modify a
 stored procedure that’s been previously executed, see also:
 http://tracker.firebirdsql.org/browse/CORE-4016
 When using “wait” on the transaction to save the procedure, instead of
 “nowait”, the problem goes away.
 Is it safe to always use “wait” on such transactions?

Yes, it's safe. But I'd suggest to additionally specify the lock timeout 
for a DDL transaction to avoid unexpected lockups (e.g. if tables are 
dropped by the same DDL transaction).


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0.0.31348 - Weird domain metadata for newly created domain

2014-10-03 Thread Dmitry Yemanov
03.10.2014 19:47, Adriano dos Santos Fernandes wrote:

 https://github.com/asfernandes/fbstuff/blob/master/src/test/v3api/StaticMessageTest.cpp

 Note the line
 string(output-description.str,output-description.length) for the
 SALES relation, which don't have a comment.

 Current (without a test for output-descriptionNull), it returns the
 value of the previous row. Before it was returning an empty string.

This looks like my fault, it will be fixed within an hour.

However, I'd say that the test is surely incorrect as it doesn't check 
for the NULL indicator. And the tool Thomas is using also looks buggy in 
this regard ;-)


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0.0.31348 - Weird domain metadata for newly created domain

2014-10-03 Thread Dmitry Yemanov
03.10.2014 21:03, Martijn Tonies (Upscene Productions) wrote:

 You purposefully want to break existing applications because the Firebird
 client returns the data of the previous record.

You don't get what's really happening. Firebird API (read: fbclient) 
represents every field with two parts: NULL indicator and field data. 
Ideally, nobody never should access the field data before checking the 
NULL indicator. It simply makes no sense. For NULL-indicated fields, 
there may be zeros, there may be garbage, there may be data of the 
previous record, or whatever.


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0.0.31348 - Weird domain metadata for newly created domain

2014-10-03 Thread Dmitry Yemanov
03.10.2014 21:20, Martijn Tonies (Upscene Productions) wrote:

 I get exactly what's happening.

 And it's clear to me -something- has changed in this regard, cause if it
 weren't, everything would be just fine.

Then tell us how a properly written application (the one not ignoring 
the NULL indicator) could be affected by this change. Something 
working just fine does not mean it working correctly.

P.S. This discussion is purely theoretical as compatibility has already 
been restored in the meantime.


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3.0.0.31348 - Weird domain metadata for newly created domain

2014-10-03 Thread Dmitry Yemanov
03.10.2014 21:37, Martijn Tonies (Upscene Productions) wrote:

 I never said a properly written application could be affected, I said
 something
 has clearly changed as existing applications suddenly return the wrong
 result.

And I said that such existing applications are obviously buggy, but you 
disagreed that it's fbclient who's buggy. Damn, we're starting another 
circle ;-)


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] error on restore

2014-10-02 Thread Dmitry Yemanov
02.10.2014 22:21, Roman Simakov wrote:

 Sorry for some kind of offtopic. What does it mean the last number in
 version? Is it synthetic build number?

Yes, it's auto-generated.

 How can I understand what revision number was used to build it?

Search by the build number in fb-checkins. Note that buildno is 
generated daily and multiple revisions could be created during that day.


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] error on restore

2014-10-02 Thread Dmitry Yemanov
02.10.2014 20:18, Frank Schlottmann-Gödde wrote:

 I'm getting
 gbak: ERROR:action cancelled by trigger (3) to preserve data integrity
 gbak: ERROR:object has non-SQL security class defined
 gbak:Exiting before completion due to errors

 when trying to restore a backup created by
 version LI-T3.0.0.31199
 with
 version LI-T3.0.0.31348

 any ideas?

Are you sure about the former build number? IIRC, there was such a bug 
between revisions 31217 and 31230. And I don't remember anything else 
like that.


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-4568) Server may crash while disconnecting from the database under load

2014-10-01 Thread Dmitry Yemanov (JIRA)
Server may crash while disconnecting from the database under load
-

 Key: CORE-4568
 URL: http://tracker.firebirdsql.org/browse/CORE-4568
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 3.0 Alpha 2, 3.0 Alpha 1
 Environment: SC/CS only
Reporter: Dmitry Yemanov


If a page-level AST is delivered during the database disconnection, the server 
may crash.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-4564) Add per-table performance counters to the monitoring tables

2014-09-30 Thread Dmitry Yemanov (JIRA)
Add per-table performance counters to the monitoring tables
---

 Key: CORE-4564
 URL: http://tracker.firebirdsql.org/browse/CORE-4564
 Project: Firebird Core
  Issue Type: Improvement
  Components: Engine
Reporter: Dmitry Yemanov


Currently, record level performance counters are available in MON$RECORD_STATS 
only globally (aggregating all affected tables). However, they are available at 
the per table basis in the trace output. It makes a lot of sense to report them 
per table in the monitoring tables too.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] TCP Loopback fast path in Windows

2014-09-26 Thread Dmitry Yemanov
26.09.2014 19:13, Leyne, Sean wrote:

 Localhost is not necessary for Classic and SuperClassic engine (I not sure of 
 SuperServer, we don't use this mode), since local mode connections are 
 supported

XNET is not an option for Jaybird or .NET users.

 since the long-term path for Firebird is the deprecation of SuperServer

You're surely misinformed.


Dmitry



--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] TCP Loopback fast path in Windows

2014-09-26 Thread Dmitry Yemanov
26.09.2014 20:11, Leyne, Sean wrote:

 If v3 has the SMP improvements which are planned, why would we continue to 
 support 3 engine versions?

 Classic and SuperClassic would have functionality which covers all use cases.

v3 has the SMP improvements in *SuperServer*.


Dmitry



--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta release

2014-09-24 Thread Dmitry Yemanov
24.09.2014 19:33, Tom Coleman wrote:

 We're almost in October and the FB3 beta release date still shows as
 August 31.

 SMB 3, memory management, etc., etc - all very interesting discussions
 but how are they leading to the highly-anticipated and much needed beta
 release?

Beta release is expected the next week.


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Beta release

2014-09-24 Thread Dmitry Yemanov
24.09.2014 19:39, Dmitry Yemanov wrote:

 Beta release is expected the next week.

Correction: Beta *code* is expected to be ready (i.e. tagged) the next 
week. The release itself will appear slightly later, after composing the 
docs and passing QA.


Dmitry


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 memory manager

2014-09-20 Thread Dmitry Yemanov
Nickolay,

 I implemented intermediate versions GC algorithm and tried to run some stress 
 tests on Firebird 3 to
 check if I have broken something.
 The problem is that tests that I created were spending most of their time in 
 memory manager. This is
 not healthy.

Out of curiosity, what is the call sequence that leads to the memory 
manager load? AFAIU, this is not what should normally happen when 
processing records. Maybe post_verb / verb_cleanup?

 Dear Firebird engineers, why did you replace an algorithm which has O(log(n)) 
 performance with an
 algorithm that has O(n) performance in such a performance-critical part of 
 the engine?

Maybe because you're speaking just about one case while there are other 
cases when the new memory manager was proven to be more efficient? I 
hope Alex will jump in with more details.

 I created a small query to demonstrate the effect of O(n) memory manager 
 performance.
 ===
 create table test7 (id integer);

 execute block as
 declare variable i integer = 1;
 begin
 while(i = 5000) do
 begin
   insert into test7(id) values(:i);
   i = i + 1;
 end
 end;

 commit;

 savepoint X;
 update test7 set id = id;
 delete from test7;
 ===

 Last statement uses 3.5 Gb of memory in small blocks.

Do you mean the undo log here? vct_records bitmap of 3.5GB?

 From quick review of new memory manager code I can see the following problems:
 1) O(n) performance in small hunk allocation
 2) O(n) performance in large hunk deallocation
 3) Worst case allocation cost in large hunk allocation algorithm is bounded, 
 but much worse than for
 older memory manager
 4) Lots of memory waste in various scenarios, which is a security issue with 
 mild risk.
 5) Not all debug facilities have been preserved.

 Problem 1 and 2 can be relatively inexpensively fixed with existing code 
 base. Are there volunteers?
 Problems 3 and 4 require going back to global best-fit allocation strategy, 
 and thus re-design.

 Alternatively, I may fix Firebird 2.5 memory manager to have better 
 performance in simple cases
 without compromising worst-case performance.
 This is rather easy. B-Tree can be replaced with specially designed array of 
 pointers (see FastMM
 code, for example).
 Dmitry, do you want me to do this?

I would warn against any quick decisions. Let's wait for Alex's comments 
first.

 My understanding is that Firebird project probably does not care about large 
 installs and security,
 so it will continue using new memory manager as it is marginally faster in 
 simple cases.

Your understanding is surely incorrect.

 Good thing is that changing or replacing memory manager is very simple task 
 for existing code base.

I'd rather prefer the memory manager being replacable / pluggable at 
runtime. This is not about FB3 though.


Dmitry


--
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-04 Thread Dmitry Yemanov
04.09.2014 19:25, Tom Coleman wrote:

 Speaking of the v3.0 release, who updates 3.0 Beta 1 release dates?

Me.

 August 31 has come and gone:

I know.

 Are there really just 5 unresolved issues delaying the beta release?

Yes, around that number.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Coding style: one-line blocks

2014-09-02 Thread Dmitry Yemanov
02.09.2014 19:05, Dimitry Sibiryakov wrote:

   if (some condition 
   some other condition)
   hardly recognized line that doing something;

This example violates the project coding style.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Coding style: one-line blocks

2014-09-02 Thread Dmitry Yemanov
02.09.2014 18:35, Dimitry Sibiryakov wrote:

 When was decided that one-line blocks must not be enclosed with parentheses?

It didn't change for the past few years:

http://www.firebirdsql.org/en/coding-style/
http://geosoft.no/development/cppstyle.html

82. Single statement if-else, for or while statements can be written 
without brackets.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Coding style: one-line blocks

2014-09-02 Thread Dmitry Yemanov
02.09.2014 21:27, Dimitry Sibiryakov wrote:

 if (temp.rpb_flags  rpb_delta)
   temp.rpb_prior = data;

 doesn't look much better.

Let me disagree.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 - Windows snapshot builds

2014-09-02 Thread Dmitry Yemanov
02.09.2014 23:10, Gabor Boros wrote:

 Available snapshots date is august 27. Is it a known issue?

Yes, Windows builds are broken.


Dmitry



--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-01 Thread Dmitry Yemanov
01.09.2014 11:24, Alex Peshkoff wrote:

 That's nice - but what should happen with that special syntax when BLR
 follows DYN?

Easy option - deprecate the command.

A more clever one - not DROP (nullify) the source but set some flag to 
HIDE it instead. That flag would mean returning NULL instead of source 
blob for user requests, while still returning a proper source blob for 
internal requests.

A compromise - ALTER ... HIDE SOURCE may be implemented via SET TO NULL 
in v3 and via the aforementioned trick starting with v4.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-01 Thread Dmitry Yemanov
01.09.2014 19:58, Jim Starkey wrote:

 Anybody see any problems with it?

I like neither DPB solution because it's DPB. It's not a connection 
string option, it's an API option. Surely not a problem for ISQL users 
that will support it out of the box. But most of existing user 
applications need to be recompiled to use the new option. Those devs who 
are too high level will have to wait until their underlying Firebird 
connectivity library is updated to support the new option.

I don't call this user-friendly, sorry. IMHO, a DDL solution is much 
handier. And it's also implementable in a few hours.

Relaxed write restriction for rdb$source is probably even easier to 
implement. And it doesn't require us to think about the forward 
compatible syntax.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-01 Thread Dmitry Yemanov
01.09.2014 23:28, Dimitry Sibiryakov wrote:

 But it requires a quite complex condition, no? Not just if relation is 
 system one,
 throw exception, but if relation is system one, but not this and that, 
 throw exception.

Complex condition is: relation is X and no other field but rdb$source is 
modified. We already have function in VIO doing such a check for other 
purposes.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-01 Thread Dmitry Yemanov
01.09.2014 23:35, Dmitry Yemanov wrote:

 Complex condition is: relation is X and no other field but rdb$source is
 modified

and the new value is NULL, of course.


Dmitry



--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-01 Thread Dmitry Yemanov
02.09.2014 00:22, James Starkey wrote:

 What possible user applications are going to be doing procedure and
 trigger definitions that require the source be omitted?

Whatever user application that works with the database and executes 
metadata upgrade scripts itself, without invoking ISQL.

 And what syntax are you talking about?

Option (1) from the list of solution being discussed, i.e. new DDL 
statement.

 The problem with write access to RDB$TRIGGERS and RDB$PROCEDURES (or
 whatever the correct names are) is that anybody with privilege can store
 crap, which is the reason they were to be made read-only except for the
 system.

We may allow *only* setting rdb$source to NULL and *only* for SYSDBA / 
DBO, everything else will still be prohibited.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-09-01 Thread Dmitry Yemanov
02.09.2014 00:59, Dimitry Sibiryakov wrote:

 Complex condition is: relation is X and no other field but rdb$source is
 modified. We already have function in VIO doing such a check for other
 purposes.

 You are not going to simplify code, are you?..

Neither of the solutions being discussed simplifies the code, except 
removing of the system tables protection or leaving everything as is.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggerswill not work in FB 3

2014-08-31 Thread Dmitry Yemanov
31.08.2014 22:11, Dimitry Sibiryakov wrote:

 To secure it from examining by users, no?..

This is the last reason for such a move.


Dmitry



--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Hiding source code of procedures and triggers will not work in FB 3

2014-08-31 Thread Dmitry Yemanov
31.08.2014 15:51, Carlos H. Cantu wrote:
 
 We have a hack that many people uses for a long time, to make it
 more difficult to stole procedures/triggers source (more difficult,
 not impossible, since BLR can be decoded to source). They know it is
 not 100% safe, but so far it is the only way to avoid
 standard/common users (the ones who knows only how to connect to
 database and run select), to have access to the sources.

What about unencrypted distributed databases? Should we care about 
hiding PSQL source also from SYSDBA / DBO? Are there real cases when it 
would be needed?

 1) Create an official way to make the source null
 2) Create a way to obfuscate the source
 3) Create a way to store the source encrypted
 4) Leave the rdb$procedures and rdb$triggers writable (or at list the
 source field).
 5) Create special privilege for users to be able to retrieve the
 source code.

See my question above. I would hate to support an object-level privilege 
that can be revoked from the object owner. And, given how our security 
works now, it won't work for SYSDBA anyway.

 1, 4 and 5 seems to be the only solutions that could be done without
 delaying FB 3 release (core developers can confirm this).

So far I tend voting for (1), using a special syntax.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-4534) Invalid DB_KEY based retrievals when concatenation is involved

2014-08-28 Thread Dmitry Yemanov (JIRA)
Invalid DB_KEY based retrievals when concatenation is involved
--

 Key: CORE-4534
 URL: http://tracker.firebirdsql.org/browse/CORE-4534
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 2.5.3, 2.1.6, 3.0 Alpha 2, 3.0 Alpha 1, 2.5.2 Update 1, 
2.1.5 Update 1, 2.5.2, 2.1.5
Reporter: Dmitry Yemanov
Priority: Minor


Trivial demonstration:

set plan;

select * from rdb$database where rdb$db_key = x'';
PLAN (RDB$DATABASE INDEX ()) -- OK

select * from rdb$database where rdb$db_key || '' = x'';
PLAN (RDB$DATABASE INDEX ()) -- unexpected, but it does not hurt

select * from rdb$database where rdb$db_key || x'' = 
x'';
PLAN (RDB$DATABASE INDEX ()) -- wrong

select * from rdb$database where rdb$db_key || rdb$db_key = x'';
PLAN (RDB$DATABASE INDEX ()) -- wrong

Concatenation of DBKEYs is a special operation (used to combine individual 
DBKEYs for multi-table views) but the engine doesn't assume that user can also 
concatenate DBKEYs. Lack of proper checks may lead to invalid retrievals as 
shown above.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Unsigned integer TraNumber problem

2014-08-27 Thread Dmitry Yemanov
26.08.2014 00:29, Nikolay Samofatov wrote:

 When you converted transaction number from SLONG to TraNumber (ULONG) you 
 didn't take into account
 that LCK_query_data returns SLONG and uses signed integers internally.

While there might be different solutions to this particular problem, I'm 
wondering whether it would be generally useful to have the lock data 
extended to 64-bit ints? Obviously, it would cost us four extra bytes 
per every lock request, but supposedly the size issue could be worked 
around if considered undesirable.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Unsigned integer TraNumber problem

2014-08-27 Thread Dmitry Yemanov
26.08.2014 21:52, Jim Starkey wrote:

 As the original author of SLONG, ULONG, et al, might I suggest that you ditch 
 them all in favor of the standard and size explicit int64_t, int32_t, etc.?

When it was discussed the last time, some compilers (was it some ancient 
MSVC version?) didn't support these standard types. I hope we may forget 
about that these days.

Also, while they deserve their place in ODS and API layers, I'm not so 
sure about the rest of the code. I'd rather prefer to have native ints 
there, with explicit casts to/from the size explicit types (and probably 
size validation) at the border layers.

 If somebody were to do a global edit to clean up artificial types, it would 
 also be a good idea to flush the const correctness for objects in favor of 
 clean, type safe, generally cast free code.  I have no idea who came up with 
 the idea of const correctness, but it violates the principal of 
 encapsulation, the basis of object oriented programming.

Here we're never going to agree. Const correctness does not violate 
encapsulation. There may be conflicts between object's contract 
(constness) and the underlying implementation details, but it's solvable 
natively in C++. Moreover, such conflicts are very rare in our codebase.


Dmitry


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-4530) DB_KEY based join of two tables may be ineffective

2014-08-25 Thread Dmitry Yemanov (JIRA)
DB_KEY based join of two tables may be ineffective
--

 Key: CORE-4530
 URL: http://tracker.firebirdsql.org/browse/CORE-4530
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 2.5.3, 3.0 Alpha 2
Reporter: Dmitry Yemanov


Simplified test case:

set planonly;
recreate table t (id int primary key);
commit; 

select count(*)
from (select id, rdb$db_key k from t a order by id) x
left join t z on x.k = z.rdb$db_key -- (*)

PLAN JOIN (X A ORDER RDB$PRIMARY4, Z NATURAL)

vs

select count(*)
from (select id, rdb$db_key k from t a order by id) x
left join t z on z.rdb$db_key = x.k -- (*)

PLAN JOIN (X A ORDER RDB$PRIMARY4, Z INDEX ())

i.e. order of expressions in the join condition affects the generated plan and 
thus performance.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Tackling CORE-4526 (OFFSET FETCH)

2014-08-22 Thread Dmitry Yemanov
22.08.2014 18:54, Mark Rotteveel wrote:

 Are there any objections if I try to come up with a patch to add OFFSET
 and FETCH to the select syntax (CORE-4526)?

Feel free.


Dmitry



--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Error messages how-to

2014-08-12 Thread Dmitry Yemanov
12.08.2014 18:03, Mark Rotteveel wrote:

 Doesn't this miss a add specific standard (or vendor-specific) SQL state
 somewhere?

It's hidden inside item (3) ;-)


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] So, What's wrong with IBPP?

2014-08-11 Thread Dmitry Yemanov
11.08.2014 13:45, Mark Rotteveel wrote:

 To illustrate: you seem (?) to be speaking from the perspective of a
 target audience who use the interface in application development, and where
 you don't want to deal with all the nitty gritty low-level details, here
 IBPP is probably a good fit (but as I haven't used it, I can't say).

 However speaking as the developer of Jaybird, I don't want an API that
 will perform too many conversions or work that I will need to redo to make
 it work the same or similar as the wire protocol implementation, and to
 make it work within the rules established by JDBC. In that case an API that
 does too much heavy lifting is actually a hindrance (or at minimum a
 potential performance bottleneck).

 These are already two - somewhat - conflicting needs. Personally I'd say
 that Firebird should at minimum have a low-level API (which the current
 ibase.h provides, although it has some annoyances). A higher level API
 (like IBPP) to do some of the heavy lifting for application development is
 a nice to have. And as you say: it already exists: IBPP.

This is exactly the developer's position, at least how I understand it 
myself ;-) IBPP is C++ only and too high-level. The FB API should be 
lower-level and language-independent. The legacy ISC API mostly serves 
this goal (although it's not that low-level really, some hidden 
conversions/movements happen there), but it's showing its age. So we 
attempted to offer a modern replacement with the v3 OO API. IBPP can 
still act as a high-level C++ wrapper, FIBPlus/FireDAC/whatever would 
act the same for Delphi, etc. They just need to be ported to the new 
core API (whatever it will be).


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-11 Thread Dmitry Yemanov
11.08.2014 18:18, Jim Starkey wrote:

 Since plugins pretty much need to be compiled with the same compiler as the 
 engine

Very questionable requirement. I can easily expect plugins written in 
Delphi.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-11 Thread Dmitry Yemanov
11.08.2014 22:08, Adriano dos Santos Fernandes wrote:

 But an (client) application wants to generate exception when accessing
 the API, and we do not know in advance what's the good classes for each
 project.

And we'll never know. This is not our business, IMO.

 Some may use like Firebird, an Exception not inherited, others wants
 std::exception, a Qt-based project would want another one...

This is for the higher level wrappers to care about. For example, IBPP 
throws its own exceptions. Firebird driver for Qt may have its own 
exceptions. And so on.

We either forget about exceptions completely, or throw some partially 
abstract class (thus forcing users to implement the exception before 
being able to compile), or maybe go for the policies you described.

That said, I'd rather resolve the other issues first. Even a 
no-exception API may be good enough for the time being, we can offer 
something better later.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 07:09, Adriano dos Santos Fernandes wrote:

 I did some tests and detected that FPC class with or without virtual
 methods has a pointer in its start.

 From what I've seen on the web, there should be three pointers there. 
But maybe it depends on the compiler settings or other reasons (like for 
RTTI and multiple inheritence in gcc).


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 12:34, Reinier Olislagers wrote:

 Do I understand correctly that the existing FB 2.5 C API will therefore
 remain supported

Correct.

 and updated with new features for each FB release?

Not necessarily correct.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 13:48, Dimitry Sibiryakov wrote:

 It is an open project, no?..

It is. But open  unmanaged.

 When C API missed a new feature that I could use, I created a patch, 
 submitted it to
 the project and

it may be either accepted or rejected. Because you may disappear 
tomorrow but the project will have to maintain your patch till the end 
of life.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 13:55, Reinier Olislagers wrote:

 However, apparently FB devs don't think it's important to keep it in
 sync with the C++ interface - even if third parties could submit patches
 for that.

 So in effect, new FB (features) will not be compatible with any language
 that does not have C++ support.

So far we're trying to find a compromise.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 14:09, Dimitry Sibiryakov wrote:

 Whole project is inherited, remember?.. You have to maintain code written by 
 Jim, Mike,
 Arno, Nikolay and others, so why not mine?..

Everything depends on the patch. There's a difference between *can* be 
accepted and *will* be accepted. If you come with the patch restoring 
old ODS support in v3, it will be rejected simply because the active 
project members don't want to spend their time supporting that. It was 
discussed and agreed on. Whatever we agree on regarding the legacy API, 
we cannot stop maintaining it within its current boundaries. But whether 
it must be extended to accomodate all the new features is a subject of 
discussion, primarily depending on conclusions derived from this topic. 
Multiple separately maintainted APIs may be the same pain as with ODS.

I'm not against the legacy API, it is all about the required efforts.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 14:10, Jim Starkey wrote:

 It is a fool's errand to try to build a OO interface that is call compatible 
 across a wide range of OO languages.  If anyone is in doubt, look at 
 Objective-C and weep.

If this is found being impossible (I'm not deeply involved, so I don't 
have a strongly argumented opinion yet), then we have [at least] three 
questions to answer:

1) Do we keep the existing OO Y-valve API for internal purposes? E.g. 
for engine plugins or for remote-engine calls. The same issues apply 
but we can expect virtually zero practical risks here (I doubt we'll be 
writing some parts of the server in FreePacal or Lua). Maybe some 
interfaces could be simplified in this case.

2) Do we offer the existing OO Y-valve API to other C++ users? It has to 
be public and limitations (including binding issues) have to be documented.

3) Do we keep using the legacy ISC API as the plain C wrapper for 
non-C++ users or invent a better replacement?


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-10 Thread Dmitry Yemanov
10.08.2014 19:45, Dimitry Sibiryakov wrote:

 When will you start to separate application API and plugin API?..

UDRs must use a regular application API for callbacks into the engine, 
this is a design requirement.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-08-09 Thread Dmitry Yemanov
09.08.2014 21:19, Dimitry Sibiryakov wrote:

 It has to be channeled to benefit current and prospective users.

 Current users don't care about API because they don't use it. They use all 
 kind of
 envelopes which are already OO-oriented, tested by years and well documented. 
 Future users
 also will use them instead of API because new API has no such features.

Here we mostly speak about FB API users, not FB users in general (they 
really don't care). None of the connectivity layer developers will be 
using the new API if it does not provide them with some new features. In 
FB3, there are very few of them, but with FB4 the situation may start 
looking differently.

There's also a different aspect, much more important IMO. How hard is to 
develop a new connectivity layer (for FreePascal / Node.js / JavaScript 
/ Haskell / whatever) using our API. The easier it is, the more 
prospective users we can get. The SQLDA stuff was sometimes described by 
newcomers as PITA to deal with. If the new API, be it OO or plain C, 
can be more user-friendly (in terms of usability and extendability), 
then it wins hands down.


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] dtype_packed

2014-08-05 Thread Dmitry Yemanov
05.08.2014 12:19, Mark Rotteveel wrote:

 Not an authorative answer, but it seems that dtype_packed is also known in
 COBOL (and SAP) for a BCD (binary coded decimal).

 If that also applies to Firebird, I am not sure.

dtype_packed really seems to be a packed decimal, however it's not used 
by Firebird since day one. Kinda historical artifact.


Dmitry


--
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] SVN: firebird:[59943] firebird/trunk/src/yvalve/why.cpp

2014-08-03 Thread Dmitry Yemanov
03.08.2014 18:29, Dimitry Sibiryakov wrote:

 Commented out the annoying (thus supposedly wrong?) assertion.

 Without this assert following code will crash with segfault on using offsets 
 array.
 If this assert is activated on queries without output parameters, it should 
 be changed
 to fb_assert(count == 0 || offsets), not just commented out.

I've just left it to the author to fix. I couldn't run tpcc with this 
assert activated.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] DDL permissions

2014-08-02 Thread Dmitry Yemanov
01.08.2014 18:55, Simonov Denis wrote:

 SQL insert into RDB$EXCEPTIONS(RDB$EXCEPTION_NAME) VALUES ('E1');

At the first glance, I don't see why it cannot be prohibited. But I see 
from the code that many system tables are still unprotected from user 
inserts. Maybe Claudio still has some pending commits on this subject. 
Or maybe there are some hidden issues I don't see.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] COMMENT ON docs

2014-07-28 Thread Dmitry Yemanov
28.07.2014 20:57, Dalton Calford wrote:

 Has any work been performed on implementing schema/synonyms/larger
 object identifiers?

Nope, as far as I'm aware of. It was proposed for v4 but so far I don't 
see anybody jumping in with lots of interest...


Dmitry


--
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] COMMENT ON docs

2014-07-28 Thread Dmitry Yemanov
28.07.2014 22:20, Dalton Calford wrote:

 So, let me understand this.

 (a) the plan is to block/remove access to the system tables

Wrong, at least in the short term. Currently we're trying to block 
*write* access to the system tables, no more than that.

 (b) functionality will not be added until it is in the sql standard,
 even though we are not implementing everything that is currently in that
 standard as some of it does not make sense or no one wants to do it.

Non-standard functionality is added if we agree that it does make sense.

 (c) the loss of functionality such as blocking sysdba access or
 displaying comments will not be compensated with extensions to the language.

You may live without SYSDBA in FB3. And displaying comments is available 
with either SELECT or SHOW (latter is isql only).

 What would prevent a show command to be added to the language?

 Show comments on 
 Show ddl for 
 Show dependencies on ...
 etc.

IMHO, it's counternatural to SQL. A non-SELECT/non-EXECUTE command that 
returns what? A blob? What is the name of the output parameter, 
COMMENT or what? How should it be described in API so that thousands 
of existing apps understood it?

 Interbase became such a good system by NOT following the standard but by
 adding flexibility and features to the baseline product.   I seem to
 recall that interbase was one of the first if not the first to support
 blobs which where definitely not part of the standard at the time.

I'm afraid there were no standard at all those dark times.

 There are some security enhancements that red soft has that would be
 wonderful in the core product, but, we don't see them yet.

Some of them are already in the core. May you enumerate others that you 
urgently need?

 I wonder if redsoft is still actively developed and supports schema?

Yes, it's actively developed. No, it doesn't support schemas. I don't 
think you can have/use schemas without recompiling all those thousands 
of existing applications and/or their underlying database connectivity 
libraries.


Dmitry


--
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] New Interface

2014-07-25 Thread Dmitry Yemanov
25.07.2014 18:43, Jim Starkey wrote:

 If an interface is incompatible, existing applications have to be recoded.  
 If they need to be recoded, there isn't any real purpose to retaining an 
 interface style.

At the moment the new API and the legacy one are mostly compatible, 
actually the legacy API is now a thin wrapper over the new API. The 
major difference is that we introduced an explicit Cursor/ResultSet 
interface and it somewhat changed the legacy named cursor semantics 
(which is fixable, I believe, we just need to find the best solution).


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] setCursorName in IResultSet rather than IStatement

2014-07-24 Thread Dmitry Yemanov
24.07.2014 14:37, Dimitry Sibiryakov wrote:

 In new API you can simply deprecate using named cursors. They are almost 
 useless anyway.

And also deprecate WHERE CURRENT OF in DSQL for being useless? Just 
because you don't use it?


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] setCursorName in IResultSet rather than IStatement

2014-07-24 Thread Dmitry Yemanov
24.07.2014 14:54, Dimitry Sibiryakov wrote:

 Does it work without FOR UPDATE in SELECT now?

I haven't tried. Did it work before?

 Has FOR UPDATE clause stopped killing network peformance?

Not everybody is working with slow networks.

 Using RDB$DB_KEY for DML has the same effect as WHERE CURRENT OF

Nope, it's a bit slower.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] setCursorName in IResultSet rather than IStatement

2014-07-24 Thread Dmitry Yemanov
24.07.2014 15:14, Dimitry Sibiryakov wrote:

 I haven't tried. Did it work before?

 No.

And this is correct.

 Not everybody is working with slow networks.

 Any network is slow for transferring one record per fetch. Embedded server 
 shows this
 problem well. (Every SELECT in it works in non-buffered mode.)

Embedded is not affected by the FOR UPDATE clause. And yes, it's used in 
time-critical applications.

 Nope, it's a bit slower.

 Why? What's the difference?

RDB$DBKEY requires a record fetch/lookup (costs at least two pages 
fetches plus decompression). WHERE CURRENT OF deals with the already 
fetched record which resides in memory.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Problems with the Firebird 3 API

2014-07-22 Thread Dmitry Yemanov
21.07.2014 18:04, Alex Peshkoff wrote:

 Ahh - it's related with multiple inheritance and rtti. Luckily we do not
 use both in interfaces.

Just for clarity - besides that, we must neither use virtual destructors 
nor overloaded methods to guarantee the stable vtable layout.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Problems with the Firebird 3 API

2014-07-22 Thread Dmitry Yemanov
22.07.2014 14:54, Alex Peshkoff wrote:

 Not sure how does presence of overloaded methods affect stability of
 vtable layout, but agree that we should better avoid them in public
 interfaces.

Even if you put an overloaded method at the end of the interface, its 
vtable entry will be placed in the middle (alongside with its 
counterpart) by the compiler, thus breaking the ABI compatibility.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 build broken with gcc under Linux

2014-07-22 Thread Dmitry Yemanov
22.07.2014 14:44, Dimitry Sibiryakov wrote:

 Instead of fixing handling 32 bits internally without any bounds checking

In general, I don't like platform dependent datatypes in the public API, 
hence my objections to size_t. (*)

The problems, as I see them, are:

1) It may complicate client programs if their compiler misses a 100% 
analogue. One might need to introduce conditional compilation etc.

2) If the underlying implementation cannot deal with 64-bits-long 
objects, it (1) requires bounds checking and (2) partially defeats the 
whole purpose of interface as a contract (i.e. interface promises 
something it cannot handle).

3) If the underlying implementation can deal with 64-bits-long objects, 
the situation starts looking better. However, this is commonly *not* the 
case for Firebird (maybe Trace API is an exception here, I don't know).

(*) I was objecting to using plain ints there for the same reason. We're 
just lucky to not supporting Itanium or some other platform with 64-bit 
ints. One day this issue will strike back but lots of wrongly defined 
headers will already be distributed around the world.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Problems with the Firebird 3 API

2014-07-22 Thread Dmitry Yemanov
22.07.2014 15:31, Jim Starkey wrote:

 Why do you care?

If the C++ interface (pure virtual) is expected to be used outside the 
Firebird project (by other C++ applications) or even by different 
Firebird versions (e.g. newer server loading the older engine), then we 
must care. You cannot extend the interface by an overloaded function and 
expect its binary compatibility with the prior interface version.

If the only public API is a [machine-generated] language-neutral plain C 
stuff, then I don't care. This is not what we have at hands though.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 build broken with gcc under Linux

2014-07-21 Thread Dmitry Yemanov
21.07.2014 13:13, Alex Peshkoff wrote:

 We were using system size_t until Nickolay had committed FB_SIZE_T a few
 days ago in attempt to avoid warnings. The bad thing is that it wasnt't
 discussed.

 Not too late to begin discussion now.
 I would sooner agree with the change and Nickolay's arguments to do it
 (present in comment in h-file) no matter of the fact that it would be
 good idea to check builds better after such changes.

Nickolay's comment is absolutely correct. However:

1) The root of the warnings issue was that size_t actively used in our 
classes library was often compared and/or assigned to/from shorter 
SLONG/ULONG variables. And the compiler was correctly showing where our 
code is not ready for big (4GB) objects. Making both ULONG and 
FB_SIZE_T the same [smaller] size is an obvious solution, but strictly 
speaking it just hides the issue instead of fixing it. If one day we 
want to support objects bigger than 4GB, one would need to enable 
FB_USE_SIZE_T and start from scratch.

This is not really an objection as long as FB_USE_SIZE_T is preserved, 
rather just a comment of mine.

2) Also, it introduces more artificial datatypes than we had. I remember 
we were dicussing an intention to minimize artificial datatypes in favor 
of native compiler ones in all places that are not ODS/API related. New 
API already does that. So I see the patch as a step backward in this 
regard. And I really hate seeing/writing typedefs in such trivial places 
like counter-based loops.

3) If size_t was used in any public interface, then IMHO it was a 
mistake. Looking at the new API, unsigned int should be used instead. 
IMO, FB_SIZE_T must be a private typedef and thus should be moved from 
types_pub.h to fb_types.h.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Problems with the Firebird 3 API

2014-07-21 Thread Dmitry Yemanov
21.07.2014 16:32, Alex Peshkoff wrote:

 First of all - formal definition of API is certainly not a set of C++
 classes. Each firebird interface is a single pointer, pointing to the
 table of virtual functions that are contained in this interface. First
 parameter of each function is always a pointer to an interface itself.

 This definition in plain english may be rewritten in C:
 struct ISample
 {
   struct VTable
   {
   void functionOne(ISample* this, Type1 par1, Type2 par2, /*
 other parameters */);
   void functionTwo(ISample* this, TypeA parA, TypeB parB, /*
 other parameters */);
   /* other functions ... */
   };

   VTable* vTable;
 };
 
 Such definition of pure virtual interface should work and be correct for
 any working C compiler.
 
  [snip]
 
 in C++ we get exactly same binary layout for any known to us C++ compiler.

Is this really so? This is why I'm asking:

https://gcc.gnu.org/ml/gcc-help/2003-11/msg00257.html

http://stackoverflow.com/questions/5712808/understanding-the-vtable-entries

i.e. GCC has a different vtable layout and moreover it's version-dependent.

As for Free Pascal, they also reserve 12 bytes at the beginning of the 
vtable, hence the compatibility issue.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 build broken with gcc under Linux

2014-07-21 Thread Dmitry Yemanov
21.07.2014 18:16, Alex Peshkoff wrote:

 I think we should wait for Nickolay's mind before doing some big changes.

I don't propose any big changes now, so far we're just discussing. Maybe 
there will be other opinions posted here.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Problems with the Firebird 3 API

2014-07-21 Thread Dmitry Yemanov
21.07.2014 18:04, Alex Peshkoff wrote:

 Ahh - it's related with multiple inheritance and rtti. Luckily we do not
 use both in interfaces.

I didn't try your test app, but I can confirm the expected vtable layout 
(at least for IProvider) in the debugger (for gcc 4.8.2).

 As for Free Pascal, they also reserve 12 bytes at the beginning of the
 vtable, hence the compatibility issue.

 12 byte? On 64-bit system?
 They are crazy!

Probably 12 bytes were about 32-bits, i.e. three additional pointers.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Firebird 3 build broken with gcc under Linux

2014-07-19 Thread Dmitry Yemanov
19.07.2014 14:14, Roman Simakov wrote:

 IMO FB must use system size_t.

We were using system size_t until Nickolay had committed FB_SIZE_T a few 
days ago in attempt to avoid warnings. The bad thing is that it wasnt't 
discussed.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] DDL permissions

2014-07-17 Thread Dmitry Yemanov
17.07.2014 12:32, Simonov Denis wrote:

 After adding restrictions on DDL statements, I can not start initialized
 security3.fdb

 GSEC add sysdba -pw masterkey
 An error occurred while attempting to add the user.
 unsuccessful metadata update
 CREATE TABLE PLG$SRP failed
 There is no privilege for this operation
 GSEC

Two workarounds are possible:

(1)
gsec -user sysdba -pass masterkey
GSEC add sysdba -pw masterkey

or

(2)
isql -user sysdba employee
SQL create user sysdba password 'masterkey';


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] C++ and the API

2014-07-16 Thread Dmitry Yemanov
16.07.2014 12:15, Dimitry Sibiryakov wrote:

 This criticism is valid not for API itself, but mostly for its internal 
 implementation.
 API is fine, code under the hood is inadequate.

Once again, you don't count the message based API being a public API.

 Most of 16 bits limitation belongs to the Message API which is not used now.

It's no longer used by the DSQL API, but it's still used directly by at 
least GBAK and GPRE. I suspect it would be much easier porting them to 
the new OO API (preserving the message based architecture) rather than 
rewriting them from scratch to use the DSQL API.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] C++ and the API

2014-07-15 Thread Dmitry Yemanov
15.07.2014 17:49, Dimitry Sibiryakov wrote:

 It even refuses to open (leave alone absence of links from official www
 server).

Surprise, but the link is from the official www server.


Dmitry


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] The Firebird 3 API and programming language independence

2014-07-13 Thread Dmitry Yemanov
13.07.2014 18:36, Dimitry Sibiryakov wrote:

 http://sourceforge.net/projects/uib/

And the module he supposedly refers to is:
https://sourceforge.net/p/uib/code/HEAD/tree/trunk/source/uibfblib.pas


Dmitry


--
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


<    3   4   5   6   7   8   9   10   11   12   >