FirebirdSQL / NETProvider

Firebird ADO.NET Data Provider
https://www.firebirdsql.org/en/net-provider/
Other
159 stars 65 forks source link

Advantage performance of Fetch/FetchAsync #1121

Open BFuerchau opened 1 year ago

BFuerchau commented 1 year ago

Now, i have found the tests within the sources and have corrected the ReadObject-Function with adding of DBNull.Value. Some tests fails because of my current environment with parallel installations of 3 firebird versions. E.g.: FirebirdSql.Data.Common.IscException : Database is probably already opened by another engine instance in another Windows session

Also i have understand how to use branch in the git.

The most advantage is the less object creation and less GC work during Fetch(). In case of FetchAsync(), which is always slower, the advantage may be less.

BFuerchau commented 1 year ago

How can i identify the failing test in the test source? I'm running all tests, except some with missing plugins, fine. Also the embedded tests running now, if i execeute them test by test,

cincuranet commented 1 year ago

Not sure what you're asking. But you see the name of failing test(s) and with that you can check the code easily.

BFuerchau commented 1 year ago

Some tests fails: CompleteDatabaseInfoTest FbDatabaseInfo.GetMaxMemory/GetCurrentMemory is of type int, but if you have more than 2 GB assigned, you get an overflow exception, i have assigned 8GB to FB.

All tests with northwind fails when i use FB-Server 3.0.10, may be depends on my environment. With FB 4.0 all works fine. Finally i have only fails with authority tests because a plugin is missing, and 1 migration test, because the windows environment adds "\r" to the command source in the sourcefile where the build result contains only "\n". When i remove the "\r", test runs ok.

But when i look at the logs in the attachd checks i find only one error: 1) Error : FirebirdSql.Data.FirebirdClient.Tests.FbArrayTests(Default,True,Required).BigArrayTest FirebirdSql.Data.FirebirdClient.FbException : Unable to complete network request to host "localhost". I have checked these tests with FB 3.0 and FB 4.0 and both works fine. And i don't understand why connection problems should have to do with my changes in fetch.

BFuerchau commented 1 year ago

What is the further procedure now? I cannot reproduce the above error in the test. The test is positive for me with FB 3.0 and FB 4.0.

BFuerchau commented 1 year ago

I have checked once more the error from the test (BigArrayTest): https://github.com/FirebirdSQL/NETProvider/actions/runs/5545201297/job/15020409952?pr=1121 The test fails during create database. I have called this test separately and get no error. So what should i do now?

cincuranet commented 12 months ago

Could you please modify the ReadRow directly, so it's easier to see the diff. We don't have to keep the original version.

BFuerchau commented 12 months ago

Are my changes rolled back? Should i do a complete new request?

cincuranet commented 12 months ago

You should modify this PR, preferably.

BFuerchau commented 12 months ago

Ok, i have updated the Patch-1 now (i was on the wrong patch before). Is this now enough? I can't make a new pull request. Is the current pull request updated?

Sorry for my questions.

BFuerchau commented 10 months ago

Why haven't any of my requests been taken into account? Not even the choppy suggestion for FbDataRader?

MartinKoeditz commented 8 months ago

I think this is a interesting patch regarding performance. Would like to see it.

BFuerchau commented 8 months ago

I think this is a interesting patch regarding performance. Would like to see it.

First changes in FbDataReader: https://github.com/FirebirdSQL/NETProvider/pull/1122

Second changes in GdsStatements (concerning garbage and object creation): https://github.com/FirebirdSQL/NETProvider/pull/1121

Complete fork, based on 9.1.0: https://github.com/BFuerchau/NETProvider

What do you like to know more specific?