pqt icon indicating copy to clipboard operation
pqt copied to clipboard

table aliases

Open yurykozyrev opened this issue 6 years ago • 1 comments

I would suggest to introduce table aliases for using them in query.

Problem E.g.: if we use column like this

pqt.NewColumn("version", pqt.TypeIntegerBig(), pqt.WithNotNull(), pqt.WithDefault("version+1", pqt.EventUpdate)

it will generate the following code in SELECT ... ON CONFLICT ... DO UPDATE SET ...:

INSERT INTO tablename (value, version) VALUES ('data', 0) 
ON CONFLICT (id) DO UPDATE SET value='data', version=version+1
RETURNING data, version

which will cause an error column reference "version" is ambiguous

Suggestion Add table alias so it produce the code like

INSERT INTO tablename AS alias ... alias.version=version+1

yurykozyrev avatar Aug 24 '17 14:08 yurykozyrev

This is interesting edge case that needs to be addressed. In general aliases are already used across pqt. As an example you can check generateRepositoryFindQuery method in /pqtgo/generator.go.

@yurykozyrev what would be your approach to solve this issue?

piotrkowalczuk avatar Aug 28 '17 16:08 piotrkowalczuk