Comments (6)
Additionally the generated sql will need to have identifiers appropriately quoted based on the target db.
from xo.
I'm not aware of any databases that support colons in identifiers. What database are you using?
from xo.
Postgres 9.5. When querying, I have to quote my identifiers but they are valid with the colons. The database leverages inheritance and I found it helpful to use colons to namespace column names to prevent overlapping column names.
example:
create table one ("one:id" character(36));
create table two ("two:id"character(36));
create table data (inherits (one, two));
it maps pretty well to go type composition
type One struct {
OneId string `sql:"one:id"`
}
type Two struct {
TwoId string `sql:"two:id"`
}
type Data struct {
One
Two
}
i am just looking to generate these types instead of maintaining it all by hand.
if it fits into this project i would be happy to contribute.
from xo.
Sorry for the delay on getting to this issue, but been busy the last couple days. The issue is actually that PostgreSQL supports basically any character inside double quotes. The way to fix this is to provide a command line option that forces escapes / normalization of characters (ie, removal) in Go identifiers, and then also in the SQL for the generated Go code to also escape the SQL identifiers. I will fix this, but I don't think I have time today to get this done. A PR would be greatly appreciated, if you can write it!
from xo.
I have cleaned up the code to fix this issue. However, please note that on the command line you will need to toggle escaping (it is not enabled by default). You can simply enable --escape-all
or -X
:
xo -o models -X pgsql://user:pass@host/dbname
from xo.
@kenshaw Much appreciated!
from xo.
Related Issues (20)
- How to generate postgres functions under schema other than public
- xo schema scan is failing. HOT 1
- BPMN HOT 1
- Could you add the Comment of each Field of migration table to generated xo files ? HOT 6
- Can I generate only struct? (without CRUD methods)
- [Bug] array type is not generated correctly for integer array in case of postgres HOT 1
- error: createdb: unable to import package: 1:22: import "createdb" error: unable to find source related to: "createdb" HOT 5
- invalid memory address or nil pointer dereference
- Procedure code generation may have issues HOT 1
- _exists field in code generated code
- Not run go 1.19.5 on windows HOT 1
- run xo fails on windows os HOT 7
- Unable to run because of createdb error HOT 2
- [Question] List all Indexes from table inside typedef template HOT 1
- "LIMIT %%limit int%%" in MySQL
- Does xo support camelcase json tags? HOT 3
- Postgres foreign keys not working if name is the same HOT 2
- Postgres insert/update RETURNING HOT 1
- Type mapping HOT 1
- Custom types... again HOT 2
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.
from xo.