Add Firebird support - Fix #135 - #136
Conversation
|
@staticlibs, could you please review this when you have a chance? Regarding the failing SQL test: I’m not sure how to move forward with this one. I tried updating the expected error to "Binder Error", but it still fails with the same error message. Firebird doesn’t have |
|
This test was added (to other DBs) to cover the column binding support. |
|
The PR looks good to me, special thanks for covering C API tests! Once the SQL tests are passing - I can merge it promptly. I think it make sense to chain it after the DuckDB Windows job and enable CCache caching for it. But these are minor things that I can add in follow up PRs. |
This would be great! I have to admit I tried poking around with CCache, but it went hilariously wrong. 😄 |
|
Another question: should the SQL tests be wrapped with ? If yes, where should this be defined? I see a similar pattern with |
|
No, |
|
What should this query return? SELECT * FROM odbc_query(getvariable('conn'),
'SELECT CAST(? AS INT128) FROM rdb$database',
params=row(9223372036854775807::BIGINT))I'm getting Is this a bug, or one more Firebird ODBC oddity? |
|
P.S.: I’m inclined to leave INT128 support aside for now... Those “char” conversions don’t smell right, and even the Firebird docs say this type isn’t defined in the SQL standard. Opinions? |
|
This error comes from the driver, perhaps the |
- Implement tests for CHAR, INTEGER, NUMERIC, FLOAT, DATE, TIME, TIMESTAMP, BOOLEAN, and BINARY types. - Include tests for DECFLOAT types, requiring Firebird 4.0+. - Add tests for TIME WITH TIME ZONE and TIMESTAMP WITH TIME ZONE types. - Verify behavior of NCHAR and its synonyms. - Merge initial tests for SMALLINT and INTEGER types.
|
Rebased with latest |
|
Added initial tests for I had to make it very simple for now. Firebird does not support multiple VALUES in INSERT statements. The |
|
I’m taking this PR out of draft. If you plan to merge it, please make sure to skip this commit: Let me know if you’d like any history cleanup or additional changes. |
|
Thanks!
I think I will just merge it as is and add a few CI changes on top of it.
This should be straigthforward to fix, I guess some kind of option to issue |
|
Just FYI, I filed #140 that fixes CTAS for Firebird and also adds support for generating |
Passed CI, going to be published as |
|
One issue found, column types mapping not initialized when |
|
Filed #142 to fix Another problem found is that the "tail" insert query is generated incorrectly for Firebird (parameters count mismatch) - will investigate that in a couple of hours. |
Not specific to Firebird, tracked in #143, will comment there. |
|
Just FYI, GH actions are not running right now, and performance still needs to be checked. So going to postpone submitting the final version for 1.5 to tomorrow evening. |
|
For the record: initial testing tells me that the transaction changes made into That said, I’d like to see the end of #141 (and make some tests with But I expect things to improve overall (except if I'm missing something). |
|
GH actions are actually recovered, and |
|
Just FYI, in case you be testing the performance:
There is a bug in current version (added more than a week ago) that auto-commit is enabled back for all source batches after the first one. It tanks the performance badly, so current version is unsuitable for performance checks. I will file a fix shortly. |
|
Yep! I did notice something strange yesterday. But since you’d already flagged something odd with Oracle, I decided to wait for your analysis before moving forward with the tests. Thanks for keeping me in the loop 😉 |
Work in progress. Do not merge.
firebird-windows-amd64job in GitHub Actions Workflowodbc_copytests for Firebird