Title: INSERT with SELECT causes `*ast.ResTarget has nil name` error · Issue #1646 · sqlc-dev/sqlc · GitHub
Open Graph Title: INSERT with SELECT causes `*ast.ResTarget has nil name` error · Issue #1646 · sqlc-dev/sqlc
X Title: INSERT with SELECT causes `*ast.ResTarget has nil name` error · Issue #1646 · sqlc-dev/sqlc
Description: Version 1.13.0 What happened? When trying to compile an INSERT/SELECT with sqlc.narg, I received the following error message: query.sql:5:1: *ast.ResTarget has nil name Relevant log output SQLCDEBUG=dumpast=1 sqlc-dev generate ([]interfa...
Open Graph Description: Version 1.13.0 What happened? When trying to compile an INSERT/SELECT with sqlc.narg, I received the following error message: query.sql:5:1: *ast.ResTarget has nil name Relevant log output SQLCDEBU...
X Description: Version 1.13.0 What happened? When trying to compile an INSERT/SELECT with sqlc.narg, I received the following error message: query.sql:5:1: *ast.ResTarget has nil name Relevant log output SQLCDEBU...
Opengraph URL: https://github.com/sqlc-dev/sqlc/issues/1646
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"INSERT with SELECT causes `*ast.ResTarget has nil name` error","articleBody":"### Version\n\n1.13.0\n\n### What happened?\n\nWhen trying to compile an `INSERT`/`SELECT` with `sqlc.narg`, I received the following error message:\r\n```\r\nquery.sql:5:1: *ast.ResTarget has nil name\r\n```\n\n### Relevant log output\n\n```shell\nSQLCDEBUG=dumpast=1 sqlc-dev generate\r\n([]interface {}) (len=1 cap=1) {\r\n (*ast.RawStmt)(0xc00003d020)({\r\n Stmt: (*ast.CreateTableStmt)(0xc00024c960)({\r\n IfNotExists: (bool) false,\r\n Name: (*ast.TableName)(0xc000254a50)({\r\n Catalog: (string) \"\",\r\n Schema: (string) \"\",\r\n Name: (string) (len=1) \"a\"\r\n }),\r\n Cols: ([]*ast.ColumnDef) (len=1 cap=1) {\r\n (*ast.ColumnDef)(0xc000258780)({\r\n Colname: (string) (len=6) \"temp_a\",\r\n TypeName: (*ast.TypeName)(0xc000849490)({\r\n Catalog: (string) \"\",\r\n Schema: (string) \"\",\r\n Name: (string) (len=4) \"text\",\r\n Names: (*ast.List)(\u003cnil\u003e),\r\n TypeOid: (ast.Oid) 0,\r\n Setof: (bool) false,\r\n PctType: (bool) false,\r\n Typmods: (*ast.List)(\u003cnil\u003e),\r\n Typemod: (int32) 0,\r\n ArrayBounds: (*ast.List)(\u003cnil\u003e),\r\n Location: (int) 0\r\n }),\r\n IsNotNull: (bool) false,\r\n IsArray: (bool) false,\r\n Vals: (*ast.List)(\u003cnil\u003e),\r\n Length: (*int)(\u003cnil\u003e),\r\n Inhcount: (int) 0,\r\n IsLocal: (bool) false,\r\n IsFromType: (bool) false,\r\n IsFromParent: (bool) false,\r\n Storage: (uint8) 0,\r\n RawDefault: (ast.Node) \u003cnil\u003e,\r\n CookedDefault: (ast.Node) \u003cnil\u003e,\r\n Identity: (uint8) 0,\r\n CollClause: (*ast.CollateClause)(\u003cnil\u003e),\r\n CollOid: (ast.Oid) 0,\r\n Constraints: (*ast.List)(\u003cnil\u003e),\r\n Fdwoptions: (*ast.List)(\u003cnil\u003e),\r\n Location: (int) 0,\r\n Comment: (string) \"\"\r\n })\r\n },\r\n ReferTable: (*ast.TableName)(\u003cnil\u003e),\r\n Comment: (string) \"\",\r\n Inherits: ([]*ast.TableName) \u003cnil\u003e\r\n }),\r\n StmtLocation: (int) 0,\r\n StmtLen: (int) 27\r\n })\r\n}\r\n([]interface {}) (len=1 cap=1) {\r\n (*ast.RawStmt)(0xc00003d040)({\r\n Stmt: (*ast.CreateTableStmt)(0xc00024c9c0)({\r\n IfNotExists: (bool) false,\r\n Name: (*ast.TableName)(0xc000254ab0)({\r\n Catalog: (string) \"\",\r\n Schema: (string) \"\",\r\n Name: (string) (len=1) \"b\"\r\n }),\r\n Cols: ([]*ast.ColumnDef) (len=2 cap=2) {\r\n (*ast.ColumnDef)(0xc000258820)({\r\n Colname: (string) (len=6) \"temp_a\",\r\n TypeName: (*ast.TypeName)(0xc000849500)({\r\n Catalog: (string) \"\",\r\n Schema: (string) \"\",\r\n Name: (string) (len=4) \"text\",\r\n Names: (*ast.List)(\u003cnil\u003e),\r\n TypeOid: (ast.Oid) 0,\r\n Setof: (bool) false,\r\n PctType: (bool) false,\r\n Typmods: (*ast.List)(\u003cnil\u003e),\r\n Typemod: (int32) 0,\r\n ArrayBounds: (*ast.List)(\u003cnil\u003e),\r\n Location: (int) 0\r\n }),\r\n IsNotNull: (bool) false,\r\n IsArray: (bool) false,\r\n Vals: (*ast.List)(\u003cnil\u003e),\r\n Length: (*int)(\u003cnil\u003e),\r\n Inhcount: (int) 0,\r\n IsLocal: (bool) false,\r\n IsFromType: (bool) false,\r\n IsFromParent: (bool) false,\r\n Storage: (uint8) 0,\r\n RawDefault: (ast.Node) \u003cnil\u003e,\r\n CookedDefault: (ast.Node) \u003cnil\u003e,\r\n Identity: (uint8) 0,\r\n CollClause: (*ast.CollateClause)(\u003cnil\u003e),\r\n CollOid: (ast.Oid) 0,\r\n Constraints: (*ast.List)(\u003cnil\u003e),\r\n Fdwoptions: (*ast.List)(\u003cnil\u003e),\r\n Location: (int) 0,\r\n Comment: (string) \"\"\r\n }),\r\n (*ast.ColumnDef)(0xc0002588c0)({\r\n Colname: (string) (len=6) \"temp_b\",\r\n TypeName: (*ast.TypeName)(0xc000849570)({\r\n Catalog: (string) \"\",\r\n Schema: (string) \"\",\r\n Name: (string) (len=4) \"text\",\r\n Names: (*ast.List)(\u003cnil\u003e),\r\n TypeOid: (ast.Oid) 0,\r\n Setof: (bool) false,\r\n PctType: (bool) false,\r\n Typmods: (*ast.List)(\u003cnil\u003e),\r\n Typemod: (int32) 0,\r\n ArrayBounds: (*ast.List)(\u003cnil\u003e),\r\n Location: (int) 0\r\n }),\r\n IsNotNull: (bool) false,\r\n IsArray: (bool) false,\r\n Vals: (*ast.List)(\u003cnil\u003e),\r\n Length: (*int)(\u003cnil\u003e),\r\n Inhcount: (int) 0,\r\n IsLocal: (bool) false,\r\n IsFromType: (bool) false,\r\n IsFromParent: (bool) false,\r\n Storage: (uint8) 0,\r\n RawDefault: (ast.Node) \u003cnil\u003e,\r\n CookedDefault: (ast.Node) \u003cnil\u003e,\r\n Identity: (uint8) 0,\r\n CollClause: (*ast.CollateClause)(\u003cnil\u003e),\r\n CollOid: (ast.Oid) 0,\r\n Constraints: (*ast.List)(\u003cnil\u003e),\r\n Fdwoptions: (*ast.List)(\u003cnil\u003e),\r\n Location: (int) 0,\r\n Comment: (string) \"\"\r\n })\r\n },\r\n ReferTable: (*ast.TableName)(\u003cnil\u003e),\r\n Comment: (string) \"\",\r\n Inherits: ([]*ast.TableName) \u003cnil\u003e\r\n }),\r\n StmtLocation: (int) 28,\r\n StmtLen: (int) 41\r\n })\r\n}\r\n([]interface {}) (len=1 cap=1) {\r\n (*ast.RawStmt)(0xc00003d160)({\r\n Stmt: (*ast.InsertStmt)(0xc0003ba340)({\r\n Relation: (*ast.RangeVar)(0xc000254b40)({\r\n Catalogname: (*string)(\u003cnil\u003e),\r\n Schemaname: (*string)(\u003cnil\u003e),\r\n Relname: (*string)(0xc0005985e0)((len=1) \"b\"),\r\n Inh: (bool) true,\r\n Relpersistence: (uint8) 112,\r\n Alias: (*ast.Alias)(\u003cnil\u003e),\r\n Location: (int) 109\r\n }),\r\n Cols: (*ast.List)(0xc0005a1308)({\r\n Items: ([]ast.Node) (len=2 cap=2) {\r\n (*ast.ResTarget)(0xc000254b70)({\r\n Name: (*string)(0xc0005985f0)((len=6) \"temp_a\"),\r\n Indirection: (*ast.List)(0xc0005a1320)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n Val: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n Location: (int) 111\r\n }),\r\n (*ast.ResTarget)(0xc000254ba0)({\r\n Name: (*string)(0xc000598610)((len=6) \"temp_c\"),\r\n Indirection: (*ast.List)(0xc0005a1338)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n Val: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n Location: (int) 119\r\n })\r\n }\r\n }),\r\n SelectStmt: (*ast.SelectStmt)(0xc00025a630)({\r\n DistinctClause: (*ast.List)(0xc0005a1350)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n IntoClause: (*ast.IntoClause)(\u003cnil\u003e),\r\n TargetList: (*ast.List)(0xc0005a1368)({\r\n Items: ([]ast.Node) (len=2 cap=2) {\r\n (*ast.ResTarget)(0xc000254bd0)({\r\n Name: (*string)(\u003cnil\u003e),\r\n Indirection: (*ast.List)(0xc0005a1380)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n Val: (*ast.ColumnRef)(0xc00003d080)({\r\n Name: (string) \"\",\r\n Fields: (*ast.List)(0xc0005a1398)({\r\n Items: ([]ast.Node) (len=1 cap=1) {\r\n (*ast.String)(0xc000598630)({\r\n Str: (string) (len=6) \"temp_a\"\r\n })\r\n }\r\n }),\r\n Location: (int) 134\r\n }),\r\n Location: (int) 134\r\n }),\r\n (*ast.ResTarget)(0xc000254c90)({\r\n Name: (*string)(\u003cnil\u003e),\r\n Indirection: (*ast.List)(0xc0005a13b0)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n Val: (*ast.CoalesceExpr)(0xc000254c60)({\r\n Xpr: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n Coalescetype: (ast.Oid) 0,\r\n Coalescecollid: (ast.Oid) 0,\r\n Args: (*ast.List)(0xc0005a13c8)({\r\n Items: ([]ast.Node) (len=2 cap=2) {\r\n (*ast.FuncCall)(0xc000250ff0)({\r\n Func: (*ast.FuncName)(0xc000254c30)({\r\n Catalog: (string) \"\",\r\n Schema: (string) (len=4) \"sqlc\",\r\n Name: (string) (len=4) \"narg\"\r\n }),\r\n Funcname: (*ast.List)(0xc0005a13e0)({\r\n Items: ([]ast.Node) (len=2 cap=2) {\r\n (*ast.String)(0xc000598680)({\r\n Str: (string) (len=4) \"sqlc\"\r\n }),\r\n (*ast.String)(0xc0005986a0)({\r\n Str: (string) (len=4) \"narg\"\r\n })\r\n }\r\n }),\r\n Args: (*ast.List)(0xc0005a13f8)({\r\n Items: ([]ast.Node) (len=1 cap=1) {\r\n (*ast.A_Const)(0xc0005a1410)({\r\n Val: (*ast.String)(0xc0005986b0)({\r\n Str: (string) (len=3) \"arg\"\r\n }),\r\n Location: (int) 168\r\n })\r\n }\r\n }),\r\n AggOrder: (*ast.List)(0xc0005a1428)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n AggFilter: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n AggWithinGroup: (bool) false,\r\n AggStar: (bool) false,\r\n AggDistinct: (bool) false,\r\n FuncVariadic: (bool) false,\r\n Over: (*ast.WindowDef)(\u003cnil\u003e),\r\n Location: (int) 158\r\n }),\r\n (*ast.ColumnRef)(0xc00003d0e0)({\r\n Name: (string) \"\",\r\n Fields: (*ast.List)(0xc0005a1440)({\r\n Items: ([]ast.Node) (len=1 cap=1) {\r\n (*ast.String)(0xc0005986e0)({\r\n Str: (string) (len=6) \"temp_b\"\r\n })\r\n }\r\n }),\r\n Location: (int) 176\r\n })\r\n }\r\n }),\r\n Location: (int) 149\r\n }),\r\n Location: (int) 149\r\n })\r\n }\r\n }),\r\n FromClause: (*ast.List)(0xc0005a1458)({\r\n Items: ([]ast.Node) (len=1 cap=1) {\r\n (*ast.RangeVar)(0xc000254cc0)({\r\n Catalogname: (*string)(\u003cnil\u003e),\r\n Schemaname: (*string)(\u003cnil\u003e),\r\n Relname: (*string)(0xc000598720)((len=1) \"a\"),\r\n Inh: (bool) true,\r\n Relpersistence: (uint8) 112,\r\n Alias: (*ast.Alias)(\u003cnil\u003e),\r\n Location: (int) 189\r\n })\r\n }\r\n }),\r\n WhereClause: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n GroupClause: (*ast.List)(0xc0005a1470)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n HavingClause: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n WindowClause: (*ast.List)(0xc0005a1488)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n ValuesLists: (*ast.List)(0xc0005a14a0)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n SortClause: (*ast.List)(0xc0005a14b8)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n LimitOffset: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n LimitCount: (*ast.TODO)(0x22d91e0)({\r\n }),\r\n LockingClause: (*ast.List)(0xc0005a14d0)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n WithClause: (*ast.WithClause)(\u003cnil\u003e),\r\n Op: (ast.SetOperation) None,\r\n All: (bool) false,\r\n Larg: (*ast.SelectStmt)(\u003cnil\u003e),\r\n Rarg: (*ast.SelectStmt)(\u003cnil\u003e)\r\n }),\r\n OnConflictClause: (*ast.OnConflictClause)(\u003cnil\u003e),\r\n ReturningList: (*ast.List)(0xc0005a14e8)({\r\n Items: ([]ast.Node) (len=1 cap=1) {\r\n (*ast.ResTarget)(0xc000254cf0)({\r\n Name: (*string)(\u003cnil\u003e),\r\n Indirection: (*ast.List)(0xc0005a1500)({\r\n Items: ([]ast.Node) \u003cnil\u003e\r\n }),\r\n Val: (*ast.ColumnRef)(0xc00003d140)({\r\n Name: (string) \"\",\r\n Fields: (*ast.List)(0xc0005a1518)({\r\n Items: ([]ast.Node) (len=1 cap=1) {\r\n (*ast.A_Star)(0x22d91e0)({\r\n })\r\n }\r\n }),\r\n Location: (int) 201\r\n }),\r\n Location: (int) 201\r\n })\r\n }\r\n }),\r\n WithClause: (*ast.WithClause)(\u003cnil\u003e),\r\n Override: (ast.OverridingKind) 1\r\n }),\r\n StmtLocation: (int) 70,\r\n StmtLen: (int) 132\r\n })\r\n}\r\n# package batch\r\nquery.sql:5:1: *ast.ResTarget has nil name\n```\n\n\n### Database schema\n\n_No response_\n\n### SQL queries\n\n```sql\nCREATE TABLE a(temp_a TEXT);\r\nCREATE TABLE b(temp_a TEXT, temp_b TEXT);\r\n\r\n-- name: TestQuery :many\r\nINSERT INTO b(temp_a, temp_c)\r\nSELECT temp_a,\r\n COALESCE(sqlc.narg('arg'), temp_b)\r\nFROM a\r\nRETURNING *;\n```\n\n\n### Configuration\n\n```yaml\n{\r\n \"version\": \"1\",\r\n \"packages\": [\r\n {\r\n \"path\": \"postgresql\",\r\n \"name\": \"batch\",\r\n \"schema\": \"query.sql\",\r\n \"queries\": \"query.sql\",\r\n \"engine\": \"postgresql\",\r\n \"sql_package\": \"pgx/v4\",\r\n \"emit_json_tags\": true,\r\n \"emit_prepared_queries\": true,\r\n \"emit_interface\": true\r\n }\r\n ]\r\n}\n```\n\n\n### Playground URL\n\n_No response_\n\n### What operating system are you using?\n\nLinux\n\n### What database engines are you using?\n\nPostgreSQL\n\n### What type of code are you generating?\n\nGo","author":{"url":"https://github.com/ryan-berger","@type":"Person","name":"ryan-berger"},"datePublished":"2022-05-27T18:11:11.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/1646/sqlc/issues/1646"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:0e0cb2ed-9de9-5854-9e9d-7a5443d5d333 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8194:DC47A:853F8D:B87592:6A507E49 |
| html-safe-nonce | d314322fa0ee6ff89324f95fa9c77cef34d731b0a58feedb7eccb63984016a58 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MTk0OkRDNDdBOjg1M0Y4RDpCODc1OTI6NkE1MDdFNDkiLCJ2aXNpdG9yX2lkIjoiNjg3ODI3NzUwMzY5NTIyNDM5MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 644f21fbfb6fe3eaacfe2623b11638c446286120398aa05ffc83ba1a90fbb251 |
| hovercard-subject-tag | issue:1251111451 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/sqlc-dev/sqlc/1646/issue_layout |
| twitter:image | https://opengraph.githubassets.com/4c093a88494ecf8455f76ee199ec8860f879ddd51cf13ed684ecc1605042680c/sqlc-dev/sqlc/issues/1646 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/4c093a88494ecf8455f76ee199ec8860f879ddd51cf13ed684ecc1605042680c/sqlc-dev/sqlc/issues/1646 |
| og:image:alt | Version 1.13.0 What happened? When trying to compile an INSERT/SELECT with sqlc.narg, I received the following error message: query.sql:5:1: *ast.ResTarget has nil name Relevant log output SQLCDEBU... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ryan-berger |
| hostname | github.com |
| expected-hostname | github.com |
| None | d6dc8294eb500fa36bbc57472d61fe87c522f9c3c1d64f70f4926f66a66a7efb |
| turbo-cache-control | no-preview |
| go-import | github.com/sqlc-dev/sqlc git https://github.com/sqlc-dev/sqlc.git |
| octolytics-dimension-user_id | 136738596 |
| octolytics-dimension-user_login | sqlc-dev |
| octolytics-dimension-repository_id | 193160679 |
| octolytics-dimension-repository_nwo | sqlc-dev/sqlc |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 193160679 |
| octolytics-dimension-repository_network_root_nwo | sqlc-dev/sqlc |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7ac0ad2f2c7e4b9056617355fd9e33e22b0c8df9 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width