Giter VIP home page Giter VIP logo

Comments (6)

nickcarenza avatar nickcarenza commented on May 31, 2024

Additionally the generated sql will need to have identifiers appropriately quoted based on the target db.

from xo.

kenshaw avatar kenshaw commented on May 31, 2024

I'm not aware of any databases that support colons in identifiers. What database are you using?

from xo.

nickcarenza avatar nickcarenza commented on May 31, 2024

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.

kenshaw avatar kenshaw commented on May 31, 2024

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.

kenshaw avatar kenshaw commented on May 31, 2024

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.

nickcarenza avatar nickcarenza commented on May 31, 2024

@kenshaw Much appreciated!

from xo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.