diff --git a/internal/endtoend/testdata/emit_pydantic_models/sqlc.yaml b/internal/endtoend/testdata/emit_pydantic_models/sqlc.yaml index 180ce29..556942f 100644 --- a/internal/endtoend/testdata/emit_pydantic_models/sqlc.yaml +++ b/internal/endtoend/testdata/emit_pydantic_models/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql @@ -15,4 +15,4 @@ sql: package: db emit_sync_querier: true emit_async_querier: true - emit_pydantic_models: true \ No newline at end of file + emit_pydantic_models: true diff --git a/internal/endtoend/testdata/exec_result/sqlc.yaml b/internal/endtoend/testdata/exec_result/sqlc.yaml index 2adbd31..597a534 100644 --- a/internal/endtoend/testdata/exec_result/sqlc.yaml +++ b/internal/endtoend/testdata/exec_result/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/endtoend/testdata/exec_rows/sqlc.yaml b/internal/endtoend/testdata/exec_rows/sqlc.yaml index 2adbd31..597a534 100644 --- a/internal/endtoend/testdata/exec_rows/sqlc.yaml +++ b/internal/endtoend/testdata/exec_rows/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/endtoend/testdata/inflection_exclude_table_names/sqlc.yaml b/internal/endtoend/testdata/inflection_exclude_table_names/sqlc.yaml index aba5400..7120e7e 100644 --- a/internal/endtoend/testdata/inflection_exclude_table_names/sqlc.yaml +++ b/internal/endtoend/testdata/inflection_exclude_table_names/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/endtoend/testdata/query_parameter_limit_two/sqlc.yaml b/internal/endtoend/testdata/query_parameter_limit_two/sqlc.yaml index e389988..44288e9 100644 --- a/internal/endtoend/testdata/query_parameter_limit_two/sqlc.yaml +++ b/internal/endtoend/testdata/query_parameter_limit_two/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/endtoend/testdata/query_parameter_limit_undefined/sqlc.yaml b/internal/endtoend/testdata/query_parameter_limit_undefined/sqlc.yaml index 66d7a14..81c117a 100644 --- a/internal/endtoend/testdata/query_parameter_limit_undefined/sqlc.yaml +++ b/internal/endtoend/testdata/query_parameter_limit_undefined/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/endtoend/testdata/query_parameter_limit_zero/sqlc.yaml b/internal/endtoend/testdata/query_parameter_limit_zero/sqlc.yaml index 274f730..fdf8bb7 100644 --- a/internal/endtoend/testdata/query_parameter_limit_zero/sqlc.yaml +++ b/internal/endtoend/testdata/query_parameter_limit_zero/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/endtoend/testdata/query_parameter_no_limit/sqlc.yaml b/internal/endtoend/testdata/query_parameter_no_limit/sqlc.yaml index b563730..0a68be2 100644 --- a/internal/endtoend/testdata/query_parameter_no_limit/sqlc.yaml +++ b/internal/endtoend/testdata/query_parameter_no_limit/sqlc.yaml @@ -3,7 +3,7 @@ plugins: - name: py wasm: url: file://../../../../bin/sqlc-gen-python.wasm - sha256: "a6c5d174c407007c3717eea36ff0882744346e6ba991f92f71d6ab2895204c0e" + sha256: "8b2fef2ff398f9cbe23191ff639aa45ef1d68e49040c5e22eed28390365d6f76" sql: - schema: schema.sql queries: query.sql diff --git a/internal/gen.go b/internal/gen.go index f81c53b..f0eb05c 100644 --- a/internal/gen.go +++ b/internal/gen.go @@ -193,6 +193,8 @@ func pyInnerType(req *plugin.GenerateRequest, col *plugin.Column) string { switch req.Settings.Engine { case "postgresql": return postgresType(req, col) + case "sqlite": + return sqliteType(req, col) default: log.Println("unsupported engine type") return "Any" diff --git a/internal/sqlite_type.go b/internal/sqlite_type.go new file mode 100644 index 0000000..76866ba --- /dev/null +++ b/internal/sqlite_type.go @@ -0,0 +1,50 @@ +package python + +import ( + "log" + "strings" + + "github.com/sqlc-dev/plugin-sdk-go/plugin" + "github.com/sqlc-dev/plugin-sdk-go/sdk" +) + +func sqliteType(req *plugin.GenerateRequest, col *plugin.Column) string { + dt := strings.ToLower(sdk.DataType(col.Type)) + + // see: https://github.com/sqlc-dev/sqlc/blob/main/internal/codegen/golang/sqlite_type.go + switch dt { + case "int", "integer", "tinyint", "smallint", "mediumint", "bigint", "unsignedbigint", "int2", "int8": + return "int" + case "blob": + return "bytes" + case "real", "double", "double precision", "float": + return "float" + case "boolean", "bool": + return "bool" + case "date": + return "datetime.date" + case "datetime", "timestamp": + return "datetime.datetime" + case "any": + return "Any" + } + + switch { + case strings.HasPrefix(dt, "character"), + strings.HasPrefix(dt, "varchar"), + strings.HasPrefix(dt, "varyingcharacter"), + strings.HasPrefix(dt, "nchar"), + strings.HasPrefix(dt, "nativecharacter"), + strings.HasPrefix(dt, "nvarchar"), + dt == "text", + dt == "clob", + dt == "json": + return "str" + case strings.HasPrefix(dt, "decimal"), dt == "numeric": + return "float" + + default: + log.Printf("unknown SQLite type: %s\n", dt) + return "Any" + } +} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy