gooq's People
Forkers
philipjscott jaxonl ambyjkl nathanko evanbrearley ppong zahin-mohammad abanka27 imysun tavernspacegooq's Issues
Implement set returning functions
Line 186 in 9d1335a
Implement aggregate functions
Line 168 in 9d1335a
Implement SQL binary string functions and other binary string functions in functions.go
see
Line 108 in 9d1335a
Implement mathematical, random and trigonometric functions in functions.go
see
Line 93 in 9d1335a
Support multiple VALUES in INSERT statement
INSERT INTO public.table1 (column1, column2, column3, column4) VALUES ($1, $2, $3, $4) ($5, $6, $7, $8)
From https://github.com/lumina-tech/gOOQ/blob/master/pkg/gooq/insert_test.go#L25 is supposed to be
INSERT INTO public.table1 (column1, column2, column3, column4) VALUES ($1, $2, $3, $4), ($5, $6, $7, $8)
(See https://www.postgresqltutorial.com/postgresql-insert-multiple-rows/)
I think the issue can be fixed by just changing " "
to ", "
here: https://github.com/lumina-tech/gOOQ/blob/master/pkg/gooq/insert.go#L256
I'll experiment and make an MR some time
Change of product name
Hi there.
I'm happy to see that you apparently liked jOOQ so much that you decided to create a clone in Go.
There's absolutely nothing wrong with porting a library / idea to some other platform, but I can't say I like your product being called "gOOQ". jOOQ is a registered trademark (in some countries), and your spelling, and also your spelled out name "Golang Object Oriented Querying" infringes this trademark.
The fact that you're calling your product gOOQ makes it seem as though I had anything to do with it, or even endorse it, which I don't. Think of it this way: I spent the last 11 years building this brand, and it's not OK to use this brand without my permission.
It's not too late yet. I think it would be a good idea to rename your product to something of your own creation.
Thanks,
Lukas
Implement date/time functions
see
Line 121 in 9d1335a
Implement comparison functions in function.go
see:
Line 87 in 9d1335a
Refactor to support multiple dialect e.g. MySQL
Implement subquery expressions
Line 174 in 9d1335a
Implement GROUPING SETS, CUBE, and ROLLUP for SELECT
Implement window functions
Line 180 in 9d1335a
Implement WITH clause for INSERT
Implement HAVING clause for SELECT
gOOQ's SELECT
currently does not support the HAVING
clause: https://github.com/lumina-tech/gOOQ/blob/master/pkg/gooq/select.go#L285
Here is a code snippet that currently panics, because HAVING
is not implemented:
gooq.Select(gooq.Count(model.Person.ID)).
GroupBy(model.Person.BirthYear).
Having(model.Person.BirthYear.Gt(gooq.String("1995")))
Set Dockerize flag to false by default
Currently running gooq generate-database-models
will try to run a "dockerized" database. This behaviour is usually only desirable for testing purposes, and should not be the default.
Improve example to demonstrate reference table support
extend swapi example - https://github.com/lumina-tech/gOOQ/tree/master/examples/swapi
Implement locking clause for SELECT statement
Implement other data types
Line 415 in 9d1335a
Implement array functions and operators
Line 156 in 9d1335a
Add documentation about `reference_table`
Implement matching operators
Line 36 in 9d1335a
Implement UNION, INTERSECT and EXCEPT clause for SELECT
Implement WITH clause for UPDATE
Implement formatting functions in functions.go
see
Line 115 in 9d1335a
Implement SQL string functions and operators and other String Functions` in functions.go
see
Line 101 in 9d1335a
Implement type conversion functions
Line 192 in 9d1335a
Implement DISTINCT ON clause for SELECT
Implement WINDOW clause for SELECT
Implement remaining GREATEST and LEAST conditional expressions
Line 136 in 9d1335a
Add circleci integration
Make model package name match directory name for in `gooq.yml`
Users can specify what folder should store the generated tables and the models (i.e. modelPath
and tablePath
in gooq.yml
).
The package names for the generated files are hardcoded to model
and table
; if a user sets the modelPath
to, say, models
, then there will be a mismatch between the directory name and the package name.
Ideally if the gooq.yml
has the following key set:
modelPath: "models"
Then the files in the models/
directory should be in a package called models
.
Improve examples to demonstrate enum support
extends swapi example - https://github.com/lumina-tech/gOOQ/tree/master/examples/swapi
Create example to demonstrate bulk insert, upsert, update
Installing package via "go get" saves binary as cmd
Running go get github.com/lumina-tech/gooq/cmd
installs the gOOQ generator binary as cmd
.
The name of the binary is determined by last item in the URI path. Other projects work (such as go-ethereum) around this by having the following directory structure: repo/cmd/mycli/main.go
Fix coming soon.
Implement bit string operators
Line 32 in 9d1335a
Improve gOOQ/README.md
- add section on
Getting Started
to ensure smooth onboarding - add section explaining how code generation work
- add section explaining benefit of having type safe SQL
Implement WITH clause for DELETE
Implement range functions and operators
Line 162 in 9d1335a
JSON field marshaling improvements
Currently marshaling models that have jsonb fields outputs the base64 encoding of those fields. To output json instead:
nullable.Jsonb
should implement MarshalJSON
/UnmarshalJSON
and non-nullable jsonb columns should be generated as json.RawMessage
rather than []byte
.
gOOQ/pkg/generator/metadata/types.go
Line 20 in e7f49a8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.