Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Firebird 4 support (+ Update dependencies) #2959

Merged
merged 10 commits into from Apr 21, 2021
Merged

Conversation

MaceWindu
Copy link
Contributor

@MaceWindu MaceWindu commented Apr 17, 2021

  • Update dependencies
  • Support new functionality from FirebirdSql.Data.FirebirdClient (pick already implemented stuff from [Firebird] Provider versioning #2693 and add more changes)
    • add Firebird 4 test provider
    • add Firebird 4 to CI (using RC1)
    • add new Firebird 4 types support (see below)
    • remapped Sql.CurrentTimeStamp from CURRENT_TIMESTAMP to LOCALTIMESTAMP so it continue to work against FB4
    • remapped RTRIM and LTRIM UDFs to TRIM(LEADING/TRAILING FROM {0}) as UDFs was removed from Firebird 4
  • fixed issue when from -> to conversion were looking for existing explicit/implicit conversion operator only in target type
  • included Microsoft.Bcl.AsyncInterfaces.dll to all T4 nugets to avoid errors from vistual studio when running template
  • updated Firebird table columns schema loader to not load precision/scale/length properties on types that doesn't support them (leads to more clean T4 outputs)
  • updated parameters load for Firebird FOR SELECT procedures to exclude output parameters that duplicate resulting table columns (more clean T4 outputs)

Firebird 4 support

  • new type: DECFLOAT/DECFLOAT(16) mapped to FbDecFloat (DataType.DecFloat)
  • new type: TIMESPAN WITH TIME ZONE mapped to FbZonedDateTime (DataType.DateTimeOffset)
  • new type: TIME WITH TIME ZONE mapped to FbZonedTime (DataType.TimeTZ)
  • new type: INT128 mapped to BigInteger including literals support (DataType.Int128)
  • new types support also includes support in schema API and T4 templates

There is no literals generation support out-of-box for DECFLOAT and time-zoned types as is is not always possible to generate literals for them.

Note that at least 8.0.1 version of provider required (previous versions contain bugs in FB4 support area)

@MaceWindu MaceWindu added this to the 3.4.0 milestone Apr 17, 2021
@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu MaceWindu mentioned this pull request Apr 17, 2021
@MaceWindu
Copy link
Contributor Author

/azp run test-firebird

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu MaceWindu changed the title Update dependencies [Firebird 4] New types support + Update dependencies Apr 19, 2021
@MaceWindu MaceWindu changed the title [Firebird 4] New types support + Update dependencies Initial Firebird 4 support (+ Update dependencies) Apr 19, 2021
@MaceWindu
Copy link
Contributor Author

/azp run test-firebird

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu
Copy link
Contributor Author

/azp run test-firebird

@MaceWindu MaceWindu marked this pull request as ready for review April 19, 2021 16:22
@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu
Copy link
Contributor Author

Should be ready. I've disabled 3 tests that test async api with cancelled token for Firebird as provider added async API, but implemented it a bit incorrectly (we had same issue with npgsql 5, so I'm going to report another issue).

testing SDK update failed again. Something strange happens with 16.9.x versions and I don't have much time to investigate it

@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu
Copy link
Contributor Author

Firebird provider issue to track for disabled async tests https://tracker.firebirdsql.org/browse/DNET-1043

@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@linq2dbot
Copy link

Test baselines changed by this PR. Don't forget to merge/close baselines PR after this pr merged/closed.

@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu
Copy link
Contributor Author

/azp run test-all

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MaceWindu MaceWindu merged commit cb07281 into master Apr 21, 2021
@MaceWindu MaceWindu deleted the infra/updates branch April 21, 2021 08:49
MaceWindu pushed a commit to linq2db/linq2db.baselines that referenced this pull request Apr 21, 2021
* [Linux / NETCOREAPP2.1 / Firebird 3.0] baselines

* [Linux / NETCOREAPP2.1 / Firebird 2.5] baselines

* [Linux / NETCOREAPP2.1 / Firebird 4.0 (RC1)] baselines

* [Linux / NETCOREAPP2.1 / Firebird 3.0] baselines

* [Linux / NETCOREAPP2.1 / Firebird 2.5] baselines

Co-authored-by: Azure Pipelines Bot <azp@linq2db.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants