環境変数
SQLCCACHE
SQLCCACHE
環境変数は、sqlc
がキャッシュされたWASMベースのプラグインとモジュールを保存する場所を指定します。デフォルトでは、sqlc
はXDG Base Directory Specificationに従います。
SQLCDEBUG
SQLCDEBUG
変数は、ランタイム内のデバッグ変数を制御します。これは、name=valペア設定のカンマ区切りリストです。
dumpast
dumpast
コマンドは、パーサーによって生成されたSQL ASTを表示します。これは一般的なSQL ASTであり、エンジン固有のSQL ASTではないことに注意してください。
SQLCDEBUG=dumpast=1
([]interface {}) (len=1 cap=1) {
(*catalog.Catalog)(0xc0004f48c0)({
Comment: (string) "",
DefaultSchema: (string) (len=6) "public",
Name: (string) "",
Schemas: ([]*catalog.Schema) (len=3 cap=4) {
(*catalog.Schema)(0xc0004f4930)({
Name: (string) (len=6) "public",
Tables: ([]*catalog.Table) (len=1 cap=1) {
(*catalog.Table)(0xc00052ff20)({
Rel: (*ast.TableName)(0xc00052fda0)({
Catalog: (string) "",
Schema: (string) "",
Name: (string) (len=7) "authors"
}),
dumpcatalog
dumpcatalog
コマンドは、カタログ全体を出力します。MySQLまたはPostgreSQLを使用している場合、これは少し圧倒的になる可能性があります。この出力は将来のバージョンで変更されることが予想されます。
SQLCDEBUG=dumpcatalog=1
([]interface {}) (len=1 cap=1) {
(*catalog.Catalog)(0xc00050d1f0)({
Comment: (string) "",
DefaultSchema: (string) (len=6) "public",
Name: (string) "",
Schemas: ([]*catalog.Schema) (len=3 cap=4) {
(*catalog.Schema)(0xc00050d260)({
Name: (string) (len=6) "public",
Tables: ([]*catalog.Table) (len=1 cap=1) {
(*catalog.Table)(0xc0000c0840)({
Rel: (*ast.TableName)(0xc0000c06c0)({
Catalog: (string) "",
Schema: (string) "",
Name: (string) (len=7) "authors"
}),
trace
trace
コマンドは、パフォーマンスの問題を追跡するのに役立ちます。
SQLCDEBUG=trace=1
デフォルトでは、トレース出力は現在の作業ディレクトリのtrace.out
に書き込まれます。必要に応じて、異なるパスを設定できます。
SQLCDEBUG=trace=name.out
Go trace
ツールを使用して実行トレースを表示します。
go tool trace trace.out
トレース出力にはさまざまなビューがありますが、各パッケージの実行時間を示すログの例を以下に示します。
0.000043897 . 1 task sqlc (id 1, parent 0) created
0.000144923 . 101026 1 region generate started (duration: 47.619781ms)
0.001048975 . 904052 1 region package started (duration: 14.588456ms)
0.001054616 . 5641 1 name=authors dir=/Users/kyle/projects/sqlc/examples/python language=python
0.001071257 . 16641 1 region parse started (duration: 7.966549ms)
0.009043960 . 7972703 1 region codegen started (duration: 6.587086ms)
0.009171704 . 127744 1 new goroutine 35: text/template/parse.lex·dwrap·1
0.010361654 . 1189950 1 new goroutine 36: text/template/parse.lex·dwrap·1
0.015641815 . 5280161 1 region package started (duration: 10.904938ms)
0.015644943 . 3128 1 name=booktest dir=/Users/kyle/projects/sqlc/examples/python language=python
0.015647431 . 2488 1 region parse started (duration: 4.207749ms)
0.019860308 . 4212877 1 region codegen started (duration: 6.681624ms)
0.020028488 . 168180 1 new goroutine 37: text/template/parse.lex·dwrap·1
0.021020310 . 991822 1 new goroutine 8: text/template/parse.lex·dwrap·1
0.026551163 . 5530853 1 region package started (duration: 9.217294ms)
0.026554368 . 3205 1 name=jets dir=/Users/kyle/projects/sqlc/examples/python language=python
0.026556804 . 2436 1 region parse started (duration: 3.491005ms)
0.030051911 . 3495107 1 region codegen started (duration: 5.711931ms)
0.030213937 . 162026 1 new goroutine 20: text/template/parse.lex·dwrap·1
0.031099938 . 886001 1 new goroutine 38: text/template/parse.lex·dwrap·1
0.035772637 . 4672699 1 region package started (duration: 10.267039ms)
0.035775688 . 3051 1 name=ondeck dir=/Users/kyle/projects/sqlc/examples/python language=python
0.035778150 . 2462 1 region parse started (duration: 4.094518ms)
0.039877181 . 4099031 1 region codegen started (duration: 6.156341ms)
0.040010771 . 133590 1 new goroutine 39: text/template/parse.lex·dwrap·1
0.040894567 . 883796 1 new goroutine 40: text/template/parse.lex·dwrap·1
0.046042779 . 5148212 1 region writefiles started (duration: 1.718259ms)
0.047767781 . 1725002 1 task end
processplugins
この値を0
に設定すると、プロセスベースのプラグインが無効になります。プロセスベースのプラグインが設定ファイルで宣言されている場合、任意のsqlc
コマンドを実行するとエラーが返されます。
SQLCDEBUG=processplugins=0
dumpvetenv
dumpvetenv
コマンドは、評価中にsqlc vet
ルールで利用可能な変数を出力します。
SQLCDEBUG=dumpvetenv=1
dumpexplain
dumpexplain
コマンドは、sqlc vet
ルール評価でその出力が必要な場合に、クエリでEXPLAIN ...
を実行した結果のJSON形式の結果を出力します。
SQLCDEBUG=dumpexplain=1
SQLCTMPDIR
指定された場合、一時フォルダーのベースとして指定されたディレクトリを使用します。WASMベースのコードジェンプラグインを使用する場合にのみ適用されます。指定されていない場合、これはos.MkdirTempに空の文字列を渡すことにデフォルト設定されます。
原文:https://docs.sqlc.dev/en/latest/reference/environment-variables.html