-
Notifications
You must be signed in to change notification settings - Fork 323
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
Add Value_Type to In-Memory Column #5158
Comments
|
Radosław Waśko reports a new STANDUP for yesterday (2023-03-09): Progress: Taking care of my pending PRs (the CI was comlpetely clogged yesterday). Reviews. Created a detailed list of things needed for Value Types work (will still be improving as things proceed). Answered some uncertainties/open design questions (may be revised). Started adding first pieces of code for this - workin on the SQL_Type<->Value_Type<->Storage_Type conversion logic and accompanying infrastructure. {The estimate is very rough as its a huge task, it may also change if we decide to split up into smaller pieces - will depend on what will seem more effective} It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Continue. Hopefully have some prototype logic for SQL types and Storage type checks. Probably no tests yet. |
Radosław Waśko reports a new STANDUP for the provided date (2023-03-10): Progress: Fixing some tests in the pending PRs to ensure they are mergable and rebasing and fixing conflicts. Fleshing out the spec for Value types, figuring out what is possible in various DB backends and how to best get a good common functionality. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Add more type information to our storages. Then work on SQL type mapping. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-13): Progress: Work on storage type information. Changed Next Day: Next day I will be working on the same task. Continue that. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-14): Progress: Implemented new approach to storage types in-memory (first stage, more fine-grained control like <64bit ints and fixed length strings will be done in a separate iteration). Fixed many issues making the test suite pass again after this refactor. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Now go on to implement the SQL type mapping. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-15): Progress: Researching peculiarities of SQLite JDBC driver. Apparently it may allow us to do more than pure SQLite does and we may still keep a Boolean type for columns in SQLite - which could be cool. Created a (yet untested) prototype SQL mapping focused on SQLite. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Finish the mapping and test it. Work on PostgreSQL mapping - independently at first, but we can later think if we can extract the common parts as there is a (more significant than I initially thought!) overlap. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-16): Progress: Working on the other direction type translation. Verifying what are exactly our usages of sql type to better understand how to best handle uncertain cases. Experimenting with where we can omit the type without issue and where we could try to use JDBC to infer it. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Check if we can try use JDBC to figure out most types for us. Update SQLite translation. Start Postgres. |
Radosław Waśko reports a new STANDUP for the provided date (2023-03-17): Progress: Added unit tests for SQLite and Postgres type mappings. Implement prototype for Postgres, update SQLite to slightly changed requirement for it. Work on fetching types of operation results from the Database instead of figuring them out in our code. Create groundwork for a simple Lazy type in Enso allowing us to compute a value only once and cache it. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Finish the work on fetching types of op results from DB. Add tests for Lazy and fix it. Fix the mappings. |
TODO list before the first PR:
|
Radosław Waśko reports a new STANDUP for yesterday (2023-03-20): Progress: Working on fetching types and updating the mappings. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Continue that, do stuff from my PR checklist and work towards preparing the first PR. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-21): Progress: Wiring through the type override logic. Fixed Postgres mapping. Fixing the SQLite override - apparently there are some more edge cases. It should be finished by 2023-03-21. Next Day: Next day I will be working on the same task. Continue that, do stuff from my PR checklist and work towards preparing the first PR. |
Radosław Waśko reports a new 🔴 DELAY for today (2023-03-22): Summary: There is 3 days delay in implementation of the Add Value_Type to In-Memory Column (#5158) task. Delay Cause: Unexpected SQLite behaviour being a pain. Underestimated how much cleaning will be needed after these changes. Possible solutions: Hard to estimate big tasks well, the original estimate was a ballpark anyway. |
Radosław Waśko reports a new STANDUP for today (2023-03-22): Progress: Ensuring that the tests are passing at the current state. Cleaning up. It should be finished by 2023-03-24. Next Day: Next day I will be working on the same task. Fix remaining tests. Remove outdated SQL_Type references in preparation for PR. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-23): Progress: Got all tests to pass again. It should be finished by 2023-03-24. Next Day: Next day I will be working on the same task. Do some further cleanup and prepare the PR. |
The major PR #6073 is ready, save for fixing conflicts and adding one more small functionality. I think the remaining types work (parts noted here above, parts tracked by separate tasks), is something along these lines:
|
Radosław Waśko reports a new 🔴 DELAY for the provided date (2023-03-24): Summary: There is 4 days delay in implementation of the Add Value_Type to In-Memory Column (#5158) task. Delay Cause: A bit more time needed to finish the PR and get it reviewed. |
Radosław Waśko reports a new STANDUP for the provided date (2023-03-24): Progress: Removed obsolete functionality and adapted its usages to ensure tests keep passing - chnged existing places checking operation types to rely on Value Type instead of not-as-portable SQL type. Implemented ability to set custom fetching logic for particular types by each dialect (preparing for custom Dates handling in Postgres). It should be finished by 2023-03-28. Next Day: Next day I will be working on the same task. Add ability to custom setting statement values by dialect (so that we can have custom date handling logic for Postgres). Align follow-up tasks for Value Types work. |
Radosław Waśko reports a new STANDUP for yesterday (2023-03-27): Progress: Add customization for logic of setting statement values by each dialect (will be used by dates). Add a test and ensure that custom user-provided queries cannot contain "?" placeholders (this would completely misalign our own generated queries and everything would go insane if allowed). Fighting with some bugs. The PR is finally fully ready and passing tests. It should be finished by 2023-03-28. Next Day: Next day I will be working on the same task. Align follow-up tasks for Value Types work. Start the first one (if done quickly I may add it to the pending PR) - add Day/Month/Year operations and ensure support for Dates in Postgres backend works as intended - add some tests for date support that will work both in Database and in-memory backends (current ones are mostly in-memory only). |
Radosław Waśko reports a new 🔴 DELAY for the provided date (2023-03-28): Summary: There is 3 days delay in implementation of the Add Value_Type to In-Memory Column (#5158) task. Delay Cause: More time needed to get the PR reviewed. Some unexpected test errors needed fixing. Trying to reproduce an imports bug (later fixed by Hubert, thankfully) also took some of the time. |
Radosław Waśko reports a new STANDUP for the provided date (2023-03-28): Progress: Fixed some failing tests in the pending PR. Planned out follow-up tasks for Value Types - aligned existing tasks and updated their specifications, added missing tasks and added ballpark estimates. It should be finished by 2023-03-31. Next Day: Next day I will be working on the #6115 task. Work on Postgres date-time support. |
This is the first part of the #5158 umbrella task. It closes #5158, follow-up tasks are listed as a comment in the issue. - Updates all prototype methods dealing with `Value_Type` with a proper implementation. - Adds a more precise mapping from in-memory storage to `Value_Type`. - Adds a dialect-dependent mapping between `SQL_Type` and `Value_Type`. - Removes obsolete methods and constants on `SQL_Type` that were not portable. - Ensures that in the Database backend, operation results are computed based on what the Database is meaning to return (by asking the Database about expected types of each operation). - But also ensures that the result types are sane. - While SQLite does not officially support a BOOLEAN affinity, we add a set of type overrides to our operations to ensure that Boolean operations will return Boolean values and will not be changed to integers as SQLite would suggest. - Some methods in SQLite fallback to a NUMERIC affinity unnecessarily, so stuff like `max(text, text)` will keep the `text` type instead of falling back to numeric as SQLite would suggest. - Adds ability to use custom fetch / builder logic for various types, so that we can support vendor specific types (for example, Postgres dates). # Important Notes - There are some TODOs left in the code. I'm still aligning follow-up tasks - once done I will try to add references to relevant tasks in them.
This task is automatically imported from the old Task Issue Board and it was originally created by James Dunkerley.
Original issue is here.
Hold the nullability flagwill be done separately in Implementnullable
Value_Types #5872Type is possible use Mixed in not.
From_Vector
take a new optional argument with a fixed type.The text was updated successfully, but these errors were encountered: