0.3.0
Pre-releaseBreaking Change
This release changes how directories are handled. Previously, wherever you ran the doltgres binary was where your databases would be located. This was causing a lot of confusion, as attempting to run the doltgres binary from within the doltgres folder (on non-Windows machines) would result in a name conflict, where the program wanted to create a folder named doltgres, but that conflicted with the binary's name.
This has been changed, so that we now use the ~/doltgres/databases folder by default. This means that it is now irrelevant where you run doltgres from, as it will always access that folder. If you want to use a different folder then you can use the --data-dir argument. If a relative path is given, then that is relative to the invocation directory. If an absolute path is given, then that path is used. In addition, there's now a DOLTGRES_DATA_DIR environment variable, which accomplishes the same thing as the --data-dir argument, except that you don't have to include the argument every time you run the binary. To mimic the previous behavior, you can set the argument or environment variable to ., which will use the invocation directory.
Merged PRs
doltgresql
- 79: Added static analyzer & linter
This adds a static analyzer and linter. This is just to help enforce a bit more code quality. - 78: Changed default database creation behavior
Previously, when runningdoltgres, it would look at the current directory to determine if it was a valid DoltgreSQL directory. If it wasn't, then it would attempt to create adoltgresdatabase within the directory. This behavior was chosen since "it just works", which is a selling point of the product. This was causing issues though, as users would run the tool from within the same directory that they downloaded it in. This caused an error message to appear stating that the file was conflicting with the attempt to create the database, however users were still confused by the behavior even with the error message.
This default behavior has been changed. We now use the~/doltgres/databasesdirectory as the default directory. It no longer matters where you rundoltgresfrom, it will always point to that directory. This directory can be changed by changing the environment variableDOLTGRES_DATA_DIRto a different directory.
In addition, there's another environment variable namedDOLTGRES_DATA_DIR_CWD. When this is set totrue, then it causes DoltgreSQL to operate with the previous behavior, in that it will use the current directory rather than the global data directory. - 77: End to end tests of all postgres types (many skipped)
Behavior and syntax verified against postgres, but many of them may require custom types instead of strings when implemented. - 74: Test generation framework additions
I ran into too many issues while trying to generate a set ofSELECTtests to add tosqllogictests, but I think this code here could still be useful in the future. TheSELECTstatements were too complex for random generation to happen upon a valid combination of queries, aliases, values, etc., but this could still have use for simpler statements. Since our synopses are written in a small DSL, you could technically generate anything as long as random generation is viable. It's basically what I've done for a lot of the generated tests throughout GMS and Dolt, but more formalized here. - 73: Correct issue test
#25 was incorrect in its assumptions, but still proved valuable for learning. As a result, I've modified the skipped test so that we're now checking the same relative thing. - 72: Fix release notes generator
- 71: Release v0.2.0
Created by the Release workflow to update DoltgreSQL's version - 66: Contribution Guide
Contribution guide. Primarily intended for Dolt devs transitioning to DoltgreSQL, but also written for anyone who wants to work on the repository. Now I can link to the document for some feedback, rather than leaving a paragraph on why it's important to change something lol. - 65: Add usage metrics to doltgres
Usage metrics are now reported to the dolthub metrics servers for thesql-servercommand, tagged with the doltgres application ID.
Also refactors application and server start to put top-level concerns in the main method.