- Make postgres name its enums
- Add way to filter columns by whether or not they're an enum
- Split parsing of enums into name & values
- Add strmangle check functions: IsEnumNormal, ShouldTitleCaseEnum
- Add new strmangle enum functions to template test
- Implement a set type called "once" inside the templates so that we can
ensure certain things only generate one time via some unique name.
- Previously each call to qm.Load would overwrite your eager loading
statement. I think this was deliberate at one point but it's pretty
inconsistent. If we need to overwrite we can call queries.SetLoad()
- The problem with the old approach is that it was looping over each
result, and then recursing in and doing it's loading. But in reality
we should only load from a table in a capacity once (tomany, toone).
Query was not properly joining on both name and schema. This will fix the issue where a constraint exists across multiple schemas and causes duplicate relationships to be created.
- Previously we used a lot of template magic to see if we could
use LastInsertId. But there's a much simpler check that's worth doing,
do this at the table level and then let it fall through.
- The old templates used to output \n\n after each run, with the
previous changes this is no longer the case and as such the templates
all must be formatted correctly.
- Simplify several methods
- Gofmt full output of templates, not individual pieces
- Re-use a global buffer to use less memory during template generation
- Simplify the tests since the main test is responsible for checking
everything.