Comments (2)
Yes, I did not originally intend xo to be used with complicated schemas that are not supported by at least 2 or more databases. I will look into creating a fix for this during the large xo rewrites that will be happening soon. For reference, I believe the most "idiomatic" way to do this in Go would be to have the generated type for the child include the parent type, along these lines:
type Parent struct {
A string
}
type Child struct {
Parent
B string
}
To get this working I really need a real world schema to work with. There are likely so many problems that I foresee might be encountered with the introspection code that it's likely not worth fixing if I don't have a real world example to test against.
FWIW, I would suggest NOT using table inheritance in your schemas. While the concept of table inheritance is nice, "in practice" I've rarely ever seen them used to any real effect. And my experience is that developers will down the road want to change the parent to a different database table, which in turn devolves into a big mess.
I would just suggest copying/pasting the rows into the child table's schema definition when they're needed. And, as far as I'm aware, there's no performance benefit to actually using inherits clauses in a schema, and the inherits clause is simply there as a notation helper for database architects (but it doesn't actually "do" anything). Also, from my experience when using inherits clauses with databases, there has never been a time that I wanted "only" the parent data, nor have I ever seen "multiple" table hierarchies being used in real practice.
I'm happy to be proven wrong, however -- if you have an example of an in-use schema where table inheritance is absolutely necessary (and not just for syntax shorthand) feel free to share here or email me directly if it contains sensitive information that cannot be made public. My email can be obtained through either my GitHub profile or by looking at the commit logs.
from xo.
In this instance, I've opted to move away from inheritance. Thanks for the detailed reply.
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.