diff --git a/.changes/unreleased/Changed-20250531-000842.yaml b/.changes/unreleased/Changed-20250531-000842.yaml new file mode 100644 index 0000000..8df5e03 --- /dev/null +++ b/.changes/unreleased/Changed-20250531-000842.yaml @@ -0,0 +1,6 @@ +kind: Changed +body: Improved `:execrows` performance for `asyncpg` and added speedup option for `:execrows` +time: 2025-05-31T00:08:42.9297814+02:00 +custom: + Author: rayakame + PR: "112" diff --git a/.changes/unreleased/Fixed-20250531-000749.yaml b/.changes/unreleased/Fixed-20250531-000749.yaml new file mode 100644 index 0000000..a01a01e --- /dev/null +++ b/.changes/unreleased/Fixed-20250531-000749.yaml @@ -0,0 +1,6 @@ +kind: Fixed +body: Added `columns` kwarg to `:copyfrom` for `asyncpg` to fix inserts for columns with default values +time: 2025-05-31T00:07:49.4105598+02:00 +custom: + Author: rayakame + PR: "112" diff --git a/internal/codegen/common.go b/internal/codegen/common.go index a315fb3..e302e4f 100644 --- a/internal/codegen/common.go +++ b/internal/codegen/common.go @@ -7,7 +7,7 @@ import ( "github.com/rayakame/sqlc-gen-better-python/internal/core" ) -type TypeBuildPyQueryFunc func(*core.Query, *builders.IndentStringBuilder, []core.FunctionArg, core.PyType, bool) error +type TypeBuildPyQueryFunc func(*core.Query, *builders.IndentStringBuilder, []core.FunctionArg, core.PyType, *core.Config) error type TypeAcceptedDriverCMDs func() []string type TypeDriverTypeCheckingHook func() []string type TypeDriverBuildQueryResults func(*builders.IndentStringBuilder) string diff --git a/internal/codegen/drivers/aiosqlite.go b/internal/codegen/drivers/aiosqlite.go index 6c096a2..92bbe8e 100644 --- a/internal/codegen/drivers/aiosqlite.go +++ b/internal/codegen/drivers/aiosqlite.go @@ -159,13 +159,13 @@ func AiosqliteBuildQueryResults(body *builders.IndentStringBuilder) string { return "QueryResults" } -func AioSQLiteBuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuilder, args []core.FunctionArg, retType core.PyType, isClass bool) error { +func AioSQLiteBuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuilder, args []core.FunctionArg, retType core.PyType, conf *core.Config) error { indentLevel := 0 params := fmt.Sprintf("conn: %s", AioSQLiteConn) conn := "conn" asyncFunc := "async " docstringConnType := AioSQLiteConn - if isClass { + if conf.EmitClasses { params = "self" conn = "self._conn" indentLevel = 1 diff --git a/internal/codegen/drivers/asyncpg.go b/internal/codegen/drivers/asyncpg.go index 5c33a04..29b494b 100644 --- a/internal/codegen/drivers/asyncpg.go +++ b/internal/codegen/drivers/asyncpg.go @@ -47,13 +47,13 @@ func AsyncpgBuildQueryResults(body *builders.IndentStringBuilder) string { return "QueryResults" } -func AsyncpgBuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuilder, args []core.FunctionArg, retType core.PyType, isClass bool) error { +func AsyncpgBuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuilder, args []core.FunctionArg, retType core.PyType, conf *core.Config) error { indentLevel := 0 params := fmt.Sprintf("conn: %s", AsyncpgConn) conn := "conn" asyncFunc := "async " docstringConnType := AsyncpgConn - if isClass { + if conf.EmitClasses { params = "self" conn = "self._conn" indentLevel = 1 @@ -84,27 +84,38 @@ func AsyncpgBuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuild } else if query.Cmd == metadata.CmdExecRows { body.WriteLine(fmt.Sprintf(") -> %s:", retType.Type)) body.WriteQueryFunctionDocstring(indentLevel+1, query, docstringConnType, args, retType) - body.WriteIndentedString(indentLevel+1, fmt.Sprintf("result = await %s.execute(%s", conn, query.ConstantName)) + body.WriteIndentedString(indentLevel+1, fmt.Sprintf("r = await %s.execute(%s", conn, query.ConstantName)) asyncpgWriteParams(query, body) body.WriteLine(")") - body.WriteIndentedLine(indentLevel+1, "return int(result.split()[-1]) if result.split()[-1].isdigit() else 0") + if conf.Speedups { + body.WriteIndentedLine(indentLevel+1, "return int(n) if (n := r.split()[-1]).isdigit() else 0") + } else { + body.WriteIndentedLine(indentLevel+1, "return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0") + } } else if query.Cmd == metadata.CmdCopyFrom { body.WriteLine(fmt.Sprintf(") -> %s:", retType.Type)) body.WriteQueryFunctionDocstring(indentLevel+1, query, docstringConnType, args, retType) body.WriteIndentedLine(indentLevel+1, "records = [") params := "" + columns := `` for i, arg := range query.Args[0].Table.Columns { if i == len(query.Args[0].Table.Columns)-1 && i != 0 { params += fmt.Sprintf("%s.%s", "param", arg.Name) + columns += fmt.Sprintf(`"%s"`, arg.Name) } else { params += fmt.Sprintf("%s.%s, ", "param", arg.Name) + columns += fmt.Sprintf(`"%s", `, arg.Name) } } body.WriteIndentedLine(indentLevel+2, fmt.Sprintf("(%s)", params)) body.WriteIndentedLine(indentLevel+2, fmt.Sprintf("for param in %s", query.Args[0].Name)) body.WriteIndentedLine(indentLevel+1, "]") - body.WriteIndentedLine(indentLevel+1, fmt.Sprintf(`result = await %s.copy_records_to_table("%s", records=records)`, conn, query.Table.Name)) - body.WriteIndentedLine(indentLevel+1, "return int(result.split()[-1]) if result.split()[-1].isdigit() else 0") + body.WriteIndentedLine(indentLevel+1, fmt.Sprintf(`r = await %s.copy_records_to_table("%s", columns=[%s], records=records)`, conn, query.Table.Name, columns)) + if conf.Speedups { + body.WriteIndentedLine(indentLevel+1, "return int(n) if (n := r.split()[-1]).isdigit() else 0") + } else { + body.WriteIndentedLine(indentLevel+1, "return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0") + } } else if query.Cmd == metadata.CmdOne { body.WriteLine(fmt.Sprintf(") -> %s | None:", retType.Type)) body.WriteQueryFunctionDocstring(indentLevel+1, query, docstringConnType, args, retType) diff --git a/internal/codegen/drivers/sqlite3.go b/internal/codegen/drivers/sqlite3.go index b3fc960..b195d6a 100644 --- a/internal/codegen/drivers/sqlite3.go +++ b/internal/codegen/drivers/sqlite3.go @@ -160,12 +160,12 @@ func SQLite3BuildQueryResults(body *builders.IndentStringBuilder) string { return "QueryResults" } -func SQLite3BuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuilder, args []core.FunctionArg, retType core.PyType, isClass bool) error { +func SQLite3BuildPyQueryFunc(query *core.Query, body *builders.IndentStringBuilder, args []core.FunctionArg, retType core.PyType, conf *core.Config) error { indentLevel := 0 params := fmt.Sprintf("conn: %s", SQLite3Conn) conn := "conn" docstringConnType := SQLite3Conn - if isClass { + if conf.EmitClasses { params = "self" conn = "self._conn" indentLevel = 1 diff --git a/internal/codegen/queries.go b/internal/codegen/queries.go index d2200e2..6471ce5 100644 --- a/internal/codegen/queries.go +++ b/internal/codegen/queries.go @@ -155,7 +155,7 @@ func (dr *Driver) buildPyQueriesFile(imp *core.Importer, queries []core.Query, s Type: retType, } allNames = append(allNames, addedPyTableNames...) - err := dr.buildPyQueryFunc(&query, funcBody, args, returnType, dr.conf.EmitClasses) + err := dr.buildPyQueryFunc(&query, funcBody, args, returnType, dr.conf) if err != nil { return nil, err } diff --git a/sqlc.yaml b/sqlc.yaml index c1fe1ea..85bf967 100644 --- a/sqlc.yaml +++ b/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: python wasm: url: file://sqlc-gen-better-python.wasm - sha256: 93df043f217f5bc2b9ce70c1283d36676b9ffe8f7ab9b5e8379db20db045e92f + sha256: 750bbaa7a45acdce18c4c06ea4384c4df7e5f3e0e51ed6c8badcaea2dbe6d14d sql: - schema: test/schema.sql queries: test/queries.sql diff --git a/test/driver_aiosqlite/attrs/classes/__init__.py b/test/driver_aiosqlite/attrs/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_aiosqlite/attrs/classes/__init__.py +++ b/test/driver_aiosqlite/attrs/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_aiosqlite/attrs/classes/models.py b/test/driver_aiosqlite/attrs/classes/models.py index 9b22da0..efdb657 100644 --- a/test/driver_aiosqlite/attrs/classes/models.py +++ b/test/driver_aiosqlite/attrs/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/attrs/classes/queries.py b/test/driver_aiosqlite/attrs/classes/queries.py index 55fe067..f096c3f 100644 --- a/test/driver_aiosqlite/attrs/classes/queries.py +++ b/test/driver_aiosqlite/attrs/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/attrs/functions/__init__.py b/test/driver_aiosqlite/attrs/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_aiosqlite/attrs/functions/__init__.py +++ b/test/driver_aiosqlite/attrs/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_aiosqlite/attrs/functions/models.py b/test/driver_aiosqlite/attrs/functions/models.py index 9b22da0..efdb657 100644 --- a/test/driver_aiosqlite/attrs/functions/models.py +++ b/test/driver_aiosqlite/attrs/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/attrs/functions/queries.py b/test/driver_aiosqlite/attrs/functions/queries.py index cf6cdc9..902ebc4 100644 --- a/test/driver_aiosqlite/attrs/functions/queries.py +++ b/test/driver_aiosqlite/attrs/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/dataclass/classes/__init__.py b/test/driver_aiosqlite/dataclass/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_aiosqlite/dataclass/classes/__init__.py +++ b/test/driver_aiosqlite/dataclass/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_aiosqlite/dataclass/classes/models.py b/test/driver_aiosqlite/dataclass/classes/models.py index f58b71c..81b8951 100644 --- a/test/driver_aiosqlite/dataclass/classes/models.py +++ b/test/driver_aiosqlite/dataclass/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/dataclass/classes/queries.py b/test/driver_aiosqlite/dataclass/classes/queries.py index 5dff516..2cd03b2 100644 --- a/test/driver_aiosqlite/dataclass/classes/queries.py +++ b/test/driver_aiosqlite/dataclass/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/dataclass/functions/__init__.py b/test/driver_aiosqlite/dataclass/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_aiosqlite/dataclass/functions/__init__.py +++ b/test/driver_aiosqlite/dataclass/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_aiosqlite/dataclass/functions/models.py b/test/driver_aiosqlite/dataclass/functions/models.py index f58b71c..81b8951 100644 --- a/test/driver_aiosqlite/dataclass/functions/models.py +++ b/test/driver_aiosqlite/dataclass/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/dataclass/functions/queries.py b/test/driver_aiosqlite/dataclass/functions/queries.py index 4858d9e..f4d4da3 100644 --- a/test/driver_aiosqlite/dataclass/functions/queries.py +++ b/test/driver_aiosqlite/dataclass/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/msgspec/classes/__init__.py b/test/driver_aiosqlite/msgspec/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_aiosqlite/msgspec/classes/__init__.py +++ b/test/driver_aiosqlite/msgspec/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_aiosqlite/msgspec/classes/models.py b/test/driver_aiosqlite/msgspec/classes/models.py index 4e58d48..5a2532d 100644 --- a/test/driver_aiosqlite/msgspec/classes/models.py +++ b/test/driver_aiosqlite/msgspec/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/msgspec/classes/queries.py b/test/driver_aiosqlite/msgspec/classes/queries.py index 1fc9f2b..5d732a9 100644 --- a/test/driver_aiosqlite/msgspec/classes/queries.py +++ b/test/driver_aiosqlite/msgspec/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/msgspec/functions/__init__.py b/test/driver_aiosqlite/msgspec/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_aiosqlite/msgspec/functions/__init__.py +++ b/test/driver_aiosqlite/msgspec/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_aiosqlite/msgspec/functions/models.py b/test/driver_aiosqlite/msgspec/functions/models.py index 4e58d48..5a2532d 100644 --- a/test/driver_aiosqlite/msgspec/functions/models.py +++ b/test/driver_aiosqlite/msgspec/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/msgspec/functions/queries.py b/test/driver_aiosqlite/msgspec/functions/queries.py index c046789..28723fe 100644 --- a/test/driver_aiosqlite/msgspec/functions/queries.py +++ b/test/driver_aiosqlite/msgspec/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_aiosqlite/sqlc-gen-better-python.wasm b/test/driver_aiosqlite/sqlc-gen-better-python.wasm index e124c9f..3ab2e92 100644 Binary files a/test/driver_aiosqlite/sqlc-gen-better-python.wasm and b/test/driver_aiosqlite/sqlc-gen-better-python.wasm differ diff --git a/test/driver_aiosqlite/sqlc.yaml b/test/driver_aiosqlite/sqlc.yaml index c846ab9..1bf4e0b 100644 --- a/test/driver_aiosqlite/sqlc.yaml +++ b/test/driver_aiosqlite/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: python wasm: url: file://sqlc-gen-better-python.wasm - sha256: 93df043f217f5bc2b9ce70c1283d36676b9ffe8f7ab9b5e8379db20db045e92f + sha256: 750bbaa7a45acdce18c4c06ea4384c4df7e5f3e0e51ed6c8badcaea2dbe6d14d sql: - schema: schema.sql queries: queries.sql diff --git a/test/driver_asyncpg/attrs/classes/__init__.py b/test/driver_asyncpg/attrs/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_asyncpg/attrs/classes/__init__.py +++ b/test/driver_asyncpg/attrs/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_asyncpg/attrs/classes/models.py b/test/driver_asyncpg/attrs/classes/models.py index 78f81c7..8cea99d 100644 --- a/test/driver_asyncpg/attrs/classes/models.py +++ b/test/driver_asyncpg/attrs/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_asyncpg/attrs/classes/queries.py b/test/driver_asyncpg/attrs/classes/queries.py index 2864d08..a5f1cc5 100644 --- a/test/driver_asyncpg/attrs/classes/queries.py +++ b/test/driver_asyncpg/attrs/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations @@ -944,8 +944,8 @@ async def create_rows_one_test_postgres_type(self, *, id_: int, serial_test: int The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def create_rows_table(self) -> int: """Execute SQL query with `name: CreateRowsTable :execrows` and return the number of affected rows. @@ -964,8 +964,8 @@ async def create_rows_table(self) -> int: The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(CREATE_ROWS_TABLE) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(CREATE_ROWS_TABLE) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def delete_one_result_test_postgres_type(self, *, id_: int) -> str: """Execute and return the result of SQL query with `name: DeleteOneResultTestPostgresType :execresult`. @@ -1007,8 +1007,8 @@ async def delete_one_rows_test_postgres_type(self, *, id_: int) -> int: The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def delete_one_test_postgres_inner_type(self, *, table_id: int) -> None: """Execute SQL query with `name: DeleteOneTestPostgresInnerType :exec`. @@ -1413,8 +1413,8 @@ async def test_copy_from(self, *, params: collections.abc.Sequence[TestCopyFromP (param.id, param.float_test, param.int_test) for param in params ] - result = await self._conn.copy_records_to_table("test_copy_from", records=records) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.copy_records_to_table("test_copy_from", columns=["id", "float_test", "int_test"], records=records) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def update_result_test_postgres_type(self, *, id_: int) -> str: """Execute and return the result of SQL query with `name: UpdateResultTestPostgresType :execresult`. @@ -1456,5 +1456,5 @@ async def update_rows_test_postgres_type(self, *, id_: int) -> int: The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (n := r.split()[-1]).isdigit() else 0 diff --git a/test/driver_asyncpg/attrs/functions/__init__.py b/test/driver_asyncpg/attrs/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_asyncpg/attrs/functions/__init__.py +++ b/test/driver_asyncpg/attrs/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_asyncpg/attrs/functions/models.py b/test/driver_asyncpg/attrs/functions/models.py index 78f81c7..8cea99d 100644 --- a/test/driver_asyncpg/attrs/functions/models.py +++ b/test/driver_asyncpg/attrs/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_asyncpg/attrs/functions/queries.py b/test/driver_asyncpg/attrs/functions/queries.py index 076b219..c072271 100644 --- a/test/driver_asyncpg/attrs/functions/queries.py +++ b/test/driver_asyncpg/attrs/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations @@ -955,8 +955,8 @@ async def create_rows_one_test_postgres_type(conn: ConnectionLike, *, id_: int, The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def create_rows_table(conn: ConnectionLike) -> int: @@ -981,8 +981,8 @@ async def create_rows_table(conn: ConnectionLike) -> int: The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(CREATE_ROWS_TABLE) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(CREATE_ROWS_TABLE) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def delete_one_result_test_postgres_type(conn: ConnectionLike, *, id_: int) -> str: @@ -1030,8 +1030,8 @@ async def delete_one_rows_test_postgres_type(conn: ConnectionLike, *, id_: int) The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def delete_one_test_postgres_inner_type(conn: ConnectionLike, *, table_id: int) -> None: @@ -1493,8 +1493,8 @@ async def test_copy_from(conn: ConnectionLike, *, params: collections.abc.Sequen (param.id, param.float_test, param.int_test) for param in params ] - result = await conn.copy_records_to_table("test_copy_from", records=records) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.copy_records_to_table("test_copy_from", columns=["id", "float_test", "int_test"], records=records) + return int(n) if (n := r.split()[-1]).isdigit() else 0 async def update_result_test_postgres_type(conn: ConnectionLike, *, id_: int) -> str: @@ -1542,5 +1542,5 @@ async def update_rows_test_postgres_type(conn: ConnectionLike, *, id_: int) -> i The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (n := r.split()[-1]).isdigit() else 0 diff --git a/test/driver_asyncpg/dataclass/classes/__init__.py b/test/driver_asyncpg/dataclass/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_asyncpg/dataclass/classes/__init__.py +++ b/test/driver_asyncpg/dataclass/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_asyncpg/dataclass/classes/models.py b/test/driver_asyncpg/dataclass/classes/models.py index c46ad0a..6fafea5 100644 --- a/test/driver_asyncpg/dataclass/classes/models.py +++ b/test/driver_asyncpg/dataclass/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_asyncpg/dataclass/classes/queries.py b/test/driver_asyncpg/dataclass/classes/queries.py index 988b98b..d84a857 100644 --- a/test/driver_asyncpg/dataclass/classes/queries.py +++ b/test/driver_asyncpg/dataclass/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations @@ -912,8 +912,8 @@ async def create_rows_one_test_postgres_type(self, *, id_: int, serial_test: int Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def create_rows_table(self) -> int: """Execute SQL query with `name: CreateRowsTable :execrows` and return the number of affected rows. @@ -929,8 +929,8 @@ async def create_rows_table(self) -> int: Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(CREATE_ROWS_TABLE) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(CREATE_ROWS_TABLE) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_result_test_postgres_type(self, *, id_: int) -> str: """Execute and return the result of SQL query with `name: DeleteOneResultTestPostgresType :execresult`. @@ -964,8 +964,8 @@ async def delete_one_rows_test_postgres_type(self, *, id_: int) -> int: Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_test_postgres_inner_type(self, *, table_id: int) -> None: """Execute SQL query with `name: DeleteOneTestPostgresInnerType :exec`. @@ -1302,8 +1302,8 @@ async def test_copy_from(self, *, params: collections.abc.Sequence[TestCopyFromP (param.id, param.float_test, param.int_test) for param in params ] - result = await self._conn.copy_records_to_table("test_copy_from", records=records) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.copy_records_to_table("test_copy_from", columns=["id", "float_test", "int_test"], records=records) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def update_result_test_postgres_type(self, *, id_: int) -> str: """Execute and return the result of SQL query with `name: UpdateResultTestPostgresType :execresult`. @@ -1337,5 +1337,5 @@ async def update_rows_test_postgres_type(self, *, id_: int) -> int: Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 diff --git a/test/driver_asyncpg/dataclass/functions/__init__.py b/test/driver_asyncpg/dataclass/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_asyncpg/dataclass/functions/__init__.py +++ b/test/driver_asyncpg/dataclass/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_asyncpg/dataclass/functions/models.py b/test/driver_asyncpg/dataclass/functions/models.py index c46ad0a..6fafea5 100644 --- a/test/driver_asyncpg/dataclass/functions/models.py +++ b/test/driver_asyncpg/dataclass/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_asyncpg/dataclass/functions/queries.py b/test/driver_asyncpg/dataclass/functions/queries.py index 4da5237..45e009f 100644 --- a/test/driver_asyncpg/dataclass/functions/queries.py +++ b/test/driver_asyncpg/dataclass/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations @@ -927,8 +927,8 @@ async def create_rows_one_test_postgres_type(conn: ConnectionLike, *, id_: int, Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def create_rows_table(conn: ConnectionLike) -> int: @@ -949,8 +949,8 @@ async def create_rows_table(conn: ConnectionLike) -> int: Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(CREATE_ROWS_TABLE) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(CREATE_ROWS_TABLE) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_result_test_postgres_type(conn: ConnectionLike, *, id_: int) -> str: @@ -990,8 +990,8 @@ async def delete_one_rows_test_postgres_type(conn: ConnectionLike, *, id_: int) Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_test_postgres_inner_type(conn: ConnectionLike, *, table_id: int) -> None: @@ -1385,8 +1385,8 @@ async def test_copy_from(conn: ConnectionLike, *, params: collections.abc.Sequen (param.id, param.float_test, param.int_test) for param in params ] - result = await conn.copy_records_to_table("test_copy_from", records=records) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.copy_records_to_table("test_copy_from", columns=["id", "float_test", "int_test"], records=records) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def update_result_test_postgres_type(conn: ConnectionLike, *, id_: int) -> str: @@ -1426,5 +1426,5 @@ async def update_rows_test_postgres_type(conn: ConnectionLike, *, id_: int) -> i Returns: The number (`int`) of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 diff --git a/test/driver_asyncpg/msgspec/classes/__init__.py b/test/driver_asyncpg/msgspec/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_asyncpg/msgspec/classes/__init__.py +++ b/test/driver_asyncpg/msgspec/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_asyncpg/msgspec/classes/models.py b/test/driver_asyncpg/msgspec/classes/models.py index 197c346..978b0a8 100644 --- a/test/driver_asyncpg/msgspec/classes/models.py +++ b/test/driver_asyncpg/msgspec/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_asyncpg/msgspec/classes/queries.py b/test/driver_asyncpg/msgspec/classes/queries.py index fd0ad75..82562df 100644 --- a/test/driver_asyncpg/msgspec/classes/queries.py +++ b/test/driver_asyncpg/msgspec/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations @@ -904,8 +904,8 @@ async def create_rows_one_test_postgres_type(self, *, id_: int, serial_test: int Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def create_rows_table(self) -> int: """Execute SQL query with `name: CreateRowsTable :execrows` and return the number of affected rows. @@ -921,8 +921,8 @@ async def create_rows_table(self) -> int: Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(CREATE_ROWS_TABLE) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(CREATE_ROWS_TABLE) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_result_test_postgres_type(self, *, id_: int) -> str: """Execute and return the result of SQL query with `name: DeleteOneResultTestPostgresType :execresult`. @@ -956,8 +956,8 @@ async def delete_one_rows_test_postgres_type(self, *, id_: int) -> int: Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_test_postgres_inner_type(self, *, table_id: int) -> None: """Execute SQL query with `name: DeleteOneTestPostgresInnerType :exec`. @@ -1293,8 +1293,8 @@ async def test_copy_from(self, *, params: collections.abc.Sequence[TestCopyFromP (param.id, param.float_test, param.int_test) for param in params ] - result = await self._conn.copy_records_to_table("test_copy_from", records=records) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.copy_records_to_table("test_copy_from", columns=["id", "float_test", "int_test"], records=records) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def update_result_test_postgres_type(self, *, id_: int) -> str: """Execute and return the result of SQL query with `name: UpdateResultTestPostgresType :execresult`. @@ -1328,5 +1328,5 @@ async def update_rows_test_postgres_type(self, *, id_: int) -> int: Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await self._conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await self._conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 diff --git a/test/driver_asyncpg/msgspec/functions/__init__.py b/test/driver_asyncpg/msgspec/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_asyncpg/msgspec/functions/__init__.py +++ b/test/driver_asyncpg/msgspec/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_asyncpg/msgspec/functions/models.py b/test/driver_asyncpg/msgspec/functions/models.py index 197c346..978b0a8 100644 --- a/test/driver_asyncpg/msgspec/functions/models.py +++ b/test/driver_asyncpg/msgspec/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_asyncpg/msgspec/functions/queries.py b/test/driver_asyncpg/msgspec/functions/queries.py index eb2299c..d66949c 100644 --- a/test/driver_asyncpg/msgspec/functions/queries.py +++ b/test/driver_asyncpg/msgspec/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations @@ -916,8 +916,8 @@ async def create_rows_one_test_postgres_type(conn: ConnectionLike, *, id_: int, Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(CREATE_ROWS_ONE_TEST_POSTGRES_TYPE, id_, serial_test, serial4_test, bigserial_test, smallserial_test, int_test, bigint_test, smallint_test, float_test, double_precision_test, real_test, numeric_test, money_test, bool_test, json_test, jsonb_test, bytea_test, date_test, time_test, timetz_test, timestamp_test, timestamptz_test, interval_test, text_test, varchar_test, bpchar_test, char_test, citext_test, uuid_test, inet_test, cidr_test, macaddr_test, macaddr8_test, ltree_test, lquery_test, ltxtquery_test) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def create_rows_table(conn: ConnectionLike) -> int: @@ -937,8 +937,8 @@ async def create_rows_table(conn: ConnectionLike) -> int: Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(CREATE_ROWS_TABLE) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(CREATE_ROWS_TABLE) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_result_test_postgres_type(conn: ConnectionLike, *, id_: int) -> str: @@ -976,8 +976,8 @@ async def delete_one_rows_test_postgres_type(conn: ConnectionLike, *, id_: int) Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(DELETE_ONE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def delete_one_test_postgres_inner_type(conn: ConnectionLike, *, table_id: int) -> None: @@ -1351,8 +1351,8 @@ async def test_copy_from(conn: ConnectionLike, *, params: collections.abc.Sequen (param.id, param.float_test, param.int_test) for param in params ] - result = await conn.copy_records_to_table("test_copy_from", records=records) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.copy_records_to_table("test_copy_from", columns=["id", "float_test", "int_test"], records=records) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 async def update_result_test_postgres_type(conn: ConnectionLike, *, id_: int) -> str: @@ -1390,5 +1390,5 @@ async def update_rows_test_postgres_type(conn: ConnectionLike, *, id_: int) -> i Returns: int -- The number of affected rows. This will be 0 for queries like `CREATE TABLE`. """ - result = await conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) - return int(result.split()[-1]) if result.split()[-1].isdigit() else 0 + r = await conn.execute(UPDATE_ROWS_TEST_POSTGRES_TYPE, id_) + return int(n) if (p := r.split()) and (n := p[-1]).isdigit() else 0 diff --git a/test/driver_asyncpg/schema.sql b/test/driver_asyncpg/schema.sql index 606f5a3..a25d999 100644 --- a/test/driver_asyncpg/schema.sql +++ b/test/driver_asyncpg/schema.sql @@ -128,8 +128,9 @@ CREATE TABLE IF NOT EXISTS test_copy_from ( id int PRIMARY KEY NOT NULL, float_test float NOT NULL , - int_test int NOT NULL -); + int_test int NOT NULL, + created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now() + ); CREATE TABLE IF NOT EXISTS test_type_override ( diff --git a/test/driver_asyncpg/sqlc-gen-better-python.wasm b/test/driver_asyncpg/sqlc-gen-better-python.wasm index e124c9f..3ab2e92 100644 Binary files a/test/driver_asyncpg/sqlc-gen-better-python.wasm and b/test/driver_asyncpg/sqlc-gen-better-python.wasm differ diff --git a/test/driver_asyncpg/sqlc.yaml b/test/driver_asyncpg/sqlc.yaml index bcd97d0..4bbe980 100644 --- a/test/driver_asyncpg/sqlc.yaml +++ b/test/driver_asyncpg/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: python wasm: url: file://sqlc-gen-better-python.wasm - sha256: 93df043f217f5bc2b9ce70c1283d36676b9ffe8f7ab9b5e8379db20db045e92f + sha256: 750bbaa7a45acdce18c4c06ea4384c4df7e5f3e0e51ed6c8badcaea2dbe6d14d sql: - schema: schema.sql queries: queries.sql @@ -19,6 +19,7 @@ sql: omit_unused_models: true emit_init_file: true docstrings: numpy + speedups: true overrides: - column: test_type_override.text_test py_type: @@ -39,6 +40,7 @@ sql: omit_unused_models: true emit_init_file: true docstrings: numpy + speedups: true overrides: - column: test_type_override.text_test py_type: diff --git a/test/driver_sqlite3/attrs/classes/__init__.py b/test/driver_sqlite3/attrs/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_sqlite3/attrs/classes/__init__.py +++ b/test/driver_sqlite3/attrs/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_sqlite3/attrs/classes/models.py b/test/driver_sqlite3/attrs/classes/models.py index 9b22da0..efdb657 100644 --- a/test/driver_sqlite3/attrs/classes/models.py +++ b/test/driver_sqlite3/attrs/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_sqlite3/attrs/classes/queries.py b/test/driver_sqlite3/attrs/classes/queries.py index 557aa09..be212c5 100644 --- a/test/driver_sqlite3/attrs/classes/queries.py +++ b/test/driver_sqlite3/attrs/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_sqlite3/attrs/functions/__init__.py b/test/driver_sqlite3/attrs/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_sqlite3/attrs/functions/__init__.py +++ b/test/driver_sqlite3/attrs/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_sqlite3/attrs/functions/models.py b/test/driver_sqlite3/attrs/functions/models.py index 9b22da0..efdb657 100644 --- a/test/driver_sqlite3/attrs/functions/models.py +++ b/test/driver_sqlite3/attrs/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_sqlite3/attrs/functions/queries.py b/test/driver_sqlite3/attrs/functions/queries.py index 9eae191..efdd5e3 100644 --- a/test/driver_sqlite3/attrs/functions/queries.py +++ b/test/driver_sqlite3/attrs/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_sqlite3/dataclass/classes/__init__.py b/test/driver_sqlite3/dataclass/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_sqlite3/dataclass/classes/__init__.py +++ b/test/driver_sqlite3/dataclass/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_sqlite3/dataclass/classes/models.py b/test/driver_sqlite3/dataclass/classes/models.py index f58b71c..81b8951 100644 --- a/test/driver_sqlite3/dataclass/classes/models.py +++ b/test/driver_sqlite3/dataclass/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_sqlite3/dataclass/classes/queries.py b/test/driver_sqlite3/dataclass/classes/queries.py index a9778d3..b774042 100644 --- a/test/driver_sqlite3/dataclass/classes/queries.py +++ b/test/driver_sqlite3/dataclass/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_sqlite3/dataclass/functions/__init__.py b/test/driver_sqlite3/dataclass/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_sqlite3/dataclass/functions/__init__.py +++ b/test/driver_sqlite3/dataclass/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_sqlite3/dataclass/functions/models.py b/test/driver_sqlite3/dataclass/functions/models.py index f58b71c..81b8951 100644 --- a/test/driver_sqlite3/dataclass/functions/models.py +++ b/test/driver_sqlite3/dataclass/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_sqlite3/dataclass/functions/queries.py b/test/driver_sqlite3/dataclass/functions/queries.py index e6f7374..1f49bd9 100644 --- a/test/driver_sqlite3/dataclass/functions/queries.py +++ b/test/driver_sqlite3/dataclass/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_sqlite3/msgspec/classes/__init__.py b/test/driver_sqlite3/msgspec/classes/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_sqlite3/msgspec/classes/__init__.py +++ b/test/driver_sqlite3/msgspec/classes/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_sqlite3/msgspec/classes/models.py b/test/driver_sqlite3/msgspec/classes/models.py index 4e58d48..5a2532d 100644 --- a/test/driver_sqlite3/msgspec/classes/models.py +++ b/test/driver_sqlite3/msgspec/classes/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_sqlite3/msgspec/classes/queries.py b/test/driver_sqlite3/msgspec/classes/queries.py index 478fcdd..43c97f0 100644 --- a/test/driver_sqlite3/msgspec/classes/queries.py +++ b/test/driver_sqlite3/msgspec/classes/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_sqlite3/msgspec/functions/__init__.py b/test/driver_sqlite3/msgspec/functions/__init__.py index eea2bdf..a4dbc2b 100644 --- a/test/driver_sqlite3/msgspec/functions/__init__.py +++ b/test/driver_sqlite3/msgspec/functions/__init__.py @@ -1,5 +1,5 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Package containing queries and models automatically generated using sqlc-gen-better-python.""" diff --git a/test/driver_sqlite3/msgspec/functions/models.py b/test/driver_sqlite3/msgspec/functions/models.py index 4e58d48..5a2532d 100644 --- a/test/driver_sqlite3/msgspec/functions/models.py +++ b/test/driver_sqlite3/msgspec/functions/models.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing models.""" from __future__ import annotations diff --git a/test/driver_sqlite3/msgspec/functions/queries.py b/test/driver_sqlite3/msgspec/functions/queries.py index b8860e2..dfcf326 100644 --- a/test/driver_sqlite3/msgspec/functions/queries.py +++ b/test/driver_sqlite3/msgspec/functions/queries.py @@ -1,7 +1,7 @@ # Code generated by sqlc. DO NOT EDIT. # versions: # sqlc v1.28.0 -# sqlc-gen-better-python v0.4.2 +# sqlc-gen-better-python v0.4.3 """Module containing queries from file queries.sql.""" from __future__ import annotations diff --git a/test/driver_sqlite3/sqlc-gen-better-python.wasm b/test/driver_sqlite3/sqlc-gen-better-python.wasm index e124c9f..3ab2e92 100644 Binary files a/test/driver_sqlite3/sqlc-gen-better-python.wasm and b/test/driver_sqlite3/sqlc-gen-better-python.wasm differ diff --git a/test/driver_sqlite3/sqlc.yaml b/test/driver_sqlite3/sqlc.yaml index 7d7336e..129404a 100644 --- a/test/driver_sqlite3/sqlc.yaml +++ b/test/driver_sqlite3/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: python wasm: url: file://sqlc-gen-better-python.wasm - sha256: 93df043f217f5bc2b9ce70c1283d36676b9ffe8f7ab9b5e8379db20db045e92f + sha256: 750bbaa7a45acdce18c4c06ea4384c4df7e5f3e0e51ed6c8badcaea2dbe6d14d sql: - schema: schema.sql queries: queries.sql