Skip to content

Commit 536befc

Browse files
committed
7.11.0
1 parent 61106e2 commit 536befc

File tree

24 files changed

+2277
-0
lines changed

24 files changed

+2277
-0
lines changed

NETProvider/Provider/src/InterBaseSql.Data.InterBaseClient.Tests/ChangeViewTests.cs

+675
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Changes for 7.11.0
2+
3+
## ChangeViewTests.cs (new)
4+
* ChangeAll test
5+
* ChangeAllStringAccessor test accessing fields change state by name
6+
* ChangeDelete tests finding deletes
7+
* ChangeInsert tests newly inserted records
8+
* ChangeUpdate tests changes to records
9+
* ChangeUpdateCol tests changes to subscriptions on certain columns
10+
* ChangeInsertUpdate tests finding newly inserts or updated rows
11+
* ChangeToNull tests the Null code fix
12+
* NewRowDefautls tests that new rows' change state are all csUnknown
13+
* DataTableAddCustomCol tests that adding a column to a IBDataTable sets it's change state to csUnknown
14+
* DataTableChangeColumns tests the creation of the psuedo columns showing the change states
15+
* ChangeAllDataTable tests seeing all insert, update and deletes in the underlying table
16+
* ChangeAllDataTableStartEnd tests filling with a limited number of rows starting at row 2
17+
* ChangeAllDataSet tests the FillWithChangeSet(dataSet) method
18+
* ChangeAllDataSetSrcName tests the FillWithChangeSet(dataSet, string) method
19+
* ChangeAllDataSetSrcNameStartEnd tests the FillWithChangeSet(dataSet, startRecord, maxRecords, string) method
20+
21+
## ConnectionStringTests.cs
22+
* Added tests for the new truncate_char option
23+
24+
## IBCommandTests
25+
* ExecuteNonQueryOnFetch tests the new FetchEvent
26+
27+
## IBConnectionTests.cs
28+
* ConnectionWithTruncateChar tests the new TruncateChar option
29+
30+
## IBDatabaseSchemaTests.cs
31+
* Fixed count error assert in the Tables test (extra table created for the change view tests)
32+
33+
## IBDataReaderTests.cs
34+
* Added a TruncateCharTest testing hte auto right trim for Char fields
35+
36+
## IBSchemaTests.cs
37+
* Fixed the Tables test to reflect the new table added for ChangeView tests
38+
39+
## IBServicesTests.cs
40+
* Change the code for the location to create the DB based on the AppDomain.CurrentDomain.BaseDirectory value
41+
42+
# Changes for 7.10.2
43+
44+
## General
45+
* All class names and name spaces are changed to be IB vs Fb or Fes. This was done so that both the Fb driver and this driver it is based on will not have any naming conflicts if both used in the same application.
46+
47+
## Common
48+
* Namespaces changed from FirebirdSql.Data.FirebirdClient.Tests to EntityFramework.InterBase.Tests
49+
* Use the IB named versions of classes and variable names where appropriate moved from fb to ib prefixes.
50+
* All files renamed from FbXxxxx to IBXxxxx with the internal class matching that same change.
51+
For example FbBackup.cs becomes IBBackup.cs and the class FbBackup is now IBBackup
52+
* using FirebirdSql.Data.FirebirdClient, FirebirdSql.Data.Common now InterBaseSql.Data.InterBaseClient, InterBaseSql.Data.Common
53+
* All test constructors removed compression and WireCrypt from passed params.
54+
55+
56+
## ConnectionStringTests.cs
57+
* Added test ParsingEUAEnabledandInstanceNameConnectionStringTest
58+
* Removed tests CryptKeyWithBase64FullPadding, CryptKeyWithBase64SinglePadding, CryptKeyWithBase64NoPadding and WireCryptMixedCase
59+
* All temp database extensions changed form .fbd to .ib
60+
61+
## FbBooleanSupportTests.cs renamed to IBBooleanSupportTests.cs
62+
* SimpleSelectWithBoolConditionTest removed NULL test and rewrote to not use NOT DISTINCT FROM to still do boolean param testing
63+
64+
## FbCommandTests.cs renamed to IBCommandTests.cs
65+
* Added PrepareTest
66+
* Removed ReturningClauseParameterTest, ReturningClauseScalarTest and ReturningClauseReaderTest
67+
* Removed CommandCancellationTest
68+
* Removed CommandExplainedPlanTest and NoCommandExplainedPlanTest
69+
* Removed PassesTimeSpanWithProperPrecision and PassesDateTimeWithProperPrecision (IB Propblem with params in the select portion)
70+
71+
## FbConnectionStringBuilderTests.cs renamed to IBConnectionStringBuilderTests..cs
72+
* Removed CryptKeyValueSetter, CryptKeyValueGetter, WireCryptSetter and WireCryptGetter
73+
74+
## FbConnectionTests.cs renamed to IBConnectionTests.cs
75+
* Removed NoDatabaseTriggersWrongConnectionStringTest, DatabaseTriggersTest, UserIDCorrectlyPassedToServer, UseTrustedAuth, CreateDropDatabaseUsingTrustedAuth, UseCompression, UseWireCrypt, PassCryptKey and CaseSensitiveLogin
76+
77+
## FbDataReaderTests.cs renamed to IBDataReaderTests.cs
78+
* Added an extension to flipping the Endian of a Guid (potential bug in
79+
* GetOrdinalTest tests against rdb$database
80+
* ReadBinaryTest tests against rdb$database and the x prefix to the string removed (Fb specific syntax)
81+
* ReadGuidRoundTripTest Added a cast to octets to get aroudn an IB bug of incorrect charset. Also had to Flip the endian due to the driver hard-coding to little, but native GUID being big (or vice versa)
82+
* ReadGuidRoundTrip2Test
83+
1. turned the execute block into a create SP then calls the SP and finally drops the SP at the end.
84+
2. comparison done to the ASCII string representation and once again needed to flip the endian of the driver generated Guid (problem in DecodeGuid(byte[]) ?)
85+
* DNET183_VarcharSpacesShouldNotBeTrimmed hardcoded the 'foo ' instead of param to workaround IB limit
86+
87+
## FbDecFloat16SupportTests.cs, FbDecFloat32SupportTests.cs, FbDecFloatTypeTests.cs, FbExceptionTests.cs, FbLongNumericsSupportTests.cs and FbDecInt128SupportTests.cs removed as they are Fb specific data types
88+
89+
## FbRemoteEventTests.cs renamed to IBRemoteEventTests.cs
90+
* All tests currently commented out due to high use of Fb features in them. Needs rewriting.
91+
92+
## FbSchemaTests.cs renamed to IBSchemaTests.cs
93+
* Tables test increased number expected due to a table being added to the DB creation script.
94+
95+
## FbServicesTests.cs renamed to IBServicesTests.cs
96+
* BackupRestoreTest now uses the current assemblies directoryas the location of hte B/R
97+
* Removed Restore statistics (Fb feature)
98+
* Removed StreamingBackupRestoreTest, StreamingBackupRestoreTest_BackupPart and StreamingBackupRestoreTest_RestorePart
99+
* Removed ShutdownOnline2Test
100+
* AddDeleteUserTest Added some Try blocks to make sure the added user is always deleted
101+
* Removed NBackupBackupRestoreTest, TraceTest, NoLingerTest, StatisticsWithEncryptedTest, StatisticsWithEncryptedTest
102+
103+
## Removed files FbTimeZonesSupportTests.cs, FbZonedDateTimeTypeTests.cs and FbZonedTimeTypeTests.cs
104+
105+
## FbTransactionTests.cs renamed to IBTransactionTests.cs
106+
* ReadCommittedReadConsistency removed
107+
108+
## TrackerIssuesTests.cs
109+
* DNET217_ReadingALotOfFields
110+
* SP mpoved to the DB creation script to get around not using recreate.
111+
* DNET304_VarcharOctetsParameterRoundtrip
112+
* Created a SP called Octets to get aroudn IB limitation of parameters in the select portion
113+
* GetSomething
114+
* Switched monitoring table name to start with tmp$
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changes for 7.10.2
2+
3+
## Removed Types folder completely
4+
5+
## FirebirdSql.Data.FirebirdClient.csproj changed to InterBaseSql.Data.InterBaseClient.csproj
6+
* Fixed the Firebird strings to be InterBase
7+
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# Changes for 7.11.0
2+
3+
***Change View support added***
4+
5+
## XsqldaMarshaler.cs
6+
* Fixed null flag check to check >= 0 instead of != -1
7+
8+
## IBDatabase.cs
9+
* Added support for hte new truncate char feature. When true Char fields are right truncated
10+
11+
# Changes for 7.10.2
12+
13+
## General -
14+
15+
* To support the posix versions of the native IB client DLLs the whole injection scheme was removed due to not being able to support cdecl calling convention (and there are 3 or 4 windows dll's that use cdecl around events that their native driver suppport did not support). The current code always injected stdcall as the calling convention and .NET 4.52 does not support the cdecl calling convention. At this time it was decided to not support a managed interface to IB and only go through the supplied native clients.
16+
* All class names and name spaces are changed to be IB vs Fb or Fes. This was done so that both the Fb driver and this driver it is based on will not have any naming conflicts if both used in the same application.
17+
18+
## Common
19+
* Namespaces changed from FirebirdSql.Data.Client.Native to InterBaseSql.Data.Client.Native
20+
* Uses InterBaseSql.Data.Common instead of FirebirdSql.Data.Common
21+
* Use the IB named versions of classes and variable names where appropriate moved from fb to ib prefixes.
22+
23+
## FbClientFactory.cs renamed to IBClientFactory.cs
24+
- IBClientFactory total rewrite to support cdecl calling convention on POSIX platforms.
25+
- Added Register<T>(string id) to register each of the IIBClient class implementors
26+
- GetGDSLibrary returns a shared instance to the explicit IIClient for the running platform with the passed Server type. Naming convention is expected to be <plaform><servertype> So windows default class name would be WindowsClient. Linux Embedded would be LinuxEmbedded. In each case you would pass Client or Embedded as ServerType and the routine figures out the platform.
27+
28+
## FesArray.cs renamed to IBArray.cs
29+
* FesArray class renamed to IBArray
30+
* General change of Firebird class and variable names to the IB Equivalent
31+
* GetSlice - Supports Array descriptor V2 when connected to a client version >= 7.0 and calls isc_array_get_slice2 in that case
32+
* PutSlice - Supports Array descriptor V2 when connected to a client version >= 7.0 and calls isc_array_put_slice2 in that case
33+
34+
## FesBlob.cs renamed to IBBlob.cs
35+
* FesBlob class renamed to IBBlob
36+
* General fixup of Firebird class and variable names to the IB Equivalent
37+
38+
## FesConnection.cs renamed to IBConnection.cs
39+
* FesConnection class renamed to IBConnection
40+
* General fixup of Firebird class and variable names to the IB Equivalent
41+
* ParseStatusVector removed IscCodes.isc_arg_sql_state section
42+
43+
## FesDatabase.cs renamed to IBDatabase.cs
44+
* FesDatabase class renamed to IBDatabase (general note - Over the Wire encryption is done differently between Fb and IB. With IB it is part of the connection string)
45+
* CreateDatabaseWithTrustedAuth removed
46+
* CreateDatabase removed crypto key support
47+
* Attach removed crypto key suppport
48+
* AttachWithTrustedAuth removed
49+
* CancelOperation basically is no op'ed until the Async code is updated. (fb version worked with their managed code)
50+
* DatabaseParameterBufferBase basically removed and just DatabaseParameterBuffer used where approperiate
51+
* GetServerVersion uses isc_info_version in the call to GetDatabaseinfo
52+
* CheckCryptKeyForSupport removed
53+
54+
## FesServiceManager.cs renamed to IBServiceManager.cs (general note - Over the Wire encryption is done differently between Fb and IB. With IB it is part of the connection string)
55+
* FesServiceManager class renamed to IBServiceManager
56+
* IBServiceManager constructor expects a IBServerType as the first parameter to determine default or embedded client
57+
* Attach removed crypto support
58+
59+
## FesStatement.cs renamed to IBStatement.cs
60+
* FesStatement class renamed to IBStatement
61+
* Execute - Call to isc_dsql_execute2 now passes the current SQLDAVersion
62+
* Fetch - Call to isc_dsql_fetch now passes the current SQLDAVersion
63+
* DescribeParameters - passes IscCodes.SQLDA_CURRENT_VERSION to isc_dsql_describe_bind
64+
* Allocate now calls isc_dsql_alloc_statement2 instead of isc_dsql_alloc_statement
65+
66+
## FesTransaction.cs renamed to IBTransaction.cs
67+
* FesTransaction class renamed to IBTransaction
68+
* Fixed up some constant strings to reference InterBase instead of Firebird.
69+
* BeginTransaction - fixed a pointer size bug in the Fb code. Original code assumes pointers are always 4 bytes.
70+
* Added StartSavepoint
71+
* Added RollbackSavepoint
72+
* Added ReleaseSavepoint
73+
74+
## IfbClient.cs renamed to IIBClient.cs
75+
* IFbClient interface renamed to IIBClient
76+
* added string LibraryName();
77+
* added void LoadIBLibrary();
78+
* added void FreeIBLibrary();
79+
* added bool TryIBLoad();
80+
* added void CheckIBLoaded();
81+
* added string Platform { get; }
82+
* added string ServerType();
83+
* added decimal IBClientVersion { get; }
84+
* added short SQLDAVersion { get; }
85+
* removed fb_shutdown
86+
* removed fb_cancel_operation
87+
* removed isc_dsql_allocate_statement
88+
* added isc_array_gen_sdl
89+
* added isc_array_gen_sdl2
90+
* added isc_array_get_slice2
91+
* added isc_array_lookup_bounds
92+
* added isc_array_lookup_bounds2
93+
* added isc_array_lookup_desc
94+
* added isc_array_lookup_desc2
95+
* added isc_array_set_desc
96+
* added isc_array_set_desc2
97+
* added isc_array_put_slice2
98+
* added isc_blob_default_desc
99+
* added isc_blob_default_desc2
100+
* added isc_blob_gen_bpb
101+
* added isc_blob_gen_bpb2
102+
* added isc_blob_info
103+
* added isc_blob_lookup_desc
104+
* added isc_blob_lookup_desc2
105+
* added isc_blob_set_desc
106+
* added isc_blob_set_desc2
107+
* added isc_cancel_events
108+
* added isc_decode_date
109+
* added isc_decode_sql_date
110+
* added isc_decode_sql_time
111+
* added isc_decode_timestamp
112+
* added isc_dsql_alloc_statement2
113+
* added isc_dsql_exec_immed2
114+
* added isc_dsql_batch_execute_immed
115+
* added isc_dsql_batch_execute
116+
* added isc_dsql_execute_immediate
117+
* added isc_dsql_set_cursor_name
118+
* added isc_encode_date
119+
* added isc_encode_sql_date
120+
* added isc_encode_sql_time
121+
* added isc_encode_timestamp
122+
* added isc_event_block
123+
* added isc_event_counts
124+
* added isc_free
125+
* added isc_get_segment
126+
* added isc_interprete
127+
* added isc_prepare_transaction
128+
* added isc_prepare_transaction2
129+
* added isc_que_events
130+
* added isc_release_savepoint
131+
* added isc_rollback_savepoint
132+
* added isc_start_savepoint
133+
* added isc_start_transaction
134+
* added isc_sqlcode
135+
* added isc_sql_interprete
136+
* added isc_transaction_info
137+
* added isc_vax_integer
138+
* added isc_portable_integer
139+
* added isc_get_client_version
140+
* added isc_get_client_major_version
141+
* added isc_get_client_minor_version
142+
143+
## LinuxClient.cs - new
144+
* class LinuxClient implements IIBClient for Linux. Since this is a POSIX system all calling conventions in the DLL are cdecl.
145+
146+
## LinuxEmbedded.cs - new
147+
* Inherits from LinuxClient
148+
* Overrides the LibraryName method to return the embedded client .so name
149+
* Overrides the ServerType method to return Embedded.
150+
151+
## MacOSClient.cs - new
152+
* Inherits from LinuxClient
153+
* Overrides the LibraryName method to return the embedded client .dynlib name
154+
* Overrides Platform to return MacOS
155+
* Overrides GetProcAddress and LoadLibrary to use the MacOS libdl.dynlib versions
156+
157+
## MacOSEmbedded.cs - new
158+
* Inherits from MacOSClient
159+
* Overrides the LibraryName method to return the embedded client .dynlib name
160+
* Overrides the ServerType method to return Embedded.
161+
162+
## WindowsClient.cs - new
163+
* class WindowsClient implements IIBClient for Windows. Almost all calls are stdcall callign conventions, but a few are cdecl.
164+
165+
## WindowsEmbedded.cs - new
166+
* Inherits from WindowsClient
167+
* Overrides the LibraryName method to return the embedded client .dll name based on 32/64 bit environment
168+
* Overrides the ServerType method to return Embedded.
169+
170+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* The contents of this file are subject to the Initial
3+
* Developer's Public License Version 1.0 (the "License");
4+
* you may not use this file except in compliance with the
5+
* License. You may obtain a copy of the License at
6+
* https://github.com/FirebirdSQL/NETProvider/blob/master/license.txt.
7+
*
8+
* Software distributed under the License is distributed on
9+
* an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
10+
* express or implied. See the License for the specific
11+
* language governing rights and limitations under the License.
12+
*
13+
* The Initial Developer(s) of the Original Code are listed below.
14+
* Portions created by Embarcadero are Copyright (C) Embarcadero.
15+
*
16+
* All Rights Reserved.
17+
*/
18+
19+
//$Authors = Jeff Overcash
20+
21+
using System;
22+
using System.Collections.Generic;
23+
using System.Linq;
24+
using System.Text;
25+
using System.Threading.Tasks;
26+
27+
namespace InterBaseSql.Data.Common
28+
{
29+
public enum IBChangeState
30+
{ csSame,
31+
csInsert,
32+
csUpdate,
33+
csDelete,
34+
csTruncate,
35+
csUnknown
36+
}
37+
38+
public class IBChangeStates : HashSet<IBChangeState> { };
39+
}

0 commit comments

Comments
 (0)