From f746b9b36a97d3c33652fc1c3bea5b873258eb3e Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 24 Jun 2026 04:56:30 -0400 Subject: [PATCH 01/20] feat: start adding dynamic query support --- internal/compiler/parse.go | 9 +-- internal/constants/query.go | 2 + .../dynamic_query/postgresql/stdlib/query.sql | 8 +++ .../postgresql/stdlib/schema.sql | 7 +++ .../dynamic_query/postgresql/stdlib/sqlc.json | 12 ++++ internal/metadata/meta.go | 59 ++++++++++++++----- internal/metadata/meta_test.go | 17 +++--- 7 files changed, 88 insertions(+), 26 deletions(-) create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/stdlib/sqlc.json diff --git a/internal/compiler/parse.go b/internal/compiler/parse.go index 2f9afb72c1..948ab0f412 100644 --- a/internal/compiler/parse.go +++ b/internal/compiler/parse.go @@ -44,7 +44,7 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, return nil, errors.New("missing semicolon at end of file") } - name, cmd, err := metadata.ParseQueryNameAndType(rawSQL, metadata.CommentSyntax(c.parser.CommentSyntax())) + name, cmd, dynamic, err := metadata.ParseQueryNameAndType(rawSQL, metadata.CommentSyntax(c.parser.CommentSyntax())) if err != nil { return nil, err } @@ -58,8 +58,9 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, } md := metadata.Metadata{ - Name: name, - Cmd: cmd, + Name: name, + Cmd: cmd, + Dynamic: dynamic, } // TODO eventually can use this for name and type/cmd parsing too @@ -68,7 +69,7 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, return nil, err } - md.Params, md.Flags, md.RuleSkiplist, err = metadata.ParseCommentFlags(cleanedComments) + md.Params, md.Flags, md.RuleSkiplist, md.DynamicParams, md.DynamicSort, err = metadata.ParseCommentFlags(cleanedComments) if err != nil { return nil, err } diff --git a/internal/constants/query.go b/internal/constants/query.go index a572c56c6f..261d0ea6c1 100644 --- a/internal/constants/query.go +++ b/internal/constants/query.go @@ -4,6 +4,8 @@ package constants const ( QueryFlagParam = "@param" QueryFlagSqlcVetDisable = "@sqlc-vet-disable" + QueryFlagDynamic = "@dynamic" + QueryFlagDynamicSort = "@dynamic-sort" ) // Rules diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql new file mode 100644 index 0000000000..4f411628c9 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql @@ -0,0 +1,8 @@ +-- name: ListRecords :many :dynamic +-- @dynamic name +-- @dynamic age +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age > sqlc.arg(age); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql new file mode 100644 index 0000000000..8c4f6056b3 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql @@ -0,0 +1,7 @@ +CREATE TABLE records ( + id BIGSERIAL PRIMARY KEY, + tenant_id BIGINT NOT NULL, + name TEXT NOT NULL, + age INT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/sqlc.json b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/sqlc.json new file mode 100644 index 0000000000..cd518671ac --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/sqlc.json @@ -0,0 +1,12 @@ +{ + "version": "1", + "packages": [ + { + "engine": "postgresql", + "path": "go", + "name": "querytest", + "schema": "schema.sql", + "queries": "query.sql" + } + ] +} diff --git a/internal/metadata/meta.go b/internal/metadata/meta.go index 76ee992a7a..c13467dca1 100644 --- a/internal/metadata/meta.go +++ b/internal/metadata/meta.go @@ -3,10 +3,11 @@ package metadata import ( "bufio" "fmt" - "github.com/sqlc-dev/sqlc/internal/constants" "strings" "unicode" + "github.com/sqlc-dev/sqlc/internal/constants" + "github.com/sqlc-dev/sqlc/internal/source" ) @@ -24,6 +25,13 @@ type Metadata struct { RuleSkiplist map[string]struct{} Filename string + + // Dynamic is set when the query is marked `:dynamic`. + Dynamic bool + // DynamicParams is the set of sqlc.arg names marked `@dynamic` + DynamicParams map[string]struct{} + // DynamicSort is the whitelist of columns allowed in a dynamic ORDR BY clause. + DynamicSort []string } const ( @@ -58,7 +66,7 @@ func validateQueryName(name string) error { return nil } -func ParseQueryNameAndType(t string, commentStyle CommentSyntax) (string, string, error) { +func ParseQueryNameAndType(t string, commentStyle CommentSyntax) (string, string, bool, error) { for line := range strings.SplitSeq(t, "\n") { var prefix string if strings.HasPrefix(line, "--") { @@ -90,40 +98,51 @@ func ParseQueryNameAndType(t string, commentStyle CommentSyntax) (string, string continue } if !strings.HasPrefix(rest, " name: ") { - return "", "", fmt.Errorf("invalid metadata: %s", line) + return "", "", false, fmt.Errorf("invalid metadata: %s", line) } part := strings.Split(strings.TrimSpace(line), " ") if prefix == "/*" { part = part[:len(part)-1] // removes the trailing "*/" element } - if len(part) == 3 { - return "", "", fmt.Errorf("missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: %s", line) + if len(part) < 3 { + return "", "", false, fmt.Errorf("invalid query comment: %s", line) } - if len(part) != 4 { - return "", "", fmt.Errorf("invalid query comment: %s", line) + if len(part) == 3 { + return "", "", false, fmt.Errorf("missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: %s", line) } queryName := part[2] queryType := strings.TrimSpace(part[3]) switch queryType { case CmdOne, CmdMany, CmdExec, CmdExecResult, CmdExecRows, CmdExecLastId, CmdCopyFrom, CmdBatchExec, CmdBatchMany, CmdBatchOne: default: - return "", "", fmt.Errorf("invalid query type: %s", queryType) + return "", "", false, fmt.Errorf("invalid query type: %s", queryType) } if err := validateQueryName(queryName); err != nil { - return "", "", err + return "", "", false, err + } + var dynamic bool + for _, modifier := range part[4:] { + switch strings.TrimSpace(modifier) { + case ":dynamic": + dynamic = true + default: + return "", "", false, fmt.Errorf("invalid query modifier %q: %s", modifier, line) + } } - return queryName, queryType, nil + return queryName, queryType, dynamic, nil } - return "", "", nil + return "", "", false, nil } // ParseCommentFlags processes the comments provided with queries to determine the metadata params, flags and rules to skip. // All flags in query comments are prefixed with `@`, e.g. @param, @@sqlc-vet-disable. -func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, map[string]struct{}, error) { +func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, map[string]struct{}, map[string]struct{}, []string, error) { params := make(map[string]string) flags := make(map[string]bool) ruleSkiplist := make(map[string]struct{}) + dynamicParams := make(map[string]struct{}) + dynamicSort := []string{} for _, line := range comments { s := bufio.NewScanner(strings.NewReader(line)) @@ -158,15 +177,27 @@ func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, m for s.Scan() { ruleSkiplist[s.Text()] = struct{}{} } + case constants.QueryFlagDynamic: + s.Scan() + if name := s.Text(); name != "" { + dynamicParams[name] = struct{}{} + } + case constants.QueryFlagDynamicSort: + for s.Scan() { + col := strings.TrimSuffix(s.Text(), ",") + if col != "" { + dynamicSort = append(dynamicSort, col) + } + } default: flags[token] = true } if s.Err() != nil { - return params, flags, ruleSkiplist, s.Err() + return params, flags, ruleSkiplist, dynamicParams, dynamicSort, s.Err() } } - return params, flags, ruleSkiplist, nil + return params, flags, ruleSkiplist, dynamicParams, dynamicSort, nil } diff --git a/internal/metadata/meta_test.go b/internal/metadata/meta_test.go index e9ef54586e..15cfd49aec 100644 --- a/internal/metadata/meta_test.go +++ b/internal/metadata/meta_test.go @@ -5,7 +5,6 @@ import ( ) func TestParseQueryNameAndType(t *testing.T) { - for _, query := range []string{ `-- name: CreateFoo, :one`, `-- name: 9Foo_, :one`, @@ -19,7 +18,7 @@ func TestParseQueryNameAndType(t *testing.T) { "-- name:CreateFoo", `--name:CreateFoo :two`, } { - if _, _, err := ParseQueryNameAndType(query, CommentSyntax{Dash: true}); err == nil { + if _, _, _, err := ParseQueryNameAndType(query, CommentSyntax{Dash: true}); err == nil { t.Errorf("expected invalid metadata: %q", query) } } @@ -29,7 +28,7 @@ func TestParseQueryNameAndType(t *testing.T) { `-- name comment`, `--name comment`, } { - if _, _, err := ParseQueryNameAndType(query, CommentSyntax{Dash: true}); err != nil { + if _, _, _, err := ParseQueryNameAndType(query, CommentSyntax{Dash: true}); err != nil { t.Errorf("expected valid comment: %q", query) } } @@ -39,7 +38,7 @@ func TestParseQueryNameAndType(t *testing.T) { `# name: CreateFoo :one`: {Hash: true}, `/* name: CreateFoo :one */`: {SlashStar: true}, } { - queryName, queryCmd, err := ParseQueryNameAndType(query, cs) + queryName, queryCmd, dynamic, err := ParseQueryNameAndType(query, cs) if err != nil { t.Errorf("expected valid metadata: %q", query) } @@ -49,8 +48,10 @@ func TestParseQueryNameAndType(t *testing.T) { if queryCmd != CmdOne { t.Errorf("incorrect queryCmd parsed: (%q) %q", queryCmd, query) } + if dynamic { + t.Errorf("incorrectly determined as dynimc query: (%v) %q", dynamic, query) + } } - } func TestParseQueryParams(t *testing.T) { @@ -79,7 +80,7 @@ func TestParseQueryParams(t *testing.T) { " @param @invalid UUID ", }, } { - params, _, _, err := ParseCommentFlags(comments) + params, _, _, _, _, err := ParseCommentFlags(comments) if err != nil { t.Errorf("expected comments to parse, got err: %s", err) } @@ -125,7 +126,7 @@ func TestParseQueryFlags(t *testing.T) { " @param @flag-bar UUID", }, } { - _, flags, _, err := ParseCommentFlags(comments) + _, flags, _, _, _, err := ParseCommentFlags(comments) if err != nil { t.Errorf("expected comments to parse, got err: %s", err) } @@ -158,7 +159,7 @@ func TestParseQueryRuleSkiplist(t *testing.T) { " @sqlc-vet-disable delete-without-where ", }, } { - _, flags, ruleSkiplist, err := ParseCommentFlags(comments) + _, flags, ruleSkiplist, _, _, err := ParseCommentFlags(comments) if err != nil { t.Errorf("expected comments to parse, got err: %s", err) } From 88c3b8badd5be14615a70e698acdf2e62463214e Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 24 Jun 2026 06:09:11 -0400 Subject: [PATCH 02/20] feat: start changing how metadata is used and add endtoend tests --- .../dynamic_query/postgresql/stdlib/go/db.go | 31 ++++++++++ .../postgresql/stdlib/go/models.go | 17 ++++++ .../postgresql/stdlib/go/query.sql.go | 60 +++++++++++++++++++ .../dynamic_query/postgresql/stdlib/query.sql | 4 +- internal/metadata/meta.go | 13 ++-- 5 files changed, 118 insertions(+), 7 deletions(-) create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/db.go create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/db.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/db.go new file mode 100644 index 0000000000..80dd6ab1f6 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package querytest + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go new file mode 100644 index 0000000000..1fb5c3e6cd --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go @@ -0,0 +1,17 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package querytest + +import ( + "time" +) + +type Record struct { + ID int64 + TenantID int64 + Name string + Age int32 + CreatedAt time.Time +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go new file mode 100644 index 0000000000..013ceb51cd --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go @@ -0,0 +1,60 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 +// source: query.sql + +package querytest + +import ( + "context" + "time" +) + +const listRecords = `-- name: ListRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type ListRecordsParams struct { + TenantID int64 + Name string + Age int32 +} + +type ListRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +// @dynamic name eq +// @dynamic age gt +// @dynamic-sort name, age, created_at +func (q *Queries) ListRecords(ctx context.Context, arg ListRecordsParams) ([]ListRecordsRow, error) { + rows, err := q.db.QueryContext(ctx, listRecords, arg.TenantID, arg.Name, arg.Age) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListRecordsRow + for rows.Next() { + var i ListRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql index 4f411628c9..7f57fd2a12 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql @@ -1,6 +1,6 @@ -- name: ListRecords :many :dynamic --- @dynamic name --- @dynamic age +-- @dynamic name eq +-- @dynamic age gt -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) diff --git a/internal/metadata/meta.go b/internal/metadata/meta.go index c13467dca1..961a74caf4 100644 --- a/internal/metadata/meta.go +++ b/internal/metadata/meta.go @@ -29,7 +29,7 @@ type Metadata struct { // Dynamic is set when the query is marked `:dynamic`. Dynamic bool // DynamicParams is the set of sqlc.arg names marked `@dynamic` - DynamicParams map[string]struct{} + DynamicParams map[string]string // DynamicSort is the whitelist of columns allowed in a dynamic ORDR BY clause. DynamicSort []string } @@ -137,11 +137,11 @@ func ParseQueryNameAndType(t string, commentStyle CommentSyntax) (string, string // ParseCommentFlags processes the comments provided with queries to determine the metadata params, flags and rules to skip. // All flags in query comments are prefixed with `@`, e.g. @param, @@sqlc-vet-disable. -func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, map[string]struct{}, map[string]struct{}, []string, error) { +func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, map[string]struct{}, map[string]string, []string, error) { params := make(map[string]string) flags := make(map[string]bool) ruleSkiplist := make(map[string]struct{}) - dynamicParams := make(map[string]struct{}) + dynamicParams := make(map[string]string) dynamicSort := []string{} for _, line := range comments { @@ -179,8 +179,11 @@ func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, m } case constants.QueryFlagDynamic: s.Scan() - if name := s.Text(); name != "" { - dynamicParams[name] = struct{}{} + name := s.Text() + s.Scan() + op := s.Text() + if name != "" { + dynamicParams[name] = op } case constants.QueryFlagDynamicSort: for s.Scan() { From df4a6723dab9e70e6f1465c1a2abd903650b51d7 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 24 Jun 2026 11:25:08 -0400 Subject: [PATCH 03/20] feat: get basic stdlib golang generating dynamic queries --- internal/cmd/shim.go | 6 +- internal/codegen/golang/dynamic.go | 57 ++++++++++++ internal/codegen/golang/dynamic_test.go | 60 +++++++++++++ internal/codegen/golang/imports.go | 15 +++- internal/codegen/golang/query.go | 3 +- internal/codegen/golang/result.go | 51 +++++++++-- .../golang/templates/stdlib/queryCode.tmpl | 80 +++++++++++++++++ internal/compiler/dynamic.go | 90 +++++++++++++++++++ internal/compiler/dynamic_test.go | 86 ++++++++++++++++++ internal/compiler/parse.go | 3 + internal/compiler/query.go | 12 ++- .../postgresql/stdlib/go/query.sql.go | 68 +++++++++++--- 12 files changed, 507 insertions(+), 24 deletions(-) create mode 100644 internal/codegen/golang/dynamic.go create mode 100644 internal/codegen/golang/dynamic_test.go create mode 100644 internal/compiler/dynamic.go create mode 100644 internal/compiler/dynamic_test.go diff --git a/internal/cmd/shim.go b/internal/cmd/shim.go index 654500429a..290b360afa 100644 --- a/internal/cmd/shim.go +++ b/internal/cmd/shim.go @@ -152,10 +152,14 @@ func pluginQueries(r *compiler.Result) []*plugin.Query { Name: q.InsertIntoTable.Name, } } + text := q.SQL + if q.CodegenSQL != "" { + text = q.CodegenSQL + } out = append(out, &plugin.Query{ Name: q.Metadata.Name, Cmd: q.Metadata.Cmd, - Text: q.SQL, + Text: text, Comments: q.Metadata.Comments, Columns: columns, Params: params, diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go new file mode 100644 index 0000000000..334801e9a6 --- /dev/null +++ b/internal/codegen/golang/dynamic.go @@ -0,0 +1,57 @@ +package golang + +import "strings" + +type DynamicQuery struct { + StaticCount int + Opts []DynamicPredicate + SortColumns []DynamicSortColumn +} + +var dynamicSQLOperators = map[string]string{ + "eq": "=", "ne": "<>", "gt": ">", "lt": "<", "gte": ">=", "lte": "<=", "like": "LIKE", +} + +type DynamicPredicate struct { + FieldName string + VarName string + GoType string + Column string + Operator string // eq, gt, lt, gte, lte, ne, like, in + SQLOp string +} + +type DynamicSortColumn struct { + ConstName string + Value string +} + +// parseDynamicComments extracts dynamic query annotations from +// a query's comments. The @dynamic param -> operator map and the @dynamic-sort column +// allowlist. It also returns the remaining comments with those annotation lines removed +// to avoid rendering them as Go doc commetns. +func parseDynamicComments(comments []string) (ops map[string]string, sort, filtered []string) { + ops = make(map[string]string) + for _, c := range comments { + fields := strings.Fields(c) + if len(fields) == 0 { + filtered = append(filtered, c) + continue + } + switch fields[0] { + case "@dynamic": + if len(fields) >= 3 { + ops[fields[1]] = fields[2] + } + case "@dynamic-sort": + for _, col := range fields[1:] { + if col = strings.TrimSuffix(col, ","); col != "" { + sort = append(sort, col) + } + } + default: + filtered = append(filtered, c) + } + } + return ops, sort, filtered +} diff --git a/internal/codegen/golang/dynamic_test.go b/internal/codegen/golang/dynamic_test.go new file mode 100644 index 0000000000..eda0906080 --- /dev/null +++ b/internal/codegen/golang/dynamic_test.go @@ -0,0 +1,60 @@ +package golang + +import ( + "reflect" + "testing" +) + +func TestParseDynamicComments(t *testing.T) { + tests := []struct { + name string + comments []string + wantOps map[string]string + wantSort []string + wantFiltered []string + }{ + { + name: "mixed dynamic annotations and a doc comment", + comments: []string{ + " @dynamic name eq", + " @dynamic age gt", + " @dynamic-sort name, age, created_at", + " ListRecords lists records", + }, + wantOps: map[string]string{"name": "eq", "age": "gt"}, + wantSort: []string{"name", "age", "created_at"}, + wantFiltered: []string{" ListRecords lists records"}, + }, + { + name: "no dynamic annotations passes comments through untouched", + comments: []string{ + " GetAuthor returns one author", + }, + wantOps: map[string]string{}, + wantSort: nil, + wantFiltered: []string{" GetAuthor returns one author"}, + }, + { + name: "empty input", + comments: nil, + wantOps: map[string]string{}, + wantSort: nil, + wantFiltered: nil, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ops, sort, filtered := parseDynamicComments(tt.comments) + if !reflect.DeepEqual(ops, tt.wantOps) { + t.Errorf("ops mismatch\n got: %#v\nwant: %#v", ops, tt.wantOps) + } + if !reflect.DeepEqual(sort, tt.wantSort) { + t.Errorf("sort mismatch\n got: %#v\nwant: %#v", sort, tt.wantSort) + } + if !reflect.DeepEqual(filtered, tt.wantFiltered) { + t.Errorf("filtered mismatch\n got: %#v\nwant: %#v", filtered, tt.wantFiltered) + } + }) + } +} diff --git a/internal/codegen/golang/imports.go b/internal/codegen/golang/imports.go index 76964248ef..3dc9a061ce 100644 --- a/internal/codegen/golang/imports.go +++ b/internal/codegen/golang/imports.go @@ -413,7 +413,20 @@ func (i *importer) queryImports(filename string) fileImports { pkg[ImportSpec{Path: "github.com/lib/pq"}] = struct{}{} } - if i.Options.WrapErrors { + hasDynamic, hasDynamicPredicate := false, false + for _, q := range gq { + if q.Dynamic != nil { + hasDynamic = true + if len(q.Dynamic.Opts) > 0 { + hasDynamicPredicate = true + } + } + } + + if hasDynamic { + std["strings"] = struct{}{} + } + if hasDynamicPredicate || i.Options.WrapErrors { std["fmt"] = struct{}{} } diff --git a/internal/codegen/golang/query.go b/internal/codegen/golang/query.go index 27c596c24e..9a3fa8cea7 100644 --- a/internal/codegen/golang/query.go +++ b/internal/codegen/golang/query.go @@ -266,7 +266,7 @@ func (v QueryValue) VariableForField(f Field) string { return v.Name + "." + f.Name } -// A struct used to generate methods and fields on the Queries struct +// Query is a struct used to generate methods and fields on the Queries struct type Query struct { Cmd string Comments []string @@ -277,6 +277,7 @@ type Query struct { SourceName string Ret QueryValue Arg QueryValue + Dynamic *DynamicQuery // Used for :copyfrom Table *plugin.Identifier } diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index c5126602da..e7ea64decb 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -201,7 +201,7 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En constantName = sdk.LowerTitle(query.Name) } - comments := query.Comments + ops, sortCols, comments := parseDynamicComments(query.Comments) if options.EmitSqlAsComment { if len(comments) == 0 { comments = append(comments, query.Name) @@ -231,7 +231,20 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En qpl := int(*options.QueryParameterLimit) - if len(query.Params) == 1 && qpl != 0 { + staticParams := query.Params + var dynamicParams []*plugin.Parameter + if len(ops) > 0 { + staticParams = nil + for _, p := range query.Params { + if _, ok := ops[p.Column.GetName()]; ok { + dynamicParams = append(dynamicParams, p) + } else { + staticParams = append(staticParams, p) + } + } + } + + if len(staticParams) == 1 && qpl != 0 { p := query.Params[0] gq.Arg = QueryValue{ Name: escape(paramName(p)), @@ -241,9 +254,9 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En ModelQualifier: qualifier, Column: p.Column, } - } else if len(query.Params) >= 1 { + } else if len(staticParams) >= 1 { var cols []goColumn - for _, p := range query.Params { + for _, p := range staticParams { cols = append(cols, goColumn{ id: int(p.Number), Column: p.Column, @@ -264,15 +277,41 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En // if query params is 2, and query params limit is 4 AND this is a copyfrom, we still want to emit the query's model // otherwise we end up with a copyfrom using a struct without the struct definition - if len(query.Params) <= qpl && query.Cmd != ":copyfrom" { + if len(staticParams) <= qpl && query.Cmd != ":copyfrom" { gq.Arg.Emit = false } } + if len(dynamicParams) > 0 || len(sortCols) > 0 { + dq := &DynamicQuery{StaticCount: len(staticParams)} + for _, p := range dynamicParams { + op, ok := dynamicSQLOperators[ops[p.Column.GetName()]] + if !ok { + return nil, fmt.Errorf("dynamic param %q: unsupported operator %q", p.Column.GetName(), ops[p.Column.GetName()]) + } + field := StructName(p.Column.GetName(), options) + dq.Opts = append(dq.Opts, DynamicPredicate{ + FieldName: StructName(p.Column.GetName(), options), + VarName: sdk.LowerTitle(field), + GoType: qualifyType(goType(req, options, p.Column), models, qualifier), + Column: p.Column.GetName(), + Operator: ops[p.Column.GetName()], + SQLOp: op, + }) + } + for _, col := range sortCols { + dq.SortColumns = append(dq.SortColumns, DynamicSortColumn{ + ConstName: gq.MethodName + "OrderBy" + StructName(col, options), + Value: col, + }) + } + gq.Dynamic = dq + } + if len(query.Columns) == 1 && query.Columns[0].EmbedTable == nil { c := query.Columns[0] name := columnName(c, 0) - name = strings.Replace(name, "$", "_", -1) + name = strings.ReplaceAll(name, "$", "_") retName := escape(name) // For :one queries the scan destination lives in the same scope as // the query parameters, so reusing a parameter's name would cause diff --git a/internal/codegen/golang/templates/stdlib/queryCode.tmpl b/internal/codegen/golang/templates/stdlib/queryCode.tmpl index 1e7f4e22a4..1ed30337f2 100644 --- a/internal/codegen/golang/templates/stdlib/queryCode.tmpl +++ b/internal/codegen/golang/templates/stdlib/queryCode.tmpl @@ -19,6 +19,85 @@ type {{.Ret.Type}} struct { {{- range .Ret.Struct.Fields}} } {{end}} +{{if .Dynamic}} +{{$q := .}} +type {{$q.MethodName}}Opts struct { +{{- range $q.Dynamic.Opts}} + {{.VarName}} *{{.GoType}} +{{- end}} + orderBy []string +} +{{range $q.Dynamic.Opts}} +func (o {{$q.MethodName}}Opts) {{.FieldName}}(v {{.GoType}}) {{$q.MethodName}}Opts { + o.{{.VarName}} = &v + return o +} +{{end -}} +{{if $q.Dynamic.SortColumns}} +type {{$q.MethodName}}OrderByColumn string + +const ( +{{- range $q.Dynamic.SortColumns}} + {{.ConstName}} {{$q.MethodName}}OrderByColumn = "{{.Value}}" +{{- end}} +) + +func (o {{$q.MethodName}}Opts) OrderBy(col {{$q.MethodName}}OrderByColumn, desc bool) {{$q.MethodName}}Opts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +{{end -}} +{{range $q.Comments}}//{{.}} +{{end -}} +func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ([]{{$q.Ret.DefineType}}, error) { + query := {{$q.ConstantName}} + queryParams := []interface{}{ {{$q.Arg.Params}} } + conds := make([]string, 0, {{len $q.Dynamic.Opts}}) + n := {{$q.Dynamic.StaticCount}} + _ = n +{{- range $q.Dynamic.Opts}} + if opts.{{.VarName}} != nil { + n++ + conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) + queryParams = append(queryParams, *opts.{{.VarName}}) + } +{{- end}} + if len(conds) > 0 { + query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + defer rows.Close() + {{- if $.EmitEmptySlices}} + items := []{{$q.Ret.DefineType}}{} + {{else}} + var items []{{$q.Ret.DefineType}} + {{end -}} + for rows.Next() { + var {{$q.Ret.Name}} {{$q.Ret.Type}} + if err := rows.Scan({{$q.Ret.Scan}}); err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + items = append(items, {{$q.Ret.ReturnName}}) + } + if err := rows.Close(); err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + if err := rows.Err(); err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + return items, nil +} +{{else}} {{if eq .Cmd ":one"}} {{range .Comments}}//{{.}} {{end -}} @@ -119,6 +198,7 @@ func (q *Queries) {{.MethodName}}(ctx context.Context, {{ dbarg }} {{.Arg.Pair}} {{- end}} } {{end}} +{{end}} {{end}} {{end}} diff --git a/internal/compiler/dynamic.go b/internal/compiler/dynamic.go new file mode 100644 index 0000000000..7ad34f8113 --- /dev/null +++ b/internal/compiler/dynamic.go @@ -0,0 +1,90 @@ +package compiler + +import ( + "fmt" + "strconv" + "strings" + + "github.com/sqlc-dev/sqlc/internal/metadata" +) + +func buildDynamicCodegenSQL(sql string, params []Parameter, md metadata.Metadata) (string, error) { + if !md.Dynamic || len(md.DynamicParams) == 0 { + return "", nil + } + + staticCount := 0 + for _, p := range params { + if p.Column == nil { + continue + } + if _, ok := md.DynamicParams[p.Column.Name]; !ok { + staticCount++ + } + } + + for _, p := range params { + if p.Column == nil { + continue + } + if _, ok := md.DynamicParams[p.Column.Name]; ok && p.Number <= staticCount { + return "", fmt.Errorf("dynamic param %q must appear after all static parameters", p.Column.Name) + } + } + + firstDyn := staticCount + 1 + idx := placeholderIndex(sql, firstDyn) + if idx < 0 { + return "", fmt.Errorf("dynamic: couldn't locaTe placeholder $%d", firstDyn) + } + + connector := "AND" + if staticCount == 0 { + connector = "WHERE" + } + cut := lastKeyword(sql[:idx], connector) + if cut < 0 { + return "", fmt.Errorf("dynamic: couldn't locate %q before $%d", connector, firstDyn) + } + return strings.TrimRight(sql[:cut], " \t\n"), nil +} + +func placeholderIndex(sql string, n int) int { + needle := "$" + strconv.Itoa(n) + for from := 0; ; { + i := strings.Index(sql[from:], needle) + if i < 0 { + return -1 + } + i += from + end := i + len(needle) + if end >= len(sql) || sql[end] < '0' || sql[end] > '9' { + return i + } + from = end + } +} + +func lastKeyword(s, kw string) int { + lower, lkw := strings.ToLower(s), strings.ToLower(kw) + for from := len(lower); ; { + i := strings.LastIndex(lower[:from], lkw) + if i < 0 { + return -1 + } + beforeOK := i == 0 || isSpace(lower[i-1]) + after := i + len(lkw) + aftreOK := after >= len(lower) || isSpace(lower[after]) + if beforeOK && aftreOK { + return i + } + from = i + } +} + +func isSpace(b byte) bool { + return b == ' ' || + b == '\t' || + b == '\n' || + b == '\r' +} diff --git a/internal/compiler/dynamic_test.go b/internal/compiler/dynamic_test.go new file mode 100644 index 0000000000..da61f7ab1e --- /dev/null +++ b/internal/compiler/dynamic_test.go @@ -0,0 +1,86 @@ +package compiler + +import ( + "testing" + + "github.com/sqlc-dev/sqlc/internal/metadata" +) + +func param(number int, name string) Parameter { + return Parameter{Number: number, Column: &Column{Name: name}} +} + +func TestBuildDynamicCodegenSQL(t *testing.T) { + tests := []struct { + name string + sql string + params []Parameter + md metadata.Metadata + want string + wantErr bool + }{ + { + name: "mixed static and dynamic suffix", + sql: "SELECT id, name, age, created_at FROM records\n" + + "WHERE tenant_id = $1\n" + + " AND name = $2\n" + + " AND age > $3", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "age")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "eq", "age": "gt"}, + }, + want: "SELECT id, name, age, created_at FROM records\n" + + "WHERE tenant_id = $1", + }, + { + name: "entirely dynamic where clause", + sql: "SELECT id, name, age FROM records\n" + + "WHERE name = $1\n" + + " AND age > $2", + params: []Parameter{param(1, "name"), param(2, "age")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "eq", "age": "gt"}, + }, + want: "SELECT id, name, age FROM records", + }, + { + name: "not a dynamic query returns empty", + sql: "SELECT id FROM records WHERE tenant_id = $1", + params: []Parameter{param(1, "tenant_id")}, + md: metadata.Metadata{}, + want: "", + }, + { + name: "dynamic param before static param is an error", + sql: "SELECT id FROM records\n" + + "WHERE name = $1\n" + + " AND tenant_id = $2", + params: []Parameter{param(1, "name"), param(2, "tenant_id")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "eq"}, + }, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := buildDynamicCodegenSQL(tt.sql, tt.params, tt.md) + if tt.wantErr { + if err == nil { + t.Fatalf("expected error, got none (result %q)", got) + } + return + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if got != tt.want { + t.Fatalf("buildDynamicCodegenSQL mismatch\n got: %q\nwant: %q", got, tt.want) + } + }) + } +} diff --git a/internal/compiler/parse.go b/internal/compiler/parse.go index 948ab0f412..cbdf15163f 100644 --- a/internal/compiler/parse.go +++ b/internal/compiler/parse.go @@ -175,12 +175,15 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, md.Comments = comments + codegenSQL, err := buildDynamicCodegenSQL(trimmed, anlys.Parameters, md) + return &Query{ RawStmt: raw, Metadata: md, Params: anlys.Parameters, Columns: anlys.Columns, SQL: trimmed, + CodegenSQL: codegenSQL, InsertIntoTable: anlys.Table, }, nil } diff --git a/internal/compiler/query.go b/internal/compiler/query.go index b3cf9d6154..10fe9800cd 100644 --- a/internal/compiler/query.go +++ b/internal/compiler/query.go @@ -43,10 +43,14 @@ type Column struct { } type Query struct { - SQL string - Metadata metadata.Metadata - Columns []*Column - Params []Parameter + // CodegenSQL is the stripped base query emitted as the Go const for + // :dynamic queries (where/order by suffixes removed). This should be + // empty for normal queries. + CodegenSQL string + SQL string + Metadata metadata.Metadata + Columns []*Column + Params []Parameter // Needed for CopyFrom InsertIntoTable *ast.TableName diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go index 013ceb51cd..8693108055 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go @@ -7,6 +7,8 @@ package querytest import ( "context" + "fmt" + "strings" "time" ) @@ -15,12 +17,6 @@ SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 ` -type ListRecordsParams struct { - TenantID int64 - Name string - Age int32 -} - type ListRecordsRow struct { ID int64 Name string @@ -28,11 +24,61 @@ type ListRecordsRow struct { CreatedAt time.Time } -// @dynamic name eq -// @dynamic age gt -// @dynamic-sort name, age, created_at -func (q *Queries) ListRecords(ctx context.Context, arg ListRecordsParams) ([]ListRecordsRow, error) { - rows, err := q.db.QueryContext(ctx, listRecords, arg.TenantID, arg.Name, arg.Age) +type ListRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListRecordsOpts) Name(v string) ListRecordsOpts { + o.name = &v + return o +} + +func (o ListRecordsOpts) Age(v int32) ListRecordsOpts { + o.age = &v + return o +} + +type ListRecordsOrderByColumn string + +const ( + ListRecordsOrderByName ListRecordsOrderByColumn = "name" + ListRecordsOrderByAge ListRecordsOrderByColumn = "age" + ListRecordsOrderByCreatedAt ListRecordsOrderByColumn = "created_at" +) + +func (o ListRecordsOpts) OrderBy(col ListRecordsOrderByColumn, desc bool) ListRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListRecordsOpts) ([]ListRecordsRow, error) { + query := listRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age > $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) if err != nil { return nil, err } From f6649a3992dd379bef7de18a267b51d89164553b Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 24 Jun 2026 12:23:17 -0400 Subject: [PATCH 04/20] feat: some cleanup and examples --- examples/dynamicquery/postgresql/db.go | 31 +++++ examples/dynamicquery/postgresql/db_test.go | 116 ++++++++++++++++++ examples/dynamicquery/postgresql/models.go | 17 +++ examples/dynamicquery/postgresql/query.sql | 8 ++ examples/dynamicquery/postgresql/query.sql.go | 106 ++++++++++++++++ examples/dynamicquery/postgresql/schema.sql | 7 ++ examples/dynamicquery/postgresql/sqlc.json | 12 ++ internal/codegen/golang/dynamic.go | 1 - internal/codegen/golang/result.go | 1 - .../invalid_queries_foo/pgx/v4/stderr.txt | 2 +- .../invalid_queries_foo/pgx/v5/stderr.txt | 2 +- .../invalid_queries_foo/stdlib/stderr.txt | 2 +- 12 files changed, 300 insertions(+), 5 deletions(-) create mode 100644 examples/dynamicquery/postgresql/db.go create mode 100644 examples/dynamicquery/postgresql/db_test.go create mode 100644 examples/dynamicquery/postgresql/models.go create mode 100644 examples/dynamicquery/postgresql/query.sql create mode 100644 examples/dynamicquery/postgresql/query.sql.go create mode 100644 examples/dynamicquery/postgresql/schema.sql create mode 100644 examples/dynamicquery/postgresql/sqlc.json diff --git a/examples/dynamicquery/postgresql/db.go b/examples/dynamicquery/postgresql/db.go new file mode 100644 index 0000000000..a7749a3df3 --- /dev/null +++ b/examples/dynamicquery/postgresql/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquery + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/examples/dynamicquery/postgresql/db_test.go b/examples/dynamicquery/postgresql/db_test.go new file mode 100644 index 0000000000..3df2edc786 --- /dev/null +++ b/examples/dynamicquery/postgresql/db_test.go @@ -0,0 +1,116 @@ +//go:build examples + +package dynamicquery + +import ( + "context" + "database/sql" + "testing" + + _ "github.com/jackc/pgx/v5/stdlib" + + "github.com/sqlc-dev/sqlc/internal/sqltest/local" +) + +func TestListRecordsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + seed := []struct { + tenant int64 + name string + age int32 + }{ + {1, "alice", 30}, + {1, "bob", 20}, + {1, "carol", 40}, + {2, "dave", 99}, // different tenant: must never appear in tenant 1 results + } + for _, s := range seed { + if _, err := db.ExecContext(ctx, + "INSERT INTO records (tenant_id, name, age) VALUES ($1, $2, $3)", + s.tenant, s.name, s.age); err != nil { + t.Fatal(err) + } + } + + q := New(db) + + names := func(rows []ListRecordsRow) []string { + out := make([]string, len(rows)) + for i, r := range rows { + out[i] = r.Name + } + return out + } + eq := func(t *testing.T, got, want []string) { + t.Helper() + if len(got) != len(want) { + t.Fatalf("got %v, want %v", got, want) + } + for i := range got { + if got[i] != want[i] { + t.Fatalf("got %v, want %v", got, want) + } + } + } + + t.Run("no filters returns all rows for the tenant", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want 3 rows, got %d (%v)", len(got), names(got)) + } + }) + + t.Run("name eq", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"alice"}) + }) + + t.Run("age gt", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25)) + if err != nil { + t.Fatal(err) + } + // alice(30) and carol(40); bob(20) excluded + if len(got) != 2 { + t.Fatalf("want 2 rows, got %d (%v)", len(got), names(got)) + } + }) + + t.Run("combined predicates are ANDed", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25).Name("carol")) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"carol"}) + }) + + t.Run("order by age desc", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.OrderBy(ListRecordsOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"carol", "alice", "bob"}) + }) + + t.Run("static tenant filter isolates rows", func(t *testing.T) { + got, err := q.ListRecords(ctx, 2, ListRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"dave"}) + }) +} diff --git a/examples/dynamicquery/postgresql/models.go b/examples/dynamicquery/postgresql/models.go new file mode 100644 index 0000000000..5f0a4b9c1f --- /dev/null +++ b/examples/dynamicquery/postgresql/models.go @@ -0,0 +1,17 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquery + +import ( + "time" +) + +type Record struct { + ID int64 + TenantID int64 + Name string + Age int32 + CreatedAt time.Time +} diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql new file mode 100644 index 0000000000..7f57fd2a12 --- /dev/null +++ b/examples/dynamicquery/postgresql/query.sql @@ -0,0 +1,8 @@ +-- name: ListRecords :many :dynamic +-- @dynamic name eq +-- @dynamic age gt +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age > sqlc.arg(age); diff --git a/examples/dynamicquery/postgresql/query.sql.go b/examples/dynamicquery/postgresql/query.sql.go new file mode 100644 index 0000000000..fe240b1f2c --- /dev/null +++ b/examples/dynamicquery/postgresql/query.sql.go @@ -0,0 +1,106 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 +// source: query.sql + +package dynamicquery + +import ( + "context" + "fmt" + "strings" + "time" +) + +const listRecords = `-- name: ListRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type ListRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type ListRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListRecordsOpts) Name(v string) ListRecordsOpts { + o.name = &v + return o +} + +func (o ListRecordsOpts) Age(v int32) ListRecordsOpts { + o.age = &v + return o +} + +type ListRecordsOrderByColumn string + +const ( + ListRecordsOrderByName ListRecordsOrderByColumn = "name" + ListRecordsOrderByAge ListRecordsOrderByColumn = "age" + ListRecordsOrderByCreatedAt ListRecordsOrderByColumn = "created_at" +) + +func (o ListRecordsOpts) OrderBy(col ListRecordsOrderByColumn, desc bool) ListRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListRecordsOpts) ([]ListRecordsRow, error) { + query := listRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age > $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListRecordsRow + for rows.Next() { + var i ListRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/examples/dynamicquery/postgresql/schema.sql b/examples/dynamicquery/postgresql/schema.sql new file mode 100644 index 0000000000..8c4f6056b3 --- /dev/null +++ b/examples/dynamicquery/postgresql/schema.sql @@ -0,0 +1,7 @@ +CREATE TABLE records ( + id BIGSERIAL PRIMARY KEY, + tenant_id BIGINT NOT NULL, + name TEXT NOT NULL, + age INT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); diff --git a/examples/dynamicquery/postgresql/sqlc.json b/examples/dynamicquery/postgresql/sqlc.json new file mode 100644 index 0000000000..f938c8ea64 --- /dev/null +++ b/examples/dynamicquery/postgresql/sqlc.json @@ -0,0 +1,12 @@ +{ + "version": "1", + "packages": [ + { + "engine": "postgresql", + "path": ".", + "name": "dynamicquery", + "schema": "schema.sql", + "queries": "query.sql" + } + ] +} diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go index 334801e9a6..66b076b336 100644 --- a/internal/codegen/golang/dynamic.go +++ b/internal/codegen/golang/dynamic.go @@ -17,7 +17,6 @@ type DynamicPredicate struct { VarName string GoType string Column string - Operator string // eq, gt, lt, gte, lte, ne, like, in SQLOp string } diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index e7ea64decb..19e397f521 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -295,7 +295,6 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En VarName: sdk.LowerTitle(field), GoType: qualifyType(goType(req, options, p.Column), models, qualifier), Column: p.Column.GetName(), - Operator: ops[p.Column.GetName()], SQLOp: op, }) } diff --git a/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt b/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt index 8c745b7e3b..d3f2496908 100644 --- a/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt +++ b/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt @@ -1,6 +1,6 @@ # package querytest query.sql:1:1: missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: -- name: ListFoos -query.sql:5:1: invalid query comment: -- name: ListFoos :one :many +query.sql:5:1: invalid query modifier ":many": -- name: ListFoos :one :many query.sql:8:1: invalid query type: :two query.sql:11:1: query "DeleteFoo" specifies parameter ":one" without containing a RETURNING clause query.sql:14:1: query "UpdateFoo" specifies parameter ":one" without containing a RETURNING clause diff --git a/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt b/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt index 8c745b7e3b..d3f2496908 100644 --- a/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt +++ b/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt @@ -1,6 +1,6 @@ # package querytest query.sql:1:1: missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: -- name: ListFoos -query.sql:5:1: invalid query comment: -- name: ListFoos :one :many +query.sql:5:1: invalid query modifier ":many": -- name: ListFoos :one :many query.sql:8:1: invalid query type: :two query.sql:11:1: query "DeleteFoo" specifies parameter ":one" without containing a RETURNING clause query.sql:14:1: query "UpdateFoo" specifies parameter ":one" without containing a RETURNING clause diff --git a/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt b/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt index 06ec54327f..01a8648cfc 100644 --- a/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt +++ b/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt @@ -1,6 +1,6 @@ # package querytest query.sql:1:1: missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: -- name: ListFoos -query.sql:5:1: invalid query comment: -- name: ListFoos :one :many +query.sql:5:1: invalid query modifier ":many": -- name: ListFoos :one :many query.sql:8:1: invalid query type: :two query.sql:11:1: query "DeleteFoo" specifies parameter ":one" without containing a RETURNING clause query.sql:14:1: query "UpdateFoo" specifies parameter ":one" without containing a RETURNING clause From 13608f0070797f9fe532bc1931de7022cad7780b Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 24 Jun 2026 13:12:36 -0400 Subject: [PATCH 05/20] feat: add support for sql.Slice/in --- .../dynamicquery/postgresql/db_in_test.go | 65 +++++++++ examples/dynamicquery/postgresql/db_test.go | 43 ++++-- examples/dynamicquery/postgresql/query.sql | 12 ++ examples/dynamicquery/postgresql/query.sql.go | 134 ++++++++++++++++++ internal/codegen/golang/dynamic.go | 1 + internal/codegen/golang/result.go | 20 ++- .../golang/templates/stdlib/queryCode.tmpl | 18 ++- 7 files changed, 279 insertions(+), 14 deletions(-) create mode 100644 examples/dynamicquery/postgresql/db_in_test.go diff --git a/examples/dynamicquery/postgresql/db_in_test.go b/examples/dynamicquery/postgresql/db_in_test.go new file mode 100644 index 0000000000..39f2968b83 --- /dev/null +++ b/examples/dynamicquery/postgresql/db_in_test.go @@ -0,0 +1,65 @@ +//go:build examples + +package dynamicquery + +import ( + "context" + "database/sql" + "testing" + + _ "github.com/jackc/pgx/v5/stdlib" + + "github.com/sqlc-dev/sqlc/internal/sqltest/local" +) + +// TestFilterRecordsDynamic exercises a dynamic IN predicate backed by +// sqlc.slice: `id IN (sqlc.slice(ids))`. The builder field is a slice ([]int64, +// not a pointer), and the runtime assembly must expand it into IN ($n, $n+1, …) +// advancing the placeholder counter by len(slice). +func TestFilterRecordsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + ids := make(map[string]int64) + for _, n := range []string{"alice", "bob", "carol"} { + var id int64 + if err := db.QueryRowContext(ctx, + "INSERT INTO records (tenant_id, name, age) VALUES (1, $1, 30) RETURNING id", + n).Scan(&id); err != nil { + t.Fatal(err) + } + ids[n] = id + } + + q := New(db) + + t.Run("in with two ids", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}.Ids([]int64{ids["alice"], ids["carol"]})) + if err != nil { + t.Fatal(err) + } + names := map[string]bool{} + for _, r := range got { + names[r.Name] = true + } + if len(got) != 2 || !names["alice"] || !names["carol"] { + t.Fatalf("want [alice carol], got %+v", got) + } + }) + + t.Run("empty slice applies no IN filter", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want all 3 rows, got %d", len(got)) + } + }) +} diff --git a/examples/dynamicquery/postgresql/db_test.go b/examples/dynamicquery/postgresql/db_test.go index 3df2edc786..1764a24202 100644 --- a/examples/dynamicquery/postgresql/db_test.go +++ b/examples/dynamicquery/postgresql/db_test.go @@ -30,7 +30,7 @@ func TestListRecordsDynamic(t *testing.T) { {1, "alice", 30}, {1, "bob", 20}, {1, "carol", 40}, - {2, "dave", 99}, // different tenant: must never appear in tenant 1 results + {2, "dave", 99}, } for _, s := range seed { if _, err := db.ExecContext(ctx, @@ -61,7 +61,7 @@ func TestListRecordsDynamic(t *testing.T) { } } - t.Run("no filters returns all rows for the tenant", func(t *testing.T) { + t.Run("no_filters_returns_all", func(t *testing.T) { got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}) if err != nil { t.Fatal(err) @@ -71,7 +71,7 @@ func TestListRecordsDynamic(t *testing.T) { } }) - t.Run("name eq", func(t *testing.T) { + t.Run("name_eq", func(t *testing.T) { got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Name("alice")) if err != nil { t.Fatal(err) @@ -79,18 +79,17 @@ func TestListRecordsDynamic(t *testing.T) { eq(t, names(got), []string{"alice"}) }) - t.Run("age gt", func(t *testing.T) { + t.Run("age_gt", func(t *testing.T) { got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25)) if err != nil { t.Fatal(err) } - // alice(30) and carol(40); bob(20) excluded if len(got) != 2 { t.Fatalf("want 2 rows, got %d (%v)", len(got), names(got)) } }) - t.Run("combined predicates are ANDed", func(t *testing.T) { + t.Run("combined_predicates", func(t *testing.T) { got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25).Name("carol")) if err != nil { t.Fatal(err) @@ -98,7 +97,7 @@ func TestListRecordsDynamic(t *testing.T) { eq(t, names(got), []string{"carol"}) }) - t.Run("order by age desc", func(t *testing.T) { + t.Run("order_by_age_desc", func(t *testing.T) { got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.OrderBy(ListRecordsOrderByAge, true)) if err != nil { t.Fatal(err) @@ -106,7 +105,7 @@ func TestListRecordsDynamic(t *testing.T) { eq(t, names(got), []string{"carol", "alice", "bob"}) }) - t.Run("static tenant filter isolates rows", func(t *testing.T) { + t.Run("static_tenant_filter", func(t *testing.T) { got, err := q.ListRecords(ctx, 2, ListRecordsOpts{}) if err != nil { t.Fatal(err) @@ -114,3 +113,31 @@ func TestListRecordsDynamic(t *testing.T) { eq(t, names(got), []string{"dave"}) }) } + +func TestSearchRecordsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + for _, n := range []string{"alice", "bob", "carol"} { + if _, err := db.ExecContext(ctx, + "INSERT INTO records (tenant_id, name, age) VALUES (1, $1, 30)", n); err != nil { + t.Fatal(err) + } + } + + q := New(db) + + got, err := q.SearchRecords(ctx, 1, SearchRecordsOpts{}.Pattern("car%")) + if err != nil { + t.Fatal(err) + } + if len(got) != 1 || got[0].Name != "carol" { + t.Fatalf(`LIKE "car%%": want [carol], got %+v`, got) + } +} diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql index 7f57fd2a12..d10e523713 100644 --- a/examples/dynamicquery/postgresql/query.sql +++ b/examples/dynamicquery/postgresql/query.sql @@ -6,3 +6,15 @@ SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age > sqlc.arg(age); + +-- name: SearchRecords :many :dynamic +-- @dynamic pattern like +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name LIKE sqlc.arg(pattern); + +-- name: FilterRecords :many :dynamic +-- @dynamic ids in +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); diff --git a/examples/dynamicquery/postgresql/query.sql.go b/examples/dynamicquery/postgresql/query.sql.go index fe240b1f2c..022afbf1ec 100644 --- a/examples/dynamicquery/postgresql/query.sql.go +++ b/examples/dynamicquery/postgresql/query.sql.go @@ -12,6 +12,75 @@ import ( "time" ) +const filterRecords = `-- name: FilterRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type FilterRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type FilterRecordsOpts struct { + ids []int64 + orderBy []string +} + +func (o FilterRecordsOpts) Ids(v []int64) FilterRecordsOpts { + o.ids = v + return o +} +func (q *Queries) FilterRecords(ctx context.Context, tenantID int64, opts FilterRecordsOpts) ([]FilterRecordsRow, error) { + query := filterRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []FilterRecordsRow + for rows.Next() { + var i FilterRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const listRecords = `-- name: ListRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 @@ -104,3 +173,68 @@ func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListReco } return items, nil } + +const searchRecords = `-- name: SearchRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type SearchRecordsOpts struct { + pattern *string + orderBy []string +} + +func (o SearchRecordsOpts) Pattern(v string) SearchRecordsOpts { + o.pattern = &v + return o +} +func (q *Queries) SearchRecords(ctx context.Context, tenantID int64, opts SearchRecordsOpts) ([]SearchRecordsRow, error) { + query := searchRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if opts.pattern != nil { + n++ + conds = append(conds, fmt.Sprintf("name LIKE $%d", n)) + queryParams = append(queryParams, *opts.pattern) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchRecordsRow + for rows.Next() { + var i SearchRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go index 66b076b336..8548b77349 100644 --- a/internal/codegen/golang/dynamic.go +++ b/internal/codegen/golang/dynamic.go @@ -18,6 +18,7 @@ type DynamicPredicate struct { GoType string Column string SQLOp string + IsSlice bool } type DynamicSortColumn struct { diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index 19e397f521..2dd11ac422 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -285,17 +285,27 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En if len(dynamicParams) > 0 || len(sortCols) > 0 { dq := &DynamicQuery{StaticCount: len(staticParams)} for _, p := range dynamicParams { - op, ok := dynamicSQLOperators[ops[p.Column.GetName()]] - if !ok { - return nil, fmt.Errorf("dynamic param %q: unsupported operator %q", p.Column.GetName(), ops[p.Column.GetName()]) + isSlice := p.Column.GetIsSqlcSlice() + var sqlOp string + if !isSlice { + op, ok := dynamicSQLOperators[ops[p.Column.GetName()]] + if !ok { + return nil, fmt.Errorf("dynamic param %q: unsupported operator %q", p.Column.GetName(), ops[p.Column.GetName()]) + } + sqlOp = op } field := StructName(p.Column.GetName(), options) + column := p.Column.GetName() + if p.Column.GetOriginalName() != "" { + column = p.Column.GetOriginalName() + } dq.Opts = append(dq.Opts, DynamicPredicate{ FieldName: StructName(p.Column.GetName(), options), VarName: sdk.LowerTitle(field), GoType: qualifyType(goType(req, options, p.Column), models, qualifier), - Column: p.Column.GetName(), - SQLOp: op, + Column: column, + SQLOp: sqlOp, + IsSlice: isSlice, }) } for _, col := range sortCols { diff --git a/internal/codegen/golang/templates/stdlib/queryCode.tmpl b/internal/codegen/golang/templates/stdlib/queryCode.tmpl index 1ed30337f2..72fc2c04a5 100644 --- a/internal/codegen/golang/templates/stdlib/queryCode.tmpl +++ b/internal/codegen/golang/templates/stdlib/queryCode.tmpl @@ -23,13 +23,17 @@ type {{.Ret.Type}} struct { {{- range .Ret.Struct.Fields}} {{$q := .}} type {{$q.MethodName}}Opts struct { {{- range $q.Dynamic.Opts}} + {{- if .IsSlice}} + {{.VarName}} {{.GoType}} + {{- else}} {{.VarName}} *{{.GoType}} + {{- end}} {{- end}} orderBy []string } {{range $q.Dynamic.Opts}} func (o {{$q.MethodName}}Opts) {{.FieldName}}(v {{.GoType}}) {{$q.MethodName}}Opts { - o.{{.VarName}} = &v + o.{{.VarName}} = {{if .IsSlice}}v{{else}}&v{{end}} return o } {{end -}} @@ -60,11 +64,23 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. n := {{$q.Dynamic.StaticCount}} _ = n {{- range $q.Dynamic.Opts}} + {{- if .IsSlice}} + if len(opts.{{.VarName}}) > 0 { + ph := make([]string, len(opts.{{.VarName}})) + for i, v := range opts.{{.VarName}} { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "{{.Column}} IN ("+strings.Join(ph, ", ")+")") + } + {{- else}} if opts.{{.VarName}} != nil { n++ conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) queryParams = append(queryParams, *opts.{{.VarName}}) } + {{- end}} {{- end}} if len(conds) > 0 { query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") From aecfa31e4e51df6293ba3d174397f3704ae7c78f Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Thu, 25 Jun 2026 14:34:29 -0400 Subject: [PATCH 06/20] chore: add more examples --- .../dynamicquery/postgresql/db_in_test.go | 2 +- examples/dynamicquery/postgresql/db_test.go | 121 +++++++++++++++++- examples/dynamicquery/postgresql/models.go | 1 + examples/dynamicquery/postgresql/query.sql | 10 ++ examples/dynamicquery/postgresql/query.sql.go | 101 +++++++++++++++ examples/dynamicquery/postgresql/schema.sql | 1 + 6 files changed, 233 insertions(+), 3 deletions(-) diff --git a/examples/dynamicquery/postgresql/db_in_test.go b/examples/dynamicquery/postgresql/db_in_test.go index 39f2968b83..840f46042d 100644 --- a/examples/dynamicquery/postgresql/db_in_test.go +++ b/examples/dynamicquery/postgresql/db_in_test.go @@ -30,7 +30,7 @@ func TestFilterRecordsDynamic(t *testing.T) { for _, n := range []string{"alice", "bob", "carol"} { var id int64 if err := db.QueryRowContext(ctx, - "INSERT INTO records (tenant_id, name, age) VALUES (1, $1, 30) RETURNING id", + "INSERT INTO records (tenant_id, name, age, status) VALUES (1, $1, 30, 'active') RETURNING id", n).Scan(&id); err != nil { t.Fatal(err) } diff --git a/examples/dynamicquery/postgresql/db_test.go b/examples/dynamicquery/postgresql/db_test.go index 1764a24202..c27097dba8 100644 --- a/examples/dynamicquery/postgresql/db_test.go +++ b/examples/dynamicquery/postgresql/db_test.go @@ -34,7 +34,7 @@ func TestListRecordsDynamic(t *testing.T) { } for _, s := range seed { if _, err := db.ExecContext(ctx, - "INSERT INTO records (tenant_id, name, age) VALUES ($1, $2, $3)", + "INSERT INTO records (tenant_id, name, age, status) VALUES ($1, $2, $3, 'active')", s.tenant, s.name, s.age); err != nil { t.Fatal(err) } @@ -126,7 +126,7 @@ func TestSearchRecordsDynamic(t *testing.T) { for _, n := range []string{"alice", "bob", "carol"} { if _, err := db.ExecContext(ctx, - "INSERT INTO records (tenant_id, name, age) VALUES (1, $1, 30)", n); err != nil { + "INSERT INTO records (tenant_id, name, age, status) VALUES (1, $1, 30, 'active')", n); err != nil { t.Fatal(err) } } @@ -141,3 +141,120 @@ func TestSearchRecordsDynamic(t *testing.T) { t.Fatalf(`LIKE "car%%": want [carol], got %+v`, got) } } + +func TestListActiveRecordsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + seed := []struct { + tenant int64 + name string + age int32 + status string + }{ + {1, "alice", 30, "active"}, + {1, "bob", 20, "active"}, + {1, "carol", 40, "inactive"}, + {1, "dave", 50, "active"}, + {2, "erin", 35, "active"}, + } + for _, s := range seed { + if _, err := db.ExecContext(ctx, + "INSERT INTO records (tenant_id, name, age, status) VALUES ($1, $2, $3, $4)", + s.tenant, s.name, s.age, s.status); err != nil { + t.Fatal(err) + } + } + + q := New(db) + + names := func(rows []ListActiveRecordsRow) []string { + out := make([]string, len(rows)) + for i, r := range rows { + out[i] = r.Name + } + return out + } + eq := func(t *testing.T, got, want []string) { + t.Helper() + if len(got) != len(want) { + t.Fatalf("got %v, want %v", got, want) + } + for i := range got { + if got[i] != want[i] { + t.Fatalf("got %v, want %v", got, want) + } + } + } + + active := ListActiveRecordsParams{TenantID: 1, Status: "active"} + + t.Run("no_filters_honors_both_static_predicates", func(t *testing.T) { + // tenant_id=1 AND status='active' -> alice, bob, dave + // (carol is inactive; erin is tenant 2) + got, err := q.ListActiveRecords(ctx, active, ListActiveRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want 3 rows, got %d (%v)", len(got), names(got)) + } + }) + + t.Run("name_eq_numbers_at_dollar_three", func(t *testing.T) { + got, err := q.ListActiveRecords(ctx, active, ListActiveRecordsOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"alice"}) + }) + + t.Run("age_gte_is_inclusive", func(t *testing.T) { + // age >= 30 over active tenant-1 rows -> alice(30), dave(50); bob(20) excluded + got, err := q.ListActiveRecords(ctx, active, ListActiveRecordsOpts{}.Age(30)) + if err != nil { + t.Fatal(err) + } + if len(got) != 2 { + t.Fatalf("want 2 rows, got %d (%v)", len(got), names(got)) + } + }) + + t.Run("combined_dynamic_uses_dollar_three_and_four", func(t *testing.T) { + got, err := q.ListActiveRecords(ctx, active, ListActiveRecordsOpts{}.Name("dave").Age(30)) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"dave"}) + }) + + t.Run("order_by_age_desc", func(t *testing.T) { + got, err := q.ListActiveRecords(ctx, active, ListActiveRecordsOpts{}.OrderBy(ListActiveRecordsOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"dave", "alice", "bob"}) + }) + + t.Run("static_status_predicate_isolates", func(t *testing.T) { + got, err := q.ListActiveRecords(ctx, ListActiveRecordsParams{TenantID: 1, Status: "inactive"}, ListActiveRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"carol"}) + }) + + t.Run("static_tenant_predicate_isolates", func(t *testing.T) { + got, err := q.ListActiveRecords(ctx, ListActiveRecordsParams{TenantID: 2, Status: "active"}, ListActiveRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + eq(t, names(got), []string{"erin"}) + }) +} diff --git a/examples/dynamicquery/postgresql/models.go b/examples/dynamicquery/postgresql/models.go index 5f0a4b9c1f..f636dbc4f0 100644 --- a/examples/dynamicquery/postgresql/models.go +++ b/examples/dynamicquery/postgresql/models.go @@ -13,5 +13,6 @@ type Record struct { TenantID int64 Name string Age int32 + Status string CreatedAt time.Time } diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql index d10e523713..dc6c904811 100644 --- a/examples/dynamicquery/postgresql/query.sql +++ b/examples/dynamicquery/postgresql/query.sql @@ -18,3 +18,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); + +-- name: ListActiveRecords :many :dynamic +-- @dynamic name eq +-- @dynamic age gte +-- @dynamic-sort name, age, created_at +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND status = sqlc.arg(status) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); diff --git a/examples/dynamicquery/postgresql/query.sql.go b/examples/dynamicquery/postgresql/query.sql.go index 022afbf1ec..06f00c58e9 100644 --- a/examples/dynamicquery/postgresql/query.sql.go +++ b/examples/dynamicquery/postgresql/query.sql.go @@ -81,6 +81,107 @@ func (q *Queries) FilterRecords(ctx context.Context, tenantID int64, opts Filter return items, nil } +const listActiveRecords = `-- name: ListActiveRecords :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 + AND status = $2 +` + +type ListActiveRecordsParams struct { + TenantID int64 + Status string +} + +type ListActiveRecordsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type ListActiveRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListActiveRecordsOpts) Name(v string) ListActiveRecordsOpts { + o.name = &v + return o +} + +func (o ListActiveRecordsOpts) Age(v int32) ListActiveRecordsOpts { + o.age = &v + return o +} + +type ListActiveRecordsOrderByColumn string + +const ( + ListActiveRecordsOrderByName ListActiveRecordsOrderByColumn = "name" + ListActiveRecordsOrderByAge ListActiveRecordsOrderByColumn = "age" + ListActiveRecordsOrderByCreatedAt ListActiveRecordsOrderByColumn = "created_at" +) + +func (o ListActiveRecordsOpts) OrderBy(col ListActiveRecordsOrderByColumn, desc bool) ListActiveRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +func (q *Queries) ListActiveRecords(ctx context.Context, arg ListActiveRecordsParams, opts ListActiveRecordsOpts) ([]ListActiveRecordsRow, error) { + query := listActiveRecords + queryParams := []interface{}{arg.TenantID, arg.Status} + conds := make([]string, 0, 2) + n := 2 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListActiveRecordsRow + for rows.Next() { + var i ListActiveRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const listRecords = `-- name: ListRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 diff --git a/examples/dynamicquery/postgresql/schema.sql b/examples/dynamicquery/postgresql/schema.sql index 8c4f6056b3..10c57ac7f9 100644 --- a/examples/dynamicquery/postgresql/schema.sql +++ b/examples/dynamicquery/postgresql/schema.sql @@ -3,5 +3,6 @@ CREATE TABLE records ( tenant_id BIGINT NOT NULL, name TEXT NOT NULL, age INT NOT NULL, + status TEXT NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); From b8f5b2264800748f1aea419999945b01b5a49811 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Thu, 25 Jun 2026 15:25:53 -0400 Subject: [PATCH 07/20] fix: update endtoend tests --- .../dynamicquery/postgresql/db_in_test.go | 65 ----------- examples/dynamicquery/postgresql/db_test.go | 48 ++++++++ examples/dynamicquery/postgresql/query.sql | 2 + examples/dynamicquery/postgresql/query.sql.go | 3 + examples/dynamicquery/postgresql/sqlc.json | 12 -- examples/dynamicquery/postgresql/sqlc.yaml | 9 ++ .../postgresql/stdlib/go/models.go | 1 + .../postgresql/stdlib/go/query.sql.go | 104 ++++++++++++++++++ .../dynamic_query/postgresql/stdlib/query.sql | 12 ++ .../postgresql/stdlib/schema.sql | 1 + 10 files changed, 180 insertions(+), 77 deletions(-) delete mode 100644 examples/dynamicquery/postgresql/db_in_test.go delete mode 100644 examples/dynamicquery/postgresql/sqlc.json create mode 100644 examples/dynamicquery/postgresql/sqlc.yaml diff --git a/examples/dynamicquery/postgresql/db_in_test.go b/examples/dynamicquery/postgresql/db_in_test.go deleted file mode 100644 index 840f46042d..0000000000 --- a/examples/dynamicquery/postgresql/db_in_test.go +++ /dev/null @@ -1,65 +0,0 @@ -//go:build examples - -package dynamicquery - -import ( - "context" - "database/sql" - "testing" - - _ "github.com/jackc/pgx/v5/stdlib" - - "github.com/sqlc-dev/sqlc/internal/sqltest/local" -) - -// TestFilterRecordsDynamic exercises a dynamic IN predicate backed by -// sqlc.slice: `id IN (sqlc.slice(ids))`. The builder field is a slice ([]int64, -// not a pointer), and the runtime assembly must expand it into IN ($n, $n+1, …) -// advancing the placeholder counter by len(slice). -func TestFilterRecordsDynamic(t *testing.T) { - ctx := context.Background() - uri := local.PostgreSQL(t, []string{"schema.sql"}) - - db, err := sql.Open("pgx", uri) - if err != nil { - t.Fatal(err) - } - defer db.Close() - - ids := make(map[string]int64) - for _, n := range []string{"alice", "bob", "carol"} { - var id int64 - if err := db.QueryRowContext(ctx, - "INSERT INTO records (tenant_id, name, age, status) VALUES (1, $1, 30, 'active') RETURNING id", - n).Scan(&id); err != nil { - t.Fatal(err) - } - ids[n] = id - } - - q := New(db) - - t.Run("in with two ids", func(t *testing.T) { - got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}.Ids([]int64{ids["alice"], ids["carol"]})) - if err != nil { - t.Fatal(err) - } - names := map[string]bool{} - for _, r := range got { - names[r.Name] = true - } - if len(got) != 2 || !names["alice"] || !names["carol"] { - t.Fatalf("want [alice carol], got %+v", got) - } - }) - - t.Run("empty slice applies no IN filter", func(t *testing.T) { - got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}) - if err != nil { - t.Fatal(err) - } - if len(got) != 3 { - t.Fatalf("want all 3 rows, got %d", len(got)) - } - }) -} diff --git a/examples/dynamicquery/postgresql/db_test.go b/examples/dynamicquery/postgresql/db_test.go index c27097dba8..1636295a69 100644 --- a/examples/dynamicquery/postgresql/db_test.go +++ b/examples/dynamicquery/postgresql/db_test.go @@ -258,3 +258,51 @@ func TestListActiveRecordsDynamic(t *testing.T) { eq(t, names(got), []string{"erin"}) }) } + +func TestFilterRecordsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + ids := make(map[string]int64) + for _, n := range []string{"alice", "bob", "carol"} { + var id int64 + if err := db.QueryRowContext(ctx, + "INSERT INTO records (tenant_id, name, age, status) VALUES (1, $1, 30, 'active') RETURNING id", + n).Scan(&id); err != nil { + t.Fatal(err) + } + ids[n] = id + } + + q := New(db) + + t.Run("in with two ids", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}.Ids([]int64{ids["alice"], ids["carol"]})) + if err != nil { + t.Fatal(err) + } + names := map[string]bool{} + for _, r := range got { + names[r.Name] = true + } + if len(got) != 2 || !names["alice"] || !names["carol"] { + t.Fatalf("want [alice carol], got %+v", got) + } + }) + + t.Run("empty slice applies no IN filter", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want all 3 rows, got %d", len(got)) + } + }) +} diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql index dc6c904811..f0dc60eeeb 100644 --- a/examples/dynamicquery/postgresql/query.sql +++ b/examples/dynamicquery/postgresql/query.sql @@ -20,6 +20,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); -- name: ListActiveRecords :many :dynamic +-- ListActiveRecords returns a tenant's records for a given status, optionally +-- narrowed by an exact name and a minimum age, and optionally ordered. -- @dynamic name eq -- @dynamic age gte -- @dynamic-sort name, age, created_at diff --git a/examples/dynamicquery/postgresql/query.sql.go b/examples/dynamicquery/postgresql/query.sql.go index 06f00c58e9..4cc94607be 100644 --- a/examples/dynamicquery/postgresql/query.sql.go +++ b/examples/dynamicquery/postgresql/query.sql.go @@ -132,6 +132,9 @@ func (o ListActiveRecordsOpts) OrderBy(col ListActiveRecordsOrderByColumn, desc o.orderBy = append(o.orderBy, string(col)+dir) return o } + +// ListActiveRecords returns a tenant's records for a given status, optionally +// narrowed by an exact name and a minimum age, and optionally ordered. func (q *Queries) ListActiveRecords(ctx context.Context, arg ListActiveRecordsParams, opts ListActiveRecordsOpts) ([]ListActiveRecordsRow, error) { query := listActiveRecords queryParams := []interface{}{arg.TenantID, arg.Status} diff --git a/examples/dynamicquery/postgresql/sqlc.json b/examples/dynamicquery/postgresql/sqlc.json deleted file mode 100644 index f938c8ea64..0000000000 --- a/examples/dynamicquery/postgresql/sqlc.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": "1", - "packages": [ - { - "engine": "postgresql", - "path": ".", - "name": "dynamicquery", - "schema": "schema.sql", - "queries": "query.sql" - } - ] -} diff --git a/examples/dynamicquery/postgresql/sqlc.yaml b/examples/dynamicquery/postgresql/sqlc.yaml new file mode 100644 index 0000000000..0692afca16 --- /dev/null +++ b/examples/dynamicquery/postgresql/sqlc.yaml @@ -0,0 +1,9 @@ +version: '2' +sql: +- engine: postgresql + schema: schema.sql + queries: query.sql + gen: + go: + package: dynamicquery + out: . diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go index 1fb5c3e6cd..8761760b7b 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/models.go @@ -13,5 +13,6 @@ type Record struct { TenantID int64 Name string Age int32 + Status string CreatedAt time.Time } diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go index 8693108055..29ac3618b0 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go @@ -12,6 +12,110 @@ import ( "time" ) +const listActiveRecords = `-- name: ListActiveRecords :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 + AND status = $2 +` + +type ListActiveRecordsParams struct { + TenantID int64 + Status string +} + +type ListActiveRecordsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type ListActiveRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListActiveRecordsOpts) Name(v string) ListActiveRecordsOpts { + o.name = &v + return o +} + +func (o ListActiveRecordsOpts) Age(v int32) ListActiveRecordsOpts { + o.age = &v + return o +} + +type ListActiveRecordsOrderByColumn string + +const ( + ListActiveRecordsOrderByName ListActiveRecordsOrderByColumn = "name" + ListActiveRecordsOrderByAge ListActiveRecordsOrderByColumn = "age" + ListActiveRecordsOrderByCreatedAt ListActiveRecordsOrderByColumn = "created_at" +) + +func (o ListActiveRecordsOpts) OrderBy(col ListActiveRecordsOrderByColumn, desc bool) ListActiveRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// ListActiveRecords returns a tenant's records for a given status, optionally +// narrowed by an exact name and a minimum age, and optionally ordered. +func (q *Queries) ListActiveRecords(ctx context.Context, arg ListActiveRecordsParams, opts ListActiveRecordsOpts) ([]ListActiveRecordsRow, error) { + query := listActiveRecords + queryParams := []interface{}{arg.TenantID, arg.Status} + conds := make([]string, 0, 2) + n := 2 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListActiveRecordsRow + for rows.Next() { + var i ListActiveRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const listRecords = `-- name: ListRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql index 7f57fd2a12..3fea9c7650 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql @@ -6,3 +6,15 @@ SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age > sqlc.arg(age); + +-- name: ListActiveRecords :many :dynamic +-- ListActiveRecords returns a tenant's records for a given status, optionally +-- narrowed by an exact name and a minimum age, and optionally ordered. +-- @dynamic name eq +-- @dynamic age gte +-- @dynamic-sort name, age, created_at +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND status = sqlc.arg(status) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql index 8c4f6056b3..10c57ac7f9 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/schema.sql @@ -3,5 +3,6 @@ CREATE TABLE records ( tenant_id BIGINT NOT NULL, name TEXT NOT NULL, age INT NOT NULL, + status TEXT NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); From aa2b0b33057d2b65fdc8e5ab4e1fd42fad1a18c8 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Thu, 25 Jun 2026 15:52:53 -0400 Subject: [PATCH 08/20] feat: add pgx generation and endtoend tests --- .../golang/templates/pgx/queryCode.tmpl | 101 ++++++ .../dynamic_query/postgresql/pgx/go/db.go | 25 ++ .../dynamic_query/postgresql/pgx/go/models.go | 18 + .../postgresql/pgx/go/query.sql.go | 336 ++++++++++++++++++ .../dynamic_query/postgresql/pgx/query.sql | 32 ++ .../dynamic_query/postgresql/pgx/schema.sql | 8 + .../dynamic_query/postgresql/pgx/sqlc.yaml | 11 + 7 files changed, 531 insertions(+) create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/db.go create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/models.go create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/pgx/schema.sql create mode 100644 internal/endtoend/testdata/dynamic_query/postgresql/pgx/sqlc.yaml diff --git a/internal/codegen/golang/templates/pgx/queryCode.tmpl b/internal/codegen/golang/templates/pgx/queryCode.tmpl index 59a88c880a..88d73061a9 100644 --- a/internal/codegen/golang/templates/pgx/queryCode.tmpl +++ b/internal/codegen/golang/templates/pgx/queryCode.tmpl @@ -21,6 +21,44 @@ type {{.Ret.Type}} struct { {{- range .Ret.Struct.Fields}} {{- end}} } {{end}} + +{{if .Dynamic}} +{{$q := .}} +type {{$q.MethodName}}Opts struct { +{{- range $q.Dynamic.Opts}} + {{- if .IsSlice}} + {{.VarName}} {{.GoType}} + {{- else}} + {{.VarName}} *{{.GoType}} + {{- end}} +{{- end}} + orderBy []string +} +{{range $q.Dynamic.Opts}} +func (o {{$q.MethodName}}Opts) {{.FieldName}}(v {{.GoType}}) {{$q.MethodName}}Opts { + o.{{.VarName}} = {{if .IsSlice}}v{{else}}&v{{end}} + return o +} +{{end -}} +{{if $q.Dynamic.SortColumns}} +type {{$q.MethodName}}OrderByColumn string + +const ( +{{- range $q.Dynamic.SortColumns}} + {{.ConstName}} {{$q.MethodName}}OrderByColumn = "{{.Value}}" +{{- end}} +) + +func (o {{$q.MethodName}}Opts) OrderBy(col {{$q.MethodName}}OrderByColumn, desc bool) {{$q.MethodName}}Opts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +{{end -}} +{{end}} {{end}} {{if eq .Cmd ":one"}} @@ -47,6 +85,68 @@ func (q *Queries) {{.MethodName}}(ctx context.Context, {{.Arg.Pair}}) ({{.Ret.De {{end}} {{if eq .Cmd ":many"}} +{{if .Dynamic}} +{{$q := .}} +{{range $q.Comments}}//{{.}} +{{end -}} +{{- if $.EmitMethodsWithDBArgument -}} +func (q *Queries) {{$q.MethodName}}(ctx context.Context, db DBTX, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ([]{{$q.Ret.DefineType}}, error) { +{{- else -}} +func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ([]{{$q.Ret.DefineType}}, error) { +{{- end}} + query := {{$q.ConstantName}} + queryParams := []interface{}{ {{$q.Arg.Params}} } + conds := make([]string, 0, {{len $q.Dynamic.Opts}}) + n := {{$q.Dynamic.StaticCount}} + _ = n +{{- range $q.Dynamic.Opts}} + {{- if .IsSlice}} + if len(opts.{{.VarName}}) > 0 { + ph := make([]string, len(opts.{{.VarName}})) + for i, v := range opts.{{.VarName}} { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "{{.Column}} IN ("+strings.Join(ph, ", ")+")") + } + {{- else}} + if opts.{{.VarName}} != nil { + n++ + conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) + queryParams = append(queryParams, *opts.{{.VarName}}) + } + {{- end}} +{{- end}} + if len(conds) > 0 { + query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := {{if $.EmitMethodsWithDBArgument}}db{{else}}q.db{{end}}.Query(ctx, query, queryParams...) + if err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + defer rows.Close() + {{- if $.EmitEmptySlices}} + items := []{{$q.Ret.DefineType}}{} + {{else}} + var items []{{$q.Ret.DefineType}} + {{end -}} + for rows.Next() { + var {{$q.Ret.Name}} {{$q.Ret.Type}} + if err := rows.Scan({{$q.Ret.Scan}}); err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + items = append(items, {{$q.Ret.ReturnName}}) + } + if err := rows.Err(); err != nil { + return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} + } + return items, nil +} +{{else}} {{range .Comments}}//{{.}} {{end -}} {{- if $.EmitMethodsWithDBArgument -}} @@ -78,6 +178,7 @@ func (q *Queries) {{.MethodName}}(ctx context.Context, {{.Arg.Pair}}) ([]{{.Ret. return items, nil } {{end}} +{{end}} {{if eq .Cmd ":exec"}} {{range .Comments}}//{{.}} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/db.go b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/db.go new file mode 100644 index 0000000000..81fcfb915c --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/db.go @@ -0,0 +1,25 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package querytest + +import ( + "context" + + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgconn" +) + +type DBTX interface { + Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error) + Query(context.Context, string, ...interface{}) (pgx.Rows, error) + QueryRow(context.Context, string, ...interface{}) pgx.Row +} + +func New() *Queries { + return &Queries{} +} + +type Queries struct { +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/models.go b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/models.go new file mode 100644 index 0000000000..20ede9bb30 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/models.go @@ -0,0 +1,18 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package querytest + +import ( + "github.com/jackc/pgx/v5/pgtype" +) + +type Record struct { + ID int64 + TenantID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go new file mode 100644 index 0000000000..92b0d7fe30 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go @@ -0,0 +1,336 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 +// source: query.sql + +package querytest + +import ( + "context" + "fmt" + "strings" + + "github.com/jackc/pgx/v5/pgtype" +) + +const filterRecords = `-- name: FilterRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type FilterRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type FilterRecordsOpts struct { + ids []int64 + orderBy []string +} + +func (o FilterRecordsOpts) Ids(v []int64) FilterRecordsOpts { + o.ids = v + return o +} + +func (q *Queries) FilterRecords(ctx context.Context, db DBTX, tenantID int64, opts FilterRecordsOpts) ([]FilterRecordsRow, error) { + query := filterRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []FilterRecordsRow + for rows.Next() { + var i FilterRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listActiveRecords = `-- name: ListActiveRecords :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 + AND status = $2 +` + +type ListActiveRecordsParams struct { + TenantID int64 + Status string +} + +type ListActiveRecordsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} + +type ListActiveRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListActiveRecordsOpts) Name(v string) ListActiveRecordsOpts { + o.name = &v + return o +} + +func (o ListActiveRecordsOpts) Age(v int32) ListActiveRecordsOpts { + o.age = &v + return o +} + +type ListActiveRecordsOrderByColumn string + +const ( + ListActiveRecordsOrderByName ListActiveRecordsOrderByColumn = "name" + ListActiveRecordsOrderByAge ListActiveRecordsOrderByColumn = "age" + ListActiveRecordsOrderByCreatedAt ListActiveRecordsOrderByColumn = "created_at" +) + +func (o ListActiveRecordsOpts) OrderBy(col ListActiveRecordsOrderByColumn, desc bool) ListActiveRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// ListActiveRecords returns a tenant's records for a given status, optionally +// narrowed by an exact name and a minimum age, and optionally ordered. +func (q *Queries) ListActiveRecords(ctx context.Context, db DBTX, arg ListActiveRecordsParams, opts ListActiveRecordsOpts) ([]ListActiveRecordsRow, error) { + query := listActiveRecords + queryParams := []interface{}{arg.TenantID, arg.Status} + conds := make([]string, 0, 2) + n := 2 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListActiveRecordsRow + for rows.Next() { + var i ListActiveRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listRecords = `-- name: ListRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type ListRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type ListRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListRecordsOpts) Name(v string) ListRecordsOpts { + o.name = &v + return o +} + +func (o ListRecordsOpts) Age(v int32) ListRecordsOpts { + o.age = &v + return o +} + +type ListRecordsOrderByColumn string + +const ( + ListRecordsOrderByName ListRecordsOrderByColumn = "name" + ListRecordsOrderByAge ListRecordsOrderByColumn = "age" + ListRecordsOrderByCreatedAt ListRecordsOrderByColumn = "created_at" +) + +func (o ListRecordsOpts) OrderBy(col ListRecordsOrderByColumn, desc bool) ListRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +func (q *Queries) ListRecords(ctx context.Context, db DBTX, tenantID int64, opts ListRecordsOpts) ([]ListRecordsRow, error) { + query := listRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age > $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListRecordsRow + for rows.Next() { + var i ListRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const searchRecords = `-- name: SearchRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type SearchRecordsOpts struct { + pattern *string + orderBy []string +} + +func (o SearchRecordsOpts) Pattern(v string) SearchRecordsOpts { + o.pattern = &v + return o +} + +func (q *Queries) SearchRecords(ctx context.Context, db DBTX, tenantID int64, opts SearchRecordsOpts) ([]SearchRecordsRow, error) { + query := searchRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if opts.pattern != nil { + n++ + conds = append(conds, fmt.Sprintf("name LIKE $%d", n)) + queryParams = append(queryParams, *opts.pattern) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchRecordsRow + for rows.Next() { + var i SearchRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql new file mode 100644 index 0000000000..f0dc60eeeb --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql @@ -0,0 +1,32 @@ +-- name: ListRecords :many :dynamic +-- @dynamic name eq +-- @dynamic age gt +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age > sqlc.arg(age); + +-- name: SearchRecords :many :dynamic +-- @dynamic pattern like +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name LIKE sqlc.arg(pattern); + +-- name: FilterRecords :many :dynamic +-- @dynamic ids in +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); + +-- name: ListActiveRecords :many :dynamic +-- ListActiveRecords returns a tenant's records for a given status, optionally +-- narrowed by an exact name and a minimum age, and optionally ordered. +-- @dynamic name eq +-- @dynamic age gte +-- @dynamic-sort name, age, created_at +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND status = sqlc.arg(status) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/schema.sql b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/schema.sql new file mode 100644 index 0000000000..10c57ac7f9 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/schema.sql @@ -0,0 +1,8 @@ +CREATE TABLE records ( + id BIGSERIAL PRIMARY KEY, + tenant_id BIGINT NOT NULL, + name TEXT NOT NULL, + age INT NOT NULL, + status TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/sqlc.yaml b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/sqlc.yaml new file mode 100644 index 0000000000..a95002196f --- /dev/null +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/sqlc.yaml @@ -0,0 +1,11 @@ +version: '2' +sql: +- engine: postgresql + schema: schema.sql + queries: query.sql + gen: + go: + package: querytest + sql_package: pgx/v5 + emit_methods_with_db_argument: true + out: go From 8921e7824ab3889967d133c6ddcf23d647b86131 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 20:46:49 -0400 Subject: [PATCH 09/20] fix: switch to using a new command instead of adding a 4th parameter --- internal/metadata/meta.go | 44 +++++++++++++++++----------------- internal/metadata/meta_test.go | 31 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 22 deletions(-) diff --git a/internal/metadata/meta.go b/internal/metadata/meta.go index 961a74caf4..555d2541d9 100644 --- a/internal/metadata/meta.go +++ b/internal/metadata/meta.go @@ -35,16 +35,18 @@ type Metadata struct { } const ( - CmdExec = ":exec" - CmdExecResult = ":execresult" - CmdExecRows = ":execrows" - CmdExecLastId = ":execlastid" - CmdMany = ":many" - CmdOne = ":one" - CmdCopyFrom = ":copyfrom" - CmdBatchExec = ":batchexec" - CmdBatchMany = ":batchmany" - CmdBatchOne = ":batchone" + CmdExec = ":exec" + CmdExecResult = ":execresult" + CmdExecRows = ":execrows" + CmdExecLastId = ":execlastid" + CmdMany = ":many" + CmdOne = ":one" + CmdCopyFrom = ":copyfrom" + CmdBatchExec = ":batchexec" + CmdBatchMany = ":batchmany" + CmdBatchOne = ":batchone" + CmdDynamicOne = ":dynamicone" + CmdDynamicMany = ":dynamicmany" ) // A query name must be a valid Go identifier @@ -105,31 +107,29 @@ func ParseQueryNameAndType(t string, commentStyle CommentSyntax) (string, string if prefix == "/*" { part = part[:len(part)-1] // removes the trailing "*/" element } - if len(part) < 3 { - return "", "", false, fmt.Errorf("invalid query comment: %s", line) - } if len(part) == 3 { return "", "", false, fmt.Errorf("missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: %s", line) } + if len(part) != 4 { + return "", "", false, fmt.Errorf("invalid query comment: %s", line) + } queryName := part[2] queryType := strings.TrimSpace(part[3]) + var dynamic bool switch queryType { case CmdOne, CmdMany, CmdExec, CmdExecResult, CmdExecRows, CmdExecLastId, CmdCopyFrom, CmdBatchExec, CmdBatchMany, CmdBatchOne: + case CmdDynamicOne: + dynamic = true + queryType = CmdOne + case CmdDynamicMany: + dynamic = true + queryType = CmdMany default: return "", "", false, fmt.Errorf("invalid query type: %s", queryType) } if err := validateQueryName(queryName); err != nil { return "", "", false, err } - var dynamic bool - for _, modifier := range part[4:] { - switch strings.TrimSpace(modifier) { - case ":dynamic": - dynamic = true - default: - return "", "", false, fmt.Errorf("invalid query modifier %q: %s", modifier, line) - } - } return queryName, queryType, dynamic, nil } return "", "", false, nil diff --git a/internal/metadata/meta_test.go b/internal/metadata/meta_test.go index 15cfd49aec..f0c15c01bd 100644 --- a/internal/metadata/meta_test.go +++ b/internal/metadata/meta_test.go @@ -52,6 +52,37 @@ func TestParseQueryNameAndType(t *testing.T) { t.Errorf("incorrectly determined as dynimc query: (%v) %q", dynamic, query) } } + + for query, want := range map[string]struct { + cmd string + }{ + `-- name: ListFoos :dynamicmany`: {cmd: CmdMany}, + `-- name: GetFoo :dynamicone`: {cmd: CmdOne}, + } { + queryName, queryCmd, dynamic, err := ParseQueryNameAndType(query, CommentSyntax{Dash: true}) + if err != nil { + t.Errorf("expected valid metadata: %q", query) + } + if queryCmd != want.cmd { + t.Errorf("incorrect queryCmd parsed: got %q, want %q for %q", queryCmd, want.cmd, query) + } + if !dynamic { + t.Errorf("expected dynamic query: %q", query) + } + if err := validateQueryName(queryName); err != nil { + t.Errorf("unexpected invalid query name %q: %v", queryName, err) + } + } + + // a base command followed by a stray token is still rejected as an invalid modifier + for _, query := range []string{ + `-- name: ListFoos :many :dynamic`, + `-- name: ListFoos :one :many`, + } { + if _, _, _, err := ParseQueryNameAndType(query, CommentSyntax{Dash: true}); err == nil { + t.Errorf("expected invalid metadata: %q", query) + } + } } func TestParseQueryParams(t *testing.T) { From 433fb970d82f706402031adc9f8fa64c90399eca Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 20:56:04 -0400 Subject: [PATCH 10/20] feat: update the codegen templates for dynamic one queries --- .../golang/templates/pgx/queryCode.tmpl | 51 +++++++++++++++++++ .../golang/templates/stdlib/queryCode.tmpl | 14 ++++- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/internal/codegen/golang/templates/pgx/queryCode.tmpl b/internal/codegen/golang/templates/pgx/queryCode.tmpl index 88d73061a9..bf6eb29f6f 100644 --- a/internal/codegen/golang/templates/pgx/queryCode.tmpl +++ b/internal/codegen/golang/templates/pgx/queryCode.tmpl @@ -62,6 +62,56 @@ func (o {{$q.MethodName}}Opts) OrderBy(col {{$q.MethodName}}OrderByColumn, desc {{end}} {{if eq .Cmd ":one"}} +{{if .Dynamic}} +{{$q := .}} +{{range $q.Comments}}//{{.}} +{{end -}} +{{- if $.EmitMethodsWithDBArgument -}} +func (q *Queries) {{$q.MethodName}}(ctx context.Context, db DBTX, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ({{$q.Ret.DefineType}}, error) { +{{- else -}} +func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ({{$q.Ret.DefineType}}, error) { +{{- end}} + query := {{$q.ConstantName}} + queryParams := []interface{}{ {{$q.Arg.Params}} } + conds := make([]string, 0, {{len $q.Dynamic.Opts}}) + n := {{$q.Dynamic.StaticCount}} + _ = n +{{- range $q.Dynamic.Opts}} + {{- if .IsSlice}} + if len(opts.{{.VarName}}) > 0 { + ph := make([]string, len(opts.{{.VarName}})) + for i, v := range opts.{{.VarName}} { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "{{.Column}} IN ("+strings.Join(ph, ", ")+")") + } + {{- else}} + if opts.{{.VarName}} != nil { + n++ + conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) + queryParams = append(queryParams, *opts.{{.VarName}}) + } + {{- end}} +{{- end}} + if len(conds) > 0 { + query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := {{if $.EmitMethodsWithDBArgument}}db{{else}}q.db{{end}}.QueryRow(ctx, query, queryParams...) + var {{$q.Ret.Name}} {{$q.Ret.Type}} + err := row.Scan({{$q.Ret.Scan}}) + {{- if $.WrapErrors}} + if err != nil { + err = fmt.Errorf("query {{$q.MethodName}}: %w", err) + } + {{- end}} + return {{$q.Ret.ReturnName}}, err +} +{{else}} {{range .Comments}}//{{.}} {{end -}} {{- if $.EmitMethodsWithDBArgument -}} @@ -83,6 +133,7 @@ func (q *Queries) {{.MethodName}}(ctx context.Context, {{.Arg.Pair}}) ({{.Ret.De return {{.Ret.ReturnName}}, err } {{end}} +{{end}} {{if eq .Cmd ":many"}} {{if .Dynamic}} diff --git a/internal/codegen/golang/templates/stdlib/queryCode.tmpl b/internal/codegen/golang/templates/stdlib/queryCode.tmpl index 72fc2c04a5..4c0ef7c2e3 100644 --- a/internal/codegen/golang/templates/stdlib/queryCode.tmpl +++ b/internal/codegen/golang/templates/stdlib/queryCode.tmpl @@ -57,7 +57,7 @@ func (o {{$q.MethodName}}Opts) OrderBy(col {{$q.MethodName}}OrderByColumn, desc {{end -}} {{range $q.Comments}}//{{.}} {{end -}} -func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ([]{{$q.Ret.DefineType}}, error) { +func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q.Arg.Pair}}, {{end}}opts {{$q.MethodName}}Opts) ({{if eq $q.Cmd ":one"}}{{$q.Ret.DefineType}}{{else}}[]{{$q.Ret.DefineType}}{{end}}, error) { query := {{$q.ConstantName}} queryParams := []interface{}{ {{$q.Arg.Params}} } conds := make([]string, 0, {{len $q.Dynamic.Opts}}) @@ -88,6 +88,17 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. if len(opts.orderBy) > 0 { query += " ORDER BY " + strings.Join(opts.orderBy, ", ") } +{{- if eq $q.Cmd ":one"}} + row := q.db.QueryRowContext(ctx, query, queryParams...) + var {{$q.Ret.Name}} {{$q.Ret.Type}} + err := row.Scan({{$q.Ret.Scan}}) + {{- if $.WrapErrors}} + if err != nil { + err = fmt.Errorf("query {{$q.MethodName}}: %w", err) + } + {{- end}} + return {{$q.Ret.ReturnName}}, err +{{- else}} rows, err := q.db.QueryContext(ctx, query, queryParams...) if err != nil { return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} @@ -112,6 +123,7 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. return nil, {{if $.WrapErrors}}fmt.Errorf("query {{$q.MethodName}}: %w", err){{else}}err{{end}} } return items, nil +{{- end}} } {{else}} {{if eq .Cmd ":one"}} From c95049dce5cab0830a94e83a37344ddd1d0c8816 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 21:35:28 -0400 Subject: [PATCH 11/20] feat: generate some examples --- examples/dynamicquery/pgx/db.go | 32 ++ examples/dynamicquery/pgx/db_test.go | 114 ++++ examples/dynamicquery/pgx/models.go | 18 + examples/dynamicquery/pgx/query.sql | 54 ++ examples/dynamicquery/pgx/query.sql.go | 489 ++++++++++++++++++ examples/dynamicquery/pgx/schema.sql | 8 + examples/dynamicquery/postgresql/db_test.go | 145 ++++++ examples/dynamicquery/postgresql/query.sql | 30 +- examples/dynamicquery/postgresql/query.sql.go | 153 ++++++ examples/dynamicquery/postgresql/sqlc.yaml | 9 - examples/dynamicquery/sqlc.yaml | 17 + 11 files changed, 1056 insertions(+), 13 deletions(-) create mode 100644 examples/dynamicquery/pgx/db.go create mode 100644 examples/dynamicquery/pgx/db_test.go create mode 100644 examples/dynamicquery/pgx/models.go create mode 100644 examples/dynamicquery/pgx/query.sql create mode 100644 examples/dynamicquery/pgx/query.sql.go create mode 100644 examples/dynamicquery/pgx/schema.sql delete mode 100644 examples/dynamicquery/postgresql/sqlc.yaml create mode 100644 examples/dynamicquery/sqlc.yaml diff --git a/examples/dynamicquery/pgx/db.go b/examples/dynamicquery/pgx/db.go new file mode 100644 index 0000000000..8b2a45c08f --- /dev/null +++ b/examples/dynamicquery/pgx/db.go @@ -0,0 +1,32 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquerypgx + +import ( + "context" + + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgconn" +) + +type DBTX interface { + Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error) + Query(context.Context, string, ...interface{}) (pgx.Rows, error) + QueryRow(context.Context, string, ...interface{}) pgx.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx pgx.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/examples/dynamicquery/pgx/db_test.go b/examples/dynamicquery/pgx/db_test.go new file mode 100644 index 0000000000..5bae14706f --- /dev/null +++ b/examples/dynamicquery/pgx/db_test.go @@ -0,0 +1,114 @@ +//go:build examples + +package dynamicquerypgx + +import ( + "context" + "errors" + "testing" + + "github.com/jackc/pgx/v5" + + "github.com/sqlc-dev/sqlc/internal/sqltest/local" +) + +// This suite runs the pgx/v5-native dynamic codegen against a real database. +// The pgx template path is otherwise only golden-compared in TestReplay, never +// executed, so these tests are the runtime coverage for it. +func TestDynamicPgx(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := pgx.Connect(ctx, uri) + if err != nil { + t.Fatal(err) + } + defer db.Close(ctx) + + seed := []struct { + tenant int64 + name string + age int32 + }{ + {1, "alice", 30}, + {1, "bob", 20}, + {1, "carol", 40}, + {2, "dave", 99}, + } + ids := make(map[string]int64) + for _, s := range seed { + var id int64 + if err := db.QueryRow(ctx, + "INSERT INTO records (tenant_id, name, age, status) VALUES ($1, $2, $3, 'active') RETURNING id", + s.tenant, s.name, s.age).Scan(&id); err != nil { + t.Fatal(err) + } + ids[s.name] = id + } + + q := New(db) + + // :dynamicmany through the native pgx driver. + t.Run("many_filter_and_order", func(t *testing.T) { + // ListRecords: @dynamic age gt -> age > 25 over tenant 1 -> alice(30), carol(40); + // ORDER BY age DESC -> carol, alice. + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25).OrderBy(ListRecordsOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + if len(got) != 2 || got[0].Name != "carol" || got[1].Name != "alice" { + t.Fatalf("want [carol alice], got %+v", got) + } + }) + + // :dynamicone through the native pgx driver. + t.Run("one_name_eq", func(t *testing.T) { + got, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + if got.Name != "alice" || got.Age != 30 { + t.Fatalf("want alice/30, got %s/%d", got.Name, got.Age) + } + }) + + t.Run("one_order_makes_first_row_deterministic", func(t *testing.T) { + got, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Age(20).OrderBy(GetRecordOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + if got.Name != "carol" { + t.Fatalf("want carol (oldest), got %s", got.Name) + } + }) + + t.Run("one_no_match_returns_ErrNoRows", func(t *testing.T) { + _, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Name("nobody")) + if !errors.Is(err, pgx.ErrNoRows) { + t.Fatalf("want pgx.ErrNoRows, got %v", err) + } + }) + + // IN-expansion on the :dynamicone path through the native pgx driver. + t.Run("in_on_single_row_returns_lowest_id", func(t *testing.T) { + got, err := q.GetRecordIn(ctx, 1, GetRecordInOpts{}. + Ids([]int64{ids["carol"], ids["alice"]}). + OrderBy(GetRecordInOrderByID, false)) + if err != nil { + t.Fatal(err) + } + if got.ID != ids["alice"] { + t.Fatalf("want alice's id %d (lowest), got %d", ids["alice"], got.ID) + } + }) + + t.Run("in_empty_slice_applies_no_filter", func(t *testing.T) { + got, err := q.GetRecordIn(ctx, 1, GetRecordInOpts{}.OrderBy(GetRecordInOrderByID, false)) + if err != nil { + t.Fatal(err) + } + if got.ID != ids["alice"] { + t.Fatalf("want first tenant row (alice, id %d), got %d", ids["alice"], got.ID) + } + }) +} diff --git a/examples/dynamicquery/pgx/models.go b/examples/dynamicquery/pgx/models.go new file mode 100644 index 0000000000..26b2a01020 --- /dev/null +++ b/examples/dynamicquery/pgx/models.go @@ -0,0 +1,18 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquerypgx + +import ( + "github.com/jackc/pgx/v5/pgtype" +) + +type Record struct { + ID int64 + TenantID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} diff --git a/examples/dynamicquery/pgx/query.sql b/examples/dynamicquery/pgx/query.sql new file mode 100644 index 0000000000..9c1a7b215e --- /dev/null +++ b/examples/dynamicquery/pgx/query.sql @@ -0,0 +1,54 @@ +-- name: ListRecords :dynamicmany +-- @dynamic name eq +-- @dynamic age gt +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age > sqlc.arg(age); + +-- name: SearchRecords :dynamicmany +-- @dynamic pattern like +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name LIKE sqlc.arg(pattern); + +-- name: FilterRecords :dynamicmany +-- @dynamic ids in +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); + +-- name: GetRecord :dynamicone +-- GetRecord returns a single tenant record, optionally narrowed by an exact +-- name and a minimum age, and optionally ordered. QueryRow yields the first +-- matching row (order it to make "first" deterministic). +-- @dynamic name eq +-- @dynamic age gte +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); + +-- name: ListActiveRecords :dynamicmany +-- ListActiveRecords returns a tenant's records for a given status, optionally +-- narrowed by an exact name and a minimum age, and optionally ordered. +-- @dynamic name eq +-- @dynamic age gte +-- @dynamic-sort name, age, created_at +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND status = sqlc.arg(status) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); + +-- name: GetRecordIn :dynamicone +-- GetRecordIn returns the first tenant record whose id is in an optional set, +-- exercising sqlc.slice IN-expansion on the single-row path. Order it to make +-- "first" deterministic. +-- @dynamic ids in +-- @dynamic-sort id +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); diff --git a/examples/dynamicquery/pgx/query.sql.go b/examples/dynamicquery/pgx/query.sql.go new file mode 100644 index 0000000000..22915654dd --- /dev/null +++ b/examples/dynamicquery/pgx/query.sql.go @@ -0,0 +1,489 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 +// source: query.sql + +package dynamicquerypgx + +import ( + "context" + "fmt" + "strings" + + "github.com/jackc/pgx/v5/pgtype" +) + +const filterRecords = `-- name: FilterRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type FilterRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type FilterRecordsOpts struct { + ids []int64 + orderBy []string +} + +func (o FilterRecordsOpts) Ids(v []int64) FilterRecordsOpts { + o.ids = v + return o +} + +func (q *Queries) FilterRecords(ctx context.Context, tenantID int64, opts FilterRecordsOpts) ([]FilterRecordsRow, error) { + query := filterRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []FilterRecordsRow + for rows.Next() { + var i FilterRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const getRecord = `-- name: GetRecord :one +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type GetRecordRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type GetRecordOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o GetRecordOpts) Name(v string) GetRecordOpts { + o.name = &v + return o +} + +func (o GetRecordOpts) Age(v int32) GetRecordOpts { + o.age = &v + return o +} + +type GetRecordOrderByColumn string + +const ( + GetRecordOrderByName GetRecordOrderByColumn = "name" + GetRecordOrderByAge GetRecordOrderByColumn = "age" + GetRecordOrderByCreatedAt GetRecordOrderByColumn = "created_at" +) + +func (o GetRecordOpts) OrderBy(col GetRecordOrderByColumn, desc bool) GetRecordOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// GetRecord returns a single tenant record, optionally narrowed by an exact +// name and a minimum age, and optionally ordered. QueryRow yields the first +// matching row (order it to make "first" deterministic). +func (q *Queries) GetRecord(ctx context.Context, tenantID int64, opts GetRecordOpts) (GetRecordRow, error) { + query := getRecord + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := q.db.QueryRow(ctx, query, queryParams...) + var i GetRecordRow + err := row.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ) + return i, err +} + +const getRecordIn = `-- name: GetRecordIn :one +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type GetRecordInRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type GetRecordInOpts struct { + ids []int64 + orderBy []string +} + +func (o GetRecordInOpts) Ids(v []int64) GetRecordInOpts { + o.ids = v + return o +} + +type GetRecordInOrderByColumn string + +const ( + GetRecordInOrderByID GetRecordInOrderByColumn = "id" +) + +func (o GetRecordInOpts) OrderBy(col GetRecordInOrderByColumn, desc bool) GetRecordInOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// GetRecordIn returns the first tenant record whose id is in an optional set, +// exercising sqlc.slice IN-expansion on the single-row path. Order it to make +// "first" deterministic. +func (q *Queries) GetRecordIn(ctx context.Context, tenantID int64, opts GetRecordInOpts) (GetRecordInRow, error) { + query := getRecordIn + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := q.db.QueryRow(ctx, query, queryParams...) + var i GetRecordInRow + err := row.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ) + return i, err +} + +const listActiveRecords = `-- name: ListActiveRecords :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 + AND status = $2 +` + +type ListActiveRecordsParams struct { + TenantID int64 + Status string +} + +type ListActiveRecordsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} + +type ListActiveRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListActiveRecordsOpts) Name(v string) ListActiveRecordsOpts { + o.name = &v + return o +} + +func (o ListActiveRecordsOpts) Age(v int32) ListActiveRecordsOpts { + o.age = &v + return o +} + +type ListActiveRecordsOrderByColumn string + +const ( + ListActiveRecordsOrderByName ListActiveRecordsOrderByColumn = "name" + ListActiveRecordsOrderByAge ListActiveRecordsOrderByColumn = "age" + ListActiveRecordsOrderByCreatedAt ListActiveRecordsOrderByColumn = "created_at" +) + +func (o ListActiveRecordsOpts) OrderBy(col ListActiveRecordsOrderByColumn, desc bool) ListActiveRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// ListActiveRecords returns a tenant's records for a given status, optionally +// narrowed by an exact name and a minimum age, and optionally ordered. +func (q *Queries) ListActiveRecords(ctx context.Context, arg ListActiveRecordsParams, opts ListActiveRecordsOpts) ([]ListActiveRecordsRow, error) { + query := listActiveRecords + queryParams := []interface{}{arg.TenantID, arg.Status} + conds := make([]string, 0, 2) + n := 2 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListActiveRecordsRow + for rows.Next() { + var i ListActiveRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listRecords = `-- name: ListRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type ListRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type ListRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListRecordsOpts) Name(v string) ListRecordsOpts { + o.name = &v + return o +} + +func (o ListRecordsOpts) Age(v int32) ListRecordsOpts { + o.age = &v + return o +} + +type ListRecordsOrderByColumn string + +const ( + ListRecordsOrderByName ListRecordsOrderByColumn = "name" + ListRecordsOrderByAge ListRecordsOrderByColumn = "age" + ListRecordsOrderByCreatedAt ListRecordsOrderByColumn = "created_at" +) + +func (o ListRecordsOpts) OrderBy(col ListRecordsOrderByColumn, desc bool) ListRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListRecordsOpts) ([]ListRecordsRow, error) { + query := listRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age > $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListRecordsRow + for rows.Next() { + var i ListRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const searchRecords = `-- name: SearchRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type SearchRecordsOpts struct { + pattern *string + orderBy []string +} + +func (o SearchRecordsOpts) Pattern(v string) SearchRecordsOpts { + o.pattern = &v + return o +} + +func (q *Queries) SearchRecords(ctx context.Context, tenantID int64, opts SearchRecordsOpts) ([]SearchRecordsRow, error) { + query := searchRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if opts.pattern != nil { + n++ + conds = append(conds, fmt.Sprintf("name LIKE $%d", n)) + queryParams = append(queryParams, *opts.pattern) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchRecordsRow + for rows.Next() { + var i SearchRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/examples/dynamicquery/pgx/schema.sql b/examples/dynamicquery/pgx/schema.sql new file mode 100644 index 0000000000..10c57ac7f9 --- /dev/null +++ b/examples/dynamicquery/pgx/schema.sql @@ -0,0 +1,8 @@ +CREATE TABLE records ( + id BIGSERIAL PRIMARY KEY, + tenant_id BIGINT NOT NULL, + name TEXT NOT NULL, + age INT NOT NULL, + status TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); diff --git a/examples/dynamicquery/postgresql/db_test.go b/examples/dynamicquery/postgresql/db_test.go index 1636295a69..d40237c552 100644 --- a/examples/dynamicquery/postgresql/db_test.go +++ b/examples/dynamicquery/postgresql/db_test.go @@ -5,6 +5,7 @@ package dynamicquery import ( "context" "database/sql" + "errors" "testing" _ "github.com/jackc/pgx/v5/stdlib" @@ -306,3 +307,147 @@ func TestFilterRecordsDynamic(t *testing.T) { } }) } + +func TestGetRecordDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + seed := []struct { + tenant int64 + name string + age int32 + }{ + {1, "alice", 30}, + {1, "bob", 20}, + {1, "carol", 40}, + {2, "dave", 99}, + } + for _, s := range seed { + if _, err := db.ExecContext(ctx, + "INSERT INTO records (tenant_id, name, age, status) VALUES ($1, $2, $3, 'active')", + s.tenant, s.name, s.age); err != nil { + t.Fatal(err) + } + } + + q := New(db) + + t.Run("name_eq_returns_single_row", func(t *testing.T) { + got, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + if got.Name != "alice" || got.Age != 30 { + t.Fatalf("want alice/30, got %s/%d", got.Name, got.Age) + } + }) + + t.Run("combined_predicates", func(t *testing.T) { + got, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Name("carol").Age(40)) + if err != nil { + t.Fatal(err) + } + if got.Name != "carol" { + t.Fatalf("want carol, got %s", got.Name) + } + }) + + t.Run("static_tenant_filter", func(t *testing.T) { + got, err := q.GetRecord(ctx, 2, GetRecordOpts{}) + if err != nil { + t.Fatal(err) + } + if got.Name != "dave" { + t.Fatalf("want dave, got %s", got.Name) + } + }) + + t.Run("no_match_returns_ErrNoRows", func(t *testing.T) { + _, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Name("nobody")) + if !errors.Is(err, sql.ErrNoRows) { + t.Fatalf("want sql.ErrNoRows, got %v", err) + } + }) + + t.Run("order_by_makes_first_row_deterministic", func(t *testing.T) { + // Multiple tenant-1 rows match age >= 20; ORDER BY age DESC makes the + // oldest (carol, 40) the deterministic first row QueryRow returns. + got, err := q.GetRecord(ctx, 1, GetRecordOpts{}.Age(20).OrderBy(GetRecordOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + if got.Name != "carol" { + t.Fatalf("want carol (oldest), got %s", got.Name) + } + + // ASC flips it to the youngest matching row (bob, 20). + got, err = q.GetRecord(ctx, 1, GetRecordOpts{}.Age(20).OrderBy(GetRecordOrderByAge, false)) + if err != nil { + t.Fatal(err) + } + if got.Name != "bob" { + t.Fatalf("want bob (youngest), got %s", got.Name) + } + }) +} + +func TestGetRecordInDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + ids := make(map[string]int64) + for _, n := range []string{"alice", "bob", "carol"} { + var id int64 + if err := db.QueryRowContext(ctx, + "INSERT INTO records (tenant_id, name, age, status) VALUES (1, $1, 30, 'active') RETURNING id", + n).Scan(&id); err != nil { + t.Fatal(err) + } + ids[n] = id + } + + q := New(db) + + t.Run("in_on_single_row_returns_lowest_id", func(t *testing.T) { + // slice expansion on the :one path; ORDER BY id ASC -> smallest id first. + got, err := q.GetRecordIn(ctx, 1, GetRecordInOpts{}. + Ids([]int64{ids["carol"], ids["alice"]}). + OrderBy(GetRecordInOrderByID, false)) + if err != nil { + t.Fatal(err) + } + if got.ID != ids["alice"] { + t.Fatalf("want alice's id %d (lowest), got %d", ids["alice"], got.ID) + } + }) + + t.Run("empty_slice_applies_no_IN_filter", func(t *testing.T) { + // No ids -> no IN predicate; QueryRow yields the first tenant row. + got, err := q.GetRecordIn(ctx, 1, GetRecordInOpts{}.OrderBy(GetRecordInOrderByID, false)) + if err != nil { + t.Fatal(err) + } + if got.ID != ids["alice"] { + t.Fatalf("want first tenant row (alice, id %d), got %d", ids["alice"], got.ID) + } + }) + + t.Run("no_match_returns_ErrNoRows", func(t *testing.T) { + _, err := q.GetRecordIn(ctx, 1, GetRecordInOpts{}.Ids([]int64{-1})) + if !errors.Is(err, sql.ErrNoRows) { + t.Fatalf("want sql.ErrNoRows, got %v", err) + } + }) +} diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql index f0dc60eeeb..9c1a7b215e 100644 --- a/examples/dynamicquery/postgresql/query.sql +++ b/examples/dynamicquery/postgresql/query.sql @@ -1,4 +1,4 @@ --- name: ListRecords :many :dynamic +-- name: ListRecords :dynamicmany -- @dynamic name eq -- @dynamic age gt -- @dynamic-sort name, age, created_at @@ -7,19 +7,31 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age > sqlc.arg(age); --- name: SearchRecords :many :dynamic +-- name: SearchRecords :dynamicmany -- @dynamic pattern like SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name LIKE sqlc.arg(pattern); --- name: FilterRecords :many :dynamic +-- name: FilterRecords :dynamicmany -- @dynamic ids in SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); --- name: ListActiveRecords :many :dynamic +-- name: GetRecord :dynamicone +-- GetRecord returns a single tenant record, optionally narrowed by an exact +-- name and a minimum age, and optionally ordered. QueryRow yields the first +-- matching row (order it to make "first" deterministic). +-- @dynamic name eq +-- @dynamic age gte +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); + +-- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. -- @dynamic name eq @@ -30,3 +42,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND status = sqlc.arg(status) AND name = sqlc.arg(name) AND age >= sqlc.arg(age); + +-- name: GetRecordIn :dynamicone +-- GetRecordIn returns the first tenant record whose id is in an optional set, +-- exercising sqlc.slice IN-expansion on the single-row path. Order it to make +-- "first" deterministic. +-- @dynamic ids in +-- @dynamic-sort id +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); diff --git a/examples/dynamicquery/postgresql/query.sql.go b/examples/dynamicquery/postgresql/query.sql.go index 4cc94607be..38c0d467ba 100644 --- a/examples/dynamicquery/postgresql/query.sql.go +++ b/examples/dynamicquery/postgresql/query.sql.go @@ -81,6 +81,159 @@ func (q *Queries) FilterRecords(ctx context.Context, tenantID int64, opts Filter return items, nil } +const getRecord = `-- name: GetRecord :one +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type GetRecordRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type GetRecordOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o GetRecordOpts) Name(v string) GetRecordOpts { + o.name = &v + return o +} + +func (o GetRecordOpts) Age(v int32) GetRecordOpts { + o.age = &v + return o +} + +type GetRecordOrderByColumn string + +const ( + GetRecordOrderByName GetRecordOrderByColumn = "name" + GetRecordOrderByAge GetRecordOrderByColumn = "age" + GetRecordOrderByCreatedAt GetRecordOrderByColumn = "created_at" +) + +func (o GetRecordOpts) OrderBy(col GetRecordOrderByColumn, desc bool) GetRecordOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// GetRecord returns a single tenant record, optionally narrowed by an exact +// name and a minimum age, and optionally ordered. QueryRow yields the first +// matching row (order it to make "first" deterministic). +func (q *Queries) GetRecord(ctx context.Context, tenantID int64, opts GetRecordOpts) (GetRecordRow, error) { + query := getRecord + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := q.db.QueryRowContext(ctx, query, queryParams...) + var i GetRecordRow + err := row.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ) + return i, err +} + +const getRecordIn = `-- name: GetRecordIn :one +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type GetRecordInRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type GetRecordInOpts struct { + ids []int64 + orderBy []string +} + +func (o GetRecordInOpts) Ids(v []int64) GetRecordInOpts { + o.ids = v + return o +} + +type GetRecordInOrderByColumn string + +const ( + GetRecordInOrderByID GetRecordInOrderByColumn = "id" +) + +func (o GetRecordInOpts) OrderBy(col GetRecordInOrderByColumn, desc bool) GetRecordInOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} + +// GetRecordIn returns the first tenant record whose id is in an optional set, +// exercising sqlc.slice IN-expansion on the single-row path. Order it to make +// "first" deterministic. +func (q *Queries) GetRecordIn(ctx context.Context, tenantID int64, opts GetRecordInOpts) (GetRecordInRow, error) { + query := getRecordIn + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + n++ + ph[i] = fmt.Sprintf("$%d", n) + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := q.db.QueryRowContext(ctx, query, queryParams...) + var i GetRecordInRow + err := row.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ) + return i, err +} + const listActiveRecords = `-- name: ListActiveRecords :many SELECT id, name, age, status, created_at FROM records WHERE tenant_id = $1 diff --git a/examples/dynamicquery/postgresql/sqlc.yaml b/examples/dynamicquery/postgresql/sqlc.yaml deleted file mode 100644 index 0692afca16..0000000000 --- a/examples/dynamicquery/postgresql/sqlc.yaml +++ /dev/null @@ -1,9 +0,0 @@ -version: '2' -sql: -- engine: postgresql - schema: schema.sql - queries: query.sql - gen: - go: - package: dynamicquery - out: . diff --git a/examples/dynamicquery/sqlc.yaml b/examples/dynamicquery/sqlc.yaml new file mode 100644 index 0000000000..90ce4b704b --- /dev/null +++ b/examples/dynamicquery/sqlc.yaml @@ -0,0 +1,17 @@ +version: '2' +sql: +- engine: postgresql + schema: postgresql/schema.sql + queries: postgresql/query.sql + gen: + go: + package: dynamicquery + out: postgresql +- engine: postgresql + schema: pgx/schema.sql + queries: pgx/query.sql + gen: + go: + package: dynamicquerypgx + sql_package: pgx/v5 + out: pgx From 7da4a215fb86e9daedc513a5d9c26bf4e8a90216 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 21:36:05 -0400 Subject: [PATCH 12/20] fix: update endtoend tests --- .../postgresql/pgx/go/query.sql.go | 63 +++++++++++++++++++ .../dynamic_query/postgresql/pgx/query.sql | 18 ++++-- .../postgresql/stdlib/go/query.sql.go | 63 +++++++++++++++++++ .../dynamic_query/postgresql/stdlib/query.sql | 14 ++++- .../invalid_queries_foo/pgx/v4/stderr.txt | 2 +- .../invalid_queries_foo/pgx/v5/stderr.txt | 2 +- .../invalid_queries_foo/stdlib/stderr.txt | 2 +- 7 files changed, 155 insertions(+), 9 deletions(-) diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go index 92b0d7fe30..09b045e71a 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go @@ -80,6 +80,69 @@ func (q *Queries) FilterRecords(ctx context.Context, db DBTX, tenantID int64, op return items, nil } +const getRecord = `-- name: GetRecord :one +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type GetRecordRow struct { + ID int64 + Name string + Age int32 + CreatedAt pgtype.Timestamptz +} + +type GetRecordOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o GetRecordOpts) Name(v string) GetRecordOpts { + o.name = &v + return o +} + +func (o GetRecordOpts) Age(v int32) GetRecordOpts { + o.age = &v + return o +} + +// GetRecord returns a single tenant record, optionally narrowed by an exact +// name and a minimum age. QueryRow yields the first matching row. +func (q *Queries) GetRecord(ctx context.Context, db DBTX, tenantID int64, opts GetRecordOpts) (GetRecordRow, error) { + query := getRecord + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := db.QueryRow(ctx, query, queryParams...) + var i GetRecordRow + err := row.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ) + return i, err +} + const listActiveRecords = `-- name: ListActiveRecords :many SELECT id, name, age, status, created_at FROM records WHERE tenant_id = $1 diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql index f0dc60eeeb..011b0ddefc 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql @@ -1,4 +1,4 @@ --- name: ListRecords :many :dynamic +-- name: ListRecords :dynamicmany -- @dynamic name eq -- @dynamic age gt -- @dynamic-sort name, age, created_at @@ -7,19 +7,19 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age > sqlc.arg(age); --- name: SearchRecords :many :dynamic +-- name: SearchRecords :dynamicmany -- @dynamic pattern like SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name LIKE sqlc.arg(pattern); --- name: FilterRecords :many :dynamic +-- name: FilterRecords :dynamicmany -- @dynamic ids in SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); --- name: ListActiveRecords :many :dynamic +-- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. -- @dynamic name eq @@ -30,3 +30,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND status = sqlc.arg(status) AND name = sqlc.arg(name) AND age >= sqlc.arg(age); + +-- name: GetRecord :dynamicone +-- GetRecord returns a single tenant record, optionally narrowed by an exact +-- name and a minimum age. QueryRow yields the first matching row. +-- @dynamic name eq +-- @dynamic age gte +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go index 29ac3618b0..7169d3f68b 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go @@ -12,6 +12,69 @@ import ( "time" ) +const getRecord = `-- name: GetRecord :one +SELECT id, name, age, created_at FROM records +WHERE tenant_id = $1 +` + +type GetRecordRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type GetRecordOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o GetRecordOpts) Name(v string) GetRecordOpts { + o.name = &v + return o +} + +func (o GetRecordOpts) Age(v int32) GetRecordOpts { + o.age = &v + return o +} + +// GetRecord returns a single tenant record, optionally narrowed by an exact +// name and a minimum age. QueryRow yields the first matching row. +func (q *Queries) GetRecord(ctx context.Context, tenantID int64, opts GetRecordOpts) (GetRecordRow, error) { + query := getRecord + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + n++ + conds = append(conds, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + n++ + conds = append(conds, fmt.Sprintf("age >= $%d", n)) + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + row := q.db.QueryRowContext(ctx, query, queryParams...) + var i GetRecordRow + err := row.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ) + return i, err +} + const listActiveRecords = `-- name: ListActiveRecords :many SELECT id, name, age, status, created_at FROM records WHERE tenant_id = $1 diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql index 3fea9c7650..0a40be91de 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql @@ -1,4 +1,4 @@ --- name: ListRecords :many :dynamic +-- name: ListRecords :dynamicmany -- @dynamic name eq -- @dynamic age gt -- @dynamic-sort name, age, created_at @@ -7,7 +7,7 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age > sqlc.arg(age); --- name: ListActiveRecords :many :dynamic +-- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. -- @dynamic name eq @@ -18,3 +18,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND status = sqlc.arg(status) AND name = sqlc.arg(name) AND age >= sqlc.arg(age); + +-- name: GetRecord :dynamicone +-- GetRecord returns a single tenant record, optionally narrowed by an exact +-- name and a minimum age. QueryRow yields the first matching row. +-- @dynamic name eq +-- @dynamic age gte +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age >= sqlc.arg(age); diff --git a/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt b/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt index d3f2496908..8c745b7e3b 100644 --- a/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt +++ b/internal/endtoend/testdata/invalid_queries_foo/pgx/v4/stderr.txt @@ -1,6 +1,6 @@ # package querytest query.sql:1:1: missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: -- name: ListFoos -query.sql:5:1: invalid query modifier ":many": -- name: ListFoos :one :many +query.sql:5:1: invalid query comment: -- name: ListFoos :one :many query.sql:8:1: invalid query type: :two query.sql:11:1: query "DeleteFoo" specifies parameter ":one" without containing a RETURNING clause query.sql:14:1: query "UpdateFoo" specifies parameter ":one" without containing a RETURNING clause diff --git a/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt b/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt index d3f2496908..8c745b7e3b 100644 --- a/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt +++ b/internal/endtoend/testdata/invalid_queries_foo/pgx/v5/stderr.txt @@ -1,6 +1,6 @@ # package querytest query.sql:1:1: missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: -- name: ListFoos -query.sql:5:1: invalid query modifier ":many": -- name: ListFoos :one :many +query.sql:5:1: invalid query comment: -- name: ListFoos :one :many query.sql:8:1: invalid query type: :two query.sql:11:1: query "DeleteFoo" specifies parameter ":one" without containing a RETURNING clause query.sql:14:1: query "UpdateFoo" specifies parameter ":one" without containing a RETURNING clause diff --git a/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt b/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt index 01a8648cfc..06ec54327f 100644 --- a/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt +++ b/internal/endtoend/testdata/invalid_queries_foo/stdlib/stderr.txt @@ -1,6 +1,6 @@ # package querytest query.sql:1:1: missing query type [':one', ':many', ':exec', ':execrows', ':execlastid', ':execresult', ':copyfrom', 'batchexec', 'batchmany', 'batchone']: -- name: ListFoos -query.sql:5:1: invalid query modifier ":many": -- name: ListFoos :one :many +query.sql:5:1: invalid query comment: -- name: ListFoos :one :many query.sql:8:1: invalid query type: :two query.sql:11:1: query "DeleteFoo" specifies parameter ":one" without containing a RETURNING clause query.sql:14:1: query "UpdateFoo" specifies parameter ":one" without containing a RETURNING clause From 354cc613ccfdd1684dea95269607a7e91f478bc8 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 22:28:59 -0400 Subject: [PATCH 13/20] feat: start removing the requirement for declaring the operator with the @dynamic paramname --- internal/compiler/dynamic.go | 41 ++++++++++++++++ internal/compiler/dynamic_test.go | 81 +++++++++++++++++++++++++++++++ internal/compiler/query.go | 1 + internal/compiler/resolve.go | 2 + 4 files changed, 125 insertions(+) diff --git a/internal/compiler/dynamic.go b/internal/compiler/dynamic.go index 7ad34f8113..7f441039fa 100644 --- a/internal/compiler/dynamic.go +++ b/internal/compiler/dynamic.go @@ -6,8 +6,49 @@ import ( "strings" "github.com/sqlc-dev/sqlc/internal/metadata" + "github.com/sqlc-dev/sqlc/internal/sql/ast" + "github.com/sqlc-dev/sqlc/internal/sql/astutils" ) +func dynamicOperator(n *ast.A_Expr) (string, bool) { + if n == nil { + return "", false + } + switch n.Kind { + case ast.A_Expr_Kind_LIKE: + return "LIKE", true + case ast.A_Expr_Kind_ILIKE: + return "ILIKE", true + case ast.A_Expr_Kind_DISTINCT: + return "IS DISTINCT FROM", true + case ast.A_Expr_Kind_NOT_DISTINCT: + return "IS NOT DISTINCT FROM", true + case ast.A_Expr_Kind_OP: + return normalizeDynamicOperator(astutils.Join(n.Name, ".")) + default: + return "", false + } +} + +func normalizeDynamicOperator(op string) (string, bool) { + switch op { + case "=", "<", ">", "<=", ">=", "<>": + return op, true + case "!=": + return "<>", true + case "~~": + return "LIKE", true + case "!~~": + return "NOT LIKE", true + case "~~*": + return "ILIKE", true + case "!~~*": + return "NOT ILIKE", true + default: + return "", false + } +} + func buildDynamicCodegenSQL(sql string, params []Parameter, md metadata.Metadata) (string, error) { if !md.Dynamic || len(md.DynamicParams) == 0 { return "", nil diff --git a/internal/compiler/dynamic_test.go b/internal/compiler/dynamic_test.go index da61f7ab1e..8dbde9b950 100644 --- a/internal/compiler/dynamic_test.go +++ b/internal/compiler/dynamic_test.go @@ -4,8 +4,89 @@ import ( "testing" "github.com/sqlc-dev/sqlc/internal/metadata" + "github.com/sqlc-dev/sqlc/internal/sql/ast" ) +func TestNormalizeDynamicOperator(t *testing.T) { + tests := []struct { + op string + want string + wantOK bool + }{ + // comparison operators pass through unchanged + {"=", "=", true}, + {"<", "<", true}, + {">", ">", true}, + {"<=", "<=", true}, + {">=", ">=", true}, + {"<>", "<>", true}, + // Postgres canonicalizes != to <>, accepted defensively + {"!=", "<>", true}, + // LIKE-family operator spellings normalize to keywords + {"~~", "LIKE", true}, + {"!~~", "NOT LIKE", true}, + {"~~*", "ILIKE", true}, + {"!~~*", "NOT ILIKE", true}, + // unsupported / unknown tokens + {"@", "", false}, + {"||", "", false}, + {"", "", false}, + {"@@", "", false}, + } + + for _, tt := range tests { + t.Run(tt.op, func(t *testing.T) { + got, ok := normalizeDynamicOperator(tt.op) + if got != tt.want || ok != tt.wantOK { + t.Fatalf("normalizeDynamicOperator(%q) = (%q, %v), want (%q, %v)", + tt.op, got, ok, tt.want, tt.wantOK) + } + }) + } +} + +// opExpr builds an A_Expr of kind OP with the given operator token, e.g. ">=". +func opExpr(op string) *ast.A_Expr { + return &ast.A_Expr{ + Kind: ast.A_Expr_Kind_OP, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: op}}}, + } +} + +func TestDynamicOperator(t *testing.T) { + tests := []struct { + name string + expr *ast.A_Expr + want string + wantOK bool + }{ + // LIKE / ILIKE / DISTINCT come from the Kind, not the operator token + {"like from kind", &ast.A_Expr{Kind: ast.A_Expr_Kind_LIKE}, "LIKE", true}, + {"ilike from kind", &ast.A_Expr{Kind: ast.A_Expr_Kind_ILIKE}, "ILIKE", true}, + {"is distinct from", &ast.A_Expr{Kind: ast.A_Expr_Kind_DISTINCT}, "IS DISTINCT FROM", true}, + {"is not distinct from", &ast.A_Expr{Kind: ast.A_Expr_Kind_NOT_DISTINCT}, "IS NOT DISTINCT FROM", true}, + // standard operators flow through the token map + {"eq from op token", opExpr("="), "=", true}, + {"gte from op token", opExpr(">="), ">=", true}, + {"tilde like from op token", opExpr("~~"), "LIKE", true}, + {"unknown op token", opExpr("&&"), "", false}, + // kinds we don't emit as a simple binary predicate + {"between unsupported", &ast.A_Expr{Kind: ast.A_Expr_Kind_BETWEEN}, "", false}, + {"in unsupported (handled via slice)", &ast.A_Expr{Kind: ast.A_Expr_Kind_IN}, "", false}, + {"nil expr", nil, "", false}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, ok := dynamicOperator(tt.expr) + if got != tt.want || ok != tt.wantOK { + t.Fatalf("dynamicOperator(%s) = (%q, %v), want (%q, %v)", + tt.name, got, ok, tt.want, tt.wantOK) + } + }) + } +} + func param(number int, name string) Parameter { return Parameter{Number: number, Column: &Column{Name: name}} } diff --git a/internal/compiler/query.go b/internal/compiler/query.go index 10fe9800cd..aa75e74e6f 100644 --- a/internal/compiler/query.go +++ b/internal/compiler/query.go @@ -29,6 +29,7 @@ type Column struct { Length *int IsNamedParam bool IsFuncCall bool + DynamicOp string // XXX: Figure out what PostgreSQL calls `foo.id` Scope string diff --git a/internal/compiler/resolve.go b/internal/compiler/resolve.go index d926f2b1fc..f4cfaeb8f2 100644 --- a/internal/compiler/resolve.go +++ b/internal/compiler/resolve.go @@ -229,6 +229,7 @@ func (comp *Compiler) resolveCatalogRefs(qc *QueryCatalog, rvs []*ast.RangeVar, key = ref.name } + op, _ := dynamicOperator(n) defaultP := named.NewInferredParam(key, c.IsNotNull) p, isNamed := params.FetchMerge(ref.ref.Number, defaultP) a = append(a, Parameter{ @@ -245,6 +246,7 @@ func (comp *Compiler) resolveCatalogRefs(qc *QueryCatalog, rvs []*ast.RangeVar, Table: table, IsNamedParam: isNamed, IsSqlcSlice: p.IsSqlcSlice(), + DynamicOp: op, }, }) } From 2bca22e70db7f36d56d6a60984f06cbe246ac9cb Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 23:13:26 -0400 Subject: [PATCH 14/20] feat: finish moving away from explicitly declaring the op in two places for dynamic params --- internal/cmd/shim.go | 1 + internal/codegen/golang/dynamic.go | 8 +- internal/codegen/golang/dynamic_test.go | 11 +- internal/codegen/golang/result.go | 7 +- .../testdata/codegen_json/gen/codegen.json | 7287 +++++++++++------ .../dynamic_query/postgresql/pgx/query.sql | 16 +- .../dynamic_query/postgresql/stdlib/query.sql | 12 +- internal/metadata/meta.go | 4 +- internal/plugin/codegen.pb.go | 126 +- protos/plugin/codegen.proto | 1 + 10 files changed, 4955 insertions(+), 2518 deletions(-) diff --git a/internal/cmd/shim.go b/internal/cmd/shim.go index 290b360afa..186029eb23 100644 --- a/internal/cmd/shim.go +++ b/internal/cmd/shim.go @@ -187,6 +187,7 @@ func pluginQueryColumn(c *compiler.Column) *plugin.Column { IsNamedParam: c.IsNamedParam, IsFuncCall: c.IsFuncCall, IsSqlcSlice: c.IsSqlcSlice, + DynamicOp: c.DynamicOp, } if c.Type != nil { diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go index 8548b77349..3aa6b02f7b 100644 --- a/internal/codegen/golang/dynamic.go +++ b/internal/codegen/golang/dynamic.go @@ -8,10 +8,6 @@ type DynamicQuery struct { SortColumns []DynamicSortColumn } -var dynamicSQLOperators = map[string]string{ - "eq": "=", "ne": "<>", "gt": ">", "lt": "<", "gte": ">=", "lte": "<=", "like": "LIKE", -} - type DynamicPredicate struct { FieldName string VarName string @@ -40,8 +36,8 @@ func parseDynamicComments(comments []string) (ops map[string]string, sort, filte } switch fields[0] { case "@dynamic": - if len(fields) >= 3 { - ops[fields[1]] = fields[2] + if len(fields) >= 2 { + ops[fields[1]] = "" } case "@dynamic-sort": for _, col := range fields[1:] { diff --git a/internal/codegen/golang/dynamic_test.go b/internal/codegen/golang/dynamic_test.go index eda0906080..897bfc490c 100644 --- a/internal/codegen/golang/dynamic_test.go +++ b/internal/codegen/golang/dynamic_test.go @@ -14,14 +14,17 @@ func TestParseDynamicComments(t *testing.T) { wantFiltered []string }{ { - name: "mixed dynamic annotations and a doc comment", + // The operator is now inferred from the query's WHERE clause + // (Column.DynamicOp), so parseDynamicComments only records + // membership; the map values are empty markers. + name: "bare @dynamic marks membership; trailing op is ignored", comments: []string{ - " @dynamic name eq", - " @dynamic age gt", + " @dynamic name", // bare form + " @dynamic age gt", // legacy trailing op is ignored " @dynamic-sort name, age, created_at", " ListRecords lists records", }, - wantOps: map[string]string{"name": "eq", "age": "gt"}, + wantOps: map[string]string{"name": "", "age": ""}, wantSort: []string{"name", "age", "created_at"}, wantFiltered: []string{" ListRecords lists records"}, }, diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index 2dd11ac422..6be8df84b0 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -288,11 +288,10 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En isSlice := p.Column.GetIsSqlcSlice() var sqlOp string if !isSlice { - op, ok := dynamicSQLOperators[ops[p.Column.GetName()]] - if !ok { - return nil, fmt.Errorf("dynamic param %q: unsupported operator %q", p.Column.GetName(), ops[p.Column.GetName()]) + sqlOp = p.Column.GetDynamicOp() + if sqlOp == "" { + return nil, fmt.Errorf("dynamic param %q: could not infer a comparison operator from the query", p.Column.GetName()) } - sqlOp = op } field := StructName(p.Column.GetName(), options) column := p.Column.GetName() diff --git a/internal/endtoend/testdata/codegen_json/gen/codegen.json b/internal/endtoend/testdata/codegen_json/gen/codegen.json index 4fb849e730..23a183c404 100644 --- a/internal/endtoend/testdata/codegen_json/gen/codegen.json +++ b/internal/endtoend/testdata/codegen_json/gen/codegen.json @@ -57,7 +57,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "name", @@ -83,7 +84,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bio", @@ -109,7 +111,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -160,7 +163,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -186,7 +190,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -212,7 +217,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -238,7 +244,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -264,7 +271,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -290,7 +298,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggfnoid", @@ -316,7 +325,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggkind", @@ -342,7 +352,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggnumdirectargs", @@ -368,7 +379,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggtransfn", @@ -394,7 +406,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggfinalfn", @@ -420,7 +433,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggcombinefn", @@ -446,7 +460,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggserialfn", @@ -472,7 +487,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggdeserialfn", @@ -498,7 +514,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggmtransfn", @@ -524,7 +541,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggminvtransfn", @@ -550,7 +568,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggmfinalfn", @@ -576,7 +595,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggfinalextra", @@ -602,7 +622,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggmfinalextra", @@ -628,7 +649,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggfinalmodify", @@ -654,7 +676,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggmfinalmodify", @@ -680,7 +703,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggsortop", @@ -706,7 +730,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggtranstype", @@ -732,7 +757,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggtransspace", @@ -758,7 +784,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggmtranstype", @@ -784,7 +811,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggmtransspace", @@ -810,7 +838,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "agginitval", @@ -836,7 +865,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "aggminitval", @@ -862,7 +892,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -898,7 +929,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -924,7 +956,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -950,7 +983,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -976,7 +1010,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -1002,7 +1037,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -1028,7 +1064,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -1054,7 +1091,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amname", @@ -1080,7 +1118,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amhandler", @@ -1106,7 +1145,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amtype", @@ -1132,7 +1172,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -1168,7 +1209,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -1194,7 +1236,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -1220,7 +1263,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -1246,7 +1290,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -1272,7 +1317,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -1298,7 +1344,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -1324,7 +1371,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amopfamily", @@ -1350,7 +1398,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amoplefttype", @@ -1376,7 +1425,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amoprighttype", @@ -1402,7 +1452,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amopstrategy", @@ -1428,7 +1479,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amoppurpose", @@ -1454,7 +1506,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amopopr", @@ -1480,7 +1533,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amopmethod", @@ -1506,7 +1560,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amopsortfamily", @@ -1532,7 +1587,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -1568,7 +1624,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -1594,7 +1651,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -1620,7 +1678,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -1646,7 +1705,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -1672,7 +1732,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -1698,7 +1759,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -1724,7 +1786,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amprocfamily", @@ -1750,7 +1813,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amproclefttype", @@ -1776,7 +1840,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amprocrighttype", @@ -1802,7 +1867,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amprocnum", @@ -1828,7 +1894,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "amproc", @@ -1854,7 +1921,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -1890,7 +1958,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -1916,7 +1985,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -1942,7 +2012,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -1968,7 +2039,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -1994,7 +2066,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -2020,7 +2093,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -2046,7 +2120,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "adrelid", @@ -2072,7 +2147,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "adnum", @@ -2098,7 +2174,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "adbin", @@ -2124,7 +2201,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -2160,7 +2238,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -2186,7 +2265,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -2212,7 +2292,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -2238,7 +2319,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -2264,7 +2346,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -2290,7 +2373,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attrelid", @@ -2316,7 +2400,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attname", @@ -2342,7 +2427,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "atttypid", @@ -2368,7 +2454,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attstattarget", @@ -2394,7 +2481,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attlen", @@ -2420,7 +2508,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attnum", @@ -2446,7 +2535,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attndims", @@ -2472,7 +2562,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attcacheoff", @@ -2498,7 +2589,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "atttypmod", @@ -2524,7 +2616,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attbyval", @@ -2550,7 +2643,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attalign", @@ -2576,7 +2670,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attstorage", @@ -2602,7 +2697,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attcompression", @@ -2628,7 +2724,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attnotnull", @@ -2654,7 +2751,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "atthasdef", @@ -2680,7 +2778,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "atthasmissing", @@ -2706,7 +2805,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attidentity", @@ -2732,7 +2832,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attgenerated", @@ -2758,7 +2859,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attisdropped", @@ -2784,7 +2886,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attislocal", @@ -2810,7 +2913,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attinhcount", @@ -2836,7 +2940,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attcollation", @@ -2862,7 +2967,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attacl", @@ -2888,7 +2994,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attoptions", @@ -2914,7 +3021,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attfdwoptions", @@ -2940,7 +3048,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attmissingval", @@ -2966,7 +3075,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -3002,7 +3112,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -3028,7 +3139,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -3054,7 +3166,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -3080,7 +3193,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -3106,7 +3220,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -3132,7 +3247,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "roleid", @@ -3158,7 +3274,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "member", @@ -3184,7 +3301,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantor", @@ -3210,7 +3328,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "admin_option", @@ -3236,7 +3355,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -3272,7 +3392,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -3298,7 +3419,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -3324,7 +3446,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -3350,7 +3473,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -3376,7 +3500,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -3402,7 +3527,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -3428,7 +3554,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolname", @@ -3454,7 +3581,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolsuper", @@ -3480,7 +3608,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolinherit", @@ -3506,7 +3635,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolcreaterole", @@ -3532,7 +3662,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolcreatedb", @@ -3558,7 +3689,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolcanlogin", @@ -3584,7 +3716,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolreplication", @@ -3610,7 +3743,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolbypassrls", @@ -3636,7 +3770,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolconnlimit", @@ -3662,7 +3797,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolpassword", @@ -3688,7 +3824,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolvaliduntil", @@ -3714,7 +3851,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -3750,7 +3888,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "version", @@ -3776,7 +3915,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "installed", @@ -3802,7 +3942,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "superuser", @@ -3828,7 +3969,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trusted", @@ -3854,7 +3996,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relocatable", @@ -3880,7 +4023,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schema", @@ -3906,7 +4050,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "requires", @@ -3932,7 +4077,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "comment", @@ -3958,7 +4104,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -3994,7 +4141,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_version", @@ -4020,7 +4168,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "installed_version", @@ -4046,7 +4195,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "comment", @@ -4072,7 +4222,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -4108,7 +4259,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ident", @@ -4134,7 +4286,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parent", @@ -4160,7 +4313,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "level", @@ -4186,7 +4340,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "total_bytes", @@ -4212,7 +4367,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "total_nblocks", @@ -4238,7 +4394,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "free_bytes", @@ -4264,7 +4421,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "free_chunks", @@ -4290,7 +4448,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "used_bytes", @@ -4316,7 +4475,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -4352,7 +4512,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -4378,7 +4539,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -4404,7 +4566,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -4430,7 +4593,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -4456,7 +4620,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -4482,7 +4647,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -4508,7 +4674,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "castsource", @@ -4534,7 +4701,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "casttarget", @@ -4560,7 +4728,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "castfunc", @@ -4586,7 +4755,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "castcontext", @@ -4612,7 +4782,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "castmethod", @@ -4638,7 +4809,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -4674,7 +4846,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -4700,7 +4873,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -4726,7 +4900,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -4752,7 +4927,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -4778,7 +4954,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -4804,7 +4981,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -4830,7 +5008,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -4856,7 +5035,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relnamespace", @@ -4882,7 +5062,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reltype", @@ -4908,7 +5089,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reloftype", @@ -4934,7 +5116,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relowner", @@ -4960,7 +5143,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relam", @@ -4986,7 +5170,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relfilenode", @@ -5012,7 +5197,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reltablespace", @@ -5038,7 +5224,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relpages", @@ -5064,7 +5251,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reltuples", @@ -5090,7 +5278,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relallvisible", @@ -5116,7 +5305,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reltoastrelid", @@ -5142,7 +5332,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relhasindex", @@ -5168,7 +5359,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relisshared", @@ -5194,7 +5386,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relpersistence", @@ -5220,7 +5413,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relkind", @@ -5246,7 +5440,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relnatts", @@ -5272,7 +5467,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relchecks", @@ -5298,7 +5494,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relhasrules", @@ -5324,7 +5521,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relhastriggers", @@ -5350,7 +5548,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relhassubclass", @@ -5376,7 +5575,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relrowsecurity", @@ -5402,7 +5602,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relforcerowsecurity", @@ -5428,7 +5629,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relispopulated", @@ -5454,7 +5656,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relreplident", @@ -5480,7 +5683,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relispartition", @@ -5506,7 +5710,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relrewrite", @@ -5532,7 +5737,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relfrozenxid", @@ -5558,7 +5764,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relminmxid", @@ -5584,7 +5791,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relacl", @@ -5610,7 +5818,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reloptions", @@ -5636,7 +5845,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relpartbound", @@ -5662,7 +5872,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -5698,7 +5909,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -5724,7 +5936,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -5750,7 +5963,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -5776,7 +5990,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -5802,7 +6017,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -5828,7 +6044,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -5854,7 +6071,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collname", @@ -5880,7 +6098,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collnamespace", @@ -5906,7 +6125,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collowner", @@ -5932,7 +6152,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collprovider", @@ -5958,7 +6179,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collisdeterministic", @@ -5984,7 +6206,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collencoding", @@ -6010,7 +6233,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collcollate", @@ -6036,7 +6260,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collctype", @@ -6062,7 +6287,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "colliculocale", @@ -6088,7 +6314,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collversion", @@ -6114,7 +6341,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -6150,7 +6378,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "setting", @@ -6176,7 +6405,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -6212,7 +6442,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -6238,7 +6469,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -6264,7 +6496,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -6290,7 +6523,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -6316,7 +6550,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -6342,7 +6577,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -6368,7 +6604,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conname", @@ -6394,7 +6631,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "connamespace", @@ -6420,7 +6658,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "contype", @@ -6446,7 +6685,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "condeferrable", @@ -6472,7 +6712,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "condeferred", @@ -6498,7 +6739,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "convalidated", @@ -6524,7 +6766,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conrelid", @@ -6550,7 +6793,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "contypid", @@ -6576,7 +6820,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conindid", @@ -6602,7 +6847,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conparentid", @@ -6628,7 +6874,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confrelid", @@ -6654,7 +6901,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confupdtype", @@ -6680,7 +6928,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confdeltype", @@ -6706,7 +6955,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confmatchtype", @@ -6732,7 +6982,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conislocal", @@ -6758,7 +7009,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "coninhcount", @@ -6784,7 +7036,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "connoinherit", @@ -6810,7 +7063,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conkey", @@ -6836,7 +7090,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confkey", @@ -6862,7 +7117,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conpfeqop", @@ -6888,7 +7144,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conppeqop", @@ -6914,7 +7171,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conffeqop", @@ -6940,7 +7198,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confdelsetcols", @@ -6966,7 +7225,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conexclop", @@ -6992,7 +7252,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conbin", @@ -7018,7 +7279,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -7054,7 +7316,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -7080,7 +7343,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -7106,7 +7370,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -7132,7 +7397,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -7158,7 +7424,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -7184,7 +7451,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -7210,7 +7478,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conname", @@ -7236,7 +7505,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "connamespace", @@ -7262,7 +7532,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conowner", @@ -7288,7 +7559,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conforencoding", @@ -7314,7 +7586,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "contoencoding", @@ -7340,7 +7613,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conproc", @@ -7366,7 +7640,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "condefault", @@ -7392,7 +7667,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -7428,7 +7704,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statement", @@ -7454,7 +7731,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_holdable", @@ -7480,7 +7758,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_binary", @@ -7506,7 +7785,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_scrollable", @@ -7532,7 +7812,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "creation_time", @@ -7558,7 +7839,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -7594,7 +7876,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -7620,7 +7903,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -7646,7 +7930,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -7672,7 +7957,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -7698,7 +7984,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -7724,7 +8011,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -7750,7 +8038,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -7776,7 +8065,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datdba", @@ -7802,7 +8092,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "encoding", @@ -7828,7 +8119,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datlocprovider", @@ -7854,7 +8146,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datistemplate", @@ -7880,7 +8173,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datallowconn", @@ -7906,7 +8200,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datconnlimit", @@ -7932,7 +8227,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datfrozenxid", @@ -7958,7 +8254,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datminmxid", @@ -7984,7 +8281,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dattablespace", @@ -8010,7 +8308,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datcollate", @@ -8036,7 +8335,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datctype", @@ -8062,7 +8362,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "daticulocale", @@ -8088,7 +8389,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datcollversion", @@ -8114,7 +8416,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datacl", @@ -8140,7 +8443,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -8176,7 +8480,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -8202,7 +8507,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -8228,7 +8534,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -8254,7 +8561,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -8280,7 +8588,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -8306,7 +8615,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "setdatabase", @@ -8332,7 +8642,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "setrole", @@ -8358,7 +8669,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "setconfig", @@ -8384,7 +8696,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -8420,7 +8733,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -8446,7 +8760,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -8472,7 +8787,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -8498,7 +8814,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -8524,7 +8841,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -8550,7 +8868,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -8576,7 +8895,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "defaclrole", @@ -8602,7 +8922,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "defaclnamespace", @@ -8628,7 +8949,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "defaclobjtype", @@ -8654,7 +8976,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "defaclacl", @@ -8680,7 +9003,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -8716,7 +9040,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -8742,7 +9067,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -8768,7 +9094,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -8794,7 +9121,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -8820,7 +9148,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -8846,7 +9175,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classid", @@ -8872,7 +9202,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objid", @@ -8898,7 +9229,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -8924,7 +9256,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "refclassid", @@ -8950,7 +9283,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "refobjid", @@ -8976,7 +9310,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "refobjsubid", @@ -9002,7 +9337,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "deptype", @@ -9028,7 +9364,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -9064,7 +9401,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -9090,7 +9428,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -9116,7 +9455,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -9142,7 +9482,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -9168,7 +9509,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -9194,7 +9536,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objoid", @@ -9220,7 +9563,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classoid", @@ -9246,7 +9590,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -9272,7 +9617,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "description", @@ -9298,7 +9644,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -9334,7 +9681,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -9360,7 +9708,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -9386,7 +9735,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -9412,7 +9762,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -9438,7 +9789,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -9464,7 +9816,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -9490,7 +9843,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "enumtypid", @@ -9516,7 +9870,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "enumsortorder", @@ -9542,7 +9897,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "enumlabel", @@ -9568,7 +9924,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -9604,7 +9961,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -9630,7 +9988,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -9656,7 +10015,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -9682,7 +10042,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -9708,7 +10069,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -9734,7 +10096,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -9760,7 +10123,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "evtname", @@ -9786,7 +10150,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "evtevent", @@ -9812,7 +10177,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "evtowner", @@ -9838,7 +10204,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "evtfoid", @@ -9864,7 +10231,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "evtenabled", @@ -9890,7 +10258,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "evttags", @@ -9916,7 +10285,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -9952,7 +10322,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -9978,7 +10349,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -10004,7 +10376,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -10030,7 +10403,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -10056,7 +10430,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -10082,7 +10457,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -10108,7 +10484,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extname", @@ -10134,7 +10511,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extowner", @@ -10160,7 +10538,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extnamespace", @@ -10186,7 +10565,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extrelocatable", @@ -10212,7 +10592,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extversion", @@ -10238,7 +10619,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extconfig", @@ -10264,7 +10646,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extcondition", @@ -10290,7 +10673,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -10326,7 +10710,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sourceline", @@ -10352,7 +10737,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqno", @@ -10378,7 +10764,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "name", @@ -10404,7 +10791,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "setting", @@ -10430,7 +10818,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "applied", @@ -10456,7 +10845,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "error", @@ -10482,7 +10872,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -10518,7 +10909,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -10544,7 +10936,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -10570,7 +10963,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -10596,7 +10990,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -10622,7 +11017,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -10648,7 +11044,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -10674,7 +11071,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwname", @@ -10700,7 +11098,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwowner", @@ -10726,7 +11125,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwhandler", @@ -10752,7 +11152,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwvalidator", @@ -10778,7 +11179,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwacl", @@ -10804,7 +11206,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwoptions", @@ -10830,7 +11233,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -10866,7 +11270,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -10892,7 +11297,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -10918,7 +11324,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -10944,7 +11351,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -10970,7 +11378,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -10996,7 +11405,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -11022,7 +11432,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvname", @@ -11048,7 +11459,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvowner", @@ -11074,7 +11486,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvfdw", @@ -11100,7 +11513,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvtype", @@ -11126,7 +11540,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvversion", @@ -11152,7 +11567,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvacl", @@ -11178,7 +11594,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvoptions", @@ -11204,7 +11621,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -11240,7 +11658,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -11266,7 +11685,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -11292,7 +11712,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -11318,7 +11739,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -11344,7 +11766,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -11370,7 +11793,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ftrelid", @@ -11396,7 +11820,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ftserver", @@ -11422,7 +11847,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ftoptions", @@ -11448,7 +11874,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -11484,7 +11911,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grosysid", @@ -11510,7 +11938,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grolist", @@ -11536,7 +11965,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -11572,7 +12002,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "type", @@ -11598,7 +12029,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "database", @@ -11624,7 +12056,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_name", @@ -11650,7 +12083,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "address", @@ -11676,7 +12110,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "netmask", @@ -11702,7 +12137,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "auth_method", @@ -11728,7 +12164,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "options", @@ -11754,7 +12191,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "error", @@ -11780,7 +12218,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -11816,7 +12255,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "map_name", @@ -11842,7 +12282,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sys_name", @@ -11868,7 +12309,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pg_username", @@ -11894,7 +12336,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "error", @@ -11920,7 +12363,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -11956,7 +12400,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -11982,7 +12427,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -12008,7 +12454,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -12034,7 +12481,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -12060,7 +12508,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -12086,7 +12535,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -12112,7 +12562,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indrelid", @@ -12138,7 +12589,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indnatts", @@ -12164,7 +12616,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indnkeyatts", @@ -12190,7 +12643,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisunique", @@ -12216,7 +12670,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indnullsnotdistinct", @@ -12242,7 +12697,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisprimary", @@ -12268,7 +12724,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisexclusion", @@ -12294,7 +12751,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indimmediate", @@ -12320,7 +12778,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisclustered", @@ -12346,7 +12805,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisvalid", @@ -12372,7 +12832,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indcheckxmin", @@ -12398,7 +12859,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisready", @@ -12424,7 +12886,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indislive", @@ -12450,7 +12913,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indisreplident", @@ -12476,7 +12940,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indkey", @@ -12502,7 +12967,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indcollation", @@ -12528,7 +12994,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indclass", @@ -12554,7 +13021,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indoption", @@ -12580,7 +13048,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexprs", @@ -12606,7 +13075,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indpred", @@ -12632,7 +13102,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -12668,7 +13139,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -12694,7 +13166,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexname", @@ -12720,7 +13193,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablespace", @@ -12746,7 +13220,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexdef", @@ -12772,7 +13247,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -12808,7 +13284,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -12834,7 +13311,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -12860,7 +13338,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -12886,7 +13365,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -12912,7 +13392,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -12938,7 +13419,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inhrelid", @@ -12964,7 +13446,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inhparent", @@ -12990,7 +13473,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inhseqno", @@ -13016,7 +13500,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inhdetachpending", @@ -13042,7 +13527,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -13078,7 +13564,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -13104,7 +13591,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -13130,7 +13618,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -13156,7 +13645,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -13182,7 +13672,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -13208,7 +13699,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objoid", @@ -13234,7 +13726,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classoid", @@ -13260,7 +13753,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -13286,7 +13780,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privtype", @@ -13312,7 +13807,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "initprivs", @@ -13338,7 +13834,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -13374,7 +13871,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -13400,7 +13898,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -13426,7 +13925,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -13452,7 +13952,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -13478,7 +13979,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -13504,7 +14006,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -13530,7 +14033,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanname", @@ -13556,7 +14060,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanowner", @@ -13582,7 +14087,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanispl", @@ -13608,7 +14114,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanpltrusted", @@ -13634,7 +14141,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanplcallfoid", @@ -13660,7 +14168,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "laninline", @@ -13686,7 +14195,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanvalidator", @@ -13712,7 +14222,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lanacl", @@ -13738,7 +14249,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -13774,7 +14286,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -13800,7 +14313,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -13826,7 +14340,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -13852,7 +14367,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -13878,7 +14394,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -13904,7 +14421,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "loid", @@ -13930,7 +14448,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pageno", @@ -13956,7 +14475,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data", @@ -13982,7 +14502,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -14018,7 +14539,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -14044,7 +14566,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -14070,7 +14593,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -14096,7 +14620,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -14122,7 +14647,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -14148,7 +14674,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -14174,7 +14701,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lomowner", @@ -14200,7 +14728,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lomacl", @@ -14226,7 +14755,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -14262,7 +14792,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "database", @@ -14288,7 +14819,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relation", @@ -14314,7 +14846,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "page", @@ -14340,7 +14873,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tuple", @@ -14366,7 +14900,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "virtualxid", @@ -14392,7 +14927,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "transactionid", @@ -14418,7 +14954,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classid", @@ -14444,7 +14981,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objid", @@ -14470,7 +15008,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -14496,7 +15035,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "virtualtransaction", @@ -14522,7 +15062,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pid", @@ -14548,7 +15089,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "mode", @@ -14574,7 +15116,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "granted", @@ -14600,7 +15143,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fastpath", @@ -14626,7 +15170,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "waitstart", @@ -14652,7 +15197,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -14688,7 +15234,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "matviewname", @@ -14714,7 +15261,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "matviewowner", @@ -14740,7 +15288,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablespace", @@ -14766,7 +15315,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "hasindexes", @@ -14792,7 +15342,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ispopulated", @@ -14818,7 +15369,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "definition", @@ -14844,7 +15396,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -14880,7 +15433,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -14906,7 +15460,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -14932,7 +15487,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -14958,7 +15514,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -14984,7 +15541,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -15010,7 +15568,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -15036,7 +15595,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "nspname", @@ -15062,7 +15622,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "nspowner", @@ -15088,7 +15649,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "nspacl", @@ -15114,7 +15676,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -15150,7 +15713,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -15176,7 +15740,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -15202,7 +15767,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -15228,7 +15794,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -15254,7 +15821,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -15280,7 +15848,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -15306,7 +15875,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcmethod", @@ -15332,7 +15902,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcname", @@ -15358,7 +15929,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcnamespace", @@ -15384,7 +15956,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcowner", @@ -15410,7 +15983,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcfamily", @@ -15436,7 +16010,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcintype", @@ -15462,7 +16037,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opcdefault", @@ -15488,7 +16064,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opckeytype", @@ -15514,7 +16091,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -15550,7 +16128,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -15576,7 +16155,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -15602,7 +16182,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -15628,7 +16209,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -15654,7 +16236,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -15680,7 +16263,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -15706,7 +16290,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprname", @@ -15732,7 +16317,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprnamespace", @@ -15758,7 +16344,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprowner", @@ -15784,7 +16371,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprkind", @@ -15810,7 +16398,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprcanmerge", @@ -15836,7 +16425,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprcanhash", @@ -15862,7 +16452,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprleft", @@ -15888,7 +16479,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprright", @@ -15914,7 +16506,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprresult", @@ -15940,7 +16533,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprcom", @@ -15966,7 +16560,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprnegate", @@ -15992,7 +16587,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprcode", @@ -16018,7 +16614,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprrest", @@ -16044,7 +16641,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oprjoin", @@ -16070,7 +16668,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -16106,7 +16705,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -16132,7 +16732,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -16158,7 +16759,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -16184,7 +16786,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -16210,7 +16813,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -16236,7 +16840,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -16262,7 +16867,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opfmethod", @@ -16288,7 +16894,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opfname", @@ -16314,7 +16921,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opfnamespace", @@ -16340,7 +16948,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "opfowner", @@ -16366,7 +16975,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -16402,7 +17012,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -16428,7 +17039,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -16454,7 +17066,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -16480,7 +17093,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -16506,7 +17120,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -16532,7 +17147,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -16558,7 +17174,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parname", @@ -16584,7 +17201,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "paracl", @@ -16610,7 +17228,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -16646,7 +17265,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -16672,7 +17292,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -16698,7 +17319,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -16724,7 +17346,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -16750,7 +17373,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -16776,7 +17400,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partrelid", @@ -16802,7 +17427,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partstrat", @@ -16828,7 +17454,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partnatts", @@ -16854,7 +17481,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partdefid", @@ -16880,7 +17508,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partattrs", @@ -16906,7 +17535,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partclass", @@ -16932,7 +17562,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partcollation", @@ -16958,7 +17589,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partexprs", @@ -16984,7 +17616,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -17020,7 +17653,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -17046,7 +17680,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "policyname", @@ -17072,7 +17707,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "permissive", @@ -17098,7 +17734,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "roles", @@ -17124,7 +17761,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmd", @@ -17150,7 +17788,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "qual", @@ -17176,7 +17815,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "with_check", @@ -17202,7 +17842,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -17238,7 +17879,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -17264,7 +17906,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -17290,7 +17933,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -17316,7 +17960,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -17342,7 +17987,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -17368,7 +18014,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -17394,7 +18041,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polname", @@ -17420,7 +18068,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polrelid", @@ -17446,7 +18095,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polcmd", @@ -17472,7 +18122,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polpermissive", @@ -17498,7 +18149,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polroles", @@ -17524,7 +18176,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polqual", @@ -17550,7 +18203,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "polwithcheck", @@ -17576,7 +18230,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -17612,7 +18267,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statement", @@ -17638,7 +18294,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prepare_time", @@ -17664,7 +18321,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parameter_types", @@ -17690,7 +18348,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "from_sql", @@ -17716,7 +18375,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "generic_plans", @@ -17742,7 +18402,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "custom_plans", @@ -17768,7 +18429,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -17804,7 +18466,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "gid", @@ -17830,7 +18493,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prepared", @@ -17856,7 +18520,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "owner", @@ -17882,7 +18547,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "database", @@ -17908,7 +18574,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -17944,7 +18611,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -17970,7 +18638,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -17996,7 +18665,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -18022,7 +18692,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -18048,7 +18719,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -18074,7 +18746,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -18100,7 +18773,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proname", @@ -18126,7 +18800,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pronamespace", @@ -18152,7 +18827,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proowner", @@ -18178,7 +18854,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prolang", @@ -18204,7 +18881,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "procost", @@ -18230,7 +18908,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prorows", @@ -18256,7 +18935,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "provariadic", @@ -18282,7 +18962,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prosupport", @@ -18308,7 +18989,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prokind", @@ -18334,7 +19016,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prosecdef", @@ -18360,7 +19043,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proleakproof", @@ -18386,7 +19070,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proisstrict", @@ -18412,7 +19097,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proretset", @@ -18438,7 +19124,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "provolatile", @@ -18464,7 +19151,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proparallel", @@ -18490,7 +19178,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pronargs", @@ -18516,7 +19205,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pronargdefaults", @@ -18542,7 +19232,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prorettype", @@ -18568,7 +19259,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proargtypes", @@ -18594,7 +19286,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proallargtypes", @@ -18620,7 +19313,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proargmodes", @@ -18646,7 +19340,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proargnames", @@ -18672,7 +19367,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proargdefaults", @@ -18698,7 +19394,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "protrftypes", @@ -18724,7 +19421,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prosrc", @@ -18750,7 +19448,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "probin", @@ -18776,7 +19475,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prosqlbody", @@ -18802,7 +19502,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proconfig", @@ -18828,7 +19529,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "proacl", @@ -18854,7 +19556,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -18890,7 +19593,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -18916,7 +19620,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -18942,7 +19647,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -18968,7 +19674,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -18994,7 +19701,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -19020,7 +19728,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -19046,7 +19755,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubname", @@ -19072,7 +19782,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubowner", @@ -19098,7 +19809,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "puballtables", @@ -19124,7 +19836,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubinsert", @@ -19150,7 +19863,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubupdate", @@ -19176,7 +19890,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubdelete", @@ -19202,7 +19917,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubtruncate", @@ -19228,7 +19944,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pubviaroot", @@ -19254,7 +19971,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -19290,7 +20008,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -19316,7 +20035,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -19342,7 +20062,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -19368,7 +20089,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -19394,7 +20116,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -19420,7 +20143,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -19446,7 +20170,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pnpubid", @@ -19472,7 +20197,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pnnspid", @@ -19498,7 +20224,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -19534,7 +20261,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -19560,7 +20288,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -19586,7 +20315,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -19612,7 +20342,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -19638,7 +20369,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -19664,7 +20396,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -19690,7 +20423,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prpubid", @@ -19716,7 +20450,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prrelid", @@ -19742,7 +20477,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prqual", @@ -19768,7 +20504,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prattrs", @@ -19794,7 +20531,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -19830,7 +20568,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -19856,7 +20595,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -19882,7 +20622,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attnames", @@ -19908,7 +20649,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rowfilter", @@ -19934,7 +20676,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -19970,7 +20713,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -19996,7 +20740,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -20022,7 +20767,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -20048,7 +20794,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -20074,7 +20821,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -20100,7 +20848,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngtypid", @@ -20126,7 +20875,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngsubtype", @@ -20152,7 +20902,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngmultitypid", @@ -20178,7 +20929,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngcollation", @@ -20204,7 +20956,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngsubopc", @@ -20230,7 +20983,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngcanonical", @@ -20256,7 +21010,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rngsubdiff", @@ -20282,7 +21037,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -20318,7 +21074,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -20344,7 +21101,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -20370,7 +21128,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -20396,7 +21155,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -20422,7 +21182,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -20448,7 +21209,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "roident", @@ -20474,7 +21236,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "roname", @@ -20500,7 +21263,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -20536,7 +21300,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "external_id", @@ -20562,7 +21327,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "remote_lsn", @@ -20588,7 +21354,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "local_lsn", @@ -20614,7 +21381,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -20650,7 +21418,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "plugin", @@ -20676,7 +21445,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "slot_type", @@ -20702,7 +21472,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datoid", @@ -20728,7 +21499,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "database", @@ -20754,7 +21526,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "temporary", @@ -20780,7 +21553,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "active", @@ -20806,7 +21580,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "active_pid", @@ -20832,7 +21607,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -20858,7 +21634,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "catalog_xmin", @@ -20884,7 +21661,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "restart_lsn", @@ -20910,7 +21688,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confirmed_flush_lsn", @@ -20936,7 +21715,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_status", @@ -20962,7 +21742,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "safe_wal_size", @@ -20988,7 +21769,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "two_phase", @@ -21014,7 +21796,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -21050,7 +21833,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -21076,7 +21860,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -21102,7 +21887,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -21128,7 +21914,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -21154,7 +21941,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -21180,7 +21968,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -21206,7 +21995,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rulename", @@ -21232,7 +22022,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ev_class", @@ -21258,7 +22049,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ev_type", @@ -21284,7 +22076,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ev_enabled", @@ -21310,7 +22103,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_instead", @@ -21336,7 +22130,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ev_qual", @@ -21362,7 +22157,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ev_action", @@ -21388,7 +22184,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -21424,7 +22221,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolsuper", @@ -21450,7 +22248,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolinherit", @@ -21476,7 +22275,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolcreaterole", @@ -21502,7 +22302,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolcreatedb", @@ -21528,7 +22329,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolcanlogin", @@ -21554,7 +22356,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolreplication", @@ -21580,7 +22383,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolconnlimit", @@ -21606,7 +22410,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolpassword", @@ -21632,7 +22437,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolvaliduntil", @@ -21658,7 +22464,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolbypassrls", @@ -21684,7 +22491,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rolconfig", @@ -21710,7 +22518,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -21736,7 +22545,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -21772,7 +22582,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -21798,7 +22609,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rulename", @@ -21824,7 +22636,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "definition", @@ -21850,7 +22663,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -21886,7 +22700,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -21912,7 +22727,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -21938,7 +22754,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -21964,7 +22781,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -21990,7 +22808,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -22016,7 +22835,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objoid", @@ -22042,7 +22862,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classoid", @@ -22068,7 +22889,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -22094,7 +22916,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "provider", @@ -22120,7 +22943,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "label", @@ -22146,7 +22970,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -22182,7 +23007,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classoid", @@ -22208,7 +23034,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -22234,7 +23061,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objtype", @@ -22260,7 +23088,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objnamespace", @@ -22286,7 +23115,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objname", @@ -22312,7 +23142,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "provider", @@ -22338,7 +23169,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "label", @@ -22364,7 +23196,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -22400,7 +23233,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -22426,7 +23260,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -22452,7 +23287,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -22478,7 +23314,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -22504,7 +23341,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -22530,7 +23368,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqrelid", @@ -22556,7 +23395,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqtypid", @@ -22582,7 +23422,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqstart", @@ -22608,7 +23449,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqincrement", @@ -22634,7 +23476,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqmax", @@ -22660,7 +23503,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqmin", @@ -22686,7 +23530,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqcache", @@ -22712,7 +23557,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seqcycle", @@ -22738,7 +23584,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -22774,7 +23621,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequencename", @@ -22800,7 +23648,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequenceowner", @@ -22826,7 +23675,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -22852,7 +23702,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "start_value", @@ -22878,7 +23729,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "min_value", @@ -22904,7 +23756,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "max_value", @@ -22930,7 +23783,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "increment_by", @@ -22956,7 +23810,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cycle", @@ -22982,7 +23837,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cache_size", @@ -23008,7 +23864,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_value", @@ -23034,7 +23891,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -23070,7 +23928,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "setting", @@ -23096,7 +23955,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "unit", @@ -23122,7 +23982,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "category", @@ -23148,7 +24009,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "short_desc", @@ -23174,7 +24036,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "extra_desc", @@ -23200,7 +24063,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "context", @@ -23226,7 +24090,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "vartype", @@ -23252,7 +24117,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "source", @@ -23278,7 +24144,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "min_val", @@ -23304,7 +24171,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "max_val", @@ -23330,7 +24198,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "enumvals", @@ -23356,7 +24225,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "boot_val", @@ -23382,7 +24252,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reset_val", @@ -23408,7 +24279,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sourcefile", @@ -23434,7 +24306,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sourceline", @@ -23460,7 +24333,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pending_restart", @@ -23486,7 +24360,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -23522,7 +24397,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usesysid", @@ -23548,7 +24424,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usecreatedb", @@ -23574,7 +24451,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usesuper", @@ -23600,7 +24478,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "userepl", @@ -23626,7 +24505,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usebypassrls", @@ -23652,7 +24532,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "passwd", @@ -23678,7 +24559,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "valuntil", @@ -23704,7 +24586,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "useconfig", @@ -23730,7 +24613,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -23766,7 +24650,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -23792,7 +24677,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -23818,7 +24704,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -23844,7 +24731,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -23870,7 +24758,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -23896,7 +24785,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dbid", @@ -23922,7 +24812,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classid", @@ -23948,7 +24839,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objid", @@ -23974,7 +24866,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objsubid", @@ -24000,7 +24893,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "refclassid", @@ -24026,7 +24920,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "refobjid", @@ -24052,7 +24947,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "deptype", @@ -24078,7 +24974,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -24114,7 +25011,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -24140,7 +25038,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -24166,7 +25065,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -24192,7 +25092,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -24218,7 +25119,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -24244,7 +25146,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objoid", @@ -24270,7 +25173,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classoid", @@ -24296,7 +25200,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "description", @@ -24322,7 +25227,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -24358,7 +25264,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "off", @@ -24384,7 +25291,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "size", @@ -24410,7 +25318,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "allocated_size", @@ -24436,7 +25345,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -24472,7 +25382,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -24498,7 +25409,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -24524,7 +25436,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -24550,7 +25463,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -24576,7 +25490,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -24602,7 +25517,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "objoid", @@ -24628,7 +25544,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "classoid", @@ -24654,7 +25571,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "provider", @@ -24680,7 +25598,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "label", @@ -24706,7 +25625,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -24742,7 +25662,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -24768,7 +25689,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pid", @@ -24794,7 +25716,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "leader_pid", @@ -24820,7 +25743,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usesysid", @@ -24846,7 +25770,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usename", @@ -24872,7 +25797,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "application_name", @@ -24898,7 +25824,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_addr", @@ -24924,7 +25851,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_hostname", @@ -24950,7 +25878,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_port", @@ -24976,7 +25905,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backend_start", @@ -25002,7 +25932,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xact_start", @@ -25028,7 +25959,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "query_start", @@ -25054,7 +25986,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "state_change", @@ -25080,7 +26013,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wait_event_type", @@ -25106,7 +26040,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wait_event", @@ -25132,7 +26067,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "state", @@ -25158,7 +26094,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backend_xid", @@ -25184,7 +26121,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backend_xmin", @@ -25210,7 +26148,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "query_id", @@ -25236,7 +26175,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "query", @@ -25262,7 +26202,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backend_type", @@ -25288,7 +26229,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -25324,7 +26266,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -25350,7 +26293,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -25376,7 +26320,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -25402,7 +26347,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelname", @@ -25428,7 +26374,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -25454,7 +26401,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_read", @@ -25480,7 +26428,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -25506,7 +26455,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -25542,7 +26492,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -25568,7 +26519,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -25594,7 +26546,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_scan", @@ -25620,7 +26573,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_tup_read", @@ -25646,7 +26600,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -25672,7 +26627,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -25698,7 +26654,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_ins", @@ -25724,7 +26681,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_upd", @@ -25750,7 +26708,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_del", @@ -25776,7 +26735,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_hot_upd", @@ -25802,7 +26762,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_live_tup", @@ -25828,7 +26789,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_dead_tup", @@ -25854,7 +26816,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_mod_since_analyze", @@ -25880,7 +26843,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_ins_since_vacuum", @@ -25906,7 +26870,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_vacuum", @@ -25932,7 +26897,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_autovacuum", @@ -25958,7 +26924,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_analyze", @@ -25984,7 +26951,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_autoanalyze", @@ -26010,7 +26978,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "vacuum_count", @@ -26036,7 +27005,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "autovacuum_count", @@ -26062,7 +27032,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "analyze_count", @@ -26088,7 +27059,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "autoanalyze_count", @@ -26114,7 +27086,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -26150,7 +27123,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_archived_wal", @@ -26176,7 +27150,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_archived_time", @@ -26202,7 +27177,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "failed_count", @@ -26228,7 +27204,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_failed_wal", @@ -26254,7 +27231,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_failed_time", @@ -26280,7 +27258,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -26306,7 +27285,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -26342,7 +27322,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "checkpoints_req", @@ -26368,7 +27349,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "checkpoint_write_time", @@ -26394,7 +27376,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "checkpoint_sync_time", @@ -26420,7 +27403,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "buffers_checkpoint", @@ -26446,7 +27430,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "buffers_clean", @@ -26472,7 +27457,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maxwritten_clean", @@ -26498,7 +27484,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "buffers_backend", @@ -26524,7 +27511,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "buffers_backend_fsync", @@ -26550,7 +27538,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "buffers_alloc", @@ -26576,7 +27565,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -26602,7 +27592,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -26638,7 +27629,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -26664,7 +27656,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numbackends", @@ -26690,7 +27683,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xact_commit", @@ -26716,7 +27710,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xact_rollback", @@ -26742,7 +27737,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_read", @@ -26768,7 +27764,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_hit", @@ -26794,7 +27791,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tup_returned", @@ -26820,7 +27818,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tup_fetched", @@ -26846,7 +27845,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tup_inserted", @@ -26872,7 +27872,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tup_updated", @@ -26898,7 +27899,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tup_deleted", @@ -26924,7 +27926,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conflicts", @@ -26950,7 +27953,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "temp_files", @@ -26976,7 +27980,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "temp_bytes", @@ -27002,7 +28007,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "deadlocks", @@ -27028,7 +28034,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "checksum_failures", @@ -27054,7 +28061,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "checksum_last_failure", @@ -27080,7 +28088,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blk_read_time", @@ -27106,7 +28115,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blk_write_time", @@ -27132,7 +28142,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "session_time", @@ -27158,7 +28169,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "active_time", @@ -27184,7 +28196,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idle_in_transaction_time", @@ -27210,7 +28223,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sessions", @@ -27236,7 +28250,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sessions_abandoned", @@ -27262,7 +28277,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sessions_fatal", @@ -27288,7 +28304,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sessions_killed", @@ -27314,7 +28331,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -27340,7 +28358,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -27376,7 +28395,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -27402,7 +28422,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confl_tablespace", @@ -27428,7 +28449,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confl_lock", @@ -27454,7 +28476,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confl_snapshot", @@ -27480,7 +28503,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confl_bufferpin", @@ -27506,7 +28530,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "confl_deadlock", @@ -27532,7 +28557,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -27568,7 +28594,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "gss_authenticated", @@ -27594,7 +28621,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "principal", @@ -27620,7 +28648,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "encrypted", @@ -27646,7 +28675,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -27682,7 +28712,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datid", @@ -27708,7 +28739,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -27734,7 +28766,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relid", @@ -27760,7 +28793,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "phase", @@ -27786,7 +28820,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sample_blks_total", @@ -27812,7 +28847,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sample_blks_scanned", @@ -27838,7 +28874,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ext_stats_total", @@ -27864,7 +28901,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ext_stats_computed", @@ -27890,7 +28928,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "child_tables_total", @@ -27916,7 +28955,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "child_tables_done", @@ -27942,7 +28982,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "current_child_table_relid", @@ -27968,7 +29009,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -28004,7 +29046,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "phase", @@ -28030,7 +29073,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backup_total", @@ -28056,7 +29100,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backup_streamed", @@ -28082,7 +29127,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablespaces_total", @@ -28108,7 +29154,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablespaces_streamed", @@ -28134,7 +29181,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -28170,7 +29218,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datid", @@ -28196,7 +29245,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -28222,7 +29272,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relid", @@ -28248,7 +29299,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "command", @@ -28274,7 +29326,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "phase", @@ -28300,7 +29353,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cluster_index_relid", @@ -28326,7 +29380,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_tuples_scanned", @@ -28352,7 +29407,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_tuples_written", @@ -28378,7 +29434,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_total", @@ -28404,7 +29461,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_scanned", @@ -28430,7 +29488,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "index_rebuild_count", @@ -28456,7 +29515,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -28492,7 +29552,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datid", @@ -28518,7 +29579,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -28544,7 +29606,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relid", @@ -28570,7 +29633,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "command", @@ -28596,7 +29660,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "type", @@ -28622,7 +29687,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bytes_processed", @@ -28648,7 +29714,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bytes_total", @@ -28674,7 +29741,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tuples_processed", @@ -28700,7 +29768,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tuples_excluded", @@ -28726,7 +29795,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -28762,7 +29832,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datid", @@ -28788,7 +29859,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -28814,7 +29886,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relid", @@ -28840,7 +29913,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "index_relid", @@ -28866,7 +29940,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "command", @@ -28892,7 +29967,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "phase", @@ -28918,7 +29994,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lockers_total", @@ -28944,7 +30021,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "lockers_done", @@ -28970,7 +30048,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "current_locker_pid", @@ -28996,7 +30075,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blocks_total", @@ -29022,7 +30102,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blocks_done", @@ -29048,7 +30129,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tuples_total", @@ -29074,7 +30156,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tuples_done", @@ -29100,7 +30183,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partitions_total", @@ -29126,7 +30210,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "partitions_done", @@ -29152,7 +30237,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -29188,7 +30274,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datid", @@ -29214,7 +30301,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datname", @@ -29240,7 +30328,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relid", @@ -29266,7 +30355,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "phase", @@ -29292,7 +30382,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_total", @@ -29318,7 +30409,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_scanned", @@ -29344,7 +30436,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_vacuumed", @@ -29370,7 +30463,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "index_vacuum_count", @@ -29396,7 +30490,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "max_dead_tuples", @@ -29422,7 +30517,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "num_dead_tuples", @@ -29448,7 +30544,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -29484,7 +30581,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prefetch", @@ -29510,7 +30608,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "hit", @@ -29536,7 +30635,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "skip_init", @@ -29562,7 +30662,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "skip_new", @@ -29588,7 +30689,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "skip_fpw", @@ -29614,7 +30716,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "skip_rep", @@ -29640,7 +30743,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_distance", @@ -29666,7 +30770,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "block_distance", @@ -29692,7 +30797,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "io_depth", @@ -29718,7 +30824,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -29754,7 +30861,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usesysid", @@ -29780,7 +30888,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usename", @@ -29806,7 +30915,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "application_name", @@ -29832,7 +30942,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_addr", @@ -29858,7 +30969,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_hostname", @@ -29884,7 +30996,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_port", @@ -29910,7 +31023,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backend_start", @@ -29936,7 +31050,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "backend_xmin", @@ -29962,7 +31077,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "state", @@ -29988,7 +31104,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sent_lsn", @@ -30014,7 +31131,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "write_lsn", @@ -30040,7 +31158,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "flush_lsn", @@ -30066,7 +31185,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "replay_lsn", @@ -30092,7 +31212,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "write_lag", @@ -30118,7 +31239,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "flush_lag", @@ -30144,7 +31266,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "replay_lag", @@ -30170,7 +31293,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sync_priority", @@ -30196,7 +31320,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sync_state", @@ -30222,7 +31347,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reply_time", @@ -30248,7 +31374,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -30284,7 +31411,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spill_txns", @@ -30310,7 +31438,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spill_count", @@ -30336,7 +31465,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spill_bytes", @@ -30362,7 +31492,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stream_txns", @@ -30388,7 +31519,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stream_count", @@ -30414,7 +31546,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stream_bytes", @@ -30440,7 +31573,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "total_txns", @@ -30466,7 +31600,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "total_bytes", @@ -30492,7 +31627,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -30518,7 +31654,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -30554,7 +31691,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_zeroed", @@ -30580,7 +31718,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_hit", @@ -30606,7 +31745,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_read", @@ -30632,7 +31772,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_written", @@ -30658,7 +31799,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_exists", @@ -30684,7 +31826,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "flushes", @@ -30710,7 +31853,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "truncates", @@ -30736,7 +31880,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -30762,7 +31907,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -30798,7 +31944,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ssl", @@ -30824,7 +31971,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "version", @@ -30850,7 +31998,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cipher", @@ -30876,7 +32025,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bits", @@ -30902,7 +32052,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_dn", @@ -30928,7 +32079,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "client_serial", @@ -30954,7 +32106,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "issuer_dn", @@ -30980,7 +32133,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -31016,7 +32170,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subname", @@ -31042,7 +32197,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pid", @@ -31068,7 +32224,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relid", @@ -31094,7 +32251,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "received_lsn", @@ -31120,7 +32278,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_msg_send_time", @@ -31146,7 +32305,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_msg_receipt_time", @@ -31172,7 +32332,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "latest_end_lsn", @@ -31198,7 +32359,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "latest_end_time", @@ -31224,7 +32386,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -31260,7 +32423,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subname", @@ -31286,7 +32450,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "apply_error_count", @@ -31312,7 +32477,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sync_error_count", @@ -31338,7 +32504,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -31364,7 +32531,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -31400,7 +32568,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -31426,7 +32595,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -31452,7 +32622,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -31478,7 +32649,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelname", @@ -31504,7 +32676,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -31530,7 +32703,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_read", @@ -31556,7 +32730,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -31582,7 +32757,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -31618,7 +32794,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -31644,7 +32821,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -31670,7 +32848,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_scan", @@ -31696,7 +32875,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_tup_read", @@ -31722,7 +32902,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -31748,7 +32929,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -31774,7 +32956,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_ins", @@ -31800,7 +32983,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_upd", @@ -31826,7 +33010,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_del", @@ -31852,7 +33037,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_hot_upd", @@ -31878,7 +33064,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_live_tup", @@ -31904,7 +33091,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_dead_tup", @@ -31930,7 +33118,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_mod_since_analyze", @@ -31956,7 +33145,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_ins_since_vacuum", @@ -31982,7 +33172,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_vacuum", @@ -32008,7 +33199,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_autovacuum", @@ -32034,7 +33226,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_analyze", @@ -32060,7 +33253,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_autoanalyze", @@ -32086,7 +33280,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "vacuum_count", @@ -32112,7 +33307,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "autovacuum_count", @@ -32138,7 +33334,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "analyze_count", @@ -32164,7 +33361,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "autoanalyze_count", @@ -32190,7 +33388,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -32226,7 +33425,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -32252,7 +33452,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "funcname", @@ -32278,7 +33479,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "calls", @@ -32304,7 +33506,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "total_time", @@ -32330,7 +33533,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "self_time", @@ -32356,7 +33560,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -32392,7 +33597,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -32418,7 +33624,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -32444,7 +33651,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -32470,7 +33678,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelname", @@ -32496,7 +33705,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -32522,7 +33732,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_read", @@ -32548,7 +33759,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -32574,7 +33786,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -32610,7 +33823,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -32636,7 +33850,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -32662,7 +33877,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_scan", @@ -32688,7 +33904,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_tup_read", @@ -32714,7 +33931,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -32740,7 +33958,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -32766,7 +33985,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_ins", @@ -32792,7 +34012,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_upd", @@ -32818,7 +34039,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_del", @@ -32844,7 +34066,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_hot_upd", @@ -32870,7 +34093,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_live_tup", @@ -32896,7 +34120,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_dead_tup", @@ -32922,7 +34147,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_mod_since_analyze", @@ -32948,7 +34174,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_ins_since_vacuum", @@ -32974,7 +34201,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_vacuum", @@ -33000,7 +34228,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_autovacuum", @@ -33026,7 +34255,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_analyze", @@ -33052,7 +34282,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_autoanalyze", @@ -33078,7 +34309,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "vacuum_count", @@ -33104,7 +34336,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "autovacuum_count", @@ -33130,7 +34363,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "analyze_count", @@ -33156,7 +34390,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "autoanalyze_count", @@ -33182,7 +34417,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -33218,7 +34454,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_fpi", @@ -33244,7 +34481,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_bytes", @@ -33270,7 +34508,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_buffers_full", @@ -33296,7 +34535,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_write", @@ -33322,7 +34562,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_sync", @@ -33348,7 +34589,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_write_time", @@ -33374,7 +34616,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "wal_sync_time", @@ -33400,7 +34643,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stats_reset", @@ -33426,7 +34670,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -33462,7 +34707,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "status", @@ -33488,7 +34734,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "receive_start_lsn", @@ -33514,7 +34761,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "receive_start_tli", @@ -33540,7 +34788,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "written_lsn", @@ -33566,7 +34815,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "flushed_lsn", @@ -33592,7 +34842,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "received_tli", @@ -33618,7 +34869,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_msg_send_time", @@ -33644,7 +34896,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_msg_receipt_time", @@ -33670,7 +34923,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "latest_end_lsn", @@ -33696,7 +34950,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "latest_end_time", @@ -33722,7 +34977,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "slot_name", @@ -33748,7 +35004,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sender_host", @@ -33774,7 +35031,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sender_port", @@ -33800,7 +35058,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "conninfo", @@ -33826,7 +35085,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -33862,7 +35122,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -33888,7 +35149,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -33914,7 +35176,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_scan", @@ -33940,7 +35203,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_tup_read", @@ -33966,7 +35230,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -33992,7 +35257,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -34018,7 +35284,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_ins", @@ -34044,7 +35311,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_upd", @@ -34070,7 +35338,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_del", @@ -34096,7 +35365,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_hot_upd", @@ -34122,7 +35392,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -34158,7 +35429,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -34184,7 +35456,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -34210,7 +35483,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_scan", @@ -34236,7 +35510,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_tup_read", @@ -34262,7 +35537,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -34288,7 +35564,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -34314,7 +35591,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_ins", @@ -34340,7 +35618,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_upd", @@ -34366,7 +35645,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_del", @@ -34392,7 +35672,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_hot_upd", @@ -34418,7 +35699,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -34454,7 +35736,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -34480,7 +35763,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "funcname", @@ -34506,7 +35790,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "calls", @@ -34532,7 +35817,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "total_time", @@ -34558,7 +35844,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "self_time", @@ -34584,7 +35871,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -34620,7 +35908,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -34646,7 +35935,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -34672,7 +35962,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_scan", @@ -34698,7 +35989,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "seq_tup_read", @@ -34724,7 +36016,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_scan", @@ -34750,7 +36043,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_tup_fetch", @@ -34776,7 +36070,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_ins", @@ -34802,7 +36097,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_upd", @@ -34828,7 +36124,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_del", @@ -34854,7 +36151,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_tup_hot_upd", @@ -34880,7 +36178,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -34916,7 +36215,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -34942,7 +36242,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -34968,7 +36269,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -34994,7 +36296,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelname", @@ -35020,7 +36323,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_read", @@ -35046,7 +36350,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_hit", @@ -35072,7 +36377,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -35108,7 +36414,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -35134,7 +36441,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -35160,7 +36468,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_read", @@ -35186,7 +36495,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_hit", @@ -35212,7 +36522,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -35248,7 +36559,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -35274,7 +36586,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -35300,7 +36613,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_read", @@ -35326,7 +36640,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_hit", @@ -35352,7 +36667,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_read", @@ -35378,7 +36694,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_hit", @@ -35404,7 +36721,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "toast_blks_read", @@ -35430,7 +36748,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "toast_blks_hit", @@ -35456,7 +36775,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tidx_blks_read", @@ -35482,7 +36802,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tidx_blks_hit", @@ -35508,7 +36829,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -35544,7 +36866,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -35570,7 +36893,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -35596,7 +36920,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -35622,7 +36947,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelname", @@ -35648,7 +36974,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_read", @@ -35674,7 +37001,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_hit", @@ -35700,7 +37028,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -35736,7 +37065,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -35762,7 +37092,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -35788,7 +37119,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_read", @@ -35814,7 +37146,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_hit", @@ -35840,7 +37173,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -35876,7 +37210,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -35902,7 +37237,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -35928,7 +37264,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_read", @@ -35954,7 +37291,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_hit", @@ -35980,7 +37318,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_read", @@ -36006,7 +37345,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_hit", @@ -36032,7 +37372,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "toast_blks_read", @@ -36058,7 +37399,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "toast_blks_hit", @@ -36084,7 +37426,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tidx_blks_read", @@ -36110,7 +37453,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tidx_blks_hit", @@ -36136,7 +37480,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -36172,7 +37517,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelid", @@ -36198,7 +37544,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -36224,7 +37571,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -36250,7 +37598,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "indexrelname", @@ -36276,7 +37625,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_read", @@ -36302,7 +37652,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_hit", @@ -36328,7 +37679,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -36364,7 +37716,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -36390,7 +37743,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -36416,7 +37770,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_read", @@ -36442,7 +37797,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "blks_hit", @@ -36468,7 +37824,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -36504,7 +37861,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schemaname", @@ -36530,7 +37888,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -36556,7 +37915,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_read", @@ -36582,7 +37942,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "heap_blks_hit", @@ -36608,7 +37969,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_read", @@ -36634,7 +37996,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "idx_blks_hit", @@ -36660,7 +38023,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "toast_blks_read", @@ -36686,7 +38050,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "toast_blks_hit", @@ -36712,7 +38077,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tidx_blks_read", @@ -36738,7 +38104,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tidx_blks_hit", @@ -36764,7 +38131,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -36800,7 +38168,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -36826,7 +38195,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -36852,7 +38222,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -36878,7 +38249,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -36904,7 +38276,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -36930,7 +38303,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "starelid", @@ -36956,7 +38330,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "staattnum", @@ -36982,7 +38357,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stainherit", @@ -37008,7 +38384,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stanullfrac", @@ -37034,7 +38411,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stawidth", @@ -37060,7 +38438,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stadistinct", @@ -37086,7 +38465,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stakind1", @@ -37112,7 +38492,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stakind2", @@ -37138,7 +38519,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stakind3", @@ -37164,7 +38546,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stakind4", @@ -37190,7 +38573,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stakind5", @@ -37216,7 +38600,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "staop1", @@ -37242,7 +38627,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "staop2", @@ -37268,7 +38654,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "staop3", @@ -37294,7 +38681,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "staop4", @@ -37320,7 +38708,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "staop5", @@ -37346,7 +38735,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stacoll1", @@ -37372,7 +38762,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stacoll2", @@ -37398,7 +38789,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stacoll3", @@ -37424,7 +38816,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stacoll4", @@ -37450,7 +38843,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stacoll5", @@ -37476,7 +38870,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stanumbers1", @@ -37502,7 +38897,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stanumbers2", @@ -37528,7 +38924,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stanumbers3", @@ -37554,7 +38951,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stanumbers4", @@ -37580,7 +38978,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stanumbers5", @@ -37606,7 +39005,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stavalues1", @@ -37632,7 +39032,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stavalues2", @@ -37658,7 +39059,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stavalues3", @@ -37684,7 +39086,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stavalues4", @@ -37710,7 +39113,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stavalues5", @@ -37736,7 +39140,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -37772,7 +39177,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -37798,7 +39204,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -37824,7 +39231,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -37850,7 +39258,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -37876,7 +39285,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -37902,7 +39312,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -37928,7 +39339,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxrelid", @@ -37954,7 +39366,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxname", @@ -37980,7 +39393,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxnamespace", @@ -38006,7 +39420,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxowner", @@ -38032,7 +39447,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxstattarget", @@ -38058,7 +39474,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxkeys", @@ -38084,7 +39501,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxkind", @@ -38110,7 +39528,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxexprs", @@ -38136,7 +39555,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -38172,7 +39592,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -38198,7 +39619,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -38224,7 +39646,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -38250,7 +39673,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -38276,7 +39700,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -38302,7 +39727,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxoid", @@ -38328,7 +39754,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxdinherit", @@ -38354,7 +39781,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxdndistinct", @@ -38380,7 +39808,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxddependencies", @@ -38406,7 +39835,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxdmcv", @@ -38432,7 +39862,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "stxdexpr", @@ -38458,7 +39889,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -38494,7 +39926,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -38520,7 +39953,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attname", @@ -38546,7 +39980,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inherited", @@ -38572,7 +40007,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "null_frac", @@ -38598,7 +40034,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "avg_width", @@ -38624,7 +40061,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_distinct", @@ -38650,7 +40088,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_vals", @@ -38676,7 +40115,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_freqs", @@ -38702,7 +40142,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "histogram_bounds", @@ -38728,7 +40169,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "correlation", @@ -38754,7 +40196,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_elems", @@ -38780,7 +40223,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_elem_freqs", @@ -38806,7 +40250,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "elem_count_histogram", @@ -38832,7 +40277,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -38868,7 +40314,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -38894,7 +40341,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statistics_schemaname", @@ -38920,7 +40368,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statistics_name", @@ -38946,7 +40395,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statistics_owner", @@ -38972,7 +40422,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attnames", @@ -38998,7 +40449,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "exprs", @@ -39024,7 +40476,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "kinds", @@ -39050,7 +40503,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inherited", @@ -39076,7 +40530,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_distinct", @@ -39102,7 +40557,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dependencies", @@ -39128,7 +40584,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_vals", @@ -39154,7 +40611,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_val_nulls", @@ -39180,7 +40638,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_freqs", @@ -39206,7 +40665,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_base_freqs", @@ -39232,7 +40692,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -39268,7 +40729,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -39294,7 +40756,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statistics_schemaname", @@ -39320,7 +40783,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statistics_name", @@ -39346,7 +40810,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "statistics_owner", @@ -39372,7 +40837,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "expr", @@ -39398,7 +40864,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "inherited", @@ -39424,7 +40891,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "null_frac", @@ -39450,7 +40918,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "avg_width", @@ -39476,7 +40945,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "n_distinct", @@ -39502,7 +40972,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_vals", @@ -39528,7 +40999,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_freqs", @@ -39554,7 +41026,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "histogram_bounds", @@ -39580,7 +41053,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "correlation", @@ -39606,7 +41080,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_elems", @@ -39632,7 +41107,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "most_common_elem_freqs", @@ -39658,7 +41134,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "elem_count_histogram", @@ -39684,7 +41161,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -39720,7 +41198,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -39746,7 +41225,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -39772,7 +41252,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -39798,7 +41279,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -39824,7 +41306,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -39850,7 +41333,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -39876,7 +41360,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subdbid", @@ -39902,7 +41387,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subskiplsn", @@ -39928,7 +41414,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subname", @@ -39954,7 +41441,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subowner", @@ -39980,7 +41468,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subenabled", @@ -40006,7 +41495,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subbinary", @@ -40032,7 +41522,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "substream", @@ -40058,7 +41549,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subtwophasestate", @@ -40084,7 +41576,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subdisableonerr", @@ -40110,7 +41603,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subconninfo", @@ -40136,7 +41630,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subslotname", @@ -40162,7 +41657,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subsynccommit", @@ -40188,7 +41684,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "subpublications", @@ -40214,7 +41711,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -40250,7 +41748,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -40276,7 +41775,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -40302,7 +41802,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -40328,7 +41829,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -40354,7 +41856,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -40380,7 +41883,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srsubid", @@ -40406,7 +41910,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srrelid", @@ -40432,7 +41937,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srsubstate", @@ -40458,7 +41964,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srsublsn", @@ -40484,7 +41991,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -40520,7 +42028,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablename", @@ -40546,7 +42055,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tableowner", @@ -40572,7 +42082,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tablespace", @@ -40598,7 +42109,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "hasindexes", @@ -40624,7 +42136,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "hasrules", @@ -40650,7 +42163,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "hastriggers", @@ -40676,7 +42190,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "rowsecurity", @@ -40702,7 +42217,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -40738,7 +42254,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -40764,7 +42281,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -40790,7 +42308,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -40816,7 +42335,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -40842,7 +42362,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -40868,7 +42389,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -40894,7 +42416,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spcname", @@ -40920,7 +42443,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spcowner", @@ -40946,7 +42470,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spcacl", @@ -40972,7 +42497,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "spcoptions", @@ -40998,7 +42524,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -41034,7 +42561,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "utc_offset", @@ -41060,7 +42588,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_dst", @@ -41086,7 +42615,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -41122,7 +42652,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "abbrev", @@ -41148,7 +42679,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "utc_offset", @@ -41174,7 +42706,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_dst", @@ -41200,7 +42733,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -41236,7 +42770,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -41262,7 +42797,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -41288,7 +42824,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -41314,7 +42851,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -41340,7 +42878,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -41366,7 +42905,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -41392,7 +42932,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trftype", @@ -41418,7 +42959,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trflang", @@ -41444,7 +42986,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trffromsql", @@ -41470,7 +43013,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trftosql", @@ -41496,7 +43040,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -41532,7 +43077,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -41558,7 +43104,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -41584,7 +43131,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -41610,7 +43158,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -41636,7 +43185,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -41662,7 +43212,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -41688,7 +43239,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgrelid", @@ -41714,7 +43266,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgparentid", @@ -41740,7 +43293,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgname", @@ -41766,7 +43320,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgfoid", @@ -41792,7 +43347,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgtype", @@ -41818,7 +43374,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgenabled", @@ -41844,7 +43401,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgisinternal", @@ -41870,7 +43428,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgconstrrelid", @@ -41896,7 +43455,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgconstrindid", @@ -41922,7 +43482,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgconstraint", @@ -41948,7 +43509,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgdeferrable", @@ -41974,7 +43536,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tginitdeferred", @@ -42000,7 +43563,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgnargs", @@ -42026,7 +43590,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgattr", @@ -42052,7 +43617,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgargs", @@ -42078,7 +43644,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgqual", @@ -42104,7 +43671,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgoldtable", @@ -42130,7 +43698,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tgnewtable", @@ -42156,7 +43725,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -42192,7 +43762,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -42218,7 +43789,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -42244,7 +43816,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -42270,7 +43843,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -42296,7 +43870,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -42322,7 +43897,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -42348,7 +43924,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cfgname", @@ -42374,7 +43951,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cfgnamespace", @@ -42400,7 +43978,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cfgowner", @@ -42426,7 +44005,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cfgparser", @@ -42452,7 +44032,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -42488,7 +44069,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -42514,7 +44096,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -42540,7 +44123,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -42566,7 +44150,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -42592,7 +44177,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -42618,7 +44204,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "mapcfg", @@ -42644,7 +44231,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maptokentype", @@ -42670,7 +44258,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "mapseqno", @@ -42696,7 +44285,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "mapdict", @@ -42722,7 +44312,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -42758,7 +44349,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -42784,7 +44376,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -42810,7 +44403,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -42836,7 +44430,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -42862,7 +44457,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -42888,7 +44484,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -42914,7 +44511,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dictname", @@ -42940,7 +44538,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dictnamespace", @@ -42966,7 +44565,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dictowner", @@ -42992,7 +44592,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dicttemplate", @@ -43018,7 +44619,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dictinitoption", @@ -43044,7 +44646,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -43080,7 +44683,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -43106,7 +44710,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -43132,7 +44737,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -43158,7 +44764,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -43184,7 +44791,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -43210,7 +44818,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -43236,7 +44845,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prsname", @@ -43262,7 +44872,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prsnamespace", @@ -43288,7 +44899,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prsstart", @@ -43314,7 +44926,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prstoken", @@ -43340,7 +44953,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prsend", @@ -43366,7 +44980,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prsheadline", @@ -43392,7 +45007,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "prslextype", @@ -43418,7 +45034,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -43454,7 +45071,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -43480,7 +45098,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -43506,7 +45125,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -43532,7 +45152,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -43558,7 +45179,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -43584,7 +45206,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -43610,7 +45233,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tmplname", @@ -43636,7 +45260,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tmplnamespace", @@ -43662,7 +45287,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tmplinit", @@ -43688,7 +45314,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "tmpllexize", @@ -43714,7 +45341,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -43750,7 +45378,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -43776,7 +45405,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -43802,7 +45432,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -43828,7 +45459,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -43854,7 +45486,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -43880,7 +45513,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -43906,7 +45540,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typname", @@ -43932,7 +45567,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typnamespace", @@ -43958,7 +45594,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typowner", @@ -43984,7 +45621,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typlen", @@ -44010,7 +45648,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typbyval", @@ -44036,7 +45675,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typtype", @@ -44062,7 +45702,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typcategory", @@ -44088,7 +45729,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typispreferred", @@ -44114,7 +45756,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typisdefined", @@ -44140,7 +45783,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typdelim", @@ -44166,7 +45810,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typrelid", @@ -44192,7 +45837,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typsubscript", @@ -44218,7 +45864,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typelem", @@ -44244,7 +45891,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typarray", @@ -44270,7 +45918,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typinput", @@ -44296,7 +45945,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typoutput", @@ -44322,7 +45972,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typreceive", @@ -44348,7 +45999,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typsend", @@ -44374,7 +46026,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typmodin", @@ -44400,7 +46053,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typmodout", @@ -44426,7 +46080,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typanalyze", @@ -44452,7 +46107,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typalign", @@ -44478,7 +46134,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typstorage", @@ -44504,7 +46161,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typnotnull", @@ -44530,7 +46188,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typbasetype", @@ -44556,7 +46215,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typtypmod", @@ -44582,7 +46242,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typndims", @@ -44608,7 +46269,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typcollation", @@ -44634,7 +46296,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typdefaultbin", @@ -44660,7 +46323,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typdefault", @@ -44686,7 +46350,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "typacl", @@ -44712,7 +46377,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -44748,7 +46414,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usesysid", @@ -44774,7 +46441,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usecreatedb", @@ -44800,7 +46468,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usesuper", @@ -44826,7 +46495,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "userepl", @@ -44852,7 +46522,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usebypassrls", @@ -44878,7 +46549,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "passwd", @@ -44904,7 +46576,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "valuntil", @@ -44930,7 +46603,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "useconfig", @@ -44956,7 +46630,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -44992,7 +46667,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -45018,7 +46694,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -45044,7 +46721,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -45070,7 +46748,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -45096,7 +46775,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -45122,7 +46802,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "oid", @@ -45148,7 +46829,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umuser", @@ -45174,7 +46856,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umserver", @@ -45200,7 +46883,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umoptions", @@ -45226,7 +46910,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -45262,7 +46947,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvid", @@ -45288,7 +46974,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvname", @@ -45314,7 +47001,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umuser", @@ -45340,7 +47028,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "usename", @@ -45366,7 +47055,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umoptions", @@ -45392,7 +47082,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -45428,7 +47119,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "viewname", @@ -45454,7 +47146,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "viewowner", @@ -45480,7 +47173,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "definition", @@ -45506,7 +47200,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -45550,7 +47245,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwowner", @@ -45576,7 +47272,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "fdwoptions", @@ -45602,7 +47299,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_catalog", @@ -45628,7 +47326,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_name", @@ -45654,7 +47353,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "authorization_identifier", @@ -45680,7 +47380,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_language", @@ -45706,7 +47407,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -45742,7 +47444,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvoptions", @@ -45768,7 +47471,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_catalog", @@ -45794,7 +47498,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -45820,7 +47525,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_catalog", @@ -45846,7 +47552,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_name", @@ -45872,7 +47579,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_type", @@ -45898,7 +47606,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_version", @@ -45924,7 +47633,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "authorization_identifier", @@ -45950,7 +47660,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -45986,7 +47697,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "relname", @@ -46012,7 +47724,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attname", @@ -46038,7 +47751,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attfdwoptions", @@ -46064,7 +47778,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -46100,7 +47815,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_table_schema", @@ -46126,7 +47842,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_table_name", @@ -46152,7 +47869,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ftoptions", @@ -46178,7 +47896,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_catalog", @@ -46204,7 +47923,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -46230,7 +47950,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "authorization_identifier", @@ -46256,7 +47977,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -46292,7 +48014,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umoptions", @@ -46318,7 +48041,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "umuser", @@ -46344,7 +48068,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "authorization_identifier", @@ -46370,7 +48095,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_catalog", @@ -46396,7 +48122,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -46422,7 +48149,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "srvowner", @@ -46448,7 +48176,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -46484,7 +48213,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "role_name", @@ -46510,7 +48240,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -46536,7 +48267,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -46572,7 +48304,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "role_name", @@ -46598,7 +48331,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -46624,7 +48358,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -46660,7 +48395,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -46686,7 +48422,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -46712,7 +48449,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attribute_name", @@ -46738,7 +48476,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordinal_position", @@ -46764,7 +48503,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attribute_default", @@ -46790,7 +48530,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_nullable", @@ -46816,7 +48557,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -46842,7 +48584,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -46868,7 +48611,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -46894,7 +48638,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -46920,7 +48665,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -46946,7 +48692,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -46972,7 +48719,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -46998,7 +48746,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -47024,7 +48773,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -47050,7 +48800,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -47076,7 +48827,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -47102,7 +48854,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -47128,7 +48881,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -47154,7 +48908,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -47180,7 +48935,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -47206,7 +48962,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attribute_udt_catalog", @@ -47232,7 +48989,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attribute_udt_schema", @@ -47258,7 +49016,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "attribute_udt_name", @@ -47284,7 +49043,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_catalog", @@ -47310,7 +49070,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_schema", @@ -47336,7 +49097,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_name", @@ -47362,7 +49124,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_cardinality", @@ -47388,7 +49151,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -47414,7 +49178,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_derived_reference_attribute", @@ -47440,7 +49205,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -47476,7 +49242,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -47502,7 +49269,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -47528,7 +49296,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_repertoire", @@ -47554,7 +49323,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "form_of_use", @@ -47580,7 +49350,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_collate_catalog", @@ -47606,7 +49377,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_collate_schema", @@ -47632,7 +49404,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_collate_name", @@ -47658,7 +49431,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -47694,7 +49468,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -47720,7 +49495,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -47746,7 +49522,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_catalog", @@ -47772,7 +49549,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -47798,7 +49576,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -47824,7 +49603,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -47860,7 +49640,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -47886,7 +49667,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -47912,7 +49694,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "check_clause", @@ -47938,7 +49721,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -47974,7 +49758,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -48000,7 +49785,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -48026,7 +49812,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -48052,7 +49839,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -48078,7 +49866,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -48104,7 +49893,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -48140,7 +49930,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -48166,7 +49957,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -48192,7 +49984,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "pad_attribute", @@ -48218,7 +50011,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -48254,7 +50048,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -48280,7 +50075,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -48306,7 +50102,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -48332,7 +50129,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dependent_column", @@ -48358,7 +50156,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -48394,7 +50193,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_schema", @@ -48420,7 +50220,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_name", @@ -48446,7 +50247,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -48472,7 +50274,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -48498,7 +50301,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -48524,7 +50328,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -48550,7 +50355,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -48586,7 +50392,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -48612,7 +50419,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -48638,7 +50446,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -48664,7 +50473,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_name", @@ -48690,7 +50500,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_value", @@ -48716,7 +50527,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -48752,7 +50564,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -48778,7 +50591,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -48804,7 +50618,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -48830,7 +50645,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -48856,7 +50672,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -48882,7 +50699,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -48908,7 +50726,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -48934,7 +50753,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -48970,7 +50790,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -48996,7 +50817,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -49022,7 +50844,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -49048,7 +50871,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -49074,7 +50898,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -49100,7 +50925,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -49126,7 +50952,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -49162,7 +50989,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -49188,7 +51016,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -49214,7 +51043,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -49240,7 +51070,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordinal_position", @@ -49266,7 +51097,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_default", @@ -49292,7 +51124,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_nullable", @@ -49318,7 +51151,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -49344,7 +51178,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -49370,7 +51205,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -49396,7 +51232,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -49422,7 +51259,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -49448,7 +51286,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -49474,7 +51313,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -49500,7 +51340,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -49526,7 +51367,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -49552,7 +51394,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -49578,7 +51421,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -49604,7 +51448,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -49630,7 +51475,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -49656,7 +51502,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -49682,7 +51529,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -49708,7 +51556,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_catalog", @@ -49734,7 +51583,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_schema", @@ -49760,7 +51610,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_name", @@ -49786,7 +51637,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -49812,7 +51664,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -49838,7 +51691,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -49864,7 +51718,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_catalog", @@ -49890,7 +51745,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_schema", @@ -49916,7 +51772,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_name", @@ -49942,7 +51799,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_cardinality", @@ -49968,7 +51826,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -49994,7 +51853,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_self_referencing", @@ -50020,7 +51880,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_identity", @@ -50046,7 +51907,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "identity_generation", @@ -50072,7 +51934,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "identity_start", @@ -50098,7 +51961,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "identity_increment", @@ -50124,7 +51988,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "identity_maximum", @@ -50150,7 +52015,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "identity_minimum", @@ -50176,7 +52042,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "identity_cycle", @@ -50202,7 +52069,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_generated", @@ -50228,7 +52096,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "generation_expression", @@ -50254,7 +52123,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_updatable", @@ -50280,7 +52150,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -50316,7 +52187,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -50342,7 +52214,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -50368,7 +52241,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -50394,7 +52268,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_catalog", @@ -50420,7 +52295,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -50446,7 +52322,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -50472,7 +52349,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -50508,7 +52386,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -50534,7 +52413,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -50560,7 +52440,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_catalog", @@ -50586,7 +52467,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -50612,7 +52494,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -50638,7 +52521,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -50674,7 +52558,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_schema", @@ -50700,7 +52585,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_name", @@ -50726,7 +52612,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_type", @@ -50752,7 +52639,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -50778,7 +52666,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -50814,7 +52703,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -50840,7 +52730,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -50866,7 +52757,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_catalog", @@ -50892,7 +52784,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_schema", @@ -50918,7 +52811,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_name", @@ -50944,7 +52838,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_deferrable", @@ -50970,7 +52865,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "initially_deferred", @@ -50996,7 +52892,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -51032,7 +52929,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -51058,7 +52956,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -51084,7 +52983,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_catalog", @@ -51110,7 +53010,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_schema", @@ -51136,7 +53037,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_name", @@ -51162,7 +53064,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -51198,7 +53101,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_schema", @@ -51224,7 +53128,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_name", @@ -51250,7 +53155,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -51276,7 +53182,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -51302,7 +53209,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -51328,7 +53236,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -51354,7 +53263,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -51380,7 +53290,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -51406,7 +53317,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -51432,7 +53344,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -51458,7 +53371,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -51484,7 +53398,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -51510,7 +53425,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -51536,7 +53452,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -51562,7 +53479,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -51588,7 +53506,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -51614,7 +53533,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -51640,7 +53560,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_default", @@ -51666,7 +53587,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -51692,7 +53614,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -51718,7 +53641,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -51744,7 +53668,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_catalog", @@ -51770,7 +53695,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_schema", @@ -51796,7 +53722,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_name", @@ -51822,7 +53749,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_cardinality", @@ -51848,7 +53776,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -51874,7 +53803,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -51910,7 +53840,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_schema", @@ -51936,7 +53867,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_name", @@ -51962,7 +53894,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_type", @@ -51988,7 +53921,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collection_type_identifier", @@ -52014,7 +53948,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -52040,7 +53975,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -52066,7 +54002,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -52092,7 +54029,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -52118,7 +54056,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -52144,7 +54083,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -52170,7 +54110,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -52196,7 +54137,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -52222,7 +54164,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -52248,7 +54191,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -52274,7 +54218,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -52300,7 +54245,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -52326,7 +54272,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -52352,7 +54299,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -52378,7 +54326,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -52404,7 +54353,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "domain_default", @@ -52430,7 +54380,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -52456,7 +54407,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -52482,7 +54434,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -52508,7 +54461,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_catalog", @@ -52534,7 +54488,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_schema", @@ -52560,7 +54515,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_name", @@ -52586,7 +54542,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_cardinality", @@ -52612,7 +54569,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -52638,7 +54596,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -52674,7 +54633,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -52710,7 +54670,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_name", @@ -52736,7 +54697,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_name", @@ -52762,7 +54724,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_value", @@ -52788,7 +54751,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -52824,7 +54788,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_name", @@ -52850,7 +54815,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "authorization_identifier", @@ -52876,7 +54842,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "library_name", @@ -52902,7 +54869,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_language", @@ -52928,7 +54896,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -52964,7 +54933,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -52990,7 +54960,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_name", @@ -53016,7 +54987,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_value", @@ -53042,7 +55014,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -53078,7 +55051,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -53104,7 +55078,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_catalog", @@ -53130,7 +55105,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_data_wrapper_name", @@ -53156,7 +55132,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_type", @@ -53182,7 +55159,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_version", @@ -53208,7 +55186,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "authorization_identifier", @@ -53234,7 +55213,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -53270,7 +55250,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_table_schema", @@ -53296,7 +55277,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_table_name", @@ -53322,7 +55304,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_name", @@ -53348,7 +55331,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_value", @@ -53374,7 +55358,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -53410,7 +55395,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_table_schema", @@ -53436,7 +55422,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_table_name", @@ -53462,7 +55449,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_catalog", @@ -53488,7 +55476,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -53514,7 +55503,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -53550,7 +55540,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -53586,7 +55577,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -53612,7 +55604,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -53638,7 +55631,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -53664,7 +55658,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -53690,7 +55685,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -53716,7 +55712,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -53742,7 +55739,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordinal_position", @@ -53768,7 +55766,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "position_in_unique_constraint", @@ -53794,7 +55793,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -53830,7 +55830,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -53856,7 +55857,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -53882,7 +55884,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordinal_position", @@ -53908,7 +55911,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parameter_mode", @@ -53934,7 +55938,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_result", @@ -53960,7 +55965,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "as_locator", @@ -53986,7 +55992,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parameter_name", @@ -54012,7 +56019,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -54038,7 +56046,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -54064,7 +56073,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -54090,7 +56100,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -54116,7 +56127,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -54142,7 +56154,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -54168,7 +56181,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -54194,7 +56208,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -54220,7 +56235,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -54246,7 +56262,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -54272,7 +56289,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -54298,7 +56316,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -54324,7 +56343,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -54350,7 +56370,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -54376,7 +56397,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -54402,7 +56424,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -54428,7 +56451,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -54454,7 +56478,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -54480,7 +56505,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_catalog", @@ -54506,7 +56532,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_schema", @@ -54532,7 +56559,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_name", @@ -54558,7 +56586,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_cardinality", @@ -54584,7 +56613,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -54610,7 +56640,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parameter_default", @@ -54636,7 +56667,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -54672,7 +56704,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -54698,7 +56731,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -54724,7 +56758,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "unique_constraint_catalog", @@ -54750,7 +56785,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "unique_constraint_schema", @@ -54776,7 +56812,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "unique_constraint_name", @@ -54802,7 +56839,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "match_option", @@ -54828,7 +56866,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "update_rule", @@ -54854,7 +56893,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "delete_rule", @@ -54880,7 +56920,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -54916,7 +56957,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -54942,7 +56984,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -54968,7 +57011,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -54994,7 +57038,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -55020,7 +57065,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -55046,7 +57092,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -55072,7 +57119,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -55098,7 +57146,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -55134,7 +57183,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -55160,7 +57210,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_catalog", @@ -55186,7 +57237,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -55212,7 +57264,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -55238,7 +57291,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -55264,7 +57318,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -55290,7 +57345,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -55316,7 +57372,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -55342,7 +57399,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -55368,7 +57426,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -55404,7 +57463,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -55430,7 +57490,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -55456,7 +57517,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -55482,7 +57544,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -55508,7 +57571,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -55534,7 +57598,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -55560,7 +57625,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "with_hierarchy", @@ -55586,7 +57652,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -55622,7 +57689,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -55648,7 +57716,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -55674,7 +57743,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -55700,7 +57770,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -55726,7 +57797,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -55752,7 +57824,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -55778,7 +57851,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -55814,7 +57888,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -55840,7 +57915,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_catalog", @@ -55866,7 +57942,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_schema", @@ -55892,7 +57969,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_name", @@ -55918,7 +57996,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_type", @@ -55944,7 +58023,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -55970,7 +58050,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -55996,7 +58077,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -56032,7 +58114,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -56058,7 +58141,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -56084,7 +58168,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -56110,7 +58195,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -56136,7 +58222,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -56162,7 +58249,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -56188,7 +58276,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -56214,7 +58303,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -56240,7 +58330,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -56266,7 +58357,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -56302,7 +58394,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -56328,7 +58421,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_catalog", @@ -56354,7 +58448,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -56380,7 +58475,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -56406,7 +58502,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -56432,7 +58529,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -56458,7 +58556,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -56484,7 +58583,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -56510,7 +58610,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -56536,7 +58637,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -56572,7 +58674,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -56598,7 +58701,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -56624,7 +58728,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -56650,7 +58755,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -56676,7 +58782,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -56702,7 +58809,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -56738,7 +58846,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -56764,7 +58873,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -56790,7 +58900,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -56816,7 +58927,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -56842,7 +58954,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -56868,7 +58981,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequence_catalog", @@ -56894,7 +59008,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequence_schema", @@ -56920,7 +59035,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequence_name", @@ -56946,7 +59062,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -56982,7 +59099,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -57008,7 +59126,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -57034,7 +59153,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -57060,7 +59180,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -57086,7 +59207,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -57112,7 +59234,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -57138,7 +59261,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -57164,7 +59288,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -57190,7 +59315,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -57226,7 +59352,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -57252,7 +59379,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -57278,7 +59406,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_catalog", @@ -57304,7 +59433,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_schema", @@ -57330,7 +59460,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_name", @@ -57356,7 +59487,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_type", @@ -57382,7 +59514,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "module_catalog", @@ -57408,7 +59541,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "module_schema", @@ -57434,7 +59568,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "module_name", @@ -57460,7 +59595,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -57486,7 +59622,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -57512,7 +59649,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -57538,7 +59676,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -57564,7 +59703,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -57590,7 +59730,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -57616,7 +59757,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -57642,7 +59784,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -57668,7 +59811,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -57694,7 +59838,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -57720,7 +59865,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -57746,7 +59892,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -57772,7 +59919,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -57798,7 +59946,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -57824,7 +59973,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -57850,7 +60000,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -57876,7 +60027,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -57902,7 +60054,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -57928,7 +60081,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "type_udt_catalog", @@ -57954,7 +60108,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "type_udt_schema", @@ -57980,7 +60135,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "type_udt_name", @@ -58006,7 +60162,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_catalog", @@ -58032,7 +60189,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_schema", @@ -58058,7 +60216,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "scope_name", @@ -58084,7 +60243,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_cardinality", @@ -58110,7 +60270,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "dtd_identifier", @@ -58136,7 +60297,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_body", @@ -58162,7 +60324,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "routine_definition", @@ -58188,7 +60351,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "external_name", @@ -58214,7 +60378,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "external_language", @@ -58240,7 +60405,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "parameter_style", @@ -58266,7 +60432,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_deterministic", @@ -58292,7 +60459,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sql_data_access", @@ -58318,7 +60486,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_null_call", @@ -58344,7 +60513,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sql_path", @@ -58370,7 +60540,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schema_level_routine", @@ -58396,7 +60567,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "max_dynamic_result_sets", @@ -58422,7 +60594,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_user_defined_cast", @@ -58448,7 +60621,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_implicitly_invocable", @@ -58474,7 +60648,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "security_type", @@ -58500,7 +60675,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "to_sql_specific_catalog", @@ -58526,7 +60702,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "to_sql_specific_schema", @@ -58552,7 +60729,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "to_sql_specific_name", @@ -58578,7 +60756,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "as_locator", @@ -58604,7 +60783,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "created", @@ -58630,7 +60810,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "last_altered", @@ -58656,7 +60837,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "new_savepoint_level", @@ -58682,7 +60864,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_udt_dependent", @@ -58708,7 +60891,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_from_data_type", @@ -58734,7 +60918,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_as_locator", @@ -58760,7 +60945,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_char_max_length", @@ -58786,7 +60972,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_char_octet_length", @@ -58812,7 +60999,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_char_set_catalog", @@ -58838,7 +61026,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_char_set_schema", @@ -58864,7 +61053,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_char_set_name", @@ -58890,7 +61080,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_collation_catalog", @@ -58916,7 +61107,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_collation_schema", @@ -58942,7 +61134,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_collation_name", @@ -58968,7 +61161,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_numeric_precision", @@ -58994,7 +61188,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_numeric_precision_radix", @@ -59020,7 +61215,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_numeric_scale", @@ -59046,7 +61242,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_datetime_precision", @@ -59072,7 +61269,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_interval_type", @@ -59098,7 +61296,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_interval_precision", @@ -59124,7 +61323,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_type_udt_catalog", @@ -59150,7 +61350,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_type_udt_schema", @@ -59176,7 +61377,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_type_udt_name", @@ -59202,7 +61404,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_scope_catalog", @@ -59228,7 +61431,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_scope_schema", @@ -59254,7 +61458,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_scope_name", @@ -59280,7 +61485,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_maximum_cardinality", @@ -59306,7 +61512,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "result_cast_dtd_identifier", @@ -59332,7 +61539,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -59368,7 +61576,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schema_name", @@ -59394,7 +61603,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "schema_owner", @@ -59420,7 +61630,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_character_set_catalog", @@ -59446,7 +61657,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_character_set_schema", @@ -59472,7 +61684,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "default_character_set_name", @@ -59498,7 +61711,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sql_path", @@ -59524,7 +61738,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -59560,7 +61775,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequence_schema", @@ -59586,7 +61802,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sequence_name", @@ -59612,7 +61829,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -59638,7 +61856,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -59664,7 +61883,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -59690,7 +61910,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -59716,7 +61937,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "start_value", @@ -59742,7 +61964,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "minimum_value", @@ -59768,7 +61991,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "maximum_value", @@ -59794,7 +62018,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "increment", @@ -59820,7 +62045,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cycle_option", @@ -59846,7 +62072,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -59882,7 +62109,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -59908,7 +62136,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -59934,7 +62163,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -59960,7 +62190,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -59986,7 +62217,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -60012,7 +62244,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "feature_id", @@ -60038,7 +62271,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "feature_name", @@ -60064,7 +62298,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sub_feature_id", @@ -60090,7 +62325,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sub_feature_name", @@ -60116,7 +62352,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_supported", @@ -60142,7 +62379,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_verified_by", @@ -60168,7 +62406,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "comments", @@ -60194,7 +62433,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -60230,7 +62470,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -60256,7 +62497,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -60282,7 +62524,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -60308,7 +62551,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -60334,7 +62578,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -60360,7 +62605,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "implementation_info_id", @@ -60386,7 +62632,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "implementation_info_name", @@ -60412,7 +62659,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "integer_value", @@ -60438,7 +62686,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_value", @@ -60464,7 +62713,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "comments", @@ -60490,7 +62740,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -60526,7 +62777,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -60552,7 +62804,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -60578,7 +62831,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -60604,7 +62858,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -60630,7 +62885,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -60656,7 +62912,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "feature_id", @@ -60682,7 +62939,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "feature_name", @@ -60708,7 +62966,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_supported", @@ -60734,7 +62993,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_verified_by", @@ -60760,7 +63020,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "comments", @@ -60786,7 +63047,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -60822,7 +63084,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmax", @@ -60848,7 +63111,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmax", @@ -60874,7 +63138,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "cmin", @@ -60900,7 +63165,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "xmin", @@ -60926,7 +63192,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ctid", @@ -60952,7 +63219,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sizing_id", @@ -60978,7 +63246,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "sizing_name", @@ -61004,7 +63273,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "supported_value", @@ -61030,7 +63300,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "comments", @@ -61056,7 +63327,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -61092,7 +63364,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_schema", @@ -61118,7 +63391,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_name", @@ -61144,7 +63418,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -61170,7 +63445,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -61196,7 +63472,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -61222,7 +63499,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "constraint_type", @@ -61248,7 +63526,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_deferrable", @@ -61274,7 +63553,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "initially_deferred", @@ -61300,7 +63580,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "enforced", @@ -61326,7 +63607,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "nulls_distinct", @@ -61352,7 +63634,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -61388,7 +63671,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -61414,7 +63698,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -61440,7 +63725,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -61466,7 +63752,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -61492,7 +63779,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -61518,7 +63806,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -61544,7 +63833,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "with_hierarchy", @@ -61570,7 +63860,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -61606,7 +63897,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -61632,7 +63924,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -61658,7 +63951,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_type", @@ -61684,7 +63978,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "self_referencing_column_name", @@ -61710,7 +64005,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reference_generation", @@ -61736,7 +64032,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_defined_type_catalog", @@ -61762,7 +64059,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_defined_type_schema", @@ -61788,7 +64086,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_defined_type_name", @@ -61814,7 +64113,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_insertable_into", @@ -61840,7 +64140,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_typed", @@ -61866,7 +64167,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "commit_action", @@ -61892,7 +64194,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -61928,7 +64231,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -61954,7 +64258,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -61980,7 +64285,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_catalog", @@ -62006,7 +64312,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -62032,7 +64339,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -62058,7 +64366,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "group_name", @@ -62084,7 +64393,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "transform_type", @@ -62110,7 +64420,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -62146,7 +64457,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trigger_schema", @@ -62172,7 +64484,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trigger_name", @@ -62198,7 +64511,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_catalog", @@ -62224,7 +64538,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_schema", @@ -62250,7 +64565,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_table", @@ -62276,7 +64592,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_column", @@ -62302,7 +64619,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -62338,7 +64656,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trigger_schema", @@ -62364,7 +64683,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "trigger_name", @@ -62390,7 +64710,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_manipulation", @@ -62416,7 +64737,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_catalog", @@ -62442,7 +64764,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_schema", @@ -62468,7 +64791,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "event_object_table", @@ -62494,7 +64818,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_order", @@ -62520,7 +64845,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_condition", @@ -62546,7 +64872,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_statement", @@ -62572,7 +64899,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_orientation", @@ -62598,7 +64926,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_timing", @@ -62624,7 +64953,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_reference_old_table", @@ -62650,7 +64980,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_reference_new_table", @@ -62676,7 +65007,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_reference_old_row", @@ -62702,7 +65034,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "action_reference_new_row", @@ -62728,7 +65061,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "created", @@ -62754,7 +65088,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -62790,7 +65125,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -62816,7 +65152,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_catalog", @@ -62842,7 +65179,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_schema", @@ -62868,7 +65206,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "udt_name", @@ -62894,7 +65233,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -62920,7 +65260,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -62946,7 +65287,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -62982,7 +65324,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "grantee", @@ -63008,7 +65351,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_catalog", @@ -63034,7 +65378,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_schema", @@ -63060,7 +65405,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_name", @@ -63086,7 +65432,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "object_type", @@ -63112,7 +65459,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "privilege_type", @@ -63138,7 +65486,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_grantable", @@ -63164,7 +65513,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -63200,7 +65550,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_defined_type_schema", @@ -63226,7 +65577,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_defined_type_name", @@ -63252,7 +65604,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "user_defined_type_category", @@ -63278,7 +65631,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_instantiable", @@ -63304,7 +65658,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_final", @@ -63330,7 +65685,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordering_form", @@ -63356,7 +65712,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordering_category", @@ -63382,7 +65739,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordering_routine_catalog", @@ -63408,7 +65766,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordering_routine_schema", @@ -63434,7 +65793,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ordering_routine_name", @@ -63460,7 +65820,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "reference_type", @@ -63486,7 +65847,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "data_type", @@ -63512,7 +65874,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_maximum_length", @@ -63538,7 +65901,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_octet_length", @@ -63564,7 +65928,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_catalog", @@ -63590,7 +65955,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_schema", @@ -63616,7 +65982,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "character_set_name", @@ -63642,7 +66009,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_catalog", @@ -63668,7 +66036,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_schema", @@ -63694,7 +66063,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "collation_name", @@ -63720,7 +66090,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision", @@ -63746,7 +66117,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_precision_radix", @@ -63772,7 +66144,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "numeric_scale", @@ -63798,7 +66171,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "datetime_precision", @@ -63824,7 +66198,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_type", @@ -63850,7 +66225,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "interval_precision", @@ -63876,7 +66252,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "source_dtd_identifier", @@ -63902,7 +66279,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "ref_dtd_identifier", @@ -63928,7 +66306,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -63964,7 +66343,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_catalog", @@ -63990,7 +66370,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -64016,7 +66397,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_name", @@ -64042,7 +66424,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "option_value", @@ -64068,7 +66451,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -64104,7 +66488,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_catalog", @@ -64130,7 +66515,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "foreign_server_name", @@ -64156,7 +66542,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -64192,7 +66579,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "view_schema", @@ -64218,7 +66606,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "view_name", @@ -64244,7 +66633,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -64270,7 +66660,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -64296,7 +66687,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -64322,7 +66714,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "column_name", @@ -64348,7 +66741,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -64384,7 +66778,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -64410,7 +66805,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -64436,7 +66832,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_catalog", @@ -64462,7 +66859,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_schema", @@ -64488,7 +66886,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "specific_name", @@ -64514,7 +66913,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -64550,7 +66950,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "view_schema", @@ -64576,7 +66977,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "view_name", @@ -64602,7 +67004,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_catalog", @@ -64628,7 +67031,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -64654,7 +67058,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -64680,7 +67085,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -64716,7 +67122,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_schema", @@ -64742,7 +67149,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "table_name", @@ -64768,7 +67176,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "view_definition", @@ -64794,7 +67203,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "check_option", @@ -64820,7 +67230,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_updatable", @@ -64846,7 +67257,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_insertable_into", @@ -64872,7 +67284,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_trigger_updatable", @@ -64898,7 +67311,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_trigger_deletable", @@ -64924,7 +67338,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "is_trigger_insertable_into", @@ -64950,7 +67365,8 @@ "embed_table": null, "original_name": "", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "comment": "" @@ -64991,7 +67407,8 @@ "embed_table": null, "original_name": "id", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "name", @@ -65017,7 +67434,8 @@ "embed_table": null, "original_name": "name", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bio", @@ -65043,7 +67461,8 @@ "embed_table": null, "original_name": "bio", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "params": [ @@ -65073,7 +67492,8 @@ "embed_table": null, "original_name": "id", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "=" } } ], @@ -65110,7 +67530,8 @@ "embed_table": null, "original_name": "id", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "name", @@ -65136,7 +67557,8 @@ "embed_table": null, "original_name": "name", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bio", @@ -65162,7 +67584,8 @@ "embed_table": null, "original_name": "bio", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "params": [], @@ -65199,7 +67622,8 @@ "embed_table": null, "original_name": "id", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "name", @@ -65225,7 +67649,8 @@ "embed_table": null, "original_name": "name", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" }, { "name": "bio", @@ -65251,7 +67676,8 @@ "embed_table": null, "original_name": "bio", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } ], "params": [ @@ -65281,7 +67707,8 @@ "embed_table": null, "original_name": "name", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } }, { @@ -65310,7 +67737,8 @@ "embed_table": null, "original_name": "bio", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "" } } ], @@ -65354,7 +67782,8 @@ "embed_table": null, "original_name": "id", "unsigned": false, - "array_dims": 0 + "array_dims": 0, + "dynamic_op": "=" } } ], diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql index 011b0ddefc..17ac6391c5 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql @@ -1,6 +1,6 @@ -- name: ListRecords :dynamicmany --- @dynamic name eq --- @dynamic age gt +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -8,13 +8,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND age > sqlc.arg(age); -- name: SearchRecords :dynamicmany --- @dynamic pattern like +-- @dynamic pattern SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name LIKE sqlc.arg(pattern); -- name: FilterRecords :dynamicmany --- @dynamic ids in +-- @dynamic ids SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); @@ -22,8 +22,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, status, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -34,8 +34,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- name: GetRecord :dynamicone -- GetRecord returns a single tenant record, optionally narrowed by an exact -- name and a minimum age. QueryRow yields the first matching row. --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql index 0a40be91de..6df5ffed8f 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql @@ -1,6 +1,6 @@ -- name: ListRecords :dynamicmany --- @dynamic name eq --- @dynamic age gt +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -10,8 +10,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, status, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -22,8 +22,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- name: GetRecord :dynamicone -- GetRecord returns a single tenant record, optionally narrowed by an exact -- name and a minimum age. QueryRow yields the first matching row. --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) diff --git a/internal/metadata/meta.go b/internal/metadata/meta.go index 555d2541d9..bb33cac4b2 100644 --- a/internal/metadata/meta.go +++ b/internal/metadata/meta.go @@ -180,10 +180,8 @@ func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, m case constants.QueryFlagDynamic: s.Scan() name := s.Text() - s.Scan() - op := s.Text() if name != "" { - dynamicParams[name] = op + dynamicParams[name] = "" } case constants.QueryFlagDynamicSort: for s.Scan() { diff --git a/internal/plugin/codegen.pb.go b/internal/plugin/codegen.pb.go index 525ffc72ef..ca2568e235 100644 --- a/internal/plugin/codegen.pb.go +++ b/internal/plugin/codegen.pb.go @@ -657,6 +657,7 @@ type Column struct { OriginalName string `protobuf:"bytes,15,opt,name=original_name,json=originalName,proto3" json:"original_name,omitempty"` Unsigned bool `protobuf:"varint,16,opt,name=unsigned,proto3" json:"unsigned,omitempty"` ArrayDims int32 `protobuf:"varint,17,opt,name=array_dims,json=arrayDims,proto3" json:"array_dims,omitempty"` + DynamicOp string `protobuf:"bytes,18,opt,name=dynamic_op,json=dynamicOp,proto3" json:"dynamic_op,omitempty"` } func (x *Column) Reset() { @@ -803,6 +804,13 @@ func (x *Column) GetArrayDims() int32 { return 0 } +func (x *Column) GetDynamicOp() string { + if x != nil { + return x.DynamicOp + } + return "" +} + type Query struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1275,7 +1283,7 @@ var file_plugin_codegen_proto_rawDesc = []byte{ 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x04, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, @@ -1308,63 +1316,65 @@ var file_plugin_codegen_proto_rawDesc = []byte{ 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x6d, 0x73, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x44, 0x69, 0x6d, 0x73, 0x22, 0x94, - 0x02, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, - 0x6d, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, - 0x74, 0x6f, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, 0x5f, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x4b, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, - 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, - 0x27, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x71, 0x6c, 0x63, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x10, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x22, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x32, 0x4f, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x42, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x73, 0x71, 0x6c, 0x63, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xa2, 0x02, 0x03, - 0x50, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xca, 0x02, 0x06, 0x50, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xe2, 0x02, 0x12, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x44, 0x69, 0x6d, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x70, 0x22, 0x94, 0x02, + 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, + 0x64, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, + 0x6f, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0x4b, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x27, + 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, + 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x22, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x32, 0x4f, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x12, 0x17, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x42, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x71, 0x6c, 0x63, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x50, + 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xca, 0x02, 0x06, 0x50, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0xe2, 0x02, 0x12, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protos/plugin/codegen.proto b/protos/plugin/codegen.proto index e6faf19bad..cdaf9aa2f5 100644 --- a/protos/plugin/codegen.proto +++ b/protos/plugin/codegen.proto @@ -100,6 +100,7 @@ message Column { string original_name = 15; bool unsigned = 16; int32 array_dims = 17; + string dynamic_op = 18; } message Query { From de821381d569d16436f072b20369c203465f6dd8 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Tue, 30 Jun 2026 23:14:45 -0400 Subject: [PATCH 15/20] fix: forgot to include examples --- examples/dynamicquery/pgx/query.sql | 18 +++++++++--------- examples/dynamicquery/postgresql/query.sql | 18 +++++++++--------- .../dynamic_invalid_operator/stdlib/query.sql | 7 +++++++ .../dynamic_invalid_operator/stdlib/schema.sql | 5 +++++ .../dynamic_invalid_operator/stdlib/sqlc.json | 11 +++++++++++ .../dynamic_invalid_operator/stdlib/stderr.txt | 2 ++ 6 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 internal/endtoend/testdata/dynamic_invalid_operator/stdlib/query.sql create mode 100644 internal/endtoend/testdata/dynamic_invalid_operator/stdlib/schema.sql create mode 100644 internal/endtoend/testdata/dynamic_invalid_operator/stdlib/sqlc.json create mode 100644 internal/endtoend/testdata/dynamic_invalid_operator/stdlib/stderr.txt diff --git a/examples/dynamicquery/pgx/query.sql b/examples/dynamicquery/pgx/query.sql index 9c1a7b215e..4ad4687b28 100644 --- a/examples/dynamicquery/pgx/query.sql +++ b/examples/dynamicquery/pgx/query.sql @@ -1,6 +1,6 @@ -- name: ListRecords :dynamicmany --- @dynamic name eq --- @dynamic age gt +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -8,13 +8,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND age > sqlc.arg(age); -- name: SearchRecords :dynamicmany --- @dynamic pattern like +-- @dynamic pattern SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name LIKE sqlc.arg(pattern); -- name: FilterRecords :dynamicmany --- @dynamic ids in +-- @dynamic ids SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); @@ -23,8 +23,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- GetRecord returns a single tenant record, optionally narrowed by an exact -- name and a minimum age, and optionally ordered. QueryRow yields the first -- matching row (order it to make "first" deterministic). --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -34,8 +34,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, status, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -47,7 +47,7 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- GetRecordIn returns the first tenant record whose id is in an optional set, -- exercising sqlc.slice IN-expansion on the single-row path. Order it to make -- "first" deterministic. --- @dynamic ids in +-- @dynamic ids -- @dynamic-sort id SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql index 9c1a7b215e..4ad4687b28 100644 --- a/examples/dynamicquery/postgresql/query.sql +++ b/examples/dynamicquery/postgresql/query.sql @@ -1,6 +1,6 @@ -- name: ListRecords :dynamicmany --- @dynamic name eq --- @dynamic age gt +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -8,13 +8,13 @@ WHERE tenant_id = sqlc.arg(tenant_id) AND age > sqlc.arg(age); -- name: SearchRecords :dynamicmany --- @dynamic pattern like +-- @dynamic pattern SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name LIKE sqlc.arg(pattern); -- name: FilterRecords :dynamicmany --- @dynamic ids in +-- @dynamic ids SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); @@ -23,8 +23,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- GetRecord returns a single tenant record, optionally narrowed by an exact -- name and a minimum age, and optionally ordered. QueryRow yields the first -- matching row (order it to make "first" deterministic). --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -34,8 +34,8 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- name: ListActiveRecords :dynamicmany -- ListActiveRecords returns a tenant's records for a given status, optionally -- narrowed by an exact name and a minimum age, and optionally ordered. --- @dynamic name eq --- @dynamic age gte +-- @dynamic name +-- @dynamic age -- @dynamic-sort name, age, created_at SELECT id, name, age, status, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) @@ -47,7 +47,7 @@ WHERE tenant_id = sqlc.arg(tenant_id) -- GetRecordIn returns the first tenant record whose id is in an optional set, -- exercising sqlc.slice IN-expansion on the single-row path. Order it to make -- "first" deterministic. --- @dynamic ids in +-- @dynamic ids -- @dynamic-sort id SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) diff --git a/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/query.sql b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/query.sql new file mode 100644 index 0000000000..45532c3302 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/query.sql @@ -0,0 +1,7 @@ +-- name: SearchBad :dynamicmany +-- @dynamic pattern +-- The `~` (POSIX regex) operator has no dynamic mapping, so the operator can't +-- be inferred and codegen must fail loudly rather than emit malformed SQL. +SELECT id, name FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name ~ sqlc.arg(pattern); diff --git a/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/schema.sql b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/schema.sql new file mode 100644 index 0000000000..b85cc394af --- /dev/null +++ b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/schema.sql @@ -0,0 +1,5 @@ +CREATE TABLE records ( + id BIGSERIAL PRIMARY KEY, + tenant_id BIGINT NOT NULL, + name TEXT NOT NULL +); diff --git a/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/sqlc.json b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/sqlc.json new file mode 100644 index 0000000000..dbe55e66a6 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/sqlc.json @@ -0,0 +1,11 @@ +{ + "version": "1", + "packages": [ + { + "path": "go", + "name": "querytest", + "schema": "schema.sql", + "queries": "query.sql" + } + ] +} diff --git a/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/stderr.txt b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/stderr.txt new file mode 100644 index 0000000000..c2f7e975e4 --- /dev/null +++ b/internal/endtoend/testdata/dynamic_invalid_operator/stdlib/stderr.txt @@ -0,0 +1,2 @@ +# package querytest +error generating code: dynamic param "pattern": could not infer a comparison operator from the query From afb0d65d310e9b240d2ec22767e254c6dbb8c64c Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 1 Jul 2026 00:40:49 -0400 Subject: [PATCH 16/20] feat: implement proper proto fields for dynamic query params and order by --- internal/cmd/shim.go | 2 + internal/codegen/golang/dynamic.go | 32 - internal/codegen/golang/dynamic_test.go | 63 - internal/codegen/golang/result.go | 22 +- internal/compiler/parse.go | 8 + internal/compiler/query.go | 1 + .../testdata/codegen_json/gen/codegen.json | 7299 +++++++++++------ internal/metadata/meta.go | 16 + internal/metadata/meta_test.go | 67 + internal/plugin/codegen.pb.go | 135 +- protos/plugin/codegen.proto | 2 + 11 files changed, 5049 insertions(+), 2598 deletions(-) delete mode 100644 internal/codegen/golang/dynamic_test.go diff --git a/internal/cmd/shim.go b/internal/cmd/shim.go index 186029eb23..9de35cc5f0 100644 --- a/internal/cmd/shim.go +++ b/internal/cmd/shim.go @@ -165,6 +165,7 @@ func pluginQueries(r *compiler.Result) []*plugin.Query { Params: params, Filename: q.Metadata.Filename, InsertIntoTable: iit, + DynamicOrderBy: q.Metadata.DynamicSort, }) } return out @@ -187,6 +188,7 @@ func pluginQueryColumn(c *compiler.Column) *plugin.Column { IsNamedParam: c.IsNamedParam, IsFuncCall: c.IsFuncCall, IsSqlcSlice: c.IsSqlcSlice, + IsDynamic: c.IsDynamic, DynamicOp: c.DynamicOp, } diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go index 3aa6b02f7b..166b4424e8 100644 --- a/internal/codegen/golang/dynamic.go +++ b/internal/codegen/golang/dynamic.go @@ -1,7 +1,5 @@ package golang -import "strings" - type DynamicQuery struct { StaticCount int Opts []DynamicPredicate @@ -21,33 +19,3 @@ type DynamicSortColumn struct { ConstName string Value string } - -// parseDynamicComments extracts dynamic query annotations from -// a query's comments. The @dynamic param -> operator map and the @dynamic-sort column -// allowlist. It also returns the remaining comments with those annotation lines removed -// to avoid rendering them as Go doc commetns. -func parseDynamicComments(comments []string) (ops map[string]string, sort, filtered []string) { - ops = make(map[string]string) - for _, c := range comments { - fields := strings.Fields(c) - if len(fields) == 0 { - filtered = append(filtered, c) - continue - } - switch fields[0] { - case "@dynamic": - if len(fields) >= 2 { - ops[fields[1]] = "" - } - case "@dynamic-sort": - for _, col := range fields[1:] { - if col = strings.TrimSuffix(col, ","); col != "" { - sort = append(sort, col) - } - } - default: - filtered = append(filtered, c) - } - } - return ops, sort, filtered -} diff --git a/internal/codegen/golang/dynamic_test.go b/internal/codegen/golang/dynamic_test.go deleted file mode 100644 index 897bfc490c..0000000000 --- a/internal/codegen/golang/dynamic_test.go +++ /dev/null @@ -1,63 +0,0 @@ -package golang - -import ( - "reflect" - "testing" -) - -func TestParseDynamicComments(t *testing.T) { - tests := []struct { - name string - comments []string - wantOps map[string]string - wantSort []string - wantFiltered []string - }{ - { - // The operator is now inferred from the query's WHERE clause - // (Column.DynamicOp), so parseDynamicComments only records - // membership; the map values are empty markers. - name: "bare @dynamic marks membership; trailing op is ignored", - comments: []string{ - " @dynamic name", // bare form - " @dynamic age gt", // legacy trailing op is ignored - " @dynamic-sort name, age, created_at", - " ListRecords lists records", - }, - wantOps: map[string]string{"name": "", "age": ""}, - wantSort: []string{"name", "age", "created_at"}, - wantFiltered: []string{" ListRecords lists records"}, - }, - { - name: "no dynamic annotations passes comments through untouched", - comments: []string{ - " GetAuthor returns one author", - }, - wantOps: map[string]string{}, - wantSort: nil, - wantFiltered: []string{" GetAuthor returns one author"}, - }, - { - name: "empty input", - comments: nil, - wantOps: map[string]string{}, - wantSort: nil, - wantFiltered: nil, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ops, sort, filtered := parseDynamicComments(tt.comments) - if !reflect.DeepEqual(ops, tt.wantOps) { - t.Errorf("ops mismatch\n got: %#v\nwant: %#v", ops, tt.wantOps) - } - if !reflect.DeepEqual(sort, tt.wantSort) { - t.Errorf("sort mismatch\n got: %#v\nwant: %#v", sort, tt.wantSort) - } - if !reflect.DeepEqual(filtered, tt.wantFiltered) { - t.Errorf("filtered mismatch\n got: %#v\nwant: %#v", filtered, tt.wantFiltered) - } - }) - } -} diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index 6be8df84b0..c5e026e4bc 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -201,7 +201,7 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En constantName = sdk.LowerTitle(query.Name) } - ops, sortCols, comments := parseDynamicComments(query.Comments) + comments := metadata.StripDynamicComments(query.Comments) if options.EmitSqlAsComment { if len(comments) == 0 { comments = append(comments, query.Name) @@ -231,16 +231,12 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En qpl := int(*options.QueryParameterLimit) - staticParams := query.Params - var dynamicParams []*plugin.Parameter - if len(ops) > 0 { - staticParams = nil - for _, p := range query.Params { - if _, ok := ops[p.Column.GetName()]; ok { - dynamicParams = append(dynamicParams, p) - } else { - staticParams = append(staticParams, p) - } + var staticParams, dynamicParams []*plugin.Parameter + for _, p := range query.Params { + if p.Column.GetIsDynamic() { + dynamicParams = append(dynamicParams, p) + } else { + staticParams = append(staticParams, p) } } @@ -282,7 +278,7 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En } } - if len(dynamicParams) > 0 || len(sortCols) > 0 { + if len(dynamicParams) > 0 || len(query.GetDynamicOrderBy()) > 0 { dq := &DynamicQuery{StaticCount: len(staticParams)} for _, p := range dynamicParams { isSlice := p.Column.GetIsSqlcSlice() @@ -307,7 +303,7 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En IsSlice: isSlice, }) } - for _, col := range sortCols { + for _, col := range query.GetDynamicOrderBy() { dq.SortColumns = append(dq.SortColumns, DynamicSortColumn{ ConstName: gq.MethodName + "OrderBy" + StructName(col, options), Value: col, diff --git a/internal/compiler/parse.go b/internal/compiler/parse.go index cbdf15163f..612409fafe 100644 --- a/internal/compiler/parse.go +++ b/internal/compiler/parse.go @@ -159,6 +159,14 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, } } + for i := range anlys.Parameters { + if c := anlys.Parameters[i].Column; c != nil { + if _, ok := md.DynamicParams[c.Name]; ok { + c.IsDynamic = true + } + } + } + expanded := anlys.Query // If the query string was edited, make sure the syntax is valid diff --git a/internal/compiler/query.go b/internal/compiler/query.go index aa75e74e6f..e3fdb069a7 100644 --- a/internal/compiler/query.go +++ b/internal/compiler/query.go @@ -29,6 +29,7 @@ type Column struct { Length *int IsNamedParam bool IsFuncCall bool + IsDynamic bool DynamicOp string // XXX: Figure out what PostgreSQL calls `foo.id` diff --git a/internal/endtoend/testdata/codegen_json/gen/codegen.json b/internal/endtoend/testdata/codegen_json/gen/codegen.json index 23a183c404..dcfc0009b8 100644 --- a/internal/endtoend/testdata/codegen_json/gen/codegen.json +++ b/internal/endtoend/testdata/codegen_json/gen/codegen.json @@ -58,7 +58,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "name", @@ -85,7 +86,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bio", @@ -112,7 +114,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -164,7 +167,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -191,7 +195,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -218,7 +223,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -245,7 +251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -272,7 +279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -299,7 +307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggfnoid", @@ -326,7 +335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggkind", @@ -353,7 +363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggnumdirectargs", @@ -380,7 +391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggtransfn", @@ -407,7 +419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggfinalfn", @@ -434,7 +447,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggcombinefn", @@ -461,7 +475,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggserialfn", @@ -488,7 +503,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggdeserialfn", @@ -515,7 +531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggmtransfn", @@ -542,7 +559,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggminvtransfn", @@ -569,7 +587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggmfinalfn", @@ -596,7 +615,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggfinalextra", @@ -623,7 +643,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggmfinalextra", @@ -650,7 +671,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggfinalmodify", @@ -677,7 +699,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggmfinalmodify", @@ -704,7 +727,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggsortop", @@ -731,7 +755,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggtranstype", @@ -758,7 +783,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggtransspace", @@ -785,7 +811,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggmtranstype", @@ -812,7 +839,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggmtransspace", @@ -839,7 +867,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "agginitval", @@ -866,7 +895,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "aggminitval", @@ -893,7 +923,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -930,7 +961,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -957,7 +989,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -984,7 +1017,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -1011,7 +1045,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -1038,7 +1073,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -1065,7 +1101,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -1092,7 +1129,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amname", @@ -1119,7 +1157,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amhandler", @@ -1146,7 +1185,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amtype", @@ -1173,7 +1213,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -1210,7 +1251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -1237,7 +1279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -1264,7 +1307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -1291,7 +1335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -1318,7 +1363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -1345,7 +1391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -1372,7 +1419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amopfamily", @@ -1399,7 +1447,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amoplefttype", @@ -1426,7 +1475,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amoprighttype", @@ -1453,7 +1503,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amopstrategy", @@ -1480,7 +1531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amoppurpose", @@ -1507,7 +1559,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amopopr", @@ -1534,7 +1587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amopmethod", @@ -1561,7 +1615,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amopsortfamily", @@ -1588,7 +1643,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -1625,7 +1681,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -1652,7 +1709,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -1679,7 +1737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -1706,7 +1765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -1733,7 +1793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -1760,7 +1821,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -1787,7 +1849,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amprocfamily", @@ -1814,7 +1877,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amproclefttype", @@ -1841,7 +1905,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amprocrighttype", @@ -1868,7 +1933,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amprocnum", @@ -1895,7 +1961,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "amproc", @@ -1922,7 +1989,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -1959,7 +2027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -1986,7 +2055,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -2013,7 +2083,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -2040,7 +2111,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -2067,7 +2139,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -2094,7 +2167,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -2121,7 +2195,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "adrelid", @@ -2148,7 +2223,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "adnum", @@ -2175,7 +2251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "adbin", @@ -2202,7 +2279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -2239,7 +2317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -2266,7 +2345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -2293,7 +2373,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -2320,7 +2401,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -2347,7 +2429,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -2374,7 +2457,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attrelid", @@ -2401,7 +2485,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attname", @@ -2428,7 +2513,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "atttypid", @@ -2455,7 +2541,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attstattarget", @@ -2482,7 +2569,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attlen", @@ -2509,7 +2597,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attnum", @@ -2536,7 +2625,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attndims", @@ -2563,7 +2653,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attcacheoff", @@ -2590,7 +2681,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "atttypmod", @@ -2617,7 +2709,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attbyval", @@ -2644,7 +2737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attalign", @@ -2671,7 +2765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attstorage", @@ -2698,7 +2793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attcompression", @@ -2725,7 +2821,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attnotnull", @@ -2752,7 +2849,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "atthasdef", @@ -2779,7 +2877,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "atthasmissing", @@ -2806,7 +2905,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attidentity", @@ -2833,7 +2933,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attgenerated", @@ -2860,7 +2961,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attisdropped", @@ -2887,7 +2989,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attislocal", @@ -2914,7 +3017,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attinhcount", @@ -2941,7 +3045,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attcollation", @@ -2968,7 +3073,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attacl", @@ -2995,7 +3101,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attoptions", @@ -3022,7 +3129,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attfdwoptions", @@ -3049,7 +3157,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attmissingval", @@ -3076,7 +3185,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -3113,7 +3223,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -3140,7 +3251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -3167,7 +3279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -3194,7 +3307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -3221,7 +3335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -3248,7 +3363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "roleid", @@ -3275,7 +3391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "member", @@ -3302,7 +3419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantor", @@ -3329,7 +3447,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "admin_option", @@ -3356,7 +3475,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -3393,7 +3513,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -3420,7 +3541,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -3447,7 +3569,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -3474,7 +3597,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -3501,7 +3625,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -3528,7 +3653,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -3555,7 +3681,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolname", @@ -3582,7 +3709,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolsuper", @@ -3609,7 +3737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolinherit", @@ -3636,7 +3765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolcreaterole", @@ -3663,7 +3793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolcreatedb", @@ -3690,7 +3821,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolcanlogin", @@ -3717,7 +3849,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolreplication", @@ -3744,7 +3877,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolbypassrls", @@ -3771,7 +3905,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolconnlimit", @@ -3798,7 +3933,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolpassword", @@ -3825,7 +3961,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolvaliduntil", @@ -3852,7 +3989,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -3889,7 +4027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "version", @@ -3916,7 +4055,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "installed", @@ -3943,7 +4083,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "superuser", @@ -3970,7 +4111,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trusted", @@ -3997,7 +4139,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relocatable", @@ -4024,7 +4167,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schema", @@ -4051,7 +4195,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "requires", @@ -4078,7 +4223,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "comment", @@ -4105,7 +4251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -4142,7 +4289,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_version", @@ -4169,7 +4317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "installed_version", @@ -4196,7 +4345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "comment", @@ -4223,7 +4373,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -4260,7 +4411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ident", @@ -4287,7 +4439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parent", @@ -4314,7 +4467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "level", @@ -4341,7 +4495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "total_bytes", @@ -4368,7 +4523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "total_nblocks", @@ -4395,7 +4551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "free_bytes", @@ -4422,7 +4579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "free_chunks", @@ -4449,7 +4607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "used_bytes", @@ -4476,7 +4635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -4513,7 +4673,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -4540,7 +4701,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -4567,7 +4729,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -4594,7 +4757,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -4621,7 +4785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -4648,7 +4813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -4675,7 +4841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "castsource", @@ -4702,7 +4869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "casttarget", @@ -4729,7 +4897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "castfunc", @@ -4756,7 +4925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "castcontext", @@ -4783,7 +4953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "castmethod", @@ -4810,7 +4981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -4847,7 +5019,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -4874,7 +5047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -4901,7 +5075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -4928,7 +5103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -4955,7 +5131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -4982,7 +5159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -5009,7 +5187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -5036,7 +5215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relnamespace", @@ -5063,7 +5243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reltype", @@ -5090,7 +5271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reloftype", @@ -5117,7 +5299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relowner", @@ -5144,7 +5327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relam", @@ -5171,7 +5355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relfilenode", @@ -5198,7 +5383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reltablespace", @@ -5225,7 +5411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relpages", @@ -5252,7 +5439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reltuples", @@ -5279,7 +5467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relallvisible", @@ -5306,7 +5495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reltoastrelid", @@ -5333,7 +5523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relhasindex", @@ -5360,7 +5551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relisshared", @@ -5387,7 +5579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relpersistence", @@ -5414,7 +5607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relkind", @@ -5441,7 +5635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relnatts", @@ -5468,7 +5663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relchecks", @@ -5495,7 +5691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relhasrules", @@ -5522,7 +5719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relhastriggers", @@ -5549,7 +5747,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relhassubclass", @@ -5576,7 +5775,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relrowsecurity", @@ -5603,7 +5803,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relforcerowsecurity", @@ -5630,7 +5831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relispopulated", @@ -5657,7 +5859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relreplident", @@ -5684,7 +5887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relispartition", @@ -5711,7 +5915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relrewrite", @@ -5738,7 +5943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relfrozenxid", @@ -5765,7 +5971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relminmxid", @@ -5792,7 +5999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relacl", @@ -5819,7 +6027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reloptions", @@ -5846,7 +6055,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relpartbound", @@ -5873,7 +6083,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -5910,7 +6121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -5937,7 +6149,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -5964,7 +6177,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -5991,7 +6205,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -6018,7 +6233,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -6045,7 +6261,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -6072,7 +6289,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collname", @@ -6099,7 +6317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collnamespace", @@ -6126,7 +6345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collowner", @@ -6153,7 +6373,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collprovider", @@ -6180,7 +6401,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collisdeterministic", @@ -6207,7 +6429,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collencoding", @@ -6234,7 +6457,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collcollate", @@ -6261,7 +6485,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collctype", @@ -6288,7 +6513,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "colliculocale", @@ -6315,7 +6541,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collversion", @@ -6342,7 +6569,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -6379,7 +6607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "setting", @@ -6406,7 +6635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -6443,7 +6673,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -6470,7 +6701,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -6497,7 +6729,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -6524,7 +6757,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -6551,7 +6785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -6578,7 +6813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -6605,7 +6841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conname", @@ -6632,7 +6869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "connamespace", @@ -6659,7 +6897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "contype", @@ -6686,7 +6925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "condeferrable", @@ -6713,7 +6953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "condeferred", @@ -6740,7 +6981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "convalidated", @@ -6767,7 +7009,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conrelid", @@ -6794,7 +7037,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "contypid", @@ -6821,7 +7065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conindid", @@ -6848,7 +7093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conparentid", @@ -6875,7 +7121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confrelid", @@ -6902,7 +7149,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confupdtype", @@ -6929,7 +7177,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confdeltype", @@ -6956,7 +7205,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confmatchtype", @@ -6983,7 +7233,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conislocal", @@ -7010,7 +7261,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "coninhcount", @@ -7037,7 +7289,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "connoinherit", @@ -7064,7 +7317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conkey", @@ -7091,7 +7345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confkey", @@ -7118,7 +7373,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conpfeqop", @@ -7145,7 +7401,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conppeqop", @@ -7172,7 +7429,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conffeqop", @@ -7199,7 +7457,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confdelsetcols", @@ -7226,7 +7485,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conexclop", @@ -7253,7 +7513,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conbin", @@ -7280,7 +7541,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -7317,7 +7579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -7344,7 +7607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -7371,7 +7635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -7398,7 +7663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -7425,7 +7691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -7452,7 +7719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -7479,7 +7747,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conname", @@ -7506,7 +7775,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "connamespace", @@ -7533,7 +7803,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conowner", @@ -7560,7 +7831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conforencoding", @@ -7587,7 +7859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "contoencoding", @@ -7614,7 +7887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conproc", @@ -7641,7 +7915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "condefault", @@ -7668,7 +7943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -7705,7 +7981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statement", @@ -7732,7 +8009,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_holdable", @@ -7759,7 +8037,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_binary", @@ -7786,7 +8065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_scrollable", @@ -7813,7 +8093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "creation_time", @@ -7840,7 +8121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -7877,7 +8159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -7904,7 +8187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -7931,7 +8215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -7958,7 +8243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -7985,7 +8271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -8012,7 +8299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -8039,7 +8327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -8066,7 +8355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datdba", @@ -8093,7 +8383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "encoding", @@ -8120,7 +8411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datlocprovider", @@ -8147,7 +8439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datistemplate", @@ -8174,7 +8467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datallowconn", @@ -8201,7 +8495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datconnlimit", @@ -8228,7 +8523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datfrozenxid", @@ -8255,7 +8551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datminmxid", @@ -8282,7 +8579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dattablespace", @@ -8309,7 +8607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datcollate", @@ -8336,7 +8635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datctype", @@ -8363,7 +8663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "daticulocale", @@ -8390,7 +8691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datcollversion", @@ -8417,7 +8719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datacl", @@ -8444,7 +8747,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -8481,7 +8785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -8508,7 +8813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -8535,7 +8841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -8562,7 +8869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -8589,7 +8897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -8616,7 +8925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "setdatabase", @@ -8643,7 +8953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "setrole", @@ -8670,7 +8981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "setconfig", @@ -8697,7 +9009,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -8734,7 +9047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -8761,7 +9075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -8788,7 +9103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -8815,7 +9131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -8842,7 +9159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -8869,7 +9187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -8896,7 +9215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "defaclrole", @@ -8923,7 +9243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "defaclnamespace", @@ -8950,7 +9271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "defaclobjtype", @@ -8977,7 +9299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "defaclacl", @@ -9004,7 +9327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -9041,7 +9365,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -9068,7 +9393,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -9095,7 +9421,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -9122,7 +9449,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -9149,7 +9477,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -9176,7 +9505,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classid", @@ -9203,7 +9533,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objid", @@ -9230,7 +9561,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -9257,7 +9589,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "refclassid", @@ -9284,7 +9617,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "refobjid", @@ -9311,7 +9645,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "refobjsubid", @@ -9338,7 +9673,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "deptype", @@ -9365,7 +9701,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -9402,7 +9739,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -9429,7 +9767,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -9456,7 +9795,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -9483,7 +9823,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -9510,7 +9851,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -9537,7 +9879,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objoid", @@ -9564,7 +9907,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classoid", @@ -9591,7 +9935,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -9618,7 +9963,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "description", @@ -9645,7 +9991,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -9682,7 +10029,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -9709,7 +10057,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -9736,7 +10085,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -9763,7 +10113,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -9790,7 +10141,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -9817,7 +10169,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -9844,7 +10197,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "enumtypid", @@ -9871,7 +10225,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "enumsortorder", @@ -9898,7 +10253,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "enumlabel", @@ -9925,7 +10281,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -9962,7 +10319,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -9989,7 +10347,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -10016,7 +10375,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -10043,7 +10403,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -10070,7 +10431,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -10097,7 +10459,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -10124,7 +10487,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "evtname", @@ -10151,7 +10515,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "evtevent", @@ -10178,7 +10543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "evtowner", @@ -10205,7 +10571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "evtfoid", @@ -10232,7 +10599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "evtenabled", @@ -10259,7 +10627,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "evttags", @@ -10286,7 +10655,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -10323,7 +10693,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -10350,7 +10721,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -10377,7 +10749,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -10404,7 +10777,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -10431,7 +10805,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -10458,7 +10833,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -10485,7 +10861,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extname", @@ -10512,7 +10889,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extowner", @@ -10539,7 +10917,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extnamespace", @@ -10566,7 +10945,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extrelocatable", @@ -10593,7 +10973,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extversion", @@ -10620,7 +11001,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extconfig", @@ -10647,7 +11029,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extcondition", @@ -10674,7 +11057,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -10711,7 +11095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sourceline", @@ -10738,7 +11123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqno", @@ -10765,7 +11151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "name", @@ -10792,7 +11179,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "setting", @@ -10819,7 +11207,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "applied", @@ -10846,7 +11235,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "error", @@ -10873,7 +11263,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -10910,7 +11301,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -10937,7 +11329,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -10964,7 +11357,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -10991,7 +11385,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -11018,7 +11413,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -11045,7 +11441,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -11072,7 +11469,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwname", @@ -11099,7 +11497,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwowner", @@ -11126,7 +11525,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwhandler", @@ -11153,7 +11553,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwvalidator", @@ -11180,7 +11581,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwacl", @@ -11207,7 +11609,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwoptions", @@ -11234,7 +11637,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -11271,7 +11675,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -11298,7 +11703,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -11325,7 +11731,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -11352,7 +11759,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -11379,7 +11787,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -11406,7 +11815,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -11433,7 +11843,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvname", @@ -11460,7 +11871,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvowner", @@ -11487,7 +11899,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvfdw", @@ -11514,7 +11927,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvtype", @@ -11541,7 +11955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvversion", @@ -11568,7 +11983,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvacl", @@ -11595,7 +12011,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvoptions", @@ -11622,7 +12039,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -11659,7 +12077,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -11686,7 +12105,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -11713,7 +12133,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -11740,7 +12161,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -11767,7 +12189,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -11794,7 +12217,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ftrelid", @@ -11821,7 +12245,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ftserver", @@ -11848,7 +12273,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ftoptions", @@ -11875,7 +12301,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -11912,7 +12339,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grosysid", @@ -11939,7 +12367,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grolist", @@ -11966,7 +12395,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -12003,7 +12433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "type", @@ -12030,7 +12461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "database", @@ -12057,7 +12489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_name", @@ -12084,7 +12517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "address", @@ -12111,7 +12545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "netmask", @@ -12138,7 +12573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "auth_method", @@ -12165,7 +12601,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "options", @@ -12192,7 +12629,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "error", @@ -12219,7 +12657,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -12256,7 +12695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "map_name", @@ -12283,7 +12723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sys_name", @@ -12310,7 +12751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pg_username", @@ -12337,7 +12779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "error", @@ -12364,7 +12807,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -12401,7 +12845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -12428,7 +12873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -12455,7 +12901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -12482,7 +12929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -12509,7 +12957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -12536,7 +12985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -12563,7 +13013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indrelid", @@ -12590,7 +13041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indnatts", @@ -12617,7 +13069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indnkeyatts", @@ -12644,7 +13097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisunique", @@ -12671,7 +13125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indnullsnotdistinct", @@ -12698,7 +13153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisprimary", @@ -12725,7 +13181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisexclusion", @@ -12752,7 +13209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indimmediate", @@ -12779,7 +13237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisclustered", @@ -12806,7 +13265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisvalid", @@ -12833,7 +13293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indcheckxmin", @@ -12860,7 +13321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisready", @@ -12887,7 +13349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indislive", @@ -12914,7 +13377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indisreplident", @@ -12941,7 +13405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indkey", @@ -12968,7 +13433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indcollation", @@ -12995,7 +13461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indclass", @@ -13022,7 +13489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indoption", @@ -13049,7 +13517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexprs", @@ -13076,7 +13545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indpred", @@ -13103,7 +13573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -13140,7 +13611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -13167,7 +13639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexname", @@ -13194,7 +13667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablespace", @@ -13221,7 +13695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexdef", @@ -13248,7 +13723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -13285,7 +13761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -13312,7 +13789,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -13339,7 +13817,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -13366,7 +13845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -13393,7 +13873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -13420,7 +13901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inhrelid", @@ -13447,7 +13929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inhparent", @@ -13474,7 +13957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inhseqno", @@ -13501,7 +13985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inhdetachpending", @@ -13528,7 +14013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -13565,7 +14051,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -13592,7 +14079,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -13619,7 +14107,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -13646,7 +14135,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -13673,7 +14163,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -13700,7 +14191,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objoid", @@ -13727,7 +14219,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classoid", @@ -13754,7 +14247,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -13781,7 +14275,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privtype", @@ -13808,7 +14303,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "initprivs", @@ -13835,7 +14331,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -13872,7 +14369,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -13899,7 +14397,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -13926,7 +14425,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -13953,7 +14453,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -13980,7 +14481,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -14007,7 +14509,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -14034,7 +14537,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanname", @@ -14061,7 +14565,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanowner", @@ -14088,7 +14593,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanispl", @@ -14115,7 +14621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanpltrusted", @@ -14142,7 +14649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanplcallfoid", @@ -14169,7 +14677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "laninline", @@ -14196,7 +14705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanvalidator", @@ -14223,7 +14733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lanacl", @@ -14250,7 +14761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -14287,7 +14799,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -14314,7 +14827,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -14341,7 +14855,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -14368,7 +14883,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -14395,7 +14911,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -14422,7 +14939,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "loid", @@ -14449,7 +14967,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pageno", @@ -14476,7 +14995,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data", @@ -14503,7 +15023,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -14540,7 +15061,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -14567,7 +15089,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -14594,7 +15117,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -14621,7 +15145,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -14648,7 +15173,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -14675,7 +15201,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -14702,7 +15229,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lomowner", @@ -14729,7 +15257,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lomacl", @@ -14756,7 +15285,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -14793,7 +15323,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "database", @@ -14820,7 +15351,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relation", @@ -14847,7 +15379,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "page", @@ -14874,7 +15407,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tuple", @@ -14901,7 +15435,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "virtualxid", @@ -14928,7 +15463,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "transactionid", @@ -14955,7 +15491,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classid", @@ -14982,7 +15519,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objid", @@ -15009,7 +15547,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -15036,7 +15575,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "virtualtransaction", @@ -15063,7 +15603,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pid", @@ -15090,7 +15631,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "mode", @@ -15117,7 +15659,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "granted", @@ -15144,7 +15687,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fastpath", @@ -15171,7 +15715,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "waitstart", @@ -15198,7 +15743,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -15235,7 +15781,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "matviewname", @@ -15262,7 +15809,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "matviewowner", @@ -15289,7 +15837,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablespace", @@ -15316,7 +15865,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "hasindexes", @@ -15343,7 +15893,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ispopulated", @@ -15370,7 +15921,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "definition", @@ -15397,7 +15949,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -15434,7 +15987,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -15461,7 +16015,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -15488,7 +16043,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -15515,7 +16071,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -15542,7 +16099,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -15569,7 +16127,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -15596,7 +16155,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "nspname", @@ -15623,7 +16183,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "nspowner", @@ -15650,7 +16211,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "nspacl", @@ -15677,7 +16239,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -15714,7 +16277,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -15741,7 +16305,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -15768,7 +16333,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -15795,7 +16361,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -15822,7 +16389,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -15849,7 +16417,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -15876,7 +16445,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcmethod", @@ -15903,7 +16473,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcname", @@ -15930,7 +16501,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcnamespace", @@ -15957,7 +16529,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcowner", @@ -15984,7 +16557,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcfamily", @@ -16011,7 +16585,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcintype", @@ -16038,7 +16613,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opcdefault", @@ -16065,7 +16641,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opckeytype", @@ -16092,7 +16669,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -16129,7 +16707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -16156,7 +16735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -16183,7 +16763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -16210,7 +16791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -16237,7 +16819,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -16264,7 +16847,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -16291,7 +16875,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprname", @@ -16318,7 +16903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprnamespace", @@ -16345,7 +16931,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprowner", @@ -16372,7 +16959,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprkind", @@ -16399,7 +16987,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprcanmerge", @@ -16426,7 +17015,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprcanhash", @@ -16453,7 +17043,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprleft", @@ -16480,7 +17071,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprright", @@ -16507,7 +17099,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprresult", @@ -16534,7 +17127,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprcom", @@ -16561,7 +17155,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprnegate", @@ -16588,7 +17183,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprcode", @@ -16615,7 +17211,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprrest", @@ -16642,7 +17239,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oprjoin", @@ -16669,7 +17267,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -16706,7 +17305,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -16733,7 +17333,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -16760,7 +17361,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -16787,7 +17389,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -16814,7 +17417,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -16841,7 +17445,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -16868,7 +17473,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opfmethod", @@ -16895,7 +17501,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opfname", @@ -16922,7 +17529,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opfnamespace", @@ -16949,7 +17557,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "opfowner", @@ -16976,7 +17585,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -17013,7 +17623,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -17040,7 +17651,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -17067,7 +17679,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -17094,7 +17707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -17121,7 +17735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -17148,7 +17763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -17175,7 +17791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parname", @@ -17202,7 +17819,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "paracl", @@ -17229,7 +17847,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -17266,7 +17885,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -17293,7 +17913,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -17320,7 +17941,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -17347,7 +17969,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -17374,7 +17997,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -17401,7 +18025,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partrelid", @@ -17428,7 +18053,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partstrat", @@ -17455,7 +18081,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partnatts", @@ -17482,7 +18109,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partdefid", @@ -17509,7 +18137,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partattrs", @@ -17536,7 +18165,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partclass", @@ -17563,7 +18193,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partcollation", @@ -17590,7 +18221,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partexprs", @@ -17617,7 +18249,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -17654,7 +18287,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -17681,7 +18315,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "policyname", @@ -17708,7 +18343,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "permissive", @@ -17735,7 +18371,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "roles", @@ -17762,7 +18399,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmd", @@ -17789,7 +18427,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "qual", @@ -17816,7 +18455,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "with_check", @@ -17843,7 +18483,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -17880,7 +18521,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -17907,7 +18549,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -17934,7 +18577,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -17961,7 +18605,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -17988,7 +18633,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -18015,7 +18661,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -18042,7 +18689,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polname", @@ -18069,7 +18717,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polrelid", @@ -18096,7 +18745,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polcmd", @@ -18123,7 +18773,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polpermissive", @@ -18150,7 +18801,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polroles", @@ -18177,7 +18829,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polqual", @@ -18204,7 +18857,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "polwithcheck", @@ -18231,7 +18885,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -18268,7 +18923,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statement", @@ -18295,7 +18951,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prepare_time", @@ -18322,7 +18979,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parameter_types", @@ -18349,7 +19007,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "from_sql", @@ -18376,7 +19035,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "generic_plans", @@ -18403,7 +19063,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "custom_plans", @@ -18430,7 +19091,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -18467,7 +19129,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "gid", @@ -18494,7 +19157,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prepared", @@ -18521,7 +19185,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "owner", @@ -18548,7 +19213,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "database", @@ -18575,7 +19241,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -18612,7 +19279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -18639,7 +19307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -18666,7 +19335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -18693,7 +19363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -18720,7 +19391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -18747,7 +19419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -18774,7 +19447,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proname", @@ -18801,7 +19475,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pronamespace", @@ -18828,7 +19503,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proowner", @@ -18855,7 +19531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prolang", @@ -18882,7 +19559,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "procost", @@ -18909,7 +19587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prorows", @@ -18936,7 +19615,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "provariadic", @@ -18963,7 +19643,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prosupport", @@ -18990,7 +19671,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prokind", @@ -19017,7 +19699,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prosecdef", @@ -19044,7 +19727,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proleakproof", @@ -19071,7 +19755,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proisstrict", @@ -19098,7 +19783,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proretset", @@ -19125,7 +19811,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "provolatile", @@ -19152,7 +19839,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proparallel", @@ -19179,7 +19867,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pronargs", @@ -19206,7 +19895,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pronargdefaults", @@ -19233,7 +19923,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prorettype", @@ -19260,7 +19951,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proargtypes", @@ -19287,7 +19979,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proallargtypes", @@ -19314,7 +20007,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proargmodes", @@ -19341,7 +20035,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proargnames", @@ -19368,7 +20063,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proargdefaults", @@ -19395,7 +20091,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "protrftypes", @@ -19422,7 +20119,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prosrc", @@ -19449,7 +20147,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "probin", @@ -19476,7 +20175,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prosqlbody", @@ -19503,7 +20203,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proconfig", @@ -19530,7 +20231,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "proacl", @@ -19557,7 +20259,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -19594,7 +20297,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -19621,7 +20325,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -19648,7 +20353,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -19675,7 +20381,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -19702,7 +20409,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -19729,7 +20437,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -19756,7 +20465,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubname", @@ -19783,7 +20493,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubowner", @@ -19810,7 +20521,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "puballtables", @@ -19837,7 +20549,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubinsert", @@ -19864,7 +20577,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubupdate", @@ -19891,7 +20605,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubdelete", @@ -19918,7 +20633,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubtruncate", @@ -19945,7 +20661,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pubviaroot", @@ -19972,7 +20689,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -20009,7 +20727,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -20036,7 +20755,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -20063,7 +20783,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -20090,7 +20811,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -20117,7 +20839,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -20144,7 +20867,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -20171,7 +20895,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pnpubid", @@ -20198,7 +20923,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pnnspid", @@ -20225,7 +20951,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -20262,7 +20989,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -20289,7 +21017,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -20316,7 +21045,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -20343,7 +21073,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -20370,7 +21101,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -20397,7 +21129,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -20424,7 +21157,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prpubid", @@ -20451,7 +21185,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prrelid", @@ -20478,7 +21213,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prqual", @@ -20505,7 +21241,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prattrs", @@ -20532,7 +21269,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -20569,7 +21307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -20596,7 +21335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -20623,7 +21363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attnames", @@ -20650,7 +21391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rowfilter", @@ -20677,7 +21419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -20714,7 +21457,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -20741,7 +21485,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -20768,7 +21513,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -20795,7 +21541,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -20822,7 +21569,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -20849,7 +21597,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngtypid", @@ -20876,7 +21625,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngsubtype", @@ -20903,7 +21653,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngmultitypid", @@ -20930,7 +21681,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngcollation", @@ -20957,7 +21709,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngsubopc", @@ -20984,7 +21737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngcanonical", @@ -21011,7 +21765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rngsubdiff", @@ -21038,7 +21793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -21075,7 +21831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -21102,7 +21859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -21129,7 +21887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -21156,7 +21915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -21183,7 +21943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -21210,7 +21971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "roident", @@ -21237,7 +21999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "roname", @@ -21264,7 +22027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -21301,7 +22065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "external_id", @@ -21328,7 +22093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "remote_lsn", @@ -21355,7 +22121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "local_lsn", @@ -21382,7 +22149,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -21419,7 +22187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "plugin", @@ -21446,7 +22215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "slot_type", @@ -21473,7 +22243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datoid", @@ -21500,7 +22271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "database", @@ -21527,7 +22299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "temporary", @@ -21554,7 +22327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "active", @@ -21581,7 +22355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "active_pid", @@ -21608,7 +22383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -21635,7 +22411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "catalog_xmin", @@ -21662,7 +22439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "restart_lsn", @@ -21689,7 +22467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confirmed_flush_lsn", @@ -21716,7 +22495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_status", @@ -21743,7 +22523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "safe_wal_size", @@ -21770,7 +22551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "two_phase", @@ -21797,7 +22579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -21834,7 +22617,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -21861,7 +22645,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -21888,7 +22673,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -21915,7 +22701,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -21942,7 +22729,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -21969,7 +22757,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -21996,7 +22785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rulename", @@ -22023,7 +22813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ev_class", @@ -22050,7 +22841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ev_type", @@ -22077,7 +22869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ev_enabled", @@ -22104,7 +22897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_instead", @@ -22131,7 +22925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ev_qual", @@ -22158,7 +22953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ev_action", @@ -22185,7 +22981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -22222,7 +23019,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolsuper", @@ -22249,7 +23047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolinherit", @@ -22276,7 +23075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolcreaterole", @@ -22303,7 +23103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolcreatedb", @@ -22330,7 +23131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolcanlogin", @@ -22357,7 +23159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolreplication", @@ -22384,7 +23187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolconnlimit", @@ -22411,7 +23215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolpassword", @@ -22438,7 +23243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolvaliduntil", @@ -22465,7 +23271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolbypassrls", @@ -22492,7 +23299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rolconfig", @@ -22519,7 +23327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -22546,7 +23355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -22583,7 +23393,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -22610,7 +23421,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rulename", @@ -22637,7 +23449,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "definition", @@ -22664,7 +23477,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -22701,7 +23515,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -22728,7 +23543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -22755,7 +23571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -22782,7 +23599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -22809,7 +23627,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -22836,7 +23655,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objoid", @@ -22863,7 +23683,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classoid", @@ -22890,7 +23711,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -22917,7 +23739,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "provider", @@ -22944,7 +23767,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "label", @@ -22971,7 +23795,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -23008,7 +23833,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classoid", @@ -23035,7 +23861,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -23062,7 +23889,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objtype", @@ -23089,7 +23917,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objnamespace", @@ -23116,7 +23945,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objname", @@ -23143,7 +23973,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "provider", @@ -23170,7 +24001,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "label", @@ -23197,7 +24029,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -23234,7 +24067,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -23261,7 +24095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -23288,7 +24123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -23315,7 +24151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -23342,7 +24179,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -23369,7 +24207,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqrelid", @@ -23396,7 +24235,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqtypid", @@ -23423,7 +24263,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqstart", @@ -23450,7 +24291,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqincrement", @@ -23477,7 +24319,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqmax", @@ -23504,7 +24347,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqmin", @@ -23531,7 +24375,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqcache", @@ -23558,7 +24403,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seqcycle", @@ -23585,7 +24431,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -23622,7 +24469,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequencename", @@ -23649,7 +24497,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequenceowner", @@ -23676,7 +24525,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -23703,7 +24553,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "start_value", @@ -23730,7 +24581,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "min_value", @@ -23757,7 +24609,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "max_value", @@ -23784,7 +24637,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "increment_by", @@ -23811,7 +24665,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cycle", @@ -23838,7 +24693,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cache_size", @@ -23865,7 +24721,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_value", @@ -23892,7 +24749,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -23929,7 +24787,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "setting", @@ -23956,7 +24815,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "unit", @@ -23983,7 +24843,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "category", @@ -24010,7 +24871,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "short_desc", @@ -24037,7 +24899,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "extra_desc", @@ -24064,7 +24927,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "context", @@ -24091,7 +24955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "vartype", @@ -24118,7 +24983,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "source", @@ -24145,7 +25011,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "min_val", @@ -24172,7 +25039,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "max_val", @@ -24199,7 +25067,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "enumvals", @@ -24226,7 +25095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "boot_val", @@ -24253,7 +25123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reset_val", @@ -24280,7 +25151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sourcefile", @@ -24307,7 +25179,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sourceline", @@ -24334,7 +25207,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pending_restart", @@ -24361,7 +25235,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -24398,7 +25273,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usesysid", @@ -24425,7 +25301,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usecreatedb", @@ -24452,7 +25329,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usesuper", @@ -24479,7 +25357,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "userepl", @@ -24506,7 +25385,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usebypassrls", @@ -24533,7 +25413,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "passwd", @@ -24560,7 +25441,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "valuntil", @@ -24587,7 +25469,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "useconfig", @@ -24614,7 +25497,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -24651,7 +25535,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -24678,7 +25563,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -24705,7 +25591,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -24732,7 +25619,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -24759,7 +25647,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -24786,7 +25675,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dbid", @@ -24813,7 +25703,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classid", @@ -24840,7 +25731,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objid", @@ -24867,7 +25759,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objsubid", @@ -24894,7 +25787,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "refclassid", @@ -24921,7 +25815,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "refobjid", @@ -24948,7 +25843,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "deptype", @@ -24975,7 +25871,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -25012,7 +25909,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -25039,7 +25937,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -25066,7 +25965,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -25093,7 +25993,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -25120,7 +26021,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -25147,7 +26049,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objoid", @@ -25174,7 +26077,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classoid", @@ -25201,7 +26105,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "description", @@ -25228,7 +26133,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -25265,7 +26171,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "off", @@ -25292,7 +26199,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "size", @@ -25319,7 +26227,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "allocated_size", @@ -25346,7 +26255,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -25383,7 +26293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -25410,7 +26321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -25437,7 +26349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -25464,7 +26377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -25491,7 +26405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -25518,7 +26433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "objoid", @@ -25545,7 +26461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "classoid", @@ -25572,7 +26489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "provider", @@ -25599,7 +26517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "label", @@ -25626,7 +26545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -25663,7 +26583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -25690,7 +26611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pid", @@ -25717,7 +26639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "leader_pid", @@ -25744,7 +26667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usesysid", @@ -25771,7 +26695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usename", @@ -25798,7 +26723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "application_name", @@ -25825,7 +26751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_addr", @@ -25852,7 +26779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_hostname", @@ -25879,7 +26807,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_port", @@ -25906,7 +26835,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backend_start", @@ -25933,7 +26863,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xact_start", @@ -25960,7 +26891,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "query_start", @@ -25987,7 +26919,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "state_change", @@ -26014,7 +26947,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wait_event_type", @@ -26041,7 +26975,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wait_event", @@ -26068,7 +27003,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "state", @@ -26095,7 +27031,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backend_xid", @@ -26122,7 +27059,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backend_xmin", @@ -26149,7 +27087,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "query_id", @@ -26176,7 +27115,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "query", @@ -26203,7 +27143,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backend_type", @@ -26230,7 +27171,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -26267,7 +27209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -26294,7 +27237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -26321,7 +27265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -26348,7 +27293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelname", @@ -26375,7 +27321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -26402,7 +27349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_read", @@ -26429,7 +27377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -26456,7 +27405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -26493,7 +27443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -26520,7 +27471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -26547,7 +27499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_scan", @@ -26574,7 +27527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_tup_read", @@ -26601,7 +27555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -26628,7 +27583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -26655,7 +27611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_ins", @@ -26682,7 +27639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_upd", @@ -26709,7 +27667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_del", @@ -26736,7 +27695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_hot_upd", @@ -26763,7 +27723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_live_tup", @@ -26790,7 +27751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_dead_tup", @@ -26817,7 +27779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_mod_since_analyze", @@ -26844,7 +27807,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_ins_since_vacuum", @@ -26871,7 +27835,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_vacuum", @@ -26898,7 +27863,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_autovacuum", @@ -26925,7 +27891,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_analyze", @@ -26952,7 +27919,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_autoanalyze", @@ -26979,7 +27947,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "vacuum_count", @@ -27006,7 +27975,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "autovacuum_count", @@ -27033,7 +28003,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "analyze_count", @@ -27060,7 +28031,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "autoanalyze_count", @@ -27087,7 +28059,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -27124,7 +28097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_archived_wal", @@ -27151,7 +28125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_archived_time", @@ -27178,7 +28153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "failed_count", @@ -27205,7 +28181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_failed_wal", @@ -27232,7 +28209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_failed_time", @@ -27259,7 +28237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -27286,7 +28265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -27323,7 +28303,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "checkpoints_req", @@ -27350,7 +28331,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "checkpoint_write_time", @@ -27377,7 +28359,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "checkpoint_sync_time", @@ -27404,7 +28387,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "buffers_checkpoint", @@ -27431,7 +28415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "buffers_clean", @@ -27458,7 +28443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maxwritten_clean", @@ -27485,7 +28471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "buffers_backend", @@ -27512,7 +28499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "buffers_backend_fsync", @@ -27539,7 +28527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "buffers_alloc", @@ -27566,7 +28555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -27593,7 +28583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -27630,7 +28621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -27657,7 +28649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numbackends", @@ -27684,7 +28677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xact_commit", @@ -27711,7 +28705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xact_rollback", @@ -27738,7 +28733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_read", @@ -27765,7 +28761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_hit", @@ -27792,7 +28789,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tup_returned", @@ -27819,7 +28817,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tup_fetched", @@ -27846,7 +28845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tup_inserted", @@ -27873,7 +28873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tup_updated", @@ -27900,7 +28901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tup_deleted", @@ -27927,7 +28929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conflicts", @@ -27954,7 +28957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "temp_files", @@ -27981,7 +28985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "temp_bytes", @@ -28008,7 +29013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "deadlocks", @@ -28035,7 +29041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "checksum_failures", @@ -28062,7 +29069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "checksum_last_failure", @@ -28089,7 +29097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blk_read_time", @@ -28116,7 +29125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blk_write_time", @@ -28143,7 +29153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "session_time", @@ -28170,7 +29181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "active_time", @@ -28197,7 +29209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idle_in_transaction_time", @@ -28224,7 +29237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sessions", @@ -28251,7 +29265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sessions_abandoned", @@ -28278,7 +29293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sessions_fatal", @@ -28305,7 +29321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sessions_killed", @@ -28332,7 +29349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -28359,7 +29377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -28396,7 +29415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -28423,7 +29443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confl_tablespace", @@ -28450,7 +29471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confl_lock", @@ -28477,7 +29499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confl_snapshot", @@ -28504,7 +29527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confl_bufferpin", @@ -28531,7 +29555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "confl_deadlock", @@ -28558,7 +29583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -28595,7 +29621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "gss_authenticated", @@ -28622,7 +29649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "principal", @@ -28649,7 +29677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "encrypted", @@ -28676,7 +29705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -28713,7 +29743,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datid", @@ -28740,7 +29771,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -28767,7 +29799,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relid", @@ -28794,7 +29827,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "phase", @@ -28821,7 +29855,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sample_blks_total", @@ -28848,7 +29883,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sample_blks_scanned", @@ -28875,7 +29911,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ext_stats_total", @@ -28902,7 +29939,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ext_stats_computed", @@ -28929,7 +29967,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "child_tables_total", @@ -28956,7 +29995,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "child_tables_done", @@ -28983,7 +30023,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "current_child_table_relid", @@ -29010,7 +30051,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -29047,7 +30089,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "phase", @@ -29074,7 +30117,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backup_total", @@ -29101,7 +30145,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backup_streamed", @@ -29128,7 +30173,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablespaces_total", @@ -29155,7 +30201,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablespaces_streamed", @@ -29182,7 +30229,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -29219,7 +30267,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datid", @@ -29246,7 +30295,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -29273,7 +30323,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relid", @@ -29300,7 +30351,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "command", @@ -29327,7 +30379,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "phase", @@ -29354,7 +30407,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cluster_index_relid", @@ -29381,7 +30435,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_tuples_scanned", @@ -29408,7 +30463,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_tuples_written", @@ -29435,7 +30491,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_total", @@ -29462,7 +30519,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_scanned", @@ -29489,7 +30547,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "index_rebuild_count", @@ -29516,7 +30575,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -29553,7 +30613,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datid", @@ -29580,7 +30641,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -29607,7 +30669,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relid", @@ -29634,7 +30697,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "command", @@ -29661,7 +30725,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "type", @@ -29688,7 +30753,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bytes_processed", @@ -29715,7 +30781,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bytes_total", @@ -29742,7 +30809,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tuples_processed", @@ -29769,7 +30837,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tuples_excluded", @@ -29796,7 +30865,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -29833,7 +30903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datid", @@ -29860,7 +30931,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -29887,7 +30959,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relid", @@ -29914,7 +30987,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "index_relid", @@ -29941,7 +31015,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "command", @@ -29968,7 +31043,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "phase", @@ -29995,7 +31071,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lockers_total", @@ -30022,7 +31099,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "lockers_done", @@ -30049,7 +31127,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "current_locker_pid", @@ -30076,7 +31155,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blocks_total", @@ -30103,7 +31183,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blocks_done", @@ -30130,7 +31211,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tuples_total", @@ -30157,7 +31239,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tuples_done", @@ -30184,7 +31267,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partitions_total", @@ -30211,7 +31295,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "partitions_done", @@ -30238,7 +31323,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -30275,7 +31361,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datid", @@ -30302,7 +31389,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datname", @@ -30329,7 +31417,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relid", @@ -30356,7 +31445,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "phase", @@ -30383,7 +31473,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_total", @@ -30410,7 +31501,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_scanned", @@ -30437,7 +31529,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_vacuumed", @@ -30464,7 +31557,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "index_vacuum_count", @@ -30491,7 +31585,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "max_dead_tuples", @@ -30518,7 +31613,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "num_dead_tuples", @@ -30545,7 +31641,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -30582,7 +31679,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prefetch", @@ -30609,7 +31707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "hit", @@ -30636,7 +31735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "skip_init", @@ -30663,7 +31763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "skip_new", @@ -30690,7 +31791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "skip_fpw", @@ -30717,7 +31819,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "skip_rep", @@ -30744,7 +31847,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_distance", @@ -30771,7 +31875,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "block_distance", @@ -30798,7 +31903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "io_depth", @@ -30825,7 +31931,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -30862,7 +31969,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usesysid", @@ -30889,7 +31997,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usename", @@ -30916,7 +32025,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "application_name", @@ -30943,7 +32053,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_addr", @@ -30970,7 +32081,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_hostname", @@ -30997,7 +32109,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_port", @@ -31024,7 +32137,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backend_start", @@ -31051,7 +32165,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "backend_xmin", @@ -31078,7 +32193,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "state", @@ -31105,7 +32221,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sent_lsn", @@ -31132,7 +32249,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "write_lsn", @@ -31159,7 +32277,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "flush_lsn", @@ -31186,7 +32305,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "replay_lsn", @@ -31213,7 +32333,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "write_lag", @@ -31240,7 +32361,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "flush_lag", @@ -31267,7 +32389,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "replay_lag", @@ -31294,7 +32417,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sync_priority", @@ -31321,7 +32445,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sync_state", @@ -31348,7 +32473,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reply_time", @@ -31375,7 +32501,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -31412,7 +32539,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spill_txns", @@ -31439,7 +32567,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spill_count", @@ -31466,7 +32595,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spill_bytes", @@ -31493,7 +32623,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stream_txns", @@ -31520,7 +32651,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stream_count", @@ -31547,7 +32679,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stream_bytes", @@ -31574,7 +32707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "total_txns", @@ -31601,7 +32735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "total_bytes", @@ -31628,7 +32763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -31655,7 +32791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -31692,7 +32829,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_zeroed", @@ -31719,7 +32857,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_hit", @@ -31746,7 +32885,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_read", @@ -31773,7 +32913,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_written", @@ -31800,7 +32941,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_exists", @@ -31827,7 +32969,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "flushes", @@ -31854,7 +32997,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "truncates", @@ -31881,7 +33025,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -31908,7 +33053,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -31945,7 +33091,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ssl", @@ -31972,7 +33119,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "version", @@ -31999,7 +33147,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cipher", @@ -32026,7 +33175,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bits", @@ -32053,7 +33203,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_dn", @@ -32080,7 +33231,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "client_serial", @@ -32107,7 +33259,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "issuer_dn", @@ -32134,7 +33287,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -32171,7 +33325,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subname", @@ -32198,7 +33353,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pid", @@ -32225,7 +33381,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relid", @@ -32252,7 +33409,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "received_lsn", @@ -32279,7 +33437,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_msg_send_time", @@ -32306,7 +33465,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_msg_receipt_time", @@ -32333,7 +33493,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "latest_end_lsn", @@ -32360,7 +33521,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "latest_end_time", @@ -32387,7 +33549,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -32424,7 +33587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subname", @@ -32451,7 +33615,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "apply_error_count", @@ -32478,7 +33643,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sync_error_count", @@ -32505,7 +33671,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -32532,7 +33699,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -32569,7 +33737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -32596,7 +33765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -32623,7 +33793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -32650,7 +33821,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelname", @@ -32677,7 +33849,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -32704,7 +33877,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_read", @@ -32731,7 +33905,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -32758,7 +33933,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -32795,7 +33971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -32822,7 +33999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -32849,7 +34027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_scan", @@ -32876,7 +34055,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_tup_read", @@ -32903,7 +34083,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -32930,7 +34111,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -32957,7 +34139,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_ins", @@ -32984,7 +34167,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_upd", @@ -33011,7 +34195,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_del", @@ -33038,7 +34223,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_hot_upd", @@ -33065,7 +34251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_live_tup", @@ -33092,7 +34279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_dead_tup", @@ -33119,7 +34307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_mod_since_analyze", @@ -33146,7 +34335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_ins_since_vacuum", @@ -33173,7 +34363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_vacuum", @@ -33200,7 +34391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_autovacuum", @@ -33227,7 +34419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_analyze", @@ -33254,7 +34447,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_autoanalyze", @@ -33281,7 +34475,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "vacuum_count", @@ -33308,7 +34503,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "autovacuum_count", @@ -33335,7 +34531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "analyze_count", @@ -33362,7 +34559,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "autoanalyze_count", @@ -33389,7 +34587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -33426,7 +34625,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -33453,7 +34653,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "funcname", @@ -33480,7 +34681,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "calls", @@ -33507,7 +34709,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "total_time", @@ -33534,7 +34737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "self_time", @@ -33561,7 +34765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -33598,7 +34803,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -33625,7 +34831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -33652,7 +34859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -33679,7 +34887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelname", @@ -33706,7 +34915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -33733,7 +34943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_read", @@ -33760,7 +34971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -33787,7 +34999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -33824,7 +35037,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -33851,7 +35065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -33878,7 +35093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_scan", @@ -33905,7 +35121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_tup_read", @@ -33932,7 +35149,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -33959,7 +35177,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -33986,7 +35205,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_ins", @@ -34013,7 +35233,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_upd", @@ -34040,7 +35261,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_del", @@ -34067,7 +35289,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_hot_upd", @@ -34094,7 +35317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_live_tup", @@ -34121,7 +35345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_dead_tup", @@ -34148,7 +35373,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_mod_since_analyze", @@ -34175,7 +35401,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_ins_since_vacuum", @@ -34202,7 +35429,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_vacuum", @@ -34229,7 +35457,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_autovacuum", @@ -34256,7 +35485,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_analyze", @@ -34283,7 +35513,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_autoanalyze", @@ -34310,7 +35541,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "vacuum_count", @@ -34337,7 +35569,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "autovacuum_count", @@ -34364,7 +35597,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "analyze_count", @@ -34391,7 +35625,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "autoanalyze_count", @@ -34418,7 +35653,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -34455,7 +35691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_fpi", @@ -34482,7 +35719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_bytes", @@ -34509,7 +35747,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_buffers_full", @@ -34536,7 +35775,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_write", @@ -34563,7 +35803,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_sync", @@ -34590,7 +35831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_write_time", @@ -34617,7 +35859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "wal_sync_time", @@ -34644,7 +35887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stats_reset", @@ -34671,7 +35915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -34708,7 +35953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "status", @@ -34735,7 +35981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "receive_start_lsn", @@ -34762,7 +36009,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "receive_start_tli", @@ -34789,7 +36037,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "written_lsn", @@ -34816,7 +36065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "flushed_lsn", @@ -34843,7 +36093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "received_tli", @@ -34870,7 +36121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_msg_send_time", @@ -34897,7 +36149,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_msg_receipt_time", @@ -34924,7 +36177,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "latest_end_lsn", @@ -34951,7 +36205,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "latest_end_time", @@ -34978,7 +36233,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "slot_name", @@ -35005,7 +36261,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sender_host", @@ -35032,7 +36289,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sender_port", @@ -35059,7 +36317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "conninfo", @@ -35086,7 +36345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -35123,7 +36383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -35150,7 +36411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -35177,7 +36439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_scan", @@ -35204,7 +36467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_tup_read", @@ -35231,7 +36495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -35258,7 +36523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -35285,7 +36551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_ins", @@ -35312,7 +36579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_upd", @@ -35339,7 +36607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_del", @@ -35366,7 +36635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_hot_upd", @@ -35393,7 +36663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -35430,7 +36701,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -35457,7 +36729,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -35484,7 +36757,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_scan", @@ -35511,7 +36785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_tup_read", @@ -35538,7 +36813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -35565,7 +36841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -35592,7 +36869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_ins", @@ -35619,7 +36897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_upd", @@ -35646,7 +36925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_del", @@ -35673,7 +36953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_hot_upd", @@ -35700,7 +36981,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -35737,7 +37019,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -35764,7 +37047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "funcname", @@ -35791,7 +37075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "calls", @@ -35818,7 +37103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "total_time", @@ -35845,7 +37131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "self_time", @@ -35872,7 +37159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -35909,7 +37197,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -35936,7 +37225,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -35963,7 +37253,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_scan", @@ -35990,7 +37281,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "seq_tup_read", @@ -36017,7 +37309,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_scan", @@ -36044,7 +37337,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_tup_fetch", @@ -36071,7 +37365,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_ins", @@ -36098,7 +37393,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_upd", @@ -36125,7 +37421,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_del", @@ -36152,7 +37449,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_tup_hot_upd", @@ -36179,7 +37477,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -36216,7 +37515,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -36243,7 +37543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -36270,7 +37571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -36297,7 +37599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelname", @@ -36324,7 +37627,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_read", @@ -36351,7 +37655,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_hit", @@ -36378,7 +37683,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -36415,7 +37721,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -36442,7 +37749,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -36469,7 +37777,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_read", @@ -36496,7 +37805,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_hit", @@ -36523,7 +37833,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -36560,7 +37871,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -36587,7 +37899,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -36614,7 +37927,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_read", @@ -36641,7 +37955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_hit", @@ -36668,7 +37983,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_read", @@ -36695,7 +38011,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_hit", @@ -36722,7 +38039,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "toast_blks_read", @@ -36749,7 +38067,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "toast_blks_hit", @@ -36776,7 +38095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tidx_blks_read", @@ -36803,7 +38123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tidx_blks_hit", @@ -36830,7 +38151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -36867,7 +38189,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -36894,7 +38217,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -36921,7 +38245,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -36948,7 +38273,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelname", @@ -36975,7 +38301,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_read", @@ -37002,7 +38329,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_hit", @@ -37029,7 +38357,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -37066,7 +38395,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -37093,7 +38423,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -37120,7 +38451,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_read", @@ -37147,7 +38479,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_hit", @@ -37174,7 +38507,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -37211,7 +38545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -37238,7 +38573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -37265,7 +38601,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_read", @@ -37292,7 +38629,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_hit", @@ -37319,7 +38657,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_read", @@ -37346,7 +38685,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_hit", @@ -37373,7 +38713,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "toast_blks_read", @@ -37400,7 +38741,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "toast_blks_hit", @@ -37427,7 +38769,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tidx_blks_read", @@ -37454,7 +38797,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tidx_blks_hit", @@ -37481,7 +38825,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -37518,7 +38863,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelid", @@ -37545,7 +38891,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -37572,7 +38919,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -37599,7 +38947,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "indexrelname", @@ -37626,7 +38975,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_read", @@ -37653,7 +39003,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_hit", @@ -37680,7 +39031,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -37717,7 +39069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -37744,7 +39097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -37771,7 +39125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_read", @@ -37798,7 +39153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "blks_hit", @@ -37825,7 +39181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -37862,7 +39219,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schemaname", @@ -37889,7 +39247,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -37916,7 +39275,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_read", @@ -37943,7 +39303,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "heap_blks_hit", @@ -37970,7 +39331,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_read", @@ -37997,7 +39359,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "idx_blks_hit", @@ -38024,7 +39387,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "toast_blks_read", @@ -38051,7 +39415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "toast_blks_hit", @@ -38078,7 +39443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tidx_blks_read", @@ -38105,7 +39471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tidx_blks_hit", @@ -38132,7 +39499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -38169,7 +39537,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -38196,7 +39565,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -38223,7 +39593,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -38250,7 +39621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -38277,7 +39649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -38304,7 +39677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "starelid", @@ -38331,7 +39705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "staattnum", @@ -38358,7 +39733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stainherit", @@ -38385,7 +39761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stanullfrac", @@ -38412,7 +39789,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stawidth", @@ -38439,7 +39817,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stadistinct", @@ -38466,7 +39845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stakind1", @@ -38493,7 +39873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stakind2", @@ -38520,7 +39901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stakind3", @@ -38547,7 +39929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stakind4", @@ -38574,7 +39957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stakind5", @@ -38601,7 +39985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "staop1", @@ -38628,7 +40013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "staop2", @@ -38655,7 +40041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "staop3", @@ -38682,7 +40069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "staop4", @@ -38709,7 +40097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "staop5", @@ -38736,7 +40125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stacoll1", @@ -38763,7 +40153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stacoll2", @@ -38790,7 +40181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stacoll3", @@ -38817,7 +40209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stacoll4", @@ -38844,7 +40237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stacoll5", @@ -38871,7 +40265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stanumbers1", @@ -38898,7 +40293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stanumbers2", @@ -38925,7 +40321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stanumbers3", @@ -38952,7 +40349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stanumbers4", @@ -38979,7 +40377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stanumbers5", @@ -39006,7 +40405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stavalues1", @@ -39033,7 +40433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stavalues2", @@ -39060,7 +40461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stavalues3", @@ -39087,7 +40489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stavalues4", @@ -39114,7 +40517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stavalues5", @@ -39141,7 +40545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -39178,7 +40583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -39205,7 +40611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -39232,7 +40639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -39259,7 +40667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -39286,7 +40695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -39313,7 +40723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -39340,7 +40751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxrelid", @@ -39367,7 +40779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxname", @@ -39394,7 +40807,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxnamespace", @@ -39421,7 +40835,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxowner", @@ -39448,7 +40863,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxstattarget", @@ -39475,7 +40891,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxkeys", @@ -39502,7 +40919,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxkind", @@ -39529,7 +40947,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxexprs", @@ -39556,7 +40975,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -39593,7 +41013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -39620,7 +41041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -39647,7 +41069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -39674,7 +41097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -39701,7 +41125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -39728,7 +41153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxoid", @@ -39755,7 +41181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxdinherit", @@ -39782,7 +41209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxdndistinct", @@ -39809,7 +41237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxddependencies", @@ -39836,7 +41265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxdmcv", @@ -39863,7 +41293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "stxdexpr", @@ -39890,7 +41321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -39927,7 +41359,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -39954,7 +41387,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attname", @@ -39981,7 +41415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inherited", @@ -40008,7 +41443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "null_frac", @@ -40035,7 +41471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "avg_width", @@ -40062,7 +41499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_distinct", @@ -40089,7 +41527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_vals", @@ -40116,7 +41555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_freqs", @@ -40143,7 +41583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "histogram_bounds", @@ -40170,7 +41611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "correlation", @@ -40197,7 +41639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_elems", @@ -40224,7 +41667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_elem_freqs", @@ -40251,7 +41695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "elem_count_histogram", @@ -40278,7 +41723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -40315,7 +41761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -40342,7 +41789,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statistics_schemaname", @@ -40369,7 +41817,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statistics_name", @@ -40396,7 +41845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statistics_owner", @@ -40423,7 +41873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attnames", @@ -40450,7 +41901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "exprs", @@ -40477,7 +41929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "kinds", @@ -40504,7 +41957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inherited", @@ -40531,7 +41985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_distinct", @@ -40558,7 +42013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dependencies", @@ -40585,7 +42041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_vals", @@ -40612,7 +42069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_val_nulls", @@ -40639,7 +42097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_freqs", @@ -40666,7 +42125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_base_freqs", @@ -40693,7 +42153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -40730,7 +42191,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -40757,7 +42219,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statistics_schemaname", @@ -40784,7 +42247,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statistics_name", @@ -40811,7 +42275,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "statistics_owner", @@ -40838,7 +42303,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "expr", @@ -40865,7 +42331,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "inherited", @@ -40892,7 +42359,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "null_frac", @@ -40919,7 +42387,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "avg_width", @@ -40946,7 +42415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "n_distinct", @@ -40973,7 +42443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_vals", @@ -41000,7 +42471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_freqs", @@ -41027,7 +42499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "histogram_bounds", @@ -41054,7 +42527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "correlation", @@ -41081,7 +42555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_elems", @@ -41108,7 +42583,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "most_common_elem_freqs", @@ -41135,7 +42611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "elem_count_histogram", @@ -41162,7 +42639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -41199,7 +42677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -41226,7 +42705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -41253,7 +42733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -41280,7 +42761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -41307,7 +42789,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -41334,7 +42817,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -41361,7 +42845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subdbid", @@ -41388,7 +42873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subskiplsn", @@ -41415,7 +42901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subname", @@ -41442,7 +42929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subowner", @@ -41469,7 +42957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subenabled", @@ -41496,7 +42985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subbinary", @@ -41523,7 +43013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "substream", @@ -41550,7 +43041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subtwophasestate", @@ -41577,7 +43069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subdisableonerr", @@ -41604,7 +43097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subconninfo", @@ -41631,7 +43125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subslotname", @@ -41658,7 +43153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subsynccommit", @@ -41685,7 +43181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "subpublications", @@ -41712,7 +43209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -41749,7 +43247,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -41776,7 +43275,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -41803,7 +43303,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -41830,7 +43331,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -41857,7 +43359,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -41884,7 +43387,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srsubid", @@ -41911,7 +43415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srrelid", @@ -41938,7 +43443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srsubstate", @@ -41965,7 +43471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srsublsn", @@ -41992,7 +43499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -42029,7 +43537,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablename", @@ -42056,7 +43565,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tableowner", @@ -42083,7 +43593,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tablespace", @@ -42110,7 +43621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "hasindexes", @@ -42137,7 +43649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "hasrules", @@ -42164,7 +43677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "hastriggers", @@ -42191,7 +43705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "rowsecurity", @@ -42218,7 +43733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -42255,7 +43771,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -42282,7 +43799,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -42309,7 +43827,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -42336,7 +43855,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -42363,7 +43883,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -42390,7 +43911,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -42417,7 +43939,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spcname", @@ -42444,7 +43967,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spcowner", @@ -42471,7 +43995,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spcacl", @@ -42498,7 +44023,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "spcoptions", @@ -42525,7 +44051,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -42562,7 +44089,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "utc_offset", @@ -42589,7 +44117,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_dst", @@ -42616,7 +44145,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -42653,7 +44183,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "abbrev", @@ -42680,7 +44211,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "utc_offset", @@ -42707,7 +44239,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_dst", @@ -42734,7 +44267,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -42771,7 +44305,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -42798,7 +44333,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -42825,7 +44361,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -42852,7 +44389,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -42879,7 +44417,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -42906,7 +44445,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -42933,7 +44473,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trftype", @@ -42960,7 +44501,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trflang", @@ -42987,7 +44529,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trffromsql", @@ -43014,7 +44557,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trftosql", @@ -43041,7 +44585,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -43078,7 +44623,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -43105,7 +44651,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -43132,7 +44679,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -43159,7 +44707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -43186,7 +44735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -43213,7 +44763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -43240,7 +44791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgrelid", @@ -43267,7 +44819,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgparentid", @@ -43294,7 +44847,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgname", @@ -43321,7 +44875,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgfoid", @@ -43348,7 +44903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgtype", @@ -43375,7 +44931,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgenabled", @@ -43402,7 +44959,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgisinternal", @@ -43429,7 +44987,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgconstrrelid", @@ -43456,7 +45015,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgconstrindid", @@ -43483,7 +45043,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgconstraint", @@ -43510,7 +45071,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgdeferrable", @@ -43537,7 +45099,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tginitdeferred", @@ -43564,7 +45127,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgnargs", @@ -43591,7 +45155,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgattr", @@ -43618,7 +45183,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgargs", @@ -43645,7 +45211,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgqual", @@ -43672,7 +45239,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgoldtable", @@ -43699,7 +45267,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tgnewtable", @@ -43726,7 +45295,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -43763,7 +45333,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -43790,7 +45361,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -43817,7 +45389,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -43844,7 +45417,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -43871,7 +45445,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -43898,7 +45473,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -43925,7 +45501,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cfgname", @@ -43952,7 +45529,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cfgnamespace", @@ -43979,7 +45557,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cfgowner", @@ -44006,7 +45585,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cfgparser", @@ -44033,7 +45613,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -44070,7 +45651,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -44097,7 +45679,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -44124,7 +45707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -44151,7 +45735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -44178,7 +45763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -44205,7 +45791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "mapcfg", @@ -44232,7 +45819,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maptokentype", @@ -44259,7 +45847,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "mapseqno", @@ -44286,7 +45875,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "mapdict", @@ -44313,7 +45903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -44350,7 +45941,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -44377,7 +45969,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -44404,7 +45997,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -44431,7 +46025,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -44458,7 +46053,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -44485,7 +46081,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -44512,7 +46109,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dictname", @@ -44539,7 +46137,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dictnamespace", @@ -44566,7 +46165,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dictowner", @@ -44593,7 +46193,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dicttemplate", @@ -44620,7 +46221,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dictinitoption", @@ -44647,7 +46249,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -44684,7 +46287,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -44711,7 +46315,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -44738,7 +46343,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -44765,7 +46371,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -44792,7 +46399,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -44819,7 +46427,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -44846,7 +46455,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prsname", @@ -44873,7 +46483,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prsnamespace", @@ -44900,7 +46511,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prsstart", @@ -44927,7 +46539,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prstoken", @@ -44954,7 +46567,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prsend", @@ -44981,7 +46595,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prsheadline", @@ -45008,7 +46623,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "prslextype", @@ -45035,7 +46651,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -45072,7 +46689,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -45099,7 +46717,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -45126,7 +46745,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -45153,7 +46773,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -45180,7 +46801,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -45207,7 +46829,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -45234,7 +46857,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tmplname", @@ -45261,7 +46885,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tmplnamespace", @@ -45288,7 +46913,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tmplinit", @@ -45315,7 +46941,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "tmpllexize", @@ -45342,7 +46969,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -45379,7 +47007,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -45406,7 +47035,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -45433,7 +47063,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -45460,7 +47091,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -45487,7 +47119,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -45514,7 +47147,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -45541,7 +47175,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typname", @@ -45568,7 +47203,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typnamespace", @@ -45595,7 +47231,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typowner", @@ -45622,7 +47259,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typlen", @@ -45649,7 +47287,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typbyval", @@ -45676,7 +47315,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typtype", @@ -45703,7 +47343,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typcategory", @@ -45730,7 +47371,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typispreferred", @@ -45757,7 +47399,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typisdefined", @@ -45784,7 +47427,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typdelim", @@ -45811,7 +47455,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typrelid", @@ -45838,7 +47483,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typsubscript", @@ -45865,7 +47511,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typelem", @@ -45892,7 +47539,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typarray", @@ -45919,7 +47567,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typinput", @@ -45946,7 +47595,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typoutput", @@ -45973,7 +47623,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typreceive", @@ -46000,7 +47651,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typsend", @@ -46027,7 +47679,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typmodin", @@ -46054,7 +47707,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typmodout", @@ -46081,7 +47735,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typanalyze", @@ -46108,7 +47763,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typalign", @@ -46135,7 +47791,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typstorage", @@ -46162,7 +47819,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typnotnull", @@ -46189,7 +47847,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typbasetype", @@ -46216,7 +47875,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typtypmod", @@ -46243,7 +47903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typndims", @@ -46270,7 +47931,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typcollation", @@ -46297,7 +47959,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typdefaultbin", @@ -46324,7 +47987,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typdefault", @@ -46351,7 +48015,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "typacl", @@ -46378,7 +48043,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -46415,7 +48081,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usesysid", @@ -46442,7 +48109,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usecreatedb", @@ -46469,7 +48137,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usesuper", @@ -46496,7 +48165,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "userepl", @@ -46523,7 +48193,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usebypassrls", @@ -46550,7 +48221,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "passwd", @@ -46577,7 +48249,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "valuntil", @@ -46604,7 +48277,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "useconfig", @@ -46631,7 +48305,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -46668,7 +48343,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -46695,7 +48371,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -46722,7 +48399,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -46749,7 +48427,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -46776,7 +48455,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -46803,7 +48483,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "oid", @@ -46830,7 +48511,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umuser", @@ -46857,7 +48539,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umserver", @@ -46884,7 +48567,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umoptions", @@ -46911,7 +48595,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -46948,7 +48633,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvid", @@ -46975,7 +48661,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvname", @@ -47002,7 +48689,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umuser", @@ -47029,7 +48717,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "usename", @@ -47056,7 +48745,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umoptions", @@ -47083,7 +48773,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -47120,7 +48811,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "viewname", @@ -47147,7 +48839,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "viewowner", @@ -47174,7 +48867,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "definition", @@ -47201,7 +48895,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -47246,7 +48941,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwowner", @@ -47273,7 +48969,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "fdwoptions", @@ -47300,7 +48997,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_catalog", @@ -47327,7 +49025,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_name", @@ -47354,7 +49053,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "authorization_identifier", @@ -47381,7 +49081,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_language", @@ -47408,7 +49109,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -47445,7 +49147,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvoptions", @@ -47472,7 +49175,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_catalog", @@ -47499,7 +49203,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -47526,7 +49231,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_catalog", @@ -47553,7 +49259,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_name", @@ -47580,7 +49287,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_type", @@ -47607,7 +49315,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_version", @@ -47634,7 +49343,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "authorization_identifier", @@ -47661,7 +49371,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -47698,7 +49409,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "relname", @@ -47725,7 +49437,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attname", @@ -47752,7 +49465,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attfdwoptions", @@ -47779,7 +49493,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -47816,7 +49531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_table_schema", @@ -47843,7 +49559,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_table_name", @@ -47870,7 +49587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ftoptions", @@ -47897,7 +49615,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_catalog", @@ -47924,7 +49643,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -47951,7 +49671,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "authorization_identifier", @@ -47978,7 +49699,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -48015,7 +49737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umoptions", @@ -48042,7 +49765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "umuser", @@ -48069,7 +49793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "authorization_identifier", @@ -48096,7 +49821,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_catalog", @@ -48123,7 +49849,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -48150,7 +49877,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "srvowner", @@ -48177,7 +49905,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -48214,7 +49943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "role_name", @@ -48241,7 +49971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -48268,7 +49999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -48305,7 +50037,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "role_name", @@ -48332,7 +50065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -48359,7 +50093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -48396,7 +50131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -48423,7 +50159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -48450,7 +50187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attribute_name", @@ -48477,7 +50215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordinal_position", @@ -48504,7 +50243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attribute_default", @@ -48531,7 +50271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_nullable", @@ -48558,7 +50299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -48585,7 +50327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -48612,7 +50355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -48639,7 +50383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -48666,7 +50411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -48693,7 +50439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -48720,7 +50467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -48747,7 +50495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -48774,7 +50523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -48801,7 +50551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -48828,7 +50579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -48855,7 +50607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -48882,7 +50635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -48909,7 +50663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -48936,7 +50691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -48963,7 +50719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attribute_udt_catalog", @@ -48990,7 +50747,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attribute_udt_schema", @@ -49017,7 +50775,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "attribute_udt_name", @@ -49044,7 +50803,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_catalog", @@ -49071,7 +50831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_schema", @@ -49098,7 +50859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_name", @@ -49125,7 +50887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_cardinality", @@ -49152,7 +50915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -49179,7 +50943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_derived_reference_attribute", @@ -49206,7 +50971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -49243,7 +51009,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -49270,7 +51037,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -49297,7 +51065,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_repertoire", @@ -49324,7 +51093,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "form_of_use", @@ -49351,7 +51121,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_collate_catalog", @@ -49378,7 +51149,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_collate_schema", @@ -49405,7 +51177,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_collate_name", @@ -49432,7 +51205,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -49469,7 +51243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -49496,7 +51271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -49523,7 +51299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_catalog", @@ -49550,7 +51327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -49577,7 +51355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -49604,7 +51383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -49641,7 +51421,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -49668,7 +51449,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -49695,7 +51477,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "check_clause", @@ -49722,7 +51505,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -49759,7 +51543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -49786,7 +51571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -49813,7 +51599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -49840,7 +51627,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -49867,7 +51655,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -49894,7 +51683,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -49931,7 +51721,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -49958,7 +51749,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -49985,7 +51777,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "pad_attribute", @@ -50012,7 +51805,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -50049,7 +51843,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -50076,7 +51871,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -50103,7 +51899,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -50130,7 +51927,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dependent_column", @@ -50157,7 +51955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -50194,7 +51993,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_schema", @@ -50221,7 +52021,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_name", @@ -50248,7 +52049,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -50275,7 +52077,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -50302,7 +52105,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -50329,7 +52133,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -50356,7 +52161,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -50393,7 +52199,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -50420,7 +52227,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -50447,7 +52255,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -50474,7 +52283,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_name", @@ -50501,7 +52311,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_value", @@ -50528,7 +52339,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -50565,7 +52377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -50592,7 +52405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -50619,7 +52433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -50646,7 +52461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -50673,7 +52489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -50700,7 +52517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -50727,7 +52545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -50754,7 +52573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -50791,7 +52611,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -50818,7 +52639,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -50845,7 +52667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -50872,7 +52695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -50899,7 +52723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -50926,7 +52751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -50953,7 +52779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -50990,7 +52817,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -51017,7 +52845,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -51044,7 +52873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -51071,7 +52901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordinal_position", @@ -51098,7 +52929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_default", @@ -51125,7 +52957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_nullable", @@ -51152,7 +52985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -51179,7 +53013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -51206,7 +53041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -51233,7 +53069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -51260,7 +53097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -51287,7 +53125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -51314,7 +53153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -51341,7 +53181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -51368,7 +53209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -51395,7 +53237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -51422,7 +53265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -51449,7 +53293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -51476,7 +53321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -51503,7 +53349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -51530,7 +53377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -51557,7 +53405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_catalog", @@ -51584,7 +53433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_schema", @@ -51611,7 +53461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_name", @@ -51638,7 +53489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -51665,7 +53517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -51692,7 +53545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -51719,7 +53573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_catalog", @@ -51746,7 +53601,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_schema", @@ -51773,7 +53629,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_name", @@ -51800,7 +53657,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_cardinality", @@ -51827,7 +53685,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -51854,7 +53713,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_self_referencing", @@ -51881,7 +53741,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_identity", @@ -51908,7 +53769,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "identity_generation", @@ -51935,7 +53797,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "identity_start", @@ -51962,7 +53825,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "identity_increment", @@ -51989,7 +53853,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "identity_maximum", @@ -52016,7 +53881,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "identity_minimum", @@ -52043,7 +53909,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "identity_cycle", @@ -52070,7 +53937,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_generated", @@ -52097,7 +53965,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "generation_expression", @@ -52124,7 +53993,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_updatable", @@ -52151,7 +54021,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -52188,7 +54059,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -52215,7 +54087,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -52242,7 +54115,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -52269,7 +54143,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_catalog", @@ -52296,7 +54171,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -52323,7 +54199,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -52350,7 +54227,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -52387,7 +54265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -52414,7 +54293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -52441,7 +54321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_catalog", @@ -52468,7 +54349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -52495,7 +54377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -52522,7 +54405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -52559,7 +54443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_schema", @@ -52586,7 +54471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_name", @@ -52613,7 +54499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_type", @@ -52640,7 +54527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -52667,7 +54555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -52704,7 +54593,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -52731,7 +54621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -52758,7 +54649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_catalog", @@ -52785,7 +54677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_schema", @@ -52812,7 +54705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_name", @@ -52839,7 +54733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_deferrable", @@ -52866,7 +54761,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "initially_deferred", @@ -52893,7 +54789,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -52930,7 +54827,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -52957,7 +54855,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -52984,7 +54883,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_catalog", @@ -53011,7 +54911,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_schema", @@ -53038,7 +54939,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_name", @@ -53065,7 +54967,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -53102,7 +55005,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_schema", @@ -53129,7 +55033,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_name", @@ -53156,7 +55061,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -53183,7 +55089,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -53210,7 +55117,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -53237,7 +55145,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -53264,7 +55173,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -53291,7 +55201,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -53318,7 +55229,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -53345,7 +55257,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -53372,7 +55285,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -53399,7 +55313,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -53426,7 +55341,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -53453,7 +55369,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -53480,7 +55397,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -53507,7 +55425,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -53534,7 +55453,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -53561,7 +55481,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_default", @@ -53588,7 +55509,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -53615,7 +55537,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -53642,7 +55565,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -53669,7 +55593,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_catalog", @@ -53696,7 +55621,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_schema", @@ -53723,7 +55649,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_name", @@ -53750,7 +55677,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_cardinality", @@ -53777,7 +55705,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -53804,7 +55733,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -53841,7 +55771,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_schema", @@ -53868,7 +55799,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_name", @@ -53895,7 +55827,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_type", @@ -53922,7 +55855,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collection_type_identifier", @@ -53949,7 +55883,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -53976,7 +55911,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -54003,7 +55939,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -54030,7 +55967,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -54057,7 +55995,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -54084,7 +56023,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -54111,7 +56051,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -54138,7 +56079,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -54165,7 +56107,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -54192,7 +56135,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -54219,7 +56163,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -54246,7 +56191,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -54273,7 +56219,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -54300,7 +56247,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -54327,7 +56275,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -54354,7 +56303,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "domain_default", @@ -54381,7 +56331,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -54408,7 +56359,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -54435,7 +56387,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -54462,7 +56415,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_catalog", @@ -54489,7 +56443,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_schema", @@ -54516,7 +56471,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_name", @@ -54543,7 +56499,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_cardinality", @@ -54570,7 +56527,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -54597,7 +56555,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -54634,7 +56593,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -54671,7 +56631,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_name", @@ -54698,7 +56659,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_name", @@ -54725,7 +56687,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_value", @@ -54752,7 +56715,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -54789,7 +56753,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_name", @@ -54816,7 +56781,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "authorization_identifier", @@ -54843,7 +56809,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "library_name", @@ -54870,7 +56837,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_language", @@ -54897,7 +56865,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -54934,7 +56903,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -54961,7 +56931,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_name", @@ -54988,7 +56959,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_value", @@ -55015,7 +56987,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -55052,7 +57025,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -55079,7 +57053,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_catalog", @@ -55106,7 +57081,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_data_wrapper_name", @@ -55133,7 +57109,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_type", @@ -55160,7 +57137,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_version", @@ -55187,7 +57165,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "authorization_identifier", @@ -55214,7 +57193,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -55251,7 +57231,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_table_schema", @@ -55278,7 +57259,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_table_name", @@ -55305,7 +57287,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_name", @@ -55332,7 +57315,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_value", @@ -55359,7 +57343,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -55396,7 +57381,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_table_schema", @@ -55423,7 +57409,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_table_name", @@ -55450,7 +57437,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_catalog", @@ -55477,7 +57465,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -55504,7 +57493,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -55541,7 +57531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -55578,7 +57569,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -55605,7 +57597,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -55632,7 +57625,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -55659,7 +57653,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -55686,7 +57681,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -55713,7 +57709,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -55740,7 +57737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordinal_position", @@ -55767,7 +57765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "position_in_unique_constraint", @@ -55794,7 +57793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -55831,7 +57831,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -55858,7 +57859,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -55885,7 +57887,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordinal_position", @@ -55912,7 +57915,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parameter_mode", @@ -55939,7 +57943,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_result", @@ -55966,7 +57971,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "as_locator", @@ -55993,7 +57999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parameter_name", @@ -56020,7 +58027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -56047,7 +58055,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -56074,7 +58083,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -56101,7 +58111,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -56128,7 +58139,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -56155,7 +58167,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -56182,7 +58195,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -56209,7 +58223,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -56236,7 +58251,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -56263,7 +58279,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -56290,7 +58307,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -56317,7 +58335,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -56344,7 +58363,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -56371,7 +58391,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -56398,7 +58419,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -56425,7 +58447,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -56452,7 +58475,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -56479,7 +58503,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -56506,7 +58531,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_catalog", @@ -56533,7 +58559,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_schema", @@ -56560,7 +58587,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_name", @@ -56587,7 +58615,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_cardinality", @@ -56614,7 +58643,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -56641,7 +58671,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parameter_default", @@ -56668,7 +58699,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -56705,7 +58737,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -56732,7 +58765,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -56759,7 +58793,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "unique_constraint_catalog", @@ -56786,7 +58821,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "unique_constraint_schema", @@ -56813,7 +58849,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "unique_constraint_name", @@ -56840,7 +58877,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "match_option", @@ -56867,7 +58905,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "update_rule", @@ -56894,7 +58933,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "delete_rule", @@ -56921,7 +58961,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -56958,7 +58999,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -56985,7 +59027,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -57012,7 +59055,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -57039,7 +59083,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -57066,7 +59111,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -57093,7 +59139,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -57120,7 +59167,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -57147,7 +59195,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -57184,7 +59233,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -57211,7 +59261,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_catalog", @@ -57238,7 +59289,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -57265,7 +59317,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -57292,7 +59345,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -57319,7 +59373,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -57346,7 +59401,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -57373,7 +59429,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -57400,7 +59457,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -57427,7 +59485,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -57464,7 +59523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -57491,7 +59551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -57518,7 +59579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -57545,7 +59607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -57572,7 +59635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -57599,7 +59663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -57626,7 +59691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "with_hierarchy", @@ -57653,7 +59719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -57690,7 +59757,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -57717,7 +59785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -57744,7 +59813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -57771,7 +59841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -57798,7 +59869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -57825,7 +59897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -57852,7 +59925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -57889,7 +59963,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -57916,7 +59991,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_catalog", @@ -57943,7 +60019,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_schema", @@ -57970,7 +60047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_name", @@ -57997,7 +60075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_type", @@ -58024,7 +60103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -58051,7 +60131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -58078,7 +60159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -58115,7 +60197,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -58142,7 +60225,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -58169,7 +60253,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -58196,7 +60281,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -58223,7 +60309,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -58250,7 +60337,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -58277,7 +60365,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -58304,7 +60393,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -58331,7 +60421,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -58358,7 +60449,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -58395,7 +60487,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -58422,7 +60515,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_catalog", @@ -58449,7 +60543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -58476,7 +60571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -58503,7 +60599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -58530,7 +60627,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -58557,7 +60655,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -58584,7 +60683,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -58611,7 +60711,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -58638,7 +60739,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -58675,7 +60777,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -58702,7 +60805,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -58729,7 +60833,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -58756,7 +60861,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -58783,7 +60889,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -58810,7 +60917,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -58847,7 +60955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -58874,7 +60983,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -58901,7 +61011,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -58928,7 +61039,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -58955,7 +61067,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -58982,7 +61095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequence_catalog", @@ -59009,7 +61123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequence_schema", @@ -59036,7 +61151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequence_name", @@ -59063,7 +61179,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -59100,7 +61217,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -59127,7 +61245,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -59154,7 +61273,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -59181,7 +61301,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -59208,7 +61329,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -59235,7 +61357,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -59262,7 +61385,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -59289,7 +61413,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -59316,7 +61441,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -59353,7 +61479,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -59380,7 +61507,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -59407,7 +61535,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_catalog", @@ -59434,7 +61563,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_schema", @@ -59461,7 +61591,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_name", @@ -59488,7 +61619,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_type", @@ -59515,7 +61647,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "module_catalog", @@ -59542,7 +61675,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "module_schema", @@ -59569,7 +61703,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "module_name", @@ -59596,7 +61731,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -59623,7 +61759,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -59650,7 +61787,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -59677,7 +61815,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -59704,7 +61843,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -59731,7 +61871,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -59758,7 +61899,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -59785,7 +61927,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -59812,7 +61955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -59839,7 +61983,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -59866,7 +62011,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -59893,7 +62039,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -59920,7 +62067,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -59947,7 +62095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -59974,7 +62123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -60001,7 +62151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -60028,7 +62179,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -60055,7 +62207,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -60082,7 +62235,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "type_udt_catalog", @@ -60109,7 +62263,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "type_udt_schema", @@ -60136,7 +62291,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "type_udt_name", @@ -60163,7 +62319,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_catalog", @@ -60190,7 +62347,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_schema", @@ -60217,7 +62375,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "scope_name", @@ -60244,7 +62403,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_cardinality", @@ -60271,7 +62431,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "dtd_identifier", @@ -60298,7 +62459,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_body", @@ -60325,7 +62487,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "routine_definition", @@ -60352,7 +62515,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "external_name", @@ -60379,7 +62543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "external_language", @@ -60406,7 +62571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "parameter_style", @@ -60433,7 +62599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_deterministic", @@ -60460,7 +62627,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sql_data_access", @@ -60487,7 +62655,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_null_call", @@ -60514,7 +62683,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sql_path", @@ -60541,7 +62711,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schema_level_routine", @@ -60568,7 +62739,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "max_dynamic_result_sets", @@ -60595,7 +62767,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_user_defined_cast", @@ -60622,7 +62795,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_implicitly_invocable", @@ -60649,7 +62823,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "security_type", @@ -60676,7 +62851,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "to_sql_specific_catalog", @@ -60703,7 +62879,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "to_sql_specific_schema", @@ -60730,7 +62907,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "to_sql_specific_name", @@ -60757,7 +62935,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "as_locator", @@ -60784,7 +62963,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "created", @@ -60811,7 +62991,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "last_altered", @@ -60838,7 +63019,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "new_savepoint_level", @@ -60865,7 +63047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_udt_dependent", @@ -60892,7 +63075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_from_data_type", @@ -60919,7 +63103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_as_locator", @@ -60946,7 +63131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_char_max_length", @@ -60973,7 +63159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_char_octet_length", @@ -61000,7 +63187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_char_set_catalog", @@ -61027,7 +63215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_char_set_schema", @@ -61054,7 +63243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_char_set_name", @@ -61081,7 +63271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_collation_catalog", @@ -61108,7 +63299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_collation_schema", @@ -61135,7 +63327,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_collation_name", @@ -61162,7 +63355,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_numeric_precision", @@ -61189,7 +63383,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_numeric_precision_radix", @@ -61216,7 +63411,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_numeric_scale", @@ -61243,7 +63439,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_datetime_precision", @@ -61270,7 +63467,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_interval_type", @@ -61297,7 +63495,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_interval_precision", @@ -61324,7 +63523,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_type_udt_catalog", @@ -61351,7 +63551,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_type_udt_schema", @@ -61378,7 +63579,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_type_udt_name", @@ -61405,7 +63607,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_scope_catalog", @@ -61432,7 +63635,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_scope_schema", @@ -61459,7 +63663,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_scope_name", @@ -61486,7 +63691,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_maximum_cardinality", @@ -61513,7 +63719,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "result_cast_dtd_identifier", @@ -61540,7 +63747,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -61577,7 +63785,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schema_name", @@ -61604,7 +63813,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "schema_owner", @@ -61631,7 +63841,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_character_set_catalog", @@ -61658,7 +63869,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_character_set_schema", @@ -61685,7 +63897,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "default_character_set_name", @@ -61712,7 +63925,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sql_path", @@ -61739,7 +63953,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -61776,7 +63991,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequence_schema", @@ -61803,7 +64019,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sequence_name", @@ -61830,7 +64047,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -61857,7 +64075,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -61884,7 +64103,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -61911,7 +64131,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -61938,7 +64159,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "start_value", @@ -61965,7 +64187,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "minimum_value", @@ -61992,7 +64215,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "maximum_value", @@ -62019,7 +64243,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "increment", @@ -62046,7 +64271,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cycle_option", @@ -62073,7 +64299,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -62110,7 +64337,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -62137,7 +64365,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -62164,7 +64393,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -62191,7 +64421,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -62218,7 +64449,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -62245,7 +64477,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "feature_id", @@ -62272,7 +64505,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "feature_name", @@ -62299,7 +64533,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sub_feature_id", @@ -62326,7 +64561,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sub_feature_name", @@ -62353,7 +64589,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_supported", @@ -62380,7 +64617,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_verified_by", @@ -62407,7 +64645,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "comments", @@ -62434,7 +64673,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -62471,7 +64711,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -62498,7 +64739,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -62525,7 +64767,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -62552,7 +64795,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -62579,7 +64823,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -62606,7 +64851,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "implementation_info_id", @@ -62633,7 +64879,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "implementation_info_name", @@ -62660,7 +64907,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "integer_value", @@ -62687,7 +64935,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_value", @@ -62714,7 +64963,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "comments", @@ -62741,7 +64991,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -62778,7 +65029,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -62805,7 +65057,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -62832,7 +65085,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -62859,7 +65113,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -62886,7 +65141,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -62913,7 +65169,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "feature_id", @@ -62940,7 +65197,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "feature_name", @@ -62967,7 +65225,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_supported", @@ -62994,7 +65253,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_verified_by", @@ -63021,7 +65281,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "comments", @@ -63048,7 +65309,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -63085,7 +65347,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmax", @@ -63112,7 +65375,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmax", @@ -63139,7 +65403,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "cmin", @@ -63166,7 +65431,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "xmin", @@ -63193,7 +65459,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ctid", @@ -63220,7 +65487,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sizing_id", @@ -63247,7 +65515,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "sizing_name", @@ -63274,7 +65543,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "supported_value", @@ -63301,7 +65571,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "comments", @@ -63328,7 +65599,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -63365,7 +65637,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_schema", @@ -63392,7 +65665,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_name", @@ -63419,7 +65693,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -63446,7 +65721,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -63473,7 +65749,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -63500,7 +65777,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "constraint_type", @@ -63527,7 +65805,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_deferrable", @@ -63554,7 +65833,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "initially_deferred", @@ -63581,7 +65861,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "enforced", @@ -63608,7 +65889,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "nulls_distinct", @@ -63635,7 +65917,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -63672,7 +65955,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -63699,7 +65983,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -63726,7 +66011,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -63753,7 +66039,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -63780,7 +66067,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -63807,7 +66095,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -63834,7 +66123,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "with_hierarchy", @@ -63861,7 +66151,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -63898,7 +66189,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -63925,7 +66217,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -63952,7 +66245,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_type", @@ -63979,7 +66273,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "self_referencing_column_name", @@ -64006,7 +66301,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reference_generation", @@ -64033,7 +66329,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_defined_type_catalog", @@ -64060,7 +66357,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_defined_type_schema", @@ -64087,7 +66385,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_defined_type_name", @@ -64114,7 +66413,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_insertable_into", @@ -64141,7 +66441,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_typed", @@ -64168,7 +66469,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "commit_action", @@ -64195,7 +66497,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -64232,7 +66535,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -64259,7 +66563,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -64286,7 +66591,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_catalog", @@ -64313,7 +66619,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -64340,7 +66647,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -64367,7 +66675,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "group_name", @@ -64394,7 +66703,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "transform_type", @@ -64421,7 +66731,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -64458,7 +66769,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trigger_schema", @@ -64485,7 +66797,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trigger_name", @@ -64512,7 +66825,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_catalog", @@ -64539,7 +66853,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_schema", @@ -64566,7 +66881,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_table", @@ -64593,7 +66909,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_column", @@ -64620,7 +66937,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -64657,7 +66975,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trigger_schema", @@ -64684,7 +67003,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "trigger_name", @@ -64711,7 +67031,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_manipulation", @@ -64738,7 +67059,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_catalog", @@ -64765,7 +67087,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_schema", @@ -64792,7 +67115,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "event_object_table", @@ -64819,7 +67143,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_order", @@ -64846,7 +67171,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_condition", @@ -64873,7 +67199,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_statement", @@ -64900,7 +67227,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_orientation", @@ -64927,7 +67255,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_timing", @@ -64954,7 +67283,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_reference_old_table", @@ -64981,7 +67311,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_reference_new_table", @@ -65008,7 +67339,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_reference_old_row", @@ -65035,7 +67367,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "action_reference_new_row", @@ -65062,7 +67395,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "created", @@ -65089,7 +67423,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -65126,7 +67461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -65153,7 +67489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_catalog", @@ -65180,7 +67517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_schema", @@ -65207,7 +67545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "udt_name", @@ -65234,7 +67573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -65261,7 +67601,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -65288,7 +67629,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -65325,7 +67667,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "grantee", @@ -65352,7 +67695,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_catalog", @@ -65379,7 +67723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_schema", @@ -65406,7 +67751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_name", @@ -65433,7 +67779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "object_type", @@ -65460,7 +67807,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "privilege_type", @@ -65487,7 +67835,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_grantable", @@ -65514,7 +67863,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -65551,7 +67901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_defined_type_schema", @@ -65578,7 +67929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_defined_type_name", @@ -65605,7 +67957,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "user_defined_type_category", @@ -65632,7 +67985,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_instantiable", @@ -65659,7 +68013,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_final", @@ -65686,7 +68041,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordering_form", @@ -65713,7 +68069,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordering_category", @@ -65740,7 +68097,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordering_routine_catalog", @@ -65767,7 +68125,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordering_routine_schema", @@ -65794,7 +68153,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ordering_routine_name", @@ -65821,7 +68181,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "reference_type", @@ -65848,7 +68209,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "data_type", @@ -65875,7 +68237,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_maximum_length", @@ -65902,7 +68265,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_octet_length", @@ -65929,7 +68293,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_catalog", @@ -65956,7 +68321,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_schema", @@ -65983,7 +68349,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "character_set_name", @@ -66010,7 +68377,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_catalog", @@ -66037,7 +68405,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_schema", @@ -66064,7 +68433,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "collation_name", @@ -66091,7 +68461,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision", @@ -66118,7 +68489,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_precision_radix", @@ -66145,7 +68517,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "numeric_scale", @@ -66172,7 +68545,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "datetime_precision", @@ -66199,7 +68573,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_type", @@ -66226,7 +68601,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "interval_precision", @@ -66253,7 +68629,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "source_dtd_identifier", @@ -66280,7 +68657,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "ref_dtd_identifier", @@ -66307,7 +68685,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -66344,7 +68723,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_catalog", @@ -66371,7 +68751,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -66398,7 +68779,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_name", @@ -66425,7 +68807,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "option_value", @@ -66452,7 +68835,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -66489,7 +68873,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_catalog", @@ -66516,7 +68901,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "foreign_server_name", @@ -66543,7 +68929,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -66580,7 +68967,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "view_schema", @@ -66607,7 +68995,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "view_name", @@ -66634,7 +69023,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -66661,7 +69051,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -66688,7 +69079,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -66715,7 +69107,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "column_name", @@ -66742,7 +69135,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -66779,7 +69173,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -66806,7 +69201,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -66833,7 +69229,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_catalog", @@ -66860,7 +69257,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_schema", @@ -66887,7 +69285,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "specific_name", @@ -66914,7 +69313,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -66951,7 +69351,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "view_schema", @@ -66978,7 +69379,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "view_name", @@ -67005,7 +69407,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_catalog", @@ -67032,7 +69435,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -67059,7 +69463,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -67086,7 +69491,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -67123,7 +69529,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_schema", @@ -67150,7 +69557,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "table_name", @@ -67177,7 +69585,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "view_definition", @@ -67204,7 +69613,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "check_option", @@ -67231,7 +69641,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_updatable", @@ -67258,7 +69669,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_insertable_into", @@ -67285,7 +69697,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_trigger_updatable", @@ -67312,7 +69725,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_trigger_deletable", @@ -67339,7 +69753,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "is_trigger_insertable_into", @@ -67366,7 +69781,8 @@ "original_name": "", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "comment": "" @@ -67408,7 +69824,8 @@ "original_name": "id", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "name", @@ -67435,7 +69852,8 @@ "original_name": "name", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bio", @@ -67462,7 +69880,8 @@ "original_name": "bio", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "params": [ @@ -67493,13 +69912,15 @@ "original_name": "id", "unsigned": false, "array_dims": 0, - "dynamic_op": "=" + "dynamic_op": "=", + "is_dynamic": false } } ], "comments": [], "filename": "query.sql", - "insert_into_table": null + "insert_into_table": null, + "dynamic_order_by": [] }, { "text": "SELECT id, name, bio FROM authors\nORDER BY name", @@ -67531,7 +69952,8 @@ "original_name": "id", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "name", @@ -67558,7 +69980,8 @@ "original_name": "name", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bio", @@ -67585,13 +70008,15 @@ "original_name": "bio", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "params": [], "comments": [], "filename": "query.sql", - "insert_into_table": null + "insert_into_table": null, + "dynamic_order_by": [] }, { "text": "INSERT INTO authors (\n name, bio\n) VALUES (\n $1, $2\n)\nRETURNING id, name, bio", @@ -67623,7 +70048,8 @@ "original_name": "id", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "name", @@ -67650,7 +70076,8 @@ "original_name": "name", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false }, { "name": "bio", @@ -67677,7 +70104,8 @@ "original_name": "bio", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } ], "params": [ @@ -67708,7 +70136,8 @@ "original_name": "name", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } }, { @@ -67738,7 +70167,8 @@ "original_name": "bio", "unsigned": false, "array_dims": 0, - "dynamic_op": "" + "dynamic_op": "", + "is_dynamic": false } } ], @@ -67748,7 +70178,8 @@ "catalog": "", "schema": "", "name": "authors" - } + }, + "dynamic_order_by": [] }, { "text": "DELETE FROM authors\nWHERE id = $1", @@ -67783,13 +70214,15 @@ "original_name": "id", "unsigned": false, "array_dims": 0, - "dynamic_op": "=" + "dynamic_op": "=", + "is_dynamic": false } } ], "comments": [], "filename": "query.sql", - "insert_into_table": null + "insert_into_table": null, + "dynamic_order_by": [] } ], "sqlc_version": "v1.31.1", diff --git a/internal/metadata/meta.go b/internal/metadata/meta.go index bb33cac4b2..44280f844f 100644 --- a/internal/metadata/meta.go +++ b/internal/metadata/meta.go @@ -202,3 +202,19 @@ func ParseCommentFlags(comments []string) (map[string]string, map[string]bool, m return params, flags, ruleSkiplist, dynamicParams, dynamicSort, nil } + +// StripDynamicComments removes the @dynamic and @dynamic-sort from directive +// lines from the query's comments. +func StripDynamicComments(comments []string) []string { + out := []string{} + for _, c := range comments { + if fields := strings.Fields(c); len(fields) > 0 { + switch fields[0] { + case constants.QueryFlagDynamic, constants.QueryFlagDynamicSort: + continue + } + } + out = append(out, c) + } + return out +} diff --git a/internal/metadata/meta_test.go b/internal/metadata/meta_test.go index f0c15c01bd..30bb19460b 100644 --- a/internal/metadata/meta_test.go +++ b/internal/metadata/meta_test.go @@ -1,9 +1,76 @@ package metadata import ( + "reflect" "testing" ) +func TestStripDynamicComments(t *testing.T) { + tests := []struct { + name string + comments []string + want []string + }{ + { + name: "strips @dynamic and @dynamic-sort, keeps doc line", + comments: []string{ + " @dynamic name", + " @dynamic age", + " @dynamic-sort name, age, created_at", + " GetRecord returns one record", + }, + want: []string{" GetRecord returns one record"}, + }, + { + name: "preserves unrelated @-flags and interleaved doc lines", + comments: []string{ + " @param foo int", + " @dynamic name", + " a doc line", + }, + want: []string{" @param foo int", " a doc line"}, + }, + { + name: "no dynamic directives passes through unchanged", + comments: []string{ + " just a comment", + " @param x int", + }, + want: []string{" just a comment", " @param x int"}, + }, + { + name: "bare @dynamic with no arg is still stripped", + comments: []string{ + " @dynamic", + " doc", + }, + want: []string{" doc"}, + }, + { + name: "all directives yields empty", + comments: []string{ + " @dynamic name", + " @dynamic-sort id", + }, + want: []string{}, + }, + { + name: "empty input yields empty", + comments: nil, + want: []string{}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := StripDynamicComments(tt.comments) + if !reflect.DeepEqual(got, tt.want) { + t.Fatalf("StripDynamicComments mismatch\n got: %#v\nwant: %#v", got, tt.want) + } + }) + } +} + func TestParseQueryNameAndType(t *testing.T) { for _, query := range []string{ `-- name: CreateFoo, :one`, diff --git a/internal/plugin/codegen.pb.go b/internal/plugin/codegen.pb.go index ca2568e235..482538ac5c 100644 --- a/internal/plugin/codegen.pb.go +++ b/internal/plugin/codegen.pb.go @@ -658,6 +658,7 @@ type Column struct { Unsigned bool `protobuf:"varint,16,opt,name=unsigned,proto3" json:"unsigned,omitempty"` ArrayDims int32 `protobuf:"varint,17,opt,name=array_dims,json=arrayDims,proto3" json:"array_dims,omitempty"` DynamicOp string `protobuf:"bytes,18,opt,name=dynamic_op,json=dynamicOp,proto3" json:"dynamic_op,omitempty"` + IsDynamic bool `protobuf:"varint,19,opt,name=is_dynamic,json=isDynamic,proto3" json:"is_dynamic,omitempty"` } func (x *Column) Reset() { @@ -811,6 +812,13 @@ func (x *Column) GetDynamicOp() string { return "" } +func (x *Column) GetIsDynamic() bool { + if x != nil { + return x.IsDynamic + } + return false +} + type Query struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -824,6 +832,7 @@ type Query struct { Comments []string `protobuf:"bytes,6,rep,name=comments,proto3" json:"comments,omitempty"` Filename string `protobuf:"bytes,7,opt,name=filename,proto3" json:"filename,omitempty"` InsertIntoTable *Identifier `protobuf:"bytes,8,opt,name=insert_into_table,proto3" json:"insert_into_table,omitempty"` + DynamicOrderBy []string `protobuf:"bytes,9,rep,name=dynamic_order_by,json=dynamicOrderBy,proto3" json:"dynamic_order_by,omitempty"` } func (x *Query) Reset() { @@ -914,6 +923,13 @@ func (x *Query) GetInsertIntoTable() *Identifier { return nil } +func (x *Query) GetDynamicOrderBy() []string { + if x != nil { + return x.DynamicOrderBy + } + return nil +} + type Parameter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1283,7 +1299,7 @@ var file_plugin_codegen_proto_rawDesc = []byte{ 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x04, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, @@ -1318,63 +1334,68 @@ var file_plugin_codegen_proto_rawDesc = []byte{ 0x1d, 0x0a, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x6d, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x44, 0x69, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x70, 0x22, 0x94, 0x02, - 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, - 0x64, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x70, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x22, 0xbe, 0x02, 0x0a, + 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, + 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x40, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, + 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x4b, 0x0a, + 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, - 0x6f, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x22, 0x4b, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, - 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x27, - 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, - 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x22, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x32, 0x4f, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x12, 0x17, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x42, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, - 0x71, 0x6c, 0x63, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x50, - 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xca, 0x02, 0x06, 0x50, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0xe2, 0x02, 0x12, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, + 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x07, + 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, + 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x27, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x32, 0x4f, 0x0a, 0x0e, + 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, + 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7c, 0x0a, + 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x42, 0x0c, 0x43, 0x6f, 0x64, + 0x65, 0x67, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2d, 0x64, 0x65, 0x76, + 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x50, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0xca, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xe2, 0x02, 0x12, + 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/protos/plugin/codegen.proto b/protos/plugin/codegen.proto index cdaf9aa2f5..ddcb215f66 100644 --- a/protos/plugin/codegen.proto +++ b/protos/plugin/codegen.proto @@ -101,6 +101,7 @@ message Column { bool unsigned = 16; int32 array_dims = 17; string dynamic_op = 18; + bool is_dynamic = 19; } message Query { @@ -112,6 +113,7 @@ message Query { repeated string comments = 6 [json_name = "comments"]; string filename = 7 [json_name = "filename"]; Identifier insert_into_table = 8 [json_name = "insert_into_table"]; + repeated string dynamic_order_by = 9; } message Parameter { From 19d9ce4de9247636c9b24e51f09961eadfdfa7b3 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 1 Jul 2026 01:28:09 -0400 Subject: [PATCH 17/20] chore: create failing tests before tackling the implementation for nested groups --- examples/dynamicquery/pgx/query.sql | 14 ++ examples/dynamicquery/postgresql/db_test.go | 150 +++++++++++ examples/dynamicquery/postgresql/query.sql | 18 ++ internal/compiler/dynamic.go | 9 + internal/compiler/dynamic_test.go | 238 +++++++++++++++++- .../dynamic_query/postgresql/pgx/query.sql | 14 ++ .../dynamic_query/postgresql/stdlib/query.sql | 14 ++ 7 files changed, 456 insertions(+), 1 deletion(-) diff --git a/examples/dynamicquery/pgx/query.sql b/examples/dynamicquery/pgx/query.sql index 4ad4687b28..f60ee78362 100644 --- a/examples/dynamicquery/pgx/query.sql +++ b/examples/dynamicquery/pgx/query.sql @@ -52,3 +52,17 @@ WHERE tenant_id = sqlc.arg(tenant_id) SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); + +-- name: SearchContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: ExcludeContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); diff --git a/examples/dynamicquery/postgresql/db_test.go b/examples/dynamicquery/postgresql/db_test.go index d40237c552..31f45c63dc 100644 --- a/examples/dynamicquery/postgresql/db_test.go +++ b/examples/dynamicquery/postgresql/db_test.go @@ -451,3 +451,153 @@ func TestGetRecordInDynamic(t *testing.T) { } }) } + +func seedContacts(t *testing.T, ctx context.Context, q *Queries) { + t.Helper() + seed := []CreateRecordParams{ + {TenantID: 1, Name: "alice", Age: 30, Status: "active"}, + {TenantID: 1, Name: "bob", Age: 20, Status: "inactive"}, + {TenantID: 1, Name: "carol", Age: 40, Status: "active"}, + {TenantID: 2, Name: "dave", Age: 99, Status: "active"}, + } + for _, s := range seed { + if err := q.CreateRecord(ctx, s); err != nil { + t.Fatal(err) + } + } +} + +func TestSearchContactsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + q := New(db) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []SearchContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_returns_all_tenant_rows", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("name_only_emits_bare_leaf", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice") + }) + + t.Run("status_only_emits_bare_leaf", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Status("inactive")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob") + }) + + t.Run("both_set_is_a_disjunction", func(t *testing.T) { + // (name = alice OR status = inactive): alice by name, bob by status. + // An AND here would return zero rows, so two rows proves the OR grouping. + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Name("alice").Status("inactive")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob") + }) + + t.Run("static_tenant_isolates", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 2, SearchContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "dave") + }) +} + +func TestExcludeContactsDynamic(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := sql.Open("pgx", uri) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + q := New(db) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []ExcludeContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_omits_the_negated_group", func(t *testing.T) { + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("negate_name", func(t *testing.T) { + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob", "carol") + }) + + t.Run("negate_status", func(t *testing.T) { + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}.Status("active")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob") + }) + + t.Run("negated_disjunction_is_de_morgan", func(t *testing.T) { + // NOT (name = alice OR status = active) => name != alice AND status != active => bob. + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}.Name("alice").Status("active")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob") + }) +} diff --git a/examples/dynamicquery/postgresql/query.sql b/examples/dynamicquery/postgresql/query.sql index 4ad4687b28..c8b90ff5fc 100644 --- a/examples/dynamicquery/postgresql/query.sql +++ b/examples/dynamicquery/postgresql/query.sql @@ -52,3 +52,21 @@ WHERE tenant_id = sqlc.arg(tenant_id) SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND id IN (sqlc.slice(ids)); + +-- name: SearchContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: ExcludeContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES (sqlc.arg(tenant_id), sqlc.arg(name), sqlc.arg(age), sqlc.arg(status)); diff --git a/internal/compiler/dynamic.go b/internal/compiler/dynamic.go index 7f441039fa..791cbebc7b 100644 --- a/internal/compiler/dynamic.go +++ b/internal/compiler/dynamic.go @@ -129,3 +129,12 @@ func isSpace(b byte) bool { b == '\n' || b == '\r' } + +type dynamicNode struct { + Connector string + Param string + Children []*dynamicNode +} + +func buildDynamicTree(where ast.Node, params []Parameter, md metadata.Metadata) (*dynamicNode, error) { +} diff --git a/internal/compiler/dynamic_test.go b/internal/compiler/dynamic_test.go index 8dbde9b950..a98ee780a6 100644 --- a/internal/compiler/dynamic_test.go +++ b/internal/compiler/dynamic_test.go @@ -1,6 +1,8 @@ package compiler import ( + "reflect" + "strings" "testing" "github.com/sqlc-dev/sqlc/internal/metadata" @@ -13,7 +15,6 @@ func TestNormalizeDynamicOperator(t *testing.T) { want string wantOK bool }{ - // comparison operators pass through unchanged {"=", "=", true}, {"<", "<", true}, {">", ">", true}, @@ -133,6 +134,57 @@ func TestBuildDynamicCodegenSQL(t *testing.T) { md: metadata.Metadata{}, want: "", }, + { + name: "dynamic OR group suffix", + sql: "SELECT id, name, email FROM records\n" + + "WHERE tenant_id = $1\n" + + " AND (name = $2 OR email = $3)", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "email")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "", "email": ""}, + }, + want: "SELECT id, name, email FROM records\n" + + "WHERE tenant_id = $1", + }, + { + name: "dynamic OR group then leaf", + sql: "SELECT id, name, email, age FROM records\n" + + "WHERE tenant_id = $1\n" + + " AND (name = $2 OR email = $3)\n" + + " AND age >= $4", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "email"), param(4, "age")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "", "email": "", "age": ""}, + }, + want: "SELECT id, name, email, age FROM records\n" + + "WHERE tenant_id = $1", + }, + { + name: "dynamic NOT group suffix", + sql: "SELECT id, name, age FROM records\n" + + "WHERE tenant_id = $1\n" + + " AND NOT (name = $2 AND age > $3)", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "age")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "", "age": ""}, + }, + want: "SELECT id, name, age FROM records\n" + + "WHERE tenant_id = $1", + }, + { + name: "entirely dynamic OR group", + sql: "SELECT id, name, email FROM records\n" + + "WHERE (name = $1 OR email = $2)", + params: []Parameter{param(1, "name"), param(2, "email")}, + md: metadata.Metadata{ + Dynamic: true, + DynamicParams: map[string]string{"name": "", "email": ""}, + }, + want: "SELECT id, name, email FROM records", + }, { name: "dynamic param before static param is an error", sql: "SELECT id FROM records\n" + @@ -165,3 +217,187 @@ func TestBuildDynamicCodegenSQL(t *testing.T) { }) } } + +func cmpLeaf(col string, paramNum int) *ast.A_Expr { + return &ast.A_Expr{ + Kind: ast.A_Expr_Kind_OP, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: "="}}}, + Lexpr: &ast.ColumnRef{Name: col}, + Rexpr: &ast.ParamRef{Number: paramNum}, + } +} + +func boolExpr(op ast.BoolExprType, args ...ast.Node) *ast.BoolExpr { + return &ast.BoolExpr{Boolop: op, Args: &ast.List{Items: args}} +} + +func leafNode(param string) *dynamicNode { + return &dynamicNode{Param: param} +} + +func groupNode(conn string, kids ...*dynamicNode) *dynamicNode { + return &dynamicNode{Connector: conn, Children: kids} +} + +func dumpNode(n *dynamicNode) string { + if n == nil { + return "" + } + if n.Connector == "" { + return n.Param + } + parts := make([]string, len(n.Children)) + for i, c := range n.Children { + parts[i] = dumpNode(c) + } + return n.Connector + "(" + strings.Join(parts, ", ") + ")" +} + +func assertTree(t *testing.T, got, want *dynamicNode) { + t.Helper() + if !reflect.DeepEqual(got, want) { + t.Fatalf("buildDynamicTree mismatch\n got: %s\nwant: %s", + dumpNode(got), dumpNode(want)) + } +} + +func TestBuildDynamicTree(t *testing.T) { + dyn := func(names ...string) metadata.Metadata { + dp := make(map[string]string, len(names)) + for _, n := range names { + dp[n] = "" + } + return metadata.Metadata{Dynamic: true, DynamicParams: dp} + } + + tests := []struct { + name string + where ast.Node + params []Parameter + md metadata.Metadata + want *dynamicNode + wantErr bool + }{ + { + name: "flat AND of static + dynamic leaves", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), cmpLeaf("name", 2), cmpLeaf("age", 3)), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "age")}, + md: dyn("name", "age"), + want: groupNode("AND", leafNode("name"), leafNode("age")), + }, + { + name: "static leaf plus a dynamic OR group", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + boolExpr(ast.BoolExprTypeOr, cmpLeaf("name", 2), cmpLeaf("email", 3))), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "email")}, + md: dyn("name", "email"), + want: groupNode("AND", + groupNode("OR", leafNode("name"), leafNode("email"))), + }, + { + name: "dynamic OR group followed by a dynamic leaf", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + boolExpr(ast.BoolExprTypeOr, cmpLeaf("name", 2), cmpLeaf("email", 3)), + cmpLeaf("age", 4)), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "email"), param(4, "age")}, + md: dyn("name", "email", "age"), + want: groupNode("AND", + groupNode("OR", leafNode("name"), leafNode("email")), + leafNode("age")), + }, + { + name: "NOT wrapping a nested dynamic AND group", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + boolExpr(ast.BoolExprTypeNot, + boolExpr(ast.BoolExprTypeAnd, cmpLeaf("name", 2), cmpLeaf("age", 3)))), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "age")}, + md: dyn("name", "age"), + want: groupNode("AND", + groupNode("NOT", + groupNode("AND", leafNode("name"), leafNode("age")))), + }, + { + name: "entirely dynamic top-level OR group", + where: boolExpr(ast.BoolExprTypeOr, + cmpLeaf("name", 1), cmpLeaf("email", 2)), + params: []Parameter{param(1, "name"), param(2, "email")}, + md: dyn("name", "email"), + want: groupNode("AND", + groupNode("OR", leafNode("name"), leafNode("email"))), + }, + { + name: "deeply nested dynamic groups", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + boolExpr(ast.BoolExprTypeOr, + cmpLeaf("name", 2), + boolExpr(ast.BoolExprTypeAnd, cmpLeaf("min_age", 3), cmpLeaf("max_age", 4)))), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "min_age"), param(4, "max_age")}, + md: dyn("name", "min_age", "max_age"), + want: groupNode("AND", + groupNode("OR", + leafNode("name"), + groupNode("AND", leafNode("min_age"), leafNode("max_age")))), + }, + { + name: "NOT wrapping a single dynamic leaf", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + boolExpr(ast.BoolExprTypeNot, cmpLeaf("name", 2))), + params: []Parameter{param(1, "tenant_id"), param(2, "name")}, + md: dyn("name"), + want: groupNode("AND", groupNode("NOT", leafNode("name"))), + }, + { + name: "fully static nested group is dropped", + where: boolExpr(ast.BoolExprTypeAnd, + boolExpr(ast.BoolExprTypeAnd, cmpLeaf("tenant_id", 1), cmpLeaf("status", 2)), + cmpLeaf("name", 3)), + params: []Parameter{param(1, "tenant_id"), param(2, "status"), param(3, "name")}, + md: dyn("name"), + want: groupNode("AND", leafNode("name")), + }, + { + name: "single dynamic leaf as the whole where", + where: cmpLeaf("name", 1), + params: []Parameter{param(1, "name")}, + md: dyn("name"), + want: groupNode("AND", leafNode("name")), + }, + { + name: "non-dynamic query yields a nil tree", + where: boolExpr(ast.BoolExprTypeAnd, cmpLeaf("tenant_id", 1)), + params: []Parameter{param(1, "tenant_id")}, + md: metadata.Metadata{}, + want: nil, + }, + { + name: "mixed static and dynamic in one group is an error", + where: boolExpr(ast.BoolExprTypeOr, + cmpLeaf("tenant_id", 1), cmpLeaf("name", 2)), + params: []Parameter{param(1, "tenant_id"), param(2, "name")}, + md: dyn("name"), + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := buildDynamicTree(tt.where, tt.params, tt.md) + if tt.wantErr { + if err == nil { + t.Fatalf("expected error, got none (tree %+v)", got) + } + return + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + assertTree(t, got, tt.want) + }) + } +} diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql index 17ac6391c5..510826165a 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/query.sql @@ -40,3 +40,17 @@ SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age >= sqlc.arg(age); + +-- name: SearchContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: ExcludeContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql index 6df5ffed8f..176ab223fa 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/query.sql @@ -28,3 +28,17 @@ SELECT id, name, age, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND name = sqlc.arg(name) AND age >= sqlc.arg(age); + +-- name: SearchContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: ExcludeContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); From 4ea3fa800d4fe365758608e9480b9a44b42c5b02 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 1 Jul 2026 14:03:51 -0400 Subject: [PATCH 18/20] feat: finish groupings and NOT/OR for dynamic queries --- examples/dynamicquery/pgx/db_test.go | 121 +++++- examples/dynamicquery/pgx/query.sql | 4 + examples/dynamicquery/pgx/query.sql.go | 198 +++++++++ examples/dynamicquery/postgresql/query.sql.go | 202 +++++++++ internal/cmd/shim.go | 15 + internal/codegen/golang/dynamic.go | 35 ++ internal/codegen/golang/result.go | 15 +- .../golang/templates/pgx/queryCode.tmpl | 60 ++- .../golang/templates/stdlib/queryCode.tmpl | 30 +- internal/compiler/dynamic.go | 107 ++++- internal/compiler/dynamic_test.go | 26 +- internal/compiler/parse.go | 12 + internal/compiler/query.go | 13 +- .../testdata/codegen_json/gen/codegen.json | 12 +- .../postgresql/pgx/go/query.sql.go | 176 ++++++++ .../postgresql/stdlib/go/query.sql.go | 180 ++++++++ internal/plugin/codegen.pb.go | 401 +++++++++++------- protos/plugin/codegen.proto | 7 + 18 files changed, 1410 insertions(+), 204 deletions(-) diff --git a/examples/dynamicquery/pgx/db_test.go b/examples/dynamicquery/pgx/db_test.go index 5bae14706f..b02fcbf1b4 100644 --- a/examples/dynamicquery/pgx/db_test.go +++ b/examples/dynamicquery/pgx/db_test.go @@ -12,9 +12,6 @@ import ( "github.com/sqlc-dev/sqlc/internal/sqltest/local" ) -// This suite runs the pgx/v5-native dynamic codegen against a real database. -// The pgx template path is otherwise only golden-compared in TestReplay, never -// executed, so these tests are the runtime coverage for it. func TestDynamicPgx(t *testing.T) { ctx := context.Background() uri := local.PostgreSQL(t, []string{"schema.sql"}) @@ -112,3 +109,121 @@ func TestDynamicPgx(t *testing.T) { } }) } + +func TestSearchContactsPgx(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := pgx.Connect(ctx, uri) + if err != nil { + t.Fatal(err) + } + defer db.Close(ctx) + + q := New(db) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []SearchContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_returns_all_tenant_rows", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("name_only_emits_bare_leaf", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Name("alice")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice") + }) + + t.Run("both_set_is_a_disjunction", func(t *testing.T) { + // (name = alice OR status = inactive): alice by name, bob by status. + // An AND would return zero rows, so two rows proves the OR grouping. + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Name("alice").Status("inactive")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob") + }) +} + +func TestExcludeContactsPgx(t *testing.T) { + ctx := context.Background() + uri := local.PostgreSQL(t, []string{"schema.sql"}) + + db, err := pgx.Connect(ctx, uri) + if err != nil { + t.Fatal(err) + } + defer db.Close(ctx) + + q := New(db) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []ExcludeContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_omits_the_negated_group", func(t *testing.T) { + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("negated_disjunction_is_de_morgan", func(t *testing.T) { + // NOT (name = alice OR status = active) => name != alice AND status != active => bob. + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}.Name("alice").Status("active")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob") + }) +} + +func seedContacts(t *testing.T, ctx context.Context, q *Queries) { + t.Helper() + seed := []CreateRecordParams{ + {TenantID: 1, Name: "alice", Age: 30, Status: "active"}, + {TenantID: 1, Name: "bob", Age: 20, Status: "inactive"}, + {TenantID: 1, Name: "carol", Age: 40, Status: "active"}, + {TenantID: 2, Name: "dave", Age: 99, Status: "active"}, + } + for _, s := range seed { + if err := q.CreateRecord(ctx, s); err != nil { + t.Fatal(err) + } + } +} diff --git a/examples/dynamicquery/pgx/query.sql b/examples/dynamicquery/pgx/query.sql index f60ee78362..c8b90ff5fc 100644 --- a/examples/dynamicquery/pgx/query.sql +++ b/examples/dynamicquery/pgx/query.sql @@ -66,3 +66,7 @@ WHERE tenant_id = sqlc.arg(tenant_id) SELECT id, name, age, status, created_at FROM records WHERE tenant_id = sqlc.arg(tenant_id) AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES (sqlc.arg(tenant_id), sqlc.arg(name), sqlc.arg(age), sqlc.arg(status)); diff --git a/examples/dynamicquery/pgx/query.sql.go b/examples/dynamicquery/pgx/query.sql.go index 22915654dd..3776b760bf 100644 --- a/examples/dynamicquery/pgx/query.sql.go +++ b/examples/dynamicquery/pgx/query.sql.go @@ -13,6 +13,120 @@ import ( "github.com/jackc/pgx/v5/pgtype" ) +const createRecord = `-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES ($1, $2, $3, $4) +` + +type CreateRecordParams struct { + TenantID int64 + Name string + Age int32 + Status string +} + +func (q *Queries) CreateRecord(ctx context.Context, arg CreateRecordParams) error { + _, err := q.db.Exec(ctx, createRecord, + arg.TenantID, + arg.Name, + arg.Age, + arg.Status, + ) + return err +} + +const excludeContacts = `-- name: ExcludeContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type ExcludeContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} + +type ExcludeContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o ExcludeContactsOpts) Name(v string) ExcludeContactsOpts { + o.name = &v + return o +} + +func (o ExcludeContactsOpts) Status(v string) ExcludeContactsOpts { + o.status = &v + return o +} + +func (q *Queries) ExcludeContacts(ctx context.Context, tenantID int64, opts ExcludeContactsOpts) ([]ExcludeContactsRow, error) { + query := excludeContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 1) + g1 := make([]string, 0, 2) + if opts.name != nil { + n++ + g1 = append(g1, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g1 = append(g1, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g1) { + case 0: + case 1: + g0 = append(g0, g1[0]) + default: + g0 = append(g0, "("+strings.Join(g1, " OR ")+")") + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, "NOT ("+g0[0]+")") + default: + conds = append(conds, "NOT "+"("+strings.Join(g0, " AND ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ExcludeContactsRow + for rows.Next() { + var i ExcludeContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const filterRecords = `-- name: FilterRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 @@ -425,6 +539,90 @@ func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListReco return items, nil } +const searchContacts = `-- name: SearchContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} + +type SearchContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o SearchContactsOpts) Name(v string) SearchContactsOpts { + o.name = &v + return o +} + +func (o SearchContactsOpts) Status(v string) SearchContactsOpts { + o.status = &v + return o +} + +func (q *Queries) SearchContacts(ctx context.Context, tenantID int64, opts SearchContactsOpts) ([]SearchContactsRow, error) { + query := searchContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 2) + if opts.name != nil { + n++ + g0 = append(g0, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g0 = append(g0, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, g0[0]) + default: + conds = append(conds, "("+strings.Join(g0, " OR ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchContactsRow + for rows.Next() { + var i SearchContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const searchRecords = `-- name: SearchRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 diff --git a/examples/dynamicquery/postgresql/query.sql.go b/examples/dynamicquery/postgresql/query.sql.go index 38c0d467ba..9cc17980d9 100644 --- a/examples/dynamicquery/postgresql/query.sql.go +++ b/examples/dynamicquery/postgresql/query.sql.go @@ -12,6 +12,122 @@ import ( "time" ) +const createRecord = `-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES ($1, $2, $3, $4) +` + +type CreateRecordParams struct { + TenantID int64 + Name string + Age int32 + Status string +} + +func (q *Queries) CreateRecord(ctx context.Context, arg CreateRecordParams) error { + _, err := q.db.ExecContext(ctx, createRecord, + arg.TenantID, + arg.Name, + arg.Age, + arg.Status, + ) + return err +} + +const excludeContacts = `-- name: ExcludeContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type ExcludeContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type ExcludeContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o ExcludeContactsOpts) Name(v string) ExcludeContactsOpts { + o.name = &v + return o +} + +func (o ExcludeContactsOpts) Status(v string) ExcludeContactsOpts { + o.status = &v + return o +} +func (q *Queries) ExcludeContacts(ctx context.Context, tenantID int64, opts ExcludeContactsOpts) ([]ExcludeContactsRow, error) { + query := excludeContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 1) + g1 := make([]string, 0, 2) + if opts.name != nil { + n++ + g1 = append(g1, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g1 = append(g1, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g1) { + case 0: + case 1: + g0 = append(g0, g1[0]) + default: + g0 = append(g0, "("+strings.Join(g1, " OR ")+")") + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, "NOT ("+g0[0]+")") + default: + conds = append(conds, "NOT "+"("+strings.Join(g0, " AND ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ExcludeContactsRow + for rows.Next() { + var i ExcludeContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const filterRecords = `-- name: FilterRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 @@ -431,6 +547,92 @@ func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListReco return items, nil } +const searchContacts = `-- name: SearchContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type SearchContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o SearchContactsOpts) Name(v string) SearchContactsOpts { + o.name = &v + return o +} + +func (o SearchContactsOpts) Status(v string) SearchContactsOpts { + o.status = &v + return o +} +func (q *Queries) SearchContacts(ctx context.Context, tenantID int64, opts SearchContactsOpts) ([]SearchContactsRow, error) { + query := searchContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 2) + if opts.name != nil { + n++ + g0 = append(g0, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g0 = append(g0, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, g0[0]) + default: + conds = append(conds, "("+strings.Join(g0, " OR ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchContactsRow + for rows.Next() { + var i SearchContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const searchRecords = `-- name: SearchRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 diff --git a/internal/cmd/shim.go b/internal/cmd/shim.go index 9de35cc5f0..a7be6c7522 100644 --- a/internal/cmd/shim.go +++ b/internal/cmd/shim.go @@ -166,6 +166,7 @@ func pluginQueries(r *compiler.Result) []*plugin.Query { Filename: q.Metadata.Filename, InsertIntoTable: iit, DynamicOrderBy: q.Metadata.DynamicSort, + DynamicWhere: pluginDynamicNode(q.DynamicWhere), }) } return out @@ -230,6 +231,20 @@ func pluginQueryParam(p compiler.Parameter) *plugin.Parameter { } } +func pluginDynamicNode(n *compiler.DynamicNode) *plugin.DynamicNode { + if n == nil { + return nil + } + out := &plugin.DynamicNode{ + Connector: n.Connector, + Param: n.Param, + } + for _, c := range n.Children { + out.Children = append(out.Children, pluginDynamicNode(c)) + } + return out +} + func codeGenRequest(r *compiler.Result, settings config.CombinedSettings) *plugin.GenerateRequest { return &plugin.GenerateRequest{ Settings: pluginSettings(r, settings), diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go index 166b4424e8..d9229ac4de 100644 --- a/internal/codegen/golang/dynamic.go +++ b/internal/codegen/golang/dynamic.go @@ -1,8 +1,15 @@ package golang +import ( + "fmt" + + "github.com/sqlc-dev/sqlc/internal/plugin" +) + type DynamicQuery struct { StaticCount int Opts []DynamicPredicate + Steps []DynamicStep SortColumns []DynamicSortColumn } @@ -19,3 +26,31 @@ type DynamicSortColumn struct { ConstName string Value string } + +type DynamicStep struct { + Kind string + Predicate *DynamicPredicate + Target string + SliceVar string + Connector string + Not bool + Cap int +} + +func flattenDynamic(n *plugin.DynamicNode, predicates map[string]DynamicPredicate, target string, counter *int) []DynamicStep { + if n.GetConnector() == "" { + predicate := predicates[n.GetParam()] + return []DynamicStep{{Kind: "leaf", Predicate: &predicate, Target: target}} + } + sliceVar := fmt.Sprintf("g%d", *counter) + *counter++ + steps := []DynamicStep{{Kind: "open", SliceVar: sliceVar, Cap: len(n.GetChildren())}} + for _, c := range n.GetChildren() { + steps = append(steps, flattenDynamic(c, predicates, sliceVar, counter)...) + } + connector, not := n.GetConnector(), false + if connector == "NOT" { + connector, not = "AND", true + } + return append(steps, DynamicStep{Kind: "close", SliceVar: sliceVar, Target: target, Connector: connector, Not: not}) +} diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index c5e026e4bc..42fa2c0440 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -280,6 +280,7 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En if len(dynamicParams) > 0 || len(query.GetDynamicOrderBy()) > 0 { dq := &DynamicQuery{StaticCount: len(staticParams)} + preds := make(map[string]DynamicPredicate, len(dynamicParams)) for _, p := range dynamicParams { isSlice := p.Column.GetIsSqlcSlice() var sqlOp string @@ -294,15 +295,25 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En if p.Column.GetOriginalName() != "" { column = p.Column.GetOriginalName() } - dq.Opts = append(dq.Opts, DynamicPredicate{ + pred := DynamicPredicate{ FieldName: StructName(p.Column.GetName(), options), VarName: sdk.LowerTitle(field), GoType: qualifyType(goType(req, options, p.Column), models, qualifier), Column: column, SQLOp: sqlOp, IsSlice: isSlice, - }) + } + dq.Opts = append(dq.Opts, pred) + preds[p.Column.GetName()] = pred + } + + if root := query.GetDynamicWhere(); root != nil { + var counter int + for _, child := range root.GetChildren() { + dq.Steps = append(dq.Steps, flattenDynamic(child, preds, "conds", &counter)...) + } } + for _, col := range query.GetDynamicOrderBy() { dq.SortColumns = append(dq.SortColumns, DynamicSortColumn{ ConstName: gq.MethodName + "OrderBy" + StructName(col, options), diff --git a/internal/codegen/golang/templates/pgx/queryCode.tmpl b/internal/codegen/golang/templates/pgx/queryCode.tmpl index bf6eb29f6f..8e45564ce7 100644 --- a/internal/codegen/golang/templates/pgx/queryCode.tmpl +++ b/internal/codegen/golang/templates/pgx/queryCode.tmpl @@ -76,24 +76,36 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. conds := make([]string, 0, {{len $q.Dynamic.Opts}}) n := {{$q.Dynamic.StaticCount}} _ = n -{{- range $q.Dynamic.Opts}} - {{- if .IsSlice}} - if len(opts.{{.VarName}}) > 0 { - ph := make([]string, len(opts.{{.VarName}})) - for i, v := range opts.{{.VarName}} { +{{- range $q.Dynamic.Steps}} + {{- if eq .Kind "open"}} + {{.SliceVar}} := make([]string, 0, {{.Cap}}) + {{- else if eq .Kind "close"}} + switch len({{.SliceVar}}) { + case 0: + case 1: + {{.Target}} = append({{.Target}}, {{if .Not}}"NOT ("+{{.SliceVar}}[0]+")"{{else}}{{.SliceVar}}[0]{{end}}) + default: + {{.Target}} = append({{.Target}}, {{if .Not}}"NOT "+{{end}}"("+strings.Join({{.SliceVar}}, " {{.Connector}} ")+")") + } + {{- else}} + {{- if .Predicate.IsSlice}} + if len(opts.{{.Predicate.VarName}}) > 0 { + ph := make([]string, len(opts.{{.Predicate.VarName}})) + for i, v := range opts.{{.Predicate.VarName}} { n++ ph[i] = fmt.Sprintf("$%d", n) queryParams = append(queryParams, v) } - conds = append(conds, "{{.Column}} IN ("+strings.Join(ph, ", ")+")") + {{.Target}} = append({{.Target}}, "{{.Predicate.Column}} IN ("+strings.Join(ph, ", ")+")") } {{- else}} - if opts.{{.VarName}} != nil { + if opts.{{.Predicate.VarName}} != nil { n++ - conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) - queryParams = append(queryParams, *opts.{{.VarName}}) + {{.Target}} = append({{.Target}}, fmt.Sprintf("{{.Predicate.Column}} {{.Predicate.SQLOp}} $%d", n)) + queryParams = append(queryParams, *opts.{{.Predicate.VarName}}) } {{- end}} + {{- end}} {{- end}} if len(conds) > 0 { query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") @@ -150,24 +162,36 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. conds := make([]string, 0, {{len $q.Dynamic.Opts}}) n := {{$q.Dynamic.StaticCount}} _ = n -{{- range $q.Dynamic.Opts}} - {{- if .IsSlice}} - if len(opts.{{.VarName}}) > 0 { - ph := make([]string, len(opts.{{.VarName}})) - for i, v := range opts.{{.VarName}} { +{{- range $q.Dynamic.Steps}} + {{- if eq .Kind "open"}} + {{.SliceVar}} := make([]string, 0, {{.Cap}}) + {{- else if eq .Kind "close"}} + switch len({{.SliceVar}}) { + case 0: + case 1: + {{.Target}} = append({{.Target}}, {{if .Not}}"NOT ("+{{.SliceVar}}[0]+")"{{else}}{{.SliceVar}}[0]{{end}}) + default: + {{.Target}} = append({{.Target}}, {{if .Not}}"NOT "+{{end}}"("+strings.Join({{.SliceVar}}, " {{.Connector}} ")+")") + } + {{- else}} + {{- if .Predicate.IsSlice}} + if len(opts.{{.Predicate.VarName}}) > 0 { + ph := make([]string, len(opts.{{.Predicate.VarName}})) + for i, v := range opts.{{.Predicate.VarName}} { n++ ph[i] = fmt.Sprintf("$%d", n) queryParams = append(queryParams, v) } - conds = append(conds, "{{.Column}} IN ("+strings.Join(ph, ", ")+")") + {{.Target}} = append({{.Target}}, "{{.Predicate.Column}} IN ("+strings.Join(ph, ", ")+")") } {{- else}} - if opts.{{.VarName}} != nil { + if opts.{{.Predicate.VarName}} != nil { n++ - conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) - queryParams = append(queryParams, *opts.{{.VarName}}) + {{.Target}} = append({{.Target}}, fmt.Sprintf("{{.Predicate.Column}} {{.Predicate.SQLOp}} $%d", n)) + queryParams = append(queryParams, *opts.{{.Predicate.VarName}}) } {{- end}} + {{- end}} {{- end}} if len(conds) > 0 { query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") diff --git a/internal/codegen/golang/templates/stdlib/queryCode.tmpl b/internal/codegen/golang/templates/stdlib/queryCode.tmpl index 4c0ef7c2e3..30699a4b41 100644 --- a/internal/codegen/golang/templates/stdlib/queryCode.tmpl +++ b/internal/codegen/golang/templates/stdlib/queryCode.tmpl @@ -63,24 +63,36 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. conds := make([]string, 0, {{len $q.Dynamic.Opts}}) n := {{$q.Dynamic.StaticCount}} _ = n -{{- range $q.Dynamic.Opts}} - {{- if .IsSlice}} - if len(opts.{{.VarName}}) > 0 { - ph := make([]string, len(opts.{{.VarName}})) - for i, v := range opts.{{.VarName}} { +{{- range $q.Dynamic.Steps}} + {{- if eq .Kind "open"}} + {{.SliceVar}} := make([]string, 0, {{.Cap}}) + {{- else if eq .Kind "close"}} + switch len({{.SliceVar}}) { + case 0: + case 1: + {{.Target}} = append({{.Target}}, {{if .Not}}"NOT ("+{{.SliceVar}}[0]+")"{{else}}{{.SliceVar}}[0]{{end}}) + default: + {{.Target}} = append({{.Target}}, {{if .Not}}"NOT "+{{end}}"("+strings.Join({{.SliceVar}}, " {{.Connector}} ")+")") + } + {{- else}} + {{- if .Predicate.IsSlice}} + if len(opts.{{.Predicate.VarName}}) > 0 { + ph := make([]string, len(opts.{{.Predicate.VarName}})) + for i, v := range opts.{{.Predicate.VarName}} { n++ ph[i] = fmt.Sprintf("$%d", n) queryParams = append(queryParams, v) } - conds = append(conds, "{{.Column}} IN ("+strings.Join(ph, ", ")+")") + {{.Target}} = append({{.Target}}, "{{.Predicate.Column}} IN ("+strings.Join(ph, ", ")+")") } {{- else}} - if opts.{{.VarName}} != nil { + if opts.{{.Predicate.VarName}} != nil { n++ - conds = append(conds, fmt.Sprintf("{{.Column}} {{.SQLOp}} $%d", n)) - queryParams = append(queryParams, *opts.{{.VarName}}) + {{.Target}} = append({{.Target}}, fmt.Sprintf("{{.Predicate.Column}} {{.Predicate.SQLOp}} $%d", n)) + queryParams = append(queryParams, *opts.{{.Predicate.VarName}}) } {{- end}} + {{- end}} {{- end}} if len(conds) > 0 { query += " {{if gt $q.Dynamic.StaticCount 0}}AND{{else}}WHERE{{end}} " + strings.Join(conds, " AND ") diff --git a/internal/compiler/dynamic.go b/internal/compiler/dynamic.go index 791cbebc7b..b04b0e643f 100644 --- a/internal/compiler/dynamic.go +++ b/internal/compiler/dynamic.go @@ -130,11 +130,112 @@ func isSpace(b byte) bool { b == '\r' } -type dynamicNode struct { +type DynamicNode struct { Connector string Param string - Children []*dynamicNode + Children []*DynamicNode } -func buildDynamicTree(where ast.Node, params []Parameter, md metadata.Metadata) (*dynamicNode, error) { +func buildDynamicTree(where ast.Node, params []Parameter, md metadata.Metadata) (*DynamicNode, error) { + if !md.Dynamic || len(md.DynamicParams) == 0 { + return nil, nil + } + numName := make(map[int]string, len(params)) + dynNum := make(map[int]bool, len(params)) + + for _, p := range params { + if p.Column == nil { + continue + } + + numName[p.Number] = p.Column.Name + if _, ok := md.DynamicParams[p.Column.Name]; ok { + dynNum[p.Number] = true + } + } + + terms := []ast.Node{where} + if boolExpr, ok := where.(*ast.BoolExpr); ok && boolExpr.Boolop == ast.BoolExprTypeAnd { + terms = boolExpr.Args.Items + } + + root := &DynamicNode{Connector: "AND"} + for _, term := range terms { + node, isDyn, err := classifyDynamic(term, numName, dynNum) + if err != nil { + return nil, err + } + if isDyn { + root.Children = append(root.Children, node) + } + } + return root, nil +} + +func classifyDynamic(n ast.Node, numName map[int]string, dynNum map[int]bool) (*DynamicNode, bool, error) { + if boolExpr, ok := n.(*ast.BoolExpr); ok { + switch boolExpr.Boolop { + case ast.BoolExprTypeNot: + var inner ast.Node + if boolExpr.Args != nil && len(boolExpr.Args.Items) > 0 { + inner = boolExpr.Args.Items[0] + } + child, isDyn, err := classifyDynamic(inner, numName, dynNum) + if err != nil || !isDyn { + return nil, false, err + } + return &DynamicNode{Connector: "NOT", Children: []*DynamicNode{child}}, true, nil + case ast.BoolExprTypeAnd, ast.BoolExprTypeOr: + connector := "AND" + if boolExpr.Boolop == ast.BoolExprTypeOr { + connector = "OR" + } + var children []*DynamicNode + var anyStatic, anyDynamic bool + for _, arg := range boolExpr.Args.Items { + child, isDyn, err := classifyDynamic(arg, numName, dynNum) + if err != nil { + return nil, false, err + } + if isDyn { + anyDynamic = true + children = append(children, child) + } else { + anyStatic = true + } + } + switch { + case anyStatic && anyDynamic: + return nil, false, fmt.Errorf("dynamic: a group must be entirely dynamic (mixes static and dynamic)") + case anyDynamic: + return &DynamicNode{Connector: connector, Children: children}, true, nil + default: + // fully static group to stay in the const + return nil, false, nil + } + } + } + num, ok := leafParamNumber(n) + if !ok || !dynNum[num] { + return nil, false, nil + } + return &DynamicNode{Param: numName[num]}, true, nil +} + +func leafParamNumber(n ast.Node) (int, bool) { + if n == nil { + return 0, false + } + refs := astutils.Search(n, func(node ast.Node) bool { + _, ok := node.(*ast.ParamRef) + return ok + }) + if refs == nil || len(refs.Items) == 0 { + return 0, false + } + pr, ok := refs.Items[0].(*ast.ParamRef) + if !ok { + return 0, false + } + return pr.Number, true } diff --git a/internal/compiler/dynamic_test.go b/internal/compiler/dynamic_test.go index a98ee780a6..ddaae78f43 100644 --- a/internal/compiler/dynamic_test.go +++ b/internal/compiler/dynamic_test.go @@ -231,15 +231,15 @@ func boolExpr(op ast.BoolExprType, args ...ast.Node) *ast.BoolExpr { return &ast.BoolExpr{Boolop: op, Args: &ast.List{Items: args}} } -func leafNode(param string) *dynamicNode { - return &dynamicNode{Param: param} +func leafNode(param string) *DynamicNode { + return &DynamicNode{Param: param} } -func groupNode(conn string, kids ...*dynamicNode) *dynamicNode { - return &dynamicNode{Connector: conn, Children: kids} +func groupNode(conn string, kids ...*DynamicNode) *DynamicNode { + return &DynamicNode{Connector: conn, Children: kids} } -func dumpNode(n *dynamicNode) string { +func dumpNode(n *DynamicNode) string { if n == nil { return "" } @@ -253,7 +253,7 @@ func dumpNode(n *dynamicNode) string { return n.Connector + "(" + strings.Join(parts, ", ") + ")" } -func assertTree(t *testing.T, got, want *dynamicNode) { +func assertTree(t *testing.T, got, want *DynamicNode) { t.Helper() if !reflect.DeepEqual(got, want) { t.Fatalf("buildDynamicTree mismatch\n got: %s\nwant: %s", @@ -275,7 +275,7 @@ func TestBuildDynamicTree(t *testing.T) { where ast.Node params []Parameter md metadata.Metadata - want *dynamicNode + want *DynamicNode wantErr bool }{ { @@ -286,6 +286,18 @@ func TestBuildDynamicTree(t *testing.T) { md: dyn("name", "age"), want: groupNode("AND", leafNode("name"), leafNode("age")), }, + { + name: "IN slice predicate is a dynamic leaf", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + &ast.In{ + Expr: &ast.ColumnRef{Name: "id"}, + List: []ast.Node{&ast.ParamRef{Number: 2}}, + }), + params: []Parameter{param(1, "tenant_id"), param(2, "ids")}, + md: dyn("ids"), + want: groupNode("AND", leafNode("ids")), + }, { name: "static leaf plus a dynamic OR group", where: boolExpr(ast.BoolExprTypeAnd, diff --git a/internal/compiler/parse.go b/internal/compiler/parse.go index 612409fafe..034a61c71e 100644 --- a/internal/compiler/parse.go +++ b/internal/compiler/parse.go @@ -166,6 +166,17 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, } } } + var dynamicWhere *DynamicNode + if md.Dynamic { + sel, ok := raw.Stmt.(*ast.SelectStmt) + if !ok { + return nil, fmt.Errorf("dynamic query %q must be a SELECT", name) + } + dynamicWhere, err = buildDynamicTree(sel.WhereClause, anlys.Parameters, md) + if err != nil { + return nil, err + } + } expanded := anlys.Query @@ -192,6 +203,7 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, Columns: anlys.Columns, SQL: trimmed, CodegenSQL: codegenSQL, + DynamicWhere: dynamicWhere, InsertIntoTable: anlys.Table, }, nil } diff --git a/internal/compiler/query.go b/internal/compiler/query.go index e3fdb069a7..bea75ae10b 100644 --- a/internal/compiler/query.go +++ b/internal/compiler/query.go @@ -46,13 +46,14 @@ type Column struct { type Query struct { // CodegenSQL is the stripped base query emitted as the Go const for - // :dynamic queries (where/order by suffixes removed). This should be + // :dynamicmany and dynamicone queries (where/order by suffixes removed). This should be // empty for normal queries. - CodegenSQL string - SQL string - Metadata metadata.Metadata - Columns []*Column - Params []Parameter + CodegenSQL string + DynamicWhere *DynamicNode + SQL string + Metadata metadata.Metadata + Columns []*Column + Params []Parameter // Needed for CopyFrom InsertIntoTable *ast.TableName diff --git a/internal/endtoend/testdata/codegen_json/gen/codegen.json b/internal/endtoend/testdata/codegen_json/gen/codegen.json index dcfc0009b8..4e2d28e5e3 100644 --- a/internal/endtoend/testdata/codegen_json/gen/codegen.json +++ b/internal/endtoend/testdata/codegen_json/gen/codegen.json @@ -69920,7 +69920,8 @@ "comments": [], "filename": "query.sql", "insert_into_table": null, - "dynamic_order_by": [] + "dynamic_order_by": [], + "dynamic_where": null }, { "text": "SELECT id, name, bio FROM authors\nORDER BY name", @@ -70016,7 +70017,8 @@ "comments": [], "filename": "query.sql", "insert_into_table": null, - "dynamic_order_by": [] + "dynamic_order_by": [], + "dynamic_where": null }, { "text": "INSERT INTO authors (\n name, bio\n) VALUES (\n $1, $2\n)\nRETURNING id, name, bio", @@ -70179,7 +70181,8 @@ "schema": "", "name": "authors" }, - "dynamic_order_by": [] + "dynamic_order_by": [], + "dynamic_where": null }, { "text": "DELETE FROM authors\nWHERE id = $1", @@ -70222,7 +70225,8 @@ "comments": [], "filename": "query.sql", "insert_into_table": null, - "dynamic_order_by": [] + "dynamic_order_by": [], + "dynamic_where": null } ], "sqlc_version": "v1.31.1", diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go index 09b045e71a..3a12d66dd6 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/pgx/go/query.sql.go @@ -13,6 +13,98 @@ import ( "github.com/jackc/pgx/v5/pgtype" ) +const excludeContacts = `-- name: ExcludeContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type ExcludeContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} + +type ExcludeContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o ExcludeContactsOpts) Name(v string) ExcludeContactsOpts { + o.name = &v + return o +} + +func (o ExcludeContactsOpts) Status(v string) ExcludeContactsOpts { + o.status = &v + return o +} + +func (q *Queries) ExcludeContacts(ctx context.Context, db DBTX, tenantID int64, opts ExcludeContactsOpts) ([]ExcludeContactsRow, error) { + query := excludeContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 1) + g1 := make([]string, 0, 2) + if opts.name != nil { + n++ + g1 = append(g1, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g1 = append(g1, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g1) { + case 0: + case 1: + g0 = append(g0, g1[0]) + default: + g0 = append(g0, "("+strings.Join(g1, " OR ")+")") + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, "NOT ("+g0[0]+")") + default: + conds = append(conds, "NOT "+"("+strings.Join(g0, " AND ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ExcludeContactsRow + for rows.Next() { + var i ExcludeContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const filterRecords = `-- name: FilterRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 @@ -335,6 +427,90 @@ func (q *Queries) ListRecords(ctx context.Context, db DBTX, tenantID int64, opts return items, nil } +const searchContacts = `-- name: SearchContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt pgtype.Timestamptz +} + +type SearchContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o SearchContactsOpts) Name(v string) SearchContactsOpts { + o.name = &v + return o +} + +func (o SearchContactsOpts) Status(v string) SearchContactsOpts { + o.status = &v + return o +} + +func (q *Queries) SearchContacts(ctx context.Context, db DBTX, tenantID int64, opts SearchContactsOpts) ([]SearchContactsRow, error) { + query := searchContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 2) + if opts.name != nil { + n++ + g0 = append(g0, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g0 = append(g0, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, g0[0]) + default: + conds = append(conds, "("+strings.Join(g0, " OR ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := db.Query(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchContactsRow + for rows.Next() { + var i SearchContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const searchRecords = `-- name: SearchRecords :many SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 diff --git a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go index 7169d3f68b..240e445598 100644 --- a/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go +++ b/internal/endtoend/testdata/dynamic_query/postgresql/stdlib/go/query.sql.go @@ -12,6 +12,100 @@ import ( "time" ) +const excludeContacts = `-- name: ExcludeContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type ExcludeContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type ExcludeContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o ExcludeContactsOpts) Name(v string) ExcludeContactsOpts { + o.name = &v + return o +} + +func (o ExcludeContactsOpts) Status(v string) ExcludeContactsOpts { + o.status = &v + return o +} +func (q *Queries) ExcludeContacts(ctx context.Context, tenantID int64, opts ExcludeContactsOpts) ([]ExcludeContactsRow, error) { + query := excludeContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 1) + g1 := make([]string, 0, 2) + if opts.name != nil { + n++ + g1 = append(g1, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g1 = append(g1, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g1) { + case 0: + case 1: + g0 = append(g0, g1[0]) + default: + g0 = append(g0, "("+strings.Join(g1, " OR ")+")") + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, "NOT ("+g0[0]+")") + default: + conds = append(conds, "NOT "+"("+strings.Join(g0, " AND ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ExcludeContactsRow + for rows.Next() { + var i ExcludeContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const getRecord = `-- name: GetRecord :one SELECT id, name, age, created_at FROM records WHERE tenant_id = $1 @@ -271,3 +365,89 @@ func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListReco } return items, nil } + +const searchContacts = `-- name: SearchContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = $1 +` + +type SearchContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type SearchContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o SearchContactsOpts) Name(v string) SearchContactsOpts { + o.name = &v + return o +} + +func (o SearchContactsOpts) Status(v string) SearchContactsOpts { + o.status = &v + return o +} +func (q *Queries) SearchContacts(ctx context.Context, tenantID int64, opts SearchContactsOpts) ([]SearchContactsRow, error) { + query := searchContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 2) + if opts.name != nil { + n++ + g0 = append(g0, fmt.Sprintf("name = $%d", n)) + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + n++ + g0 = append(g0, fmt.Sprintf("status = $%d", n)) + queryParams = append(queryParams, *opts.status) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, g0[0]) + default: + conds = append(conds, "("+strings.Join(g0, " OR ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchContactsRow + for rows.Next() { + var i SearchContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/internal/plugin/codegen.pb.go b/internal/plugin/codegen.pb.go index 482538ac5c..0855073df6 100644 --- a/internal/plugin/codegen.pb.go +++ b/internal/plugin/codegen.pb.go @@ -635,6 +635,69 @@ func (x *Identifier) GetName() string { return "" } +type DynamicNode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Connector string `protobuf:"bytes,1,opt,name=connector,proto3" json:"connector,omitempty"` + Param string `protobuf:"bytes,2,opt,name=param,proto3" json:"param,omitempty"` + Children []*DynamicNode `protobuf:"bytes,3,rep,name=children,proto3" json:"children,omitempty"` +} + +func (x *DynamicNode) Reset() { + *x = DynamicNode{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_codegen_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DynamicNode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DynamicNode) ProtoMessage() {} + +func (x *DynamicNode) ProtoReflect() protoreflect.Message { + mi := &file_plugin_codegen_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DynamicNode.ProtoReflect.Descriptor instead. +func (*DynamicNode) Descriptor() ([]byte, []int) { + return file_plugin_codegen_proto_rawDescGZIP(), []int{9} +} + +func (x *DynamicNode) GetConnector() string { + if x != nil { + return x.Connector + } + return "" +} + +func (x *DynamicNode) GetParam() string { + if x != nil { + return x.Param + } + return "" +} + +func (x *DynamicNode) GetChildren() []*DynamicNode { + if x != nil { + return x.Children + } + return nil +} + type Column struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -664,7 +727,7 @@ type Column struct { func (x *Column) Reset() { *x = Column{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[9] + mi := &file_plugin_codegen_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -677,7 +740,7 @@ func (x *Column) String() string { func (*Column) ProtoMessage() {} func (x *Column) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[9] + mi := &file_plugin_codegen_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -690,7 +753,7 @@ func (x *Column) ProtoReflect() protoreflect.Message { // Deprecated: Use Column.ProtoReflect.Descriptor instead. func (*Column) Descriptor() ([]byte, []int) { - return file_plugin_codegen_proto_rawDescGZIP(), []int{9} + return file_plugin_codegen_proto_rawDescGZIP(), []int{10} } func (x *Column) GetName() string { @@ -833,12 +896,13 @@ type Query struct { Filename string `protobuf:"bytes,7,opt,name=filename,proto3" json:"filename,omitempty"` InsertIntoTable *Identifier `protobuf:"bytes,8,opt,name=insert_into_table,proto3" json:"insert_into_table,omitempty"` DynamicOrderBy []string `protobuf:"bytes,9,rep,name=dynamic_order_by,json=dynamicOrderBy,proto3" json:"dynamic_order_by,omitempty"` + DynamicWhere *DynamicNode `protobuf:"bytes,10,opt,name=dynamic_where,json=dynamicWhere,proto3" json:"dynamic_where,omitempty"` } func (x *Query) Reset() { *x = Query{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[10] + mi := &file_plugin_codegen_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -851,7 +915,7 @@ func (x *Query) String() string { func (*Query) ProtoMessage() {} func (x *Query) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[10] + mi := &file_plugin_codegen_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -864,7 +928,7 @@ func (x *Query) ProtoReflect() protoreflect.Message { // Deprecated: Use Query.ProtoReflect.Descriptor instead. func (*Query) Descriptor() ([]byte, []int) { - return file_plugin_codegen_proto_rawDescGZIP(), []int{10} + return file_plugin_codegen_proto_rawDescGZIP(), []int{11} } func (x *Query) GetText() string { @@ -930,6 +994,13 @@ func (x *Query) GetDynamicOrderBy() []string { return nil } +func (x *Query) GetDynamicWhere() *DynamicNode { + if x != nil { + return x.DynamicWhere + } + return nil +} + type Parameter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -942,7 +1013,7 @@ type Parameter struct { func (x *Parameter) Reset() { *x = Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[11] + mi := &file_plugin_codegen_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -955,7 +1026,7 @@ func (x *Parameter) String() string { func (*Parameter) ProtoMessage() {} func (x *Parameter) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[11] + mi := &file_plugin_codegen_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -968,7 +1039,7 @@ func (x *Parameter) ProtoReflect() protoreflect.Message { // Deprecated: Use Parameter.ProtoReflect.Descriptor instead. func (*Parameter) Descriptor() ([]byte, []int) { - return file_plugin_codegen_proto_rawDescGZIP(), []int{11} + return file_plugin_codegen_proto_rawDescGZIP(), []int{12} } func (x *Parameter) GetNumber() int32 { @@ -1001,7 +1072,7 @@ type GenerateRequest struct { func (x *GenerateRequest) Reset() { *x = GenerateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[12] + mi := &file_plugin_codegen_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1014,7 +1085,7 @@ func (x *GenerateRequest) String() string { func (*GenerateRequest) ProtoMessage() {} func (x *GenerateRequest) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[12] + mi := &file_plugin_codegen_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1027,7 +1098,7 @@ func (x *GenerateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateRequest.ProtoReflect.Descriptor instead. func (*GenerateRequest) Descriptor() ([]byte, []int) { - return file_plugin_codegen_proto_rawDescGZIP(), []int{12} + return file_plugin_codegen_proto_rawDescGZIP(), []int{13} } func (x *GenerateRequest) GetSettings() *Settings { @@ -1083,7 +1154,7 @@ type GenerateResponse struct { func (x *GenerateResponse) Reset() { *x = GenerateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[13] + mi := &file_plugin_codegen_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1096,7 +1167,7 @@ func (x *GenerateResponse) String() string { func (*GenerateResponse) ProtoMessage() {} func (x *GenerateResponse) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[13] + mi := &file_plugin_codegen_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1109,7 +1180,7 @@ func (x *GenerateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateResponse.ProtoReflect.Descriptor instead. func (*GenerateResponse) Descriptor() ([]byte, []int) { - return file_plugin_codegen_proto_rawDescGZIP(), []int{13} + return file_plugin_codegen_proto_rawDescGZIP(), []int{14} } func (x *GenerateResponse) GetFiles() []*File { @@ -1130,7 +1201,7 @@ type Codegen_Process struct { func (x *Codegen_Process) Reset() { *x = Codegen_Process{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[14] + mi := &file_plugin_codegen_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1143,7 +1214,7 @@ func (x *Codegen_Process) String() string { func (*Codegen_Process) ProtoMessage() {} func (x *Codegen_Process) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[14] + mi := &file_plugin_codegen_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1178,7 +1249,7 @@ type Codegen_WASM struct { func (x *Codegen_WASM) Reset() { *x = Codegen_WASM{} if protoimpl.UnsafeEnabled { - mi := &file_plugin_codegen_proto_msgTypes[15] + mi := &file_plugin_codegen_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1191,7 +1262,7 @@ func (x *Codegen_WASM) String() string { func (*Codegen_WASM) ProtoMessage() {} func (x *Codegen_WASM) ProtoReflect() protoreflect.Message { - mi := &file_plugin_codegen_proto_msgTypes[15] + mi := &file_plugin_codegen_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1299,103 +1370,114 @@ var file_plugin_codegen_proto_rawDesc = []byte{ 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcc, 0x04, - 0x0a, 0x06, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x6e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x72, - 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, - 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x73, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x69, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x26, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x73, 0x71, 0x6c, 0x63, - 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, - 0x53, 0x71, 0x6c, 0x63, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x0b, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x0a, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x6d, 0x73, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x44, 0x69, 0x6d, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x70, 0x12, 0x1d, 0x0a, - 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x22, 0xbe, 0x02, 0x0a, - 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, - 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x40, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, - 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, - 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x4b, 0x0a, - 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, - 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x07, - 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, - 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x27, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x32, 0x4f, 0x0a, 0x0e, - 0x43, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, - 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7c, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x42, 0x0c, 0x43, 0x6f, 0x64, - 0x65, 0x67, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2d, 0x64, 0x65, 0x76, - 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x50, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0xca, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xe2, 0x02, 0x12, - 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, + 0x0b, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x44, 0x79, 0x6e, 0x61, + 0x6d, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x22, 0xcc, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x73, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x69, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x20, + 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x43, 0x61, 0x6c, 0x6c, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, + 0x73, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, + 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x69, 0x73, 0x53, 0x71, 0x6c, 0x63, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, + 0x0b, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x6d, + 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x44, 0x69, + 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6f, 0x70, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, + 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x22, 0xf8, 0x02, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, + 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x6d, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2d, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, + 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, + 0x6f, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0e, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, + 0x79, 0x12, 0x38, 0x0a, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x64, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x57, 0x68, 0x65, 0x72, 0x65, 0x22, 0x4b, 0x0a, 0x09, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x27, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x46, + 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x32, 0x4f, 0x0a, 0x0e, 0x43, 0x6f, + 0x64, 0x65, 0x67, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x08, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7c, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x42, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x67, + 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x71, 0x6c, 0x63, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x73, + 0x71, 0x6c, 0x63, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x50, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0xca, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0xe2, 0x02, 0x12, 0x50, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1410,7 +1492,7 @@ func file_plugin_codegen_proto_rawDescGZIP() []byte { return file_plugin_codegen_proto_rawDescData } -var file_plugin_codegen_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_plugin_codegen_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_plugin_codegen_proto_goTypes = []interface{}{ (*File)(nil), // 0: plugin.File (*Settings)(nil), // 1: plugin.Settings @@ -1421,42 +1503,45 @@ var file_plugin_codegen_proto_goTypes = []interface{}{ (*Enum)(nil), // 6: plugin.Enum (*Table)(nil), // 7: plugin.Table (*Identifier)(nil), // 8: plugin.Identifier - (*Column)(nil), // 9: plugin.Column - (*Query)(nil), // 10: plugin.Query - (*Parameter)(nil), // 11: plugin.Parameter - (*GenerateRequest)(nil), // 12: plugin.GenerateRequest - (*GenerateResponse)(nil), // 13: plugin.GenerateResponse - (*Codegen_Process)(nil), // 14: plugin.Codegen.Process - (*Codegen_WASM)(nil), // 15: plugin.Codegen.WASM + (*DynamicNode)(nil), // 9: plugin.DynamicNode + (*Column)(nil), // 10: plugin.Column + (*Query)(nil), // 11: plugin.Query + (*Parameter)(nil), // 12: plugin.Parameter + (*GenerateRequest)(nil), // 13: plugin.GenerateRequest + (*GenerateResponse)(nil), // 14: plugin.GenerateResponse + (*Codegen_Process)(nil), // 15: plugin.Codegen.Process + (*Codegen_WASM)(nil), // 16: plugin.Codegen.WASM } var file_plugin_codegen_proto_depIdxs = []int32{ 2, // 0: plugin.Settings.codegen:type_name -> plugin.Codegen - 14, // 1: plugin.Codegen.process:type_name -> plugin.Codegen.Process - 15, // 2: plugin.Codegen.wasm:type_name -> plugin.Codegen.WASM + 15, // 1: plugin.Codegen.process:type_name -> plugin.Codegen.Process + 16, // 2: plugin.Codegen.wasm:type_name -> plugin.Codegen.WASM 4, // 3: plugin.Catalog.schemas:type_name -> plugin.Schema 7, // 4: plugin.Schema.tables:type_name -> plugin.Table 6, // 5: plugin.Schema.enums:type_name -> plugin.Enum 5, // 6: plugin.Schema.composite_types:type_name -> plugin.CompositeType 8, // 7: plugin.Table.rel:type_name -> plugin.Identifier - 9, // 8: plugin.Table.columns:type_name -> plugin.Column - 8, // 9: plugin.Column.table:type_name -> plugin.Identifier - 8, // 10: plugin.Column.type:type_name -> plugin.Identifier - 8, // 11: plugin.Column.embed_table:type_name -> plugin.Identifier - 9, // 12: plugin.Query.columns:type_name -> plugin.Column - 11, // 13: plugin.Query.params:type_name -> plugin.Parameter - 8, // 14: plugin.Query.insert_into_table:type_name -> plugin.Identifier - 9, // 15: plugin.Parameter.column:type_name -> plugin.Column - 1, // 16: plugin.GenerateRequest.settings:type_name -> plugin.Settings - 3, // 17: plugin.GenerateRequest.catalog:type_name -> plugin.Catalog - 10, // 18: plugin.GenerateRequest.queries:type_name -> plugin.Query - 0, // 19: plugin.GenerateResponse.files:type_name -> plugin.File - 12, // 20: plugin.CodegenService.Generate:input_type -> plugin.GenerateRequest - 13, // 21: plugin.CodegenService.Generate:output_type -> plugin.GenerateResponse - 21, // [21:22] is the sub-list for method output_type - 20, // [20:21] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 10, // 8: plugin.Table.columns:type_name -> plugin.Column + 9, // 9: plugin.DynamicNode.children:type_name -> plugin.DynamicNode + 8, // 10: plugin.Column.table:type_name -> plugin.Identifier + 8, // 11: plugin.Column.type:type_name -> plugin.Identifier + 8, // 12: plugin.Column.embed_table:type_name -> plugin.Identifier + 10, // 13: plugin.Query.columns:type_name -> plugin.Column + 12, // 14: plugin.Query.params:type_name -> plugin.Parameter + 8, // 15: plugin.Query.insert_into_table:type_name -> plugin.Identifier + 9, // 16: plugin.Query.dynamic_where:type_name -> plugin.DynamicNode + 10, // 17: plugin.Parameter.column:type_name -> plugin.Column + 1, // 18: plugin.GenerateRequest.settings:type_name -> plugin.Settings + 3, // 19: plugin.GenerateRequest.catalog:type_name -> plugin.Catalog + 11, // 20: plugin.GenerateRequest.queries:type_name -> plugin.Query + 0, // 21: plugin.GenerateResponse.files:type_name -> plugin.File + 13, // 22: plugin.CodegenService.Generate:input_type -> plugin.GenerateRequest + 14, // 23: plugin.CodegenService.Generate:output_type -> plugin.GenerateResponse + 23, // [23:24] is the sub-list for method output_type + 22, // [22:23] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_plugin_codegen_proto_init() } @@ -1574,7 +1659,7 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Column); i { + switch v := v.(*DynamicNode); i { case 0: return &v.state case 1: @@ -1586,7 +1671,7 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Query); i { + switch v := v.(*Column); i { case 0: return &v.state case 1: @@ -1598,7 +1683,7 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Parameter); i { + switch v := v.(*Query); i { case 0: return &v.state case 1: @@ -1610,7 +1695,7 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateRequest); i { + switch v := v.(*Parameter); i { case 0: return &v.state case 1: @@ -1622,7 +1707,7 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateResponse); i { + switch v := v.(*GenerateRequest); i { case 0: return &v.state case 1: @@ -1634,7 +1719,7 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Codegen_Process); i { + switch v := v.(*GenerateResponse); i { case 0: return &v.state case 1: @@ -1646,6 +1731,18 @@ func file_plugin_codegen_proto_init() { } } file_plugin_codegen_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Codegen_Process); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_codegen_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Codegen_WASM); i { case 0: return &v.state @@ -1664,7 +1761,7 @@ func file_plugin_codegen_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_plugin_codegen_proto_rawDesc, NumEnums: 0, - NumMessages: 16, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/protos/plugin/codegen.proto b/protos/plugin/codegen.proto index ddcb215f66..fc7582701c 100644 --- a/protos/plugin/codegen.proto +++ b/protos/plugin/codegen.proto @@ -81,6 +81,12 @@ message Identifier { string name = 3; } +message DynamicNode { + string connector = 1; + string param = 2; + repeated DynamicNode children = 3; +} + message Column { string name = 1; bool not_null = 3; @@ -114,6 +120,7 @@ message Query { string filename = 7 [json_name = "filename"]; Identifier insert_into_table = 8 [json_name = "insert_into_table"]; repeated string dynamic_order_by = 9; + DynamicNode dynamic_where = 10; } message Parameter { From ac989817b43f95a6191020ab574e482645788cc1 Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 1 Jul 2026 15:15:38 -0400 Subject: [PATCH 19/20] feat: add sqlite support --- examples/dynamicquery/sqlc.yaml | 7 + examples/dynamicquery/sqlite/db.go | 31 ++ examples/dynamicquery/sqlite/db_test.go | 202 ++++++++++ examples/dynamicquery/sqlite/models.go | 18 + examples/dynamicquery/sqlite/query.sql | 32 ++ examples/dynamicquery/sqlite/query.sql.go | 345 ++++++++++++++++++ examples/dynamicquery/sqlite/schema.sql | 8 + internal/codegen/golang/dynamic.go | 9 +- internal/codegen/golang/imports.go | 2 +- internal/codegen/golang/result.go | 5 +- .../golang/templates/stdlib/queryCode.tmpl | 8 + internal/compiler/dynamic.go | 55 ++- internal/compiler/dynamic_test.go | 116 +++++- internal/compiler/parse.go | 7 +- 14 files changed, 821 insertions(+), 24 deletions(-) create mode 100644 examples/dynamicquery/sqlite/db.go create mode 100644 examples/dynamicquery/sqlite/db_test.go create mode 100644 examples/dynamicquery/sqlite/models.go create mode 100644 examples/dynamicquery/sqlite/query.sql create mode 100644 examples/dynamicquery/sqlite/query.sql.go create mode 100644 examples/dynamicquery/sqlite/schema.sql diff --git a/examples/dynamicquery/sqlc.yaml b/examples/dynamicquery/sqlc.yaml index 90ce4b704b..c592c3086c 100644 --- a/examples/dynamicquery/sqlc.yaml +++ b/examples/dynamicquery/sqlc.yaml @@ -15,3 +15,10 @@ sql: package: dynamicquerypgx sql_package: pgx/v5 out: pgx +- engine: sqlite + schema: sqlite/schema.sql + queries: sqlite/query.sql + gen: + go: + package: dynamicquerysqlite + out: sqlite diff --git a/examples/dynamicquery/sqlite/db.go b/examples/dynamicquery/sqlite/db.go new file mode 100644 index 0000000000..3b2703b4d5 --- /dev/null +++ b/examples/dynamicquery/sqlite/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquerysqlite + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/examples/dynamicquery/sqlite/db_test.go b/examples/dynamicquery/sqlite/db_test.go new file mode 100644 index 0000000000..69f5b5c7b5 --- /dev/null +++ b/examples/dynamicquery/sqlite/db_test.go @@ -0,0 +1,202 @@ +//go:build examples + +package dynamicquerysqlite + +import ( + "context" + "testing" + + "github.com/sqlc-dev/sqlc/internal/sqltest" +) + +func seedContacts(t *testing.T, ctx context.Context, q *Queries) { + t.Helper() + seed := []CreateRecordParams{ + {TenantID: 1, Name: "alice", Age: 30, Status: "active"}, + {TenantID: 1, Name: "bob", Age: 20, Status: "inactive"}, + {TenantID: 1, Name: "carol", Age: 40, Status: "active"}, + {TenantID: 2, Name: "dave", Age: 99, Status: "active"}, + } + for _, s := range seed { + if err := q.CreateRecord(ctx, s); err != nil { + t.Fatal(err) + } + } +} + +func TestListRecordsSQLite(t *testing.T) { + sdb, cleanup := sqltest.SQLite(t, []string{"schema.sql"}) + defer sdb.Close() + defer cleanup() + + ctx := context.Background() + q := New(sdb) + seedContacts(t, ctx, q) + + t.Run("no_filters_returns_all_tenant_rows", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want 3 rows, got %d", len(got)) + } + }) + + t.Run("age_gt_uses_question_mark_placeholder", func(t *testing.T) { + // alice(30), carol(40); bob(20) excluded. + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25)) + if err != nil { + t.Fatal(err) + } + if len(got) != 2 { + t.Fatalf("want 2 rows, got %d", len(got)) + } + }) + + t.Run("combined_predicates", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Name("carol").Age(25)) + if err != nil { + t.Fatal(err) + } + if len(got) != 1 || got[0].Name != "carol" { + t.Fatalf("want [carol], got %+v", got) + } + }) + + t.Run("order_by_age_desc", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.OrderBy(ListRecordsOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 || got[0].Name != "carol" { + t.Fatalf("want carol first (desc), got %+v", got) + } + }) +} + +func TestSearchContactsSQLite(t *testing.T) { + sdb, cleanup := sqltest.SQLite(t, []string{"schema.sql"}) + defer sdb.Close() + defer cleanup() + + ctx := context.Background() + q := New(sdb) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []SearchContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_returns_all_tenant_rows", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("both_set_is_a_disjunction", func(t *testing.T) { + // (name = alice OR status = inactive): alice by name, bob by status. + // An AND would return zero rows, so two rows proves the OR grouping. + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Name("alice").Status("inactive")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob") + }) +} + +func TestExcludeContactsSQLite(t *testing.T) { + sdb, cleanup := sqltest.SQLite(t, []string{"schema.sql"}) + defer sdb.Close() + defer cleanup() + + ctx := context.Background() + q := New(sdb) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []ExcludeContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_omits_the_negated_group", func(t *testing.T) { + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("negated_disjunction_is_de_morgan", func(t *testing.T) { + // NOT (name = alice OR status = active) => name != alice AND status != active => bob. + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}.Name("alice").Status("active")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob") + }) +} + +func TestFilterRecordsSQLite(t *testing.T) { + sdb, cleanup := sqltest.SQLite(t, []string{"schema.sql"}) + defer sdb.Close() + defer cleanup() + + ctx := context.Background() + q := New(sdb) + seedContacts(t, ctx, q) + + idByName := func(name string) int64 { + var id int64 + if err := sdb.QueryRowContext(ctx, + "SELECT id FROM records WHERE name = ? AND tenant_id = 1", name).Scan(&id); err != nil { + t.Fatal(err) + } + return id + } + + t.Run("in_with_two_ids", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}.Ids([]int64{idByName("alice"), idByName("carol")})) + if err != nil { + t.Fatal(err) + } + if len(got) != 2 { + t.Fatalf("want 2 rows, got %d", len(got)) + } + }) + + t.Run("empty_slice_applies_no_in_filter", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want all 3 rows, got %d", len(got)) + } + }) +} diff --git a/examples/dynamicquery/sqlite/models.go b/examples/dynamicquery/sqlite/models.go new file mode 100644 index 0000000000..5b74ba32a7 --- /dev/null +++ b/examples/dynamicquery/sqlite/models.go @@ -0,0 +1,18 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquerysqlite + +import ( + "time" +) + +type Record struct { + ID int64 + TenantID int64 + Name string + Age int64 + Status string + CreatedAt time.Time +} diff --git a/examples/dynamicquery/sqlite/query.sql b/examples/dynamicquery/sqlite/query.sql new file mode 100644 index 0000000000..399940d380 --- /dev/null +++ b/examples/dynamicquery/sqlite/query.sql @@ -0,0 +1,32 @@ +-- name: ListRecords :dynamicmany +-- @dynamic name +-- @dynamic age +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age > sqlc.arg(age); + +-- name: SearchContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: ExcludeContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: FilterRecords :dynamicmany +-- @dynamic ids +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); + +-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES (sqlc.arg(tenant_id), sqlc.arg(name), sqlc.arg(age), sqlc.arg(status)); diff --git a/examples/dynamicquery/sqlite/query.sql.go b/examples/dynamicquery/sqlite/query.sql.go new file mode 100644 index 0000000000..c34db268cc --- /dev/null +++ b/examples/dynamicquery/sqlite/query.sql.go @@ -0,0 +1,345 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 +// source: query.sql + +package dynamicquerysqlite + +import ( + "context" + "strings" + "time" +) + +const createRecord = `-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES (?1, ?2, ?3, ?4) +` + +type CreateRecordParams struct { + TenantID int64 + Name string + Age int64 + Status string +} + +func (q *Queries) CreateRecord(ctx context.Context, arg CreateRecordParams) error { + _, err := q.db.ExecContext(ctx, createRecord, + arg.TenantID, + arg.Name, + arg.Age, + arg.Status, + ) + return err +} + +const excludeContacts = `-- name: ExcludeContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = ?1 +` + +type ExcludeContactsRow struct { + ID int64 + Name string + Age int64 + Status string + CreatedAt time.Time +} + +type ExcludeContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o ExcludeContactsOpts) Name(v string) ExcludeContactsOpts { + o.name = &v + return o +} + +func (o ExcludeContactsOpts) Status(v string) ExcludeContactsOpts { + o.status = &v + return o +} +func (q *Queries) ExcludeContacts(ctx context.Context, tenantID int64, opts ExcludeContactsOpts) ([]ExcludeContactsRow, error) { + query := excludeContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 1) + if opts.name != nil { + g0 = append(g0, "name = ?") + queryParams = append(queryParams, *opts.name) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, "NOT ("+g0[0]+")") + default: + conds = append(conds, "NOT "+"("+strings.Join(g0, " AND ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ExcludeContactsRow + for rows.Next() { + var i ExcludeContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const filterRecords = `-- name: FilterRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = ?1 +` + +type FilterRecordsRow struct { + ID int64 + Name string + Age int64 + CreatedAt time.Time +} + +type FilterRecordsOpts struct { + ids []int64 + orderBy []string +} + +func (o FilterRecordsOpts) Ids(v []int64) FilterRecordsOpts { + o.ids = v + return o +} +func (q *Queries) FilterRecords(ctx context.Context, tenantID int64, opts FilterRecordsOpts) ([]FilterRecordsRow, error) { + query := filterRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + ph[i] = "?" + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []FilterRecordsRow + for rows.Next() { + var i FilterRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listRecords = `-- name: ListRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = ?1 +` + +type ListRecordsRow struct { + ID int64 + Name string + Age int64 + CreatedAt time.Time +} + +type ListRecordsOpts struct { + name *string + age *int64 + orderBy []string +} + +func (o ListRecordsOpts) Name(v string) ListRecordsOpts { + o.name = &v + return o +} + +func (o ListRecordsOpts) Age(v int64) ListRecordsOpts { + o.age = &v + return o +} + +type ListRecordsOrderByColumn string + +const ( + ListRecordsOrderByName ListRecordsOrderByColumn = "name" + ListRecordsOrderByAge ListRecordsOrderByColumn = "age" + ListRecordsOrderByCreatedAt ListRecordsOrderByColumn = "created_at" +) + +func (o ListRecordsOpts) OrderBy(col ListRecordsOrderByColumn, desc bool) ListRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListRecordsOpts) ([]ListRecordsRow, error) { + query := listRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + conds = append(conds, "name = ?") + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + conds = append(conds, "age = ?") + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListRecordsRow + for rows.Next() { + var i ListRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const searchContacts = `-- name: SearchContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = ?1 +` + +type SearchContactsRow struct { + ID int64 + Name string + Age int64 + Status string + CreatedAt time.Time +} + +type SearchContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o SearchContactsOpts) Name(v string) SearchContactsOpts { + o.name = &v + return o +} + +func (o SearchContactsOpts) Status(v string) SearchContactsOpts { + o.status = &v + return o +} +func (q *Queries) SearchContacts(ctx context.Context, tenantID int64, opts SearchContactsOpts) ([]SearchContactsRow, error) { + query := searchContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + conds = append(conds, "name = ?") + queryParams = append(queryParams, *opts.name) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchContactsRow + for rows.Next() { + var i SearchContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/examples/dynamicquery/sqlite/schema.sql b/examples/dynamicquery/sqlite/schema.sql new file mode 100644 index 0000000000..4c38fa8f08 --- /dev/null +++ b/examples/dynamicquery/sqlite/schema.sql @@ -0,0 +1,8 @@ +CREATE TABLE records ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + tenant_id INTEGER NOT NULL, + name TEXT NOT NULL, + age INTEGER NOT NULL, + status TEXT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); diff --git a/internal/codegen/golang/dynamic.go b/internal/codegen/golang/dynamic.go index d9229ac4de..d84c5350f7 100644 --- a/internal/codegen/golang/dynamic.go +++ b/internal/codegen/golang/dynamic.go @@ -7,10 +7,11 @@ import ( ) type DynamicQuery struct { - StaticCount int - Opts []DynamicPredicate - Steps []DynamicStep - SortColumns []DynamicSortColumn + StaticCount int + QuestionMark bool + Opts []DynamicPredicate + Steps []DynamicStep + SortColumns []DynamicSortColumn } type DynamicPredicate struct { diff --git a/internal/codegen/golang/imports.go b/internal/codegen/golang/imports.go index 3dc9a061ce..199b0aba2a 100644 --- a/internal/codegen/golang/imports.go +++ b/internal/codegen/golang/imports.go @@ -417,7 +417,7 @@ func (i *importer) queryImports(filename string) fileImports { for _, q := range gq { if q.Dynamic != nil { hasDynamic = true - if len(q.Dynamic.Opts) > 0 { + if len(q.Dynamic.Opts) > 0 && !q.Dynamic.QuestionMark { hasDynamicPredicate = true } } diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index 42fa2c0440..f91dadbfc6 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -279,7 +279,10 @@ func buildQueries(req *plugin.GenerateRequest, options *opts.Options, enums []En } if len(dynamicParams) > 0 || len(query.GetDynamicOrderBy()) > 0 { - dq := &DynamicQuery{StaticCount: len(staticParams)} + dq := &DynamicQuery{ + StaticCount: len(staticParams), + QuestionMark: req.Settings.GetEngine() == "mysql" || req.Settings.GetEngine() == "sqlite", + } preds := make(map[string]DynamicPredicate, len(dynamicParams)) for _, p := range dynamicParams { isSlice := p.Column.GetIsSqlcSlice() diff --git a/internal/codegen/golang/templates/stdlib/queryCode.tmpl b/internal/codegen/golang/templates/stdlib/queryCode.tmpl index 30699a4b41..3ea3a2c684 100644 --- a/internal/codegen/golang/templates/stdlib/queryCode.tmpl +++ b/internal/codegen/golang/templates/stdlib/queryCode.tmpl @@ -79,16 +79,24 @@ func (q *Queries) {{$q.MethodName}}(ctx context.Context, {{$q.Arg.Pair}}{{if $q. if len(opts.{{.Predicate.VarName}}) > 0 { ph := make([]string, len(opts.{{.Predicate.VarName}})) for i, v := range opts.{{.Predicate.VarName}} { + {{- if $q.Dynamic.QuestionMark}} + ph[i] = "?" + {{- else}} n++ ph[i] = fmt.Sprintf("$%d", n) + {{- end}} queryParams = append(queryParams, v) } {{.Target}} = append({{.Target}}, "{{.Predicate.Column}} IN ("+strings.Join(ph, ", ")+")") } {{- else}} if opts.{{.Predicate.VarName}} != nil { + {{- if $q.Dynamic.QuestionMark}} + {{.Target}} = append({{.Target}}, "{{.Predicate.Column}} {{.Predicate.SQLOp}} ?") + {{- else}} n++ {{.Target}} = append({{.Target}}, fmt.Sprintf("{{.Predicate.Column}} {{.Predicate.SQLOp}} $%d", n)) + {{- end}} queryParams = append(queryParams, *opts.{{.Predicate.VarName}}) } {{- end}} diff --git a/internal/compiler/dynamic.go b/internal/compiler/dynamic.go index b04b0e643f..51d8cb9967 100644 --- a/internal/compiler/dynamic.go +++ b/internal/compiler/dynamic.go @@ -23,10 +23,8 @@ func dynamicOperator(n *ast.A_Expr) (string, bool) { return "IS DISTINCT FROM", true case ast.A_Expr_Kind_NOT_DISTINCT: return "IS NOT DISTINCT FROM", true - case ast.A_Expr_Kind_OP: - return normalizeDynamicOperator(astutils.Join(n.Name, ".")) default: - return "", false + return normalizeDynamicOperator(astutils.Join(n.Name, ".")) } } @@ -49,7 +47,7 @@ func normalizeDynamicOperator(op string) (string, bool) { } } -func buildDynamicCodegenSQL(sql string, params []Parameter, md metadata.Metadata) (string, error) { +func buildDynamicCodegenSQL(sql string, params []Parameter, md metadata.Metadata, dollar bool) (string, error) { if !md.Dynamic || len(md.DynamicParams) == 0 { return "", nil } @@ -74,7 +72,12 @@ func buildDynamicCodegenSQL(sql string, params []Parameter, md metadata.Metadata } firstDyn := staticCount + 1 - idx := placeholderIndex(sql, firstDyn) + var idx int + if dollar { + idx = placeholderIndex(sql, firstDyn) + } else { + idx = nthQuestionMark(sql, firstDyn) + } if idx < 0 { return "", fmt.Errorf("dynamic: couldn't locaTe placeholder $%d", firstDyn) } @@ -106,6 +109,29 @@ func placeholderIndex(sql string, n int) int { } } +func nthQuestionMark(sql string, n int) int { + inStr := false + count := 0 + for i := 0; i < len(sql); i++ { + switch sql[i] { + case '\'': + if inStr && i+1 < len(sql) && sql[i+1] == '\'' { + i++ // escaped '' inside a string literal + continue + } + inStr = !inStr + case '?': + if !inStr { + count++ + if count == n { + return i + } + } + } + } + return -1 +} + func lastKeyword(s, kw string) int { lower, lkw := strings.ToLower(s), strings.ToLower(kw) for from := len(lower); ; { @@ -154,10 +180,7 @@ func buildDynamicTree(where ast.Node, params []Parameter, md metadata.Metadata) } } - terms := []ast.Node{where} - if boolExpr, ok := where.(*ast.BoolExpr); ok && boolExpr.Boolop == ast.BoolExprTypeAnd { - terms = boolExpr.Args.Items - } + terms := flattenBool(where, ast.BoolExprTypeAnd) root := &DynamicNode{Connector: "AND"} for _, term := range terms { @@ -192,7 +215,7 @@ func classifyDynamic(n ast.Node, numName map[int]string, dynNum map[int]bool) (* } var children []*DynamicNode var anyStatic, anyDynamic bool - for _, arg := range boolExpr.Args.Items { + for _, arg := range flattenBool(boolExpr, boolExpr.Boolop) { child, isDyn, err := classifyDynamic(arg, numName, dynNum) if err != nil { return nil, false, err @@ -239,3 +262,15 @@ func leafParamNumber(n ast.Node) (int, bool) { } return pr.Number, true } + +func flattenBool(n ast.Node, op ast.BoolExprType) []ast.Node { + boolExpr, ok := n.(*ast.BoolExpr) + if !ok || boolExpr.Boolop != op { + return []ast.Node{n} + } + var out []ast.Node + for _, arg := range boolExpr.Args.Items { + out = append(out, flattenBool(arg, op)...) + } + return out +} diff --git a/internal/compiler/dynamic_test.go b/internal/compiler/dynamic_test.go index ddaae78f43..4778357c0e 100644 --- a/internal/compiler/dynamic_test.go +++ b/internal/compiler/dynamic_test.go @@ -71,6 +71,7 @@ func TestDynamicOperator(t *testing.T) { {"gte from op token", opExpr(">="), ">=", true}, {"tilde like from op token", opExpr("~~"), "LIKE", true}, {"unknown op token", opExpr("&&"), "", false}, + {"op token with unset kind (sqlite/mysql)", &ast.A_Expr{Name: &ast.List{Items: []ast.Node{&ast.String{Str: "="}}}}, "=", true}, // kinds we don't emit as a simple binary predicate {"between unsupported", &ast.A_Expr{Kind: ast.A_Expr_Kind_BETWEEN}, "", false}, {"in unsupported (handled via slice)", &ast.A_Expr{Kind: ast.A_Expr_Kind_IN}, "", false}, @@ -94,12 +95,13 @@ func param(number int, name string) Parameter { func TestBuildDynamicCodegenSQL(t *testing.T) { tests := []struct { - name string - sql string - params []Parameter - md metadata.Metadata - want string - wantErr bool + name string + sql string + params []Parameter + md metadata.Metadata + questionMark bool // ? placeholders (MySQL/SQLite) instead of $N + want string + wantErr bool }{ { name: "mixed static and dynamic suffix", @@ -197,11 +199,56 @@ func TestBuildDynamicCodegenSQL(t *testing.T) { }, wantErr: true, }, + { + name: "mixed static and dynamic suffix question marks", + sql: "SELECT id, name, age FROM records\n" + + "WHERE tenant_id = ?\n" + + " AND name = ?\n" + + " AND age > ?", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "age")}, + md: metadata.Metadata{Dynamic: true, DynamicParams: map[string]string{"name": "eq", "age": "gt"}}, + questionMark: true, + want: "SELECT id, name, age FROM records\n" + + "WHERE tenant_id = ?", + }, + { + name: "dynamic OR group suffix question marks", + sql: "SELECT id, name, status FROM records\n" + + "WHERE tenant_id = ?\n" + + " AND (name = ? OR status = ?)", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "status")}, + md: metadata.Metadata{Dynamic: true, DynamicParams: map[string]string{"name": "", "status": ""}}, + questionMark: true, + want: "SELECT id, name, status FROM records\n" + + "WHERE tenant_id = ?", + }, + { + name: "dynamic NOT group suffix question marks", + sql: "SELECT id, name, status FROM records\n" + + "WHERE tenant_id = ?\n" + + " AND NOT (name = ? OR status = ?)", + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "status")}, + md: metadata.Metadata{Dynamic: true, DynamicParams: map[string]string{"name": "", "status": ""}}, + questionMark: true, + want: "SELECT id, name, status FROM records\n" + + "WHERE tenant_id = ?", + }, + { + name: "IN slice suffix question marks", + sql: "SELECT id, name FROM records\n" + + "WHERE tenant_id = ?\n" + + " AND id IN (?)", + params: []Parameter{param(1, "tenant_id"), param(2, "ids")}, + md: metadata.Metadata{Dynamic: true, DynamicParams: map[string]string{"ids": ""}}, + questionMark: true, + want: "SELECT id, name FROM records\n" + + "WHERE tenant_id = ?", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, err := buildDynamicCodegenSQL(tt.sql, tt.params, tt.md) + got, err := buildDynamicCodegenSQL(tt.sql, tt.params, tt.md, !tt.questionMark) if tt.wantErr { if err == nil { t.Fatalf("expected error, got none (result %q)", got) @@ -218,6 +265,40 @@ func TestBuildDynamicCodegenSQL(t *testing.T) { } } +func TestNthQuestionMark(t *testing.T) { + t.Run("counts unquoted placeholders in order", func(t *testing.T) { + sql := "a = ? AND b = ? AND c = ?" + for n, want := range map[int]int{1: 4, 2: 14, 3: 24} { + if got := nthQuestionMark(sql, n); got != want { + t.Errorf("nthQuestionMark(_, %d) = %d, want %d", n, got, want) + } + } + }) + + t.Run("skips a placeholder inside a string literal", func(t *testing.T) { + sql := "label = 'huh?' AND name = ?" + if got, want := nthQuestionMark(sql, 1), strings.LastIndexByte(sql, '?'); got != want { + t.Fatalf("got %d, want the real param at %d", got, want) + } + }) + + t.Run("handles an escaped quote inside a literal", func(t *testing.T) { + sql := "note = 'it''s ok?' AND x = ?" + if got, want := nthQuestionMark(sql, 1), strings.LastIndexByte(sql, '?'); got != want { + t.Fatalf("got %d, want the real param at %d", got, want) + } + }) + + t.Run("returns -1 when there are too few", func(t *testing.T) { + if got := nthQuestionMark("a = ? AND b = ?", 3); got != -1 { + t.Fatalf("got %d, want -1", got) + } + if got := nthQuestionMark("a = 1", 1); got != -1 { + t.Fatalf("got %d, want -1", got) + } + }) +} + func cmpLeaf(col string, paramNum int) *ast.A_Expr { return &ast.A_Expr{ Kind: ast.A_Expr_Kind_OP, @@ -286,6 +367,27 @@ func TestBuildDynamicTree(t *testing.T) { md: dyn("name", "age"), want: groupNode("AND", leafNode("name"), leafNode("age")), }, + { + name: "left-nested AND chain is flattened", + where: boolExpr(ast.BoolExprTypeAnd, + boolExpr(ast.BoolExprTypeAnd, cmpLeaf("tenant_id", 1), cmpLeaf("name", 2)), + cmpLeaf("age", 3)), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "age")}, + md: dyn("name", "age"), + want: groupNode("AND", leafNode("name"), leafNode("age")), + }, + { + name: "left-nested OR chain is flattened", + where: boolExpr(ast.BoolExprTypeAnd, + cmpLeaf("tenant_id", 1), + boolExpr(ast.BoolExprTypeOr, + boolExpr(ast.BoolExprTypeOr, cmpLeaf("name", 2), cmpLeaf("email", 3)), + cmpLeaf("phone", 4))), + params: []Parameter{param(1, "tenant_id"), param(2, "name"), param(3, "email"), param(4, "phone")}, + md: dyn("name", "email", "phone"), + want: groupNode("AND", + groupNode("OR", leafNode("name"), leafNode("email"), leafNode("phone"))), + }, { name: "IN slice predicate is a dynamic leaf", where: boolExpr(ast.BoolExprTypeAnd, diff --git a/internal/compiler/parse.go b/internal/compiler/parse.go index 034a61c71e..0f7211684f 100644 --- a/internal/compiler/parse.go +++ b/internal/compiler/parse.go @@ -6,6 +6,7 @@ import ( "fmt" "strings" + "github.com/sqlc-dev/sqlc/internal/config" "github.com/sqlc-dev/sqlc/internal/debug" "github.com/sqlc-dev/sqlc/internal/metadata" "github.com/sqlc-dev/sqlc/internal/opts" @@ -194,7 +195,11 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query, md.Comments = comments - codegenSQL, err := buildDynamicCodegenSQL(trimmed, anlys.Parameters, md) + dollar := c.conf.Engine == config.EnginePostgreSQL + codegenSQL, err := buildDynamicCodegenSQL(trimmed, anlys.Parameters, md, dollar) + if err != nil { + return nil, err + } return &Query{ RawStmt: raw, From edaa6893ba2bfb460a3bcb909974150a0a31ac6c Mon Sep 17 00:00:00 2001 From: Steven Turturo Date: Wed, 1 Jul 2026 16:08:07 -0400 Subject: [PATCH 20/20] feat: add mysql support and fix some sqlite bugs --- examples/dynamicquery/mysql/db.go | 31 ++ examples/dynamicquery/mysql/db_test.go | 204 ++++++++++++ examples/dynamicquery/mysql/models.go | 18 ++ examples/dynamicquery/mysql/query.sql | 32 ++ examples/dynamicquery/mysql/query.sql.go | 369 ++++++++++++++++++++++ examples/dynamicquery/mysql/schema.sql | 8 + examples/dynamicquery/sqlc.yaml | 7 + examples/dynamicquery/sqlite/query.sql.go | 30 +- internal/engine/dolphin/convert.go | 6 + internal/engine/sqlite/convert.go | 15 +- 10 files changed, 714 insertions(+), 6 deletions(-) create mode 100644 examples/dynamicquery/mysql/db.go create mode 100644 examples/dynamicquery/mysql/db_test.go create mode 100644 examples/dynamicquery/mysql/models.go create mode 100644 examples/dynamicquery/mysql/query.sql create mode 100644 examples/dynamicquery/mysql/query.sql.go create mode 100644 examples/dynamicquery/mysql/schema.sql diff --git a/examples/dynamicquery/mysql/db.go b/examples/dynamicquery/mysql/db.go new file mode 100644 index 0000000000..6171b0a1d2 --- /dev/null +++ b/examples/dynamicquery/mysql/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquerymysql + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/examples/dynamicquery/mysql/db_test.go b/examples/dynamicquery/mysql/db_test.go new file mode 100644 index 0000000000..0d5ffe2700 --- /dev/null +++ b/examples/dynamicquery/mysql/db_test.go @@ -0,0 +1,204 @@ +//go:build examples + +package dynamicquerymysql + +import ( + "context" + "database/sql" + "testing" + + _ "github.com/go-sql-driver/mysql" + + "github.com/sqlc-dev/sqlc/internal/sqltest/local" +) + +func seedContacts(t *testing.T, ctx context.Context, q *Queries) { + t.Helper() + seed := []CreateRecordParams{ + {TenantID: 1, Name: "alice", Age: 30, Status: "active"}, + {TenantID: 1, Name: "bob", Age: 20, Status: "inactive"}, + {TenantID: 1, Name: "carol", Age: 40, Status: "active"}, + {TenantID: 2, Name: "dave", Age: 99, Status: "active"}, + } + for _, s := range seed { + if err := q.CreateRecord(ctx, s); err != nil { + t.Fatal(err) + } + } +} + +func newDB(t *testing.T) *sql.DB { + t.Helper() + uri := local.MySQL(t, []string{"schema.sql"}) + sdb, err := sql.Open("mysql", uri) + if err != nil { + t.Fatal(err) + } + t.Cleanup(func() { sdb.Close() }) + return sdb +} + +func TestListRecordsMySQL(t *testing.T) { + ctx := context.Background() + sdb := newDB(t) + q := New(sdb) + seedContacts(t, ctx, q) + + t.Run("no_filters_returns_all_tenant_rows", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want 3 rows, got %d", len(got)) + } + }) + + t.Run("age_gt_uses_question_mark_placeholder", func(t *testing.T) { + // alice(30), carol(40); bob(20) excluded. + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Age(25)) + if err != nil { + t.Fatal(err) + } + if len(got) != 2 { + t.Fatalf("want 2 rows, got %d", len(got)) + } + }) + + t.Run("combined_predicates", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.Name("carol").Age(25)) + if err != nil { + t.Fatal(err) + } + if len(got) != 1 || got[0].Name != "carol" { + t.Fatalf("want [carol], got %+v", got) + } + }) + + t.Run("order_by_age_desc", func(t *testing.T) { + got, err := q.ListRecords(ctx, 1, ListRecordsOpts{}.OrderBy(ListRecordsOrderByAge, true)) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 || got[0].Name != "carol" { + t.Fatalf("want carol first (desc), got %+v", got) + } + }) +} + +func TestSearchContactsMySQL(t *testing.T) { + ctx := context.Background() + sdb := newDB(t) + q := New(sdb) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []SearchContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_returns_all_tenant_rows", func(t *testing.T) { + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("both_set_is_a_disjunction", func(t *testing.T) { + // (name = alice OR status = inactive): alice by name, bob by status. + // An AND would return zero rows, so two rows proves the OR grouping. + got, err := q.SearchContacts(ctx, 1, SearchContactsOpts{}.Name("alice").Status("inactive")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob") + }) +} + +func TestExcludeContactsMySQL(t *testing.T) { + ctx := context.Background() + sdb := newDB(t) + q := New(sdb) + seedContacts(t, ctx, q) + + assertNames := func(t *testing.T, rows []ExcludeContactsRow, want ...string) { + t.Helper() + got := map[string]bool{} + for _, r := range rows { + got[r.Name] = true + } + if len(got) != len(want) { + t.Fatalf("got %d rows %v, want %v", len(rows), got, want) + } + for _, w := range want { + if !got[w] { + t.Fatalf("missing %q in %v", w, got) + } + } + } + + t.Run("no_filters_omits_the_negated_group", func(t *testing.T) { + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "alice", "bob", "carol") + }) + + t.Run("negated_disjunction_is_de_morgan", func(t *testing.T) { + // NOT (name = alice OR status = active) => name != alice AND status != active => bob. + got, err := q.ExcludeContacts(ctx, 1, ExcludeContactsOpts{}.Name("alice").Status("active")) + if err != nil { + t.Fatal(err) + } + assertNames(t, got, "bob") + }) +} + +func TestFilterRecordsMySQL(t *testing.T) { + ctx := context.Background() + sdb := newDB(t) + q := New(sdb) + seedContacts(t, ctx, q) + + idByName := func(name string) int64 { + var id int64 + if err := sdb.QueryRowContext(ctx, + "SELECT id FROM records WHERE name = ? AND tenant_id = 1", name).Scan(&id); err != nil { + t.Fatal(err) + } + return id + } + + t.Run("in_with_two_ids", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}.Ids([]int64{idByName("alice"), idByName("carol")})) + if err != nil { + t.Fatal(err) + } + if len(got) != 2 { + t.Fatalf("want 2 rows, got %d", len(got)) + } + }) + + t.Run("empty_slice_applies_no_in_filter", func(t *testing.T) { + got, err := q.FilterRecords(ctx, 1, FilterRecordsOpts{}) + if err != nil { + t.Fatal(err) + } + if len(got) != 3 { + t.Fatalf("want all 3 rows, got %d", len(got)) + } + }) +} diff --git a/examples/dynamicquery/mysql/models.go b/examples/dynamicquery/mysql/models.go new file mode 100644 index 0000000000..d5a5495efa --- /dev/null +++ b/examples/dynamicquery/mysql/models.go @@ -0,0 +1,18 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 + +package dynamicquerymysql + +import ( + "time" +) + +type Record struct { + ID int64 + TenantID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} diff --git a/examples/dynamicquery/mysql/query.sql b/examples/dynamicquery/mysql/query.sql new file mode 100644 index 0000000000..399940d380 --- /dev/null +++ b/examples/dynamicquery/mysql/query.sql @@ -0,0 +1,32 @@ +-- name: ListRecords :dynamicmany +-- @dynamic name +-- @dynamic age +-- @dynamic-sort name, age, created_at +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND name = sqlc.arg(name) + AND age > sqlc.arg(age); + +-- name: SearchContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: ExcludeContacts :dynamicmany +-- @dynamic name +-- @dynamic status +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND NOT (name = sqlc.arg(name) OR status = sqlc.arg(status)); + +-- name: FilterRecords :dynamicmany +-- @dynamic ids +SELECT id, name, age, created_at FROM records +WHERE tenant_id = sqlc.arg(tenant_id) + AND id IN (sqlc.slice(ids)); + +-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES (sqlc.arg(tenant_id), sqlc.arg(name), sqlc.arg(age), sqlc.arg(status)); diff --git a/examples/dynamicquery/mysql/query.sql.go b/examples/dynamicquery/mysql/query.sql.go new file mode 100644 index 0000000000..a4f574800c --- /dev/null +++ b/examples/dynamicquery/mysql/query.sql.go @@ -0,0 +1,369 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.31.1 +// source: query.sql + +package dynamicquerymysql + +import ( + "context" + "strings" + "time" +) + +const createRecord = `-- name: CreateRecord :exec +INSERT INTO records (tenant_id, name, age, status) +VALUES (?, ?, ?, ?) +` + +type CreateRecordParams struct { + TenantID int64 + Name string + Age int32 + Status string +} + +func (q *Queries) CreateRecord(ctx context.Context, arg CreateRecordParams) error { + _, err := q.db.ExecContext(ctx, createRecord, + arg.TenantID, + arg.Name, + arg.Age, + arg.Status, + ) + return err +} + +const excludeContacts = `-- name: ExcludeContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = ? +` + +type ExcludeContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type ExcludeContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o ExcludeContactsOpts) Name(v string) ExcludeContactsOpts { + o.name = &v + return o +} + +func (o ExcludeContactsOpts) Status(v string) ExcludeContactsOpts { + o.status = &v + return o +} +func (q *Queries) ExcludeContacts(ctx context.Context, tenantID int64, opts ExcludeContactsOpts) ([]ExcludeContactsRow, error) { + query := excludeContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 1) + g1 := make([]string, 0, 2) + if opts.name != nil { + g1 = append(g1, "name = ?") + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + g1 = append(g1, "status = ?") + queryParams = append(queryParams, *opts.status) + } + switch len(g1) { + case 0: + case 1: + g0 = append(g0, g1[0]) + default: + g0 = append(g0, "("+strings.Join(g1, " OR ")+")") + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, "NOT ("+g0[0]+")") + default: + conds = append(conds, "NOT "+"("+strings.Join(g0, " AND ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ExcludeContactsRow + for rows.Next() { + var i ExcludeContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const filterRecords = `-- name: FilterRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = ? +` + +type FilterRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type FilterRecordsOpts struct { + ids []int64 + orderBy []string +} + +func (o FilterRecordsOpts) Ids(v []int64) FilterRecordsOpts { + o.ids = v + return o +} +func (q *Queries) FilterRecords(ctx context.Context, tenantID int64, opts FilterRecordsOpts) ([]FilterRecordsRow, error) { + query := filterRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 1) + n := 1 + _ = n + if len(opts.ids) > 0 { + ph := make([]string, len(opts.ids)) + for i, v := range opts.ids { + ph[i] = "?" + queryParams = append(queryParams, v) + } + conds = append(conds, "id IN ("+strings.Join(ph, ", ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []FilterRecordsRow + for rows.Next() { + var i FilterRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listRecords = `-- name: ListRecords :many +SELECT id, name, age, created_at FROM records +WHERE tenant_id = ? +` + +type ListRecordsRow struct { + ID int64 + Name string + Age int32 + CreatedAt time.Time +} + +type ListRecordsOpts struct { + name *string + age *int32 + orderBy []string +} + +func (o ListRecordsOpts) Name(v string) ListRecordsOpts { + o.name = &v + return o +} + +func (o ListRecordsOpts) Age(v int32) ListRecordsOpts { + o.age = &v + return o +} + +type ListRecordsOrderByColumn string + +const ( + ListRecordsOrderByName ListRecordsOrderByColumn = "name" + ListRecordsOrderByAge ListRecordsOrderByColumn = "age" + ListRecordsOrderByCreatedAt ListRecordsOrderByColumn = "created_at" +) + +func (o ListRecordsOpts) OrderBy(col ListRecordsOrderByColumn, desc bool) ListRecordsOpts { + dir := " ASC" + if desc { + dir = " DESC" + } + o.orderBy = append(o.orderBy, string(col)+dir) + return o +} +func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListRecordsOpts) ([]ListRecordsRow, error) { + query := listRecords + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + if opts.name != nil { + conds = append(conds, "name = ?") + queryParams = append(queryParams, *opts.name) + } + if opts.age != nil { + conds = append(conds, "age > ?") + queryParams = append(queryParams, *opts.age) + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ListRecordsRow + for rows.Next() { + var i ListRecordsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const searchContacts = `-- name: SearchContacts :many +SELECT id, name, age, status, created_at FROM records +WHERE tenant_id = ? +` + +type SearchContactsRow struct { + ID int64 + Name string + Age int32 + Status string + CreatedAt time.Time +} + +type SearchContactsOpts struct { + name *string + status *string + orderBy []string +} + +func (o SearchContactsOpts) Name(v string) SearchContactsOpts { + o.name = &v + return o +} + +func (o SearchContactsOpts) Status(v string) SearchContactsOpts { + o.status = &v + return o +} +func (q *Queries) SearchContacts(ctx context.Context, tenantID int64, opts SearchContactsOpts) ([]SearchContactsRow, error) { + query := searchContacts + queryParams := []interface{}{tenantID} + conds := make([]string, 0, 2) + n := 1 + _ = n + g0 := make([]string, 0, 2) + if opts.name != nil { + g0 = append(g0, "name = ?") + queryParams = append(queryParams, *opts.name) + } + if opts.status != nil { + g0 = append(g0, "status = ?") + queryParams = append(queryParams, *opts.status) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, g0[0]) + default: + conds = append(conds, "("+strings.Join(g0, " OR ")+")") + } + if len(conds) > 0 { + query += " AND " + strings.Join(conds, " AND ") + } + if len(opts.orderBy) > 0 { + query += " ORDER BY " + strings.Join(opts.orderBy, ", ") + } + rows, err := q.db.QueryContext(ctx, query, queryParams...) + if err != nil { + return nil, err + } + defer rows.Close() + var items []SearchContactsRow + for rows.Next() { + var i SearchContactsRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Age, + &i.Status, + &i.CreatedAt, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} diff --git a/examples/dynamicquery/mysql/schema.sql b/examples/dynamicquery/mysql/schema.sql new file mode 100644 index 0000000000..4c3228e98c --- /dev/null +++ b/examples/dynamicquery/mysql/schema.sql @@ -0,0 +1,8 @@ +CREATE TABLE records ( + id BIGINT PRIMARY KEY AUTO_INCREMENT, + tenant_id BIGINT NOT NULL, + name VARCHAR(255) NOT NULL, + age INT NOT NULL, + status VARCHAR(255) NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); diff --git a/examples/dynamicquery/sqlc.yaml b/examples/dynamicquery/sqlc.yaml index c592c3086c..d08b84bd3e 100644 --- a/examples/dynamicquery/sqlc.yaml +++ b/examples/dynamicquery/sqlc.yaml @@ -22,3 +22,10 @@ sql: go: package: dynamicquerysqlite out: sqlite +- engine: mysql + schema: mysql/schema.sql + queries: mysql/query.sql + gen: + go: + package: dynamicquerymysql + out: mysql diff --git a/examples/dynamicquery/sqlite/query.sql.go b/examples/dynamicquery/sqlite/query.sql.go index c34db268cc..57c4a47d68 100644 --- a/examples/dynamicquery/sqlite/query.sql.go +++ b/examples/dynamicquery/sqlite/query.sql.go @@ -68,10 +68,22 @@ func (q *Queries) ExcludeContacts(ctx context.Context, tenantID int64, opts Excl n := 1 _ = n g0 := make([]string, 0, 1) + g1 := make([]string, 0, 2) if opts.name != nil { - g0 = append(g0, "name = ?") + g1 = append(g1, "name = ?") queryParams = append(queryParams, *opts.name) } + if opts.status != nil { + g1 = append(g1, "status = ?") + queryParams = append(queryParams, *opts.status) + } + switch len(g1) { + case 0: + case 1: + g0 = append(g0, g1[0]) + default: + g0 = append(g0, "("+strings.Join(g1, " OR ")+")") + } switch len(g0) { case 0: case 1: @@ -236,7 +248,7 @@ func (q *Queries) ListRecords(ctx context.Context, tenantID int64, opts ListReco queryParams = append(queryParams, *opts.name) } if opts.age != nil { - conds = append(conds, "age = ?") + conds = append(conds, "age > ?") queryParams = append(queryParams, *opts.age) } if len(conds) > 0 { @@ -306,10 +318,22 @@ func (q *Queries) SearchContacts(ctx context.Context, tenantID int64, opts Searc conds := make([]string, 0, 2) n := 1 _ = n + g0 := make([]string, 0, 2) if opts.name != nil { - conds = append(conds, "name = ?") + g0 = append(g0, "name = ?") queryParams = append(queryParams, *opts.name) } + if opts.status != nil { + g0 = append(g0, "status = ?") + queryParams = append(queryParams, *opts.status) + } + switch len(g0) { + case 0: + case 1: + conds = append(conds, g0[0]) + default: + conds = append(conds, "("+strings.Join(g0, " OR ")+")") + } if len(conds) > 0 { query += " AND " + strings.Join(conds, " AND ") } diff --git a/internal/engine/dolphin/convert.go b/internal/engine/dolphin/convert.go index cfd83b5c4d..772b62f202 100644 --- a/internal/engine/dolphin/convert.go +++ b/internal/engine/dolphin/convert.go @@ -1556,6 +1556,12 @@ func (c *cc) convertTruncateTableStmt(n *pcast.TruncateTableStmt) *ast.TruncateS } func (c *cc) convertUnaryOperationExpr(n *pcast.UnaryOperationExpr) ast.Node { + if n.Op == opcode.Not { + return &ast.BoolExpr{ + Boolop: ast.BoolExprTypeNot, + Args: &ast.List{Items: []ast.Node{c.convert(n.V)}}, + } + } return todo(n) } diff --git a/internal/engine/sqlite/convert.go b/internal/engine/sqlite/convert.go index e9868f5be6..ecce6b1423 100644 --- a/internal/engine/sqlite/convert.go +++ b/internal/engine/sqlite/convert.go @@ -341,6 +341,11 @@ func (c *cc) convertColumnNameExpr(n *parser.Expr_qualified_column_nameContext) func (c *cc) convertComparison(n *parser.Expr_comparisonContext) ast.Node { lexpr := c.convert(n.Expr(0)) + op := "=" + if term, ok := n.GetChild(1).(antlr.TerminalNode); ok { + op = term.GetText() + } + if n.IN_() != nil { rexprs := []ast.Node{} for _, expr := range n.AllExpr()[1:] { @@ -365,7 +370,7 @@ func (c *cc) convertComparison(n *parser.Expr_comparisonContext) ast.Node { return &ast.A_Expr{ Name: &ast.List{ Items: []ast.Node{ - &ast.String{Str: "="}, // TODO: add actual comparison + &ast.String{Str: op}, }, }, Lexpr: lexpr, @@ -522,6 +527,10 @@ func (c *cc) convertMultiSelect_stmtContext(n *parser.Select_stmtContext) ast.No } func (c *cc) convertExprListContext(n *parser.Expr_listContext) ast.Node { + exprs := n.AllExpr() + if len(exprs) == 1 { + return c.convert(exprs[0]) + } list := &ast.List{Items: []ast.Node{}} for _, e := range n.AllExpr() { list.Items = append(list.Items, c.convert(e)) @@ -826,7 +835,7 @@ func (c *cc) convertUnaryExpr(n *parser.Expr_unaryContext) ast.Node { if opCtx.MINUS() != nil { // Negative number: -expr return &ast.A_Expr{ - Name: &ast.List{Items: []ast.Node{&ast.String{Str: "-"}}}, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: "-"}}}, Rexpr: expr, } } @@ -837,7 +846,7 @@ func (c *cc) convertUnaryExpr(n *parser.Expr_unaryContext) ast.Node { if opCtx.TILDE() != nil { // Bitwise NOT: ~expr return &ast.A_Expr{ - Name: &ast.List{Items: []ast.Node{&ast.String{Str: "~"}}}, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: "~"}}}, Rexpr: expr, } }