>>>pipeline_explain.txt
=== Package
ID:          default_catalog.default_database.Package
Type:        state
Stage:       flink
Primary key: name
Timestamp:   -
Row count:   ~1e7
---
Schema:
 - name: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
Inputs:
 - default_catalog.default_database.Submission

=== Submission
ID:          default_catalog.default_database.Submission
Type:        stream
Stage:       flink
Primary key: -
Timestamp:   event_time
Row count:   ~1e8
---
Schema:
 - name: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - version: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - variant: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - latest: BOOLEAN NOT NULL
 - type: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - license: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - repository: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - homepage: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - documentation: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - readme: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - description: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - keywords: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL ARRAY NOT NULL
 - uniqueId: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - file: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - hash: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - authorId: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - submissionTime: TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) NOT NULL
 - event_time: TIMESTAMP_LTZ(3) *ROWTIME* NOT NULL
 - variant0: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - repoURL: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
Inputs:
 - default_catalog.default_database._SubmissionRaw

=== SubmissionTopics
ID:          default_catalog.default_database.SubmissionTopics
Type:        stream
Stage:       flink
Primary key: -
Timestamp:   -
Row count:   ~1e8
---
Schema:
 - pkgName: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - topicName: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - submissionTime: TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) NOT NULL
Inputs:
 - default_catalog.default_database.Submission

=== TopicPackages
ID:          default_catalog.default_database.TopicPackages
Type:        state
Stage:       flink
Primary key: pkgName, topicName
Timestamp:   -
Row count:   ~2e7
---
Schema:
 - pkgName: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - topicName: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - numSubmissions: BIGINT NOT NULL
 - lastSubmission: TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) NOT NULL
Inputs:
 - default_catalog.default_database.SubmissionTopics
Annotations:
 - sort: [2 DESC-nulls-last, 0 ASC-nulls-first]

=== TopicSearch
ID:          default_catalog.default_database.TopicSearch
Type:        state
Stage:       flink
Primary key: topicName
Timestamp:   -
Row count:   ~1e7
---
Schema:
 - topicName: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - numPackages: BIGINT NOT NULL
Inputs:
 - default_catalog.default_database.SubmissionTopics
Annotations:
 - sort: [1 DESC-nulls-last, 0 ASC-nulls-first]

=== _SubmissionRaw
ID:          default_catalog.default_database._SubmissionRaw
Type:        stream
Stage:       flink
Primary key: -
Timestamp:   event_time
Row count:   ~1e8
---
Schema:
 - name: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - version: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - variant: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - latest: BOOLEAN NOT NULL
 - type: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - license: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - repository: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - homepage: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - documentation: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - readme: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - description: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - keywords: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL ARRAY NOT NULL
 - uniqueId: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - file: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - hash: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - authorId: VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL
 - submissionTime: TIMESTAMP_WITH_LOCAL_TIME_ZONE(3) NOT NULL
 - event_time: TIMESTAMP_LTZ(3) *ROWTIME* NOT NULL
Inputs:
 - default_catalog.default_database._SubmissionRaw__base

>>>flink-sql-no-functions.sql
CREATE TABLE `_SubmissionRaw` (
  `name` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `version` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `variant` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `latest` BOOLEAN NOT NULL,
  `type` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `license` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `repository` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `homepage` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `documentation` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `readme` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `description` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `keywords` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL ARRAY NOT NULL,
  `uniqueId` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `file` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `hash` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `authorId` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `submissionTime` TIMESTAMP(3) WITH LOCAL TIME ZONE NOT NULL,
  `event_time` AS `NOW`(),
  WATERMARK FOR `event_time` AS `event_time` - INTERVAL '0.001' SECOND
)
WITH (
  'connector' = 'filesystem',
  'format' = 'flexible-json',
  'path' = '${DATA_PATH}/submission.jsonl',
  'source.monitor-interval' = '10 sec'
);
CREATE VIEW `Submission`
AS
SELECT *, `IFNULL`(`variant`, 'default') AS `variant0`, `concat`('https://repository.datasqrl.com/', `file`) AS `repoURL`
FROM `_SubmissionRaw`;
CREATE VIEW `Package`
AS
SELECT DISTINCT `name`
FROM `Submission`;
CREATE VIEW `SubmissionTopics`
AS
SELECT `s`.`name` AS `pkgName`, `k`.`name` AS `topicName`, `s`.`submissionTime`
FROM `Submission` AS `s`
 CROSS JOIN UNNEST(`keywords`) AS `k` (`name`);
CREATE VIEW `TopicPackages`
AS
SELECT `pkgName`, `topicName`, COUNT(1) AS `numSubmissions`, MAX(`submissionTime`) AS `lastSubmission`
FROM `SubmissionTopics`
GROUP BY `pkgName`, `topicName`;
CREATE VIEW `TopicSearch`
AS
SELECT `topicName`, COUNT(DISTINCT `pkgName`) AS `numPackages`
FROM `SubmissionTopics`
GROUP BY `topicName`;
CREATE TABLE `Package_1` (
  `name` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  PRIMARY KEY (`name`) NOT ENFORCED
)
WITH (
  'connector' = 'jdbc-sqrl',
  'driver' = 'org.postgresql.Driver',
  'password' = '${POSTGRES_PASSWORD}',
  'table-name' = 'Package',
  'url' = 'jdbc:postgresql://${POSTGRES_AUTHORITY}',
  'username' = '${POSTGRES_USERNAME}'
);
CREATE TABLE `Submission_2` (
  `name` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `version` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `variant` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `latest` BOOLEAN NOT NULL,
  `type` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `license` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `repository` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `homepage` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `documentation` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `readme` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `description` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `keywords` RAW('com.datasqrl.flinkrunner.stdlib.json.FlinkJsonType', 'AERjb20uZGF0YXNxcmwuZmxpbmtydW5uZXIuc3RkbGliLmpzb24uRmxpbmtKc29uVHlwZVNlcmlhbGl6ZXJTbmFwc2hvdAAAAAM='),
  `uniqueId` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `file` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `hash` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `authorId` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `submissionTime` TIMESTAMP(3) WITH LOCAL TIME ZONE NOT NULL,
  `event_time` TIMESTAMP(3) WITH LOCAL TIME ZONE NOT NULL,
  `variant0` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `repoURL` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `__pk_hash` CHAR(32) CHARACTER SET `UTF-16LE`,
  PRIMARY KEY (`__pk_hash`) NOT ENFORCED
)
WITH (
  'connector' = 'jdbc-sqrl',
  'driver' = 'org.postgresql.Driver',
  'password' = '${POSTGRES_PASSWORD}',
  'sink.on-conflict.action' = 'IGNORE',
  'table-name' = 'Submission',
  'url' = 'jdbc:postgresql://${POSTGRES_AUTHORITY}',
  'username' = '${POSTGRES_USERNAME}'
);
CREATE TABLE `SubmissionTopics_3` (
  `pkgName` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `topicName` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `submissionTime` TIMESTAMP(3) WITH LOCAL TIME ZONE NOT NULL,
  `__pk_hash` CHAR(32) CHARACTER SET `UTF-16LE`,
  PRIMARY KEY (`__pk_hash`) NOT ENFORCED
)
WITH (
  'connector' = 'jdbc-sqrl',
  'driver' = 'org.postgresql.Driver',
  'password' = '${POSTGRES_PASSWORD}',
  'sink.on-conflict.action' = 'IGNORE',
  'table-name' = 'SubmissionTopics',
  'url' = 'jdbc:postgresql://${POSTGRES_AUTHORITY}',
  'username' = '${POSTGRES_USERNAME}'
);
CREATE TABLE `TopicPackages_4` (
  `pkgName` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `topicName` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `numSubmissions` BIGINT NOT NULL,
  `lastSubmission` TIMESTAMP(3) WITH LOCAL TIME ZONE NOT NULL,
  PRIMARY KEY (`pkgName`, `topicName`) NOT ENFORCED
)
WITH (
  'connector' = 'jdbc-sqrl',
  'driver' = 'org.postgresql.Driver',
  'password' = '${POSTGRES_PASSWORD}',
  'table-name' = 'TopicPackages',
  'url' = 'jdbc:postgresql://${POSTGRES_AUTHORITY}',
  'username' = '${POSTGRES_USERNAME}'
);
CREATE TABLE `TopicSearch_5` (
  `topicName` VARCHAR(2147483647) CHARACTER SET `UTF-16LE` NOT NULL,
  `numPackages` BIGINT NOT NULL,
  PRIMARY KEY (`topicName`) NOT ENFORCED
)
WITH (
  'connector' = 'jdbc-sqrl',
  'driver' = 'org.postgresql.Driver',
  'password' = '${POSTGRES_PASSWORD}',
  'table-name' = 'TopicSearch',
  'url' = 'jdbc:postgresql://${POSTGRES_AUTHORITY}',
  'username' = '${POSTGRES_USERNAME}'
);
EXECUTE STATEMENT SET BEGIN
INSERT INTO `default_catalog`.`default_database`.`Package_1`
SELECT *
 FROM `default_catalog`.`default_database`.`Package`
;
INSERT INTO `default_catalog`.`default_database`.`Submission_2`
 SELECT `name`, `version`, `variant`, `latest`, `type`, `license`, `repository`, `homepage`, `documentation`, `readme`, `description`, `to_jsonb`(`keywords`) AS `keywords`, `uniqueId`, `file`, `hash`, `authorId`, `submissionTime`, `event_time`, `variant0`, `repoURL`, `hash_columns`(`name`, `version`, `variant`, `latest`, `type`, `license`, `repository`, `homepage`, `documentation`, `readme`, `description`, `keywords`, `uniqueId`, `file`, `hash`, `authorId`, `submissionTime`, `event_time`, `variant0`, `repoURL`) AS `__pk_hash`
  FROM `default_catalog`.`default_database`.`Submission`
 ;
 INSERT INTO `default_catalog`.`default_database`.`SubmissionTopics_3`
  SELECT `pkgName`, `topicName`, `submissionTime`, `hash_columns`(`pkgName`, `topicName`, `submissionTime`) AS `__pk_hash`
   FROM `default_catalog`.`default_database`.`SubmissionTopics`
  ;
  INSERT INTO `default_catalog`.`default_database`.`TopicPackages_4`
   SELECT *
    FROM `default_catalog`.`default_database`.`TopicPackages`
   ;
   INSERT INTO `default_catalog`.`default_database`.`TopicSearch_5`
    SELECT *
     FROM `default_catalog`.`default_database`.`TopicSearch`
    ;
    END
>>>postgres-schema.sql
CREATE TABLE IF NOT EXISTS "Package" ("name" TEXT NOT NULL, PRIMARY KEY ("name"));
CREATE TABLE IF NOT EXISTS "Submission" ("name" TEXT NOT NULL, "version" TEXT NOT NULL, "variant" TEXT NOT NULL, "latest" BOOLEAN NOT NULL, "type" TEXT NOT NULL, "license" TEXT NOT NULL, "repository" TEXT NOT NULL, "homepage" TEXT NOT NULL, "documentation" TEXT NOT NULL, "readme" TEXT NOT NULL, "description" TEXT NOT NULL, "keywords" JSONB, "uniqueId" TEXT NOT NULL, "file" TEXT NOT NULL, "hash" TEXT NOT NULL, "authorId" TEXT NOT NULL, "submissionTime" TIMESTAMP WITH TIME ZONE NOT NULL, "event_time" TIMESTAMP WITH TIME ZONE NOT NULL, "variant0" TEXT NOT NULL, "repoURL" TEXT NOT NULL, "__pk_hash" TEXT, PRIMARY KEY ("__pk_hash"));
CREATE TABLE IF NOT EXISTS "SubmissionTopics" ("pkgName" TEXT NOT NULL, "topicName" TEXT NOT NULL, "submissionTime" TIMESTAMP WITH TIME ZONE NOT NULL, "__pk_hash" TEXT, PRIMARY KEY ("__pk_hash"));
CREATE TABLE IF NOT EXISTS "TopicPackages" ("pkgName" TEXT NOT NULL, "topicName" TEXT NOT NULL, "numSubmissions" BIGINT NOT NULL, "lastSubmission" TIMESTAMP WITH TIME ZONE NOT NULL, PRIMARY KEY ("pkgName","topicName"));
CREATE TABLE IF NOT EXISTS "TopicSearch" ("topicName" TEXT NOT NULL, "numPackages" BIGINT NOT NULL, PRIMARY KEY ("topicName"));

CREATE INDEX IF NOT EXISTS "Submission_btree_c0c1c2" ON "Submission" USING btree ("name","version","variant");
CREATE INDEX IF NOT EXISTS "Submission_btree_c0c2" ON "Submission" USING btree ("name","variant");
CREATE INDEX IF NOT EXISTS "Submission_btree_c0c3" ON "Submission" USING btree ("name","latest")
>>>postgres-views.sql

>>>vertx.json
{
  "models" : {
    "v1" : {
      "queries" : [
        {
          "type" : "args",
          "parentType" : "Query",
          "fieldName" : "Package",
          "exec" : {
            "arguments" : [
              {
                "type" : "variable",
                "path" : "name"
              },
              {
                "type" : "variable",
                "path" : "limit"
              },
              {
                "type" : "variable",
                "path" : "offset"
              }
            ],
            "query" : {
              "type" : "SqlQuery",
              "sql" : "SELECT *\nFROM \"Package\"\nWHERE \"name\" = $1 OR $1 IS NULL",
              "parameters" : [
                {
                  "type" : "arg",
                  "path" : "name",
                  "sqlType" : "VARCHAR"
                }
              ],
              "pagination" : "LIMIT_AND_OFFSET",
              "cacheDurationMs" : 0,
              "database" : "POSTGRES"
            }
          }
        },
        {
          "type" : "args",
          "parentType" : "Package",
          "fieldName" : "latest",
          "exec" : {
            "arguments" : [ ],
            "query" : {
              "type" : "SqlQuery",
              "sql" : "SELECT *\nFROM (SELECT \"name\", \"version\", \"variant\", \"latest\", \"type\", \"license\", \"repository\", \"homepage\", \"documentation\", \"readme\", \"description\", \"keywords\", \"uniqueId\", \"file\", \"hash\", \"authorId\", \"submissionTime\", \"event_time\", \"variant0\", \"repoURL\"\n  FROM \"Submission\") AS \"t\"\nWHERE $1 = \"name\" AND \"latest\" = TRUE\nORDER BY \"submissionTime\" DESC NULLS LAST\nFETCH NEXT 1 ROWS ONLY",
              "parameters" : [
                {
                  "type" : "source",
                  "key" : "name"
                }
              ],
              "pagination" : "NONE",
              "cacheDurationMs" : 0,
              "database" : "POSTGRES"
            }
          }
        },
        {
          "type" : "args",
          "parentType" : "Package",
          "fieldName" : "versions",
          "exec" : {
            "arguments" : [
              {
                "type" : "variable",
                "path" : "limit"
              },
              {
                "type" : "variable",
                "path" : "version"
              },
              {
                "type" : "variable",
                "path" : "offset"
              },
              {
                "type" : "variable",
                "path" : "variant"
              }
            ],
            "query" : {
              "type" : "SqlQuery",
              "sql" : "SELECT *\nFROM (SELECT \"name\", \"version\", \"variant\", \"latest\", \"type\", \"license\", \"repository\", \"homepage\", \"documentation\", \"readme\", \"description\", \"keywords\", \"uniqueId\", \"file\", \"hash\", \"authorId\", \"submissionTime\", \"event_time\", \"variant0\", \"repoURL\"\n  FROM \"Submission\") AS \"t\"\nWHERE $3 = \"name\" AND ($1 IS NULL OR $1 = \"version\") AND ($2 IS NULL OR $2 = \"variant\")\nORDER BY \"submissionTime\" DESC NULLS LAST",
              "parameters" : [
                {
                  "type" : "arg",
                  "path" : "version",
                  "sqlType" : "VARCHAR"
                },
                {
                  "type" : "arg",
                  "path" : "variant",
                  "sqlType" : "VARCHAR"
                },
                {
                  "type" : "source",
                  "key" : "name"
                }
              ],
              "pagination" : "LIMIT_AND_OFFSET",
              "cacheDurationMs" : 0,
              "database" : "POSTGRES"
            }
          }
        },
        {
          "type" : "args",
          "parentType" : "Query",
          "fieldName" : "TopicSearch",
          "exec" : {
            "arguments" : [
              {
                "type" : "variable",
                "path" : "limit"
              },
              {
                "type" : "variable",
                "path" : "topicName"
              },
              {
                "type" : "variable",
                "path" : "offset"
              }
            ],
            "query" : {
              "type" : "SqlQuery",
              "sql" : "SELECT *\nFROM (SELECT \"topicName\", \"numPackages\"\n  FROM \"TopicSearch\"\n  ORDER BY \"numPackages\" DESC NULLS LAST, \"topicName\" NULLS FIRST) AS \"t\"\nWHERE \"topicName\" = $1 OR $1 IS NULL",
              "parameters" : [
                {
                  "type" : "arg",
                  "path" : "topicName",
                  "sqlType" : "VARCHAR"
                }
              ],
              "pagination" : "LIMIT_AND_OFFSET",
              "cacheDurationMs" : 0,
              "database" : "POSTGRES"
            }
          }
        },
        {
          "type" : "args",
          "parentType" : "Query",
          "fieldName" : "TopicPackages",
          "exec" : {
            "arguments" : [
              {
                "type" : "variable",
                "path" : "limit"
              },
              {
                "type" : "variable",
                "path" : "topicName"
              },
              {
                "type" : "variable",
                "path" : "offset"
              }
            ],
            "query" : {
              "type" : "SqlQuery",
              "sql" : "SELECT *\nFROM (SELECT \"pkgName\", \"topicName\", \"numSubmissions\", \"lastSubmission\"\n  FROM \"TopicPackages\"\n  ORDER BY \"numSubmissions\" DESC NULLS LAST, \"pkgName\" NULLS FIRST) AS \"t\"\nWHERE \"topicName\" = $1",
              "parameters" : [
                {
                  "type" : "arg",
                  "path" : "topicName",
                  "sqlType" : "VARCHAR"
                }
              ],
              "pagination" : "LIMIT_AND_OFFSET",
              "cacheDurationMs" : 0,
              "database" : "POSTGRES"
            }
          }
        },
        {
          "type" : "args",
          "parentType" : "TopicPackages",
          "fieldName" : "latest",
          "exec" : {
            "arguments" : [ ],
            "query" : {
              "type" : "SqlQuery",
              "sql" : "SELECT *\nFROM (SELECT \"name\", \"version\", \"variant\", \"latest\", \"type\", \"license\", \"repository\", \"homepage\", \"documentation\", \"readme\", \"description\", \"keywords\", \"uniqueId\", \"file\", \"hash\", \"authorId\", \"submissionTime\", \"event_time\", \"variant0\", \"repoURL\"\n  FROM \"Submission\") AS \"t\"\nWHERE $1 = \"name\" AND \"latest\" = TRUE\nORDER BY \"submissionTime\" DESC NULLS LAST\nFETCH NEXT 1 ROWS ONLY",
              "parameters" : [
                {
                  "type" : "source",
                  "key" : "pkgName"
                }
              ],
              "pagination" : "NONE",
              "cacheDurationMs" : 0,
              "database" : "POSTGRES"
            }
          }
        }
      ],
      "mutations" : [ ],
      "subscriptions" : [ ],
      "operations" : [
        {
          "function" : {
            "name" : "GetPackage",
            "parameters" : {
              "type" : "object",
              "properties" : {
                "versions_version" : {
                  "type" : "string"
                },
                "versions_offset" : {
                  "type" : "integer"
                },
                "offset" : {
                  "type" : "integer"
                },
                "name" : {
                  "type" : "string"
                },
                "limit" : {
                  "type" : "integer"
                },
                "versions_limit" : {
                  "type" : "integer"
                },
                "versions_variant" : {
                  "type" : "string"
                }
              },
              "required" : [
                "name",
                "versions_version",
                "versions_variant"
              ]
            }
          },
          "format" : "JSON",
          "apiQuery" : {
            "query" : "query Package($name: String!, $limit: Int = 10, $offset: Int = 0$versions_version: String!, $versions_variant: String!, $versions_limit: Int = 10, $versions_offset: Int = 0) {\nPackage(name: $name, limit: $limit, offset: $offset) {\nname\nlatest {\nname\nversion\nvariant\nlatest\ntype\nlicense\nrepository\nhomepage\ndocumentation\nreadme\ndescription\nuniqueId\nkeywords\nrepoURL\nfile\nhash\nsubmissionTime\n}\nversions(version: $versions_version, variant: $versions_variant, limit: $versions_limit, offset: $versions_offset) {\nname\nversion\nvariant\nlatest\ntype\nlicense\nrepository\nhomepage\ndocumentation\nreadme\ndescription\nuniqueId\nkeywords\nrepoURL\nfile\nhash\nsubmissionTime\n}\n}\n\n}",
            "queryName" : "Package",
            "operationType" : "QUERY"
          },
          "mcpMethod" : "TOOL",
          "restMethod" : "GET",
          "uriTemplate" : "queries/Package{?versions_version,versions_offset,offset,name,limit,versions_limit,versions_variant}"
        },
        {
          "function" : {
            "name" : "GetTopicSearch",
            "parameters" : {
              "type" : "object",
              "properties" : {
                "offset" : {
                  "type" : "integer"
                },
                "limit" : {
                  "type" : "integer"
                },
                "topicName" : {
                  "type" : "string"
                }
              },
              "required" : [ ]
            }
          },
          "format" : "JSON",
          "apiQuery" : {
            "query" : "query TopicSearch($topicName: String, $limit: Int = 10, $offset: Int = 0) {\nTopicSearch(topicName: $topicName, limit: $limit, offset: $offset) {\ntopicName\nnumPackages\n}\n\n}",
            "queryName" : "TopicSearch",
            "operationType" : "QUERY"
          },
          "mcpMethod" : "TOOL",
          "restMethod" : "GET",
          "uriTemplate" : "queries/TopicSearch{?offset,limit,topicName}"
        },
        {
          "function" : {
            "name" : "GetTopicPackages",
            "parameters" : {
              "type" : "object",
              "properties" : {
                "offset" : {
                  "type" : "integer"
                },
                "limit" : {
                  "type" : "integer"
                },
                "topicName" : {
                  "type" : "string"
                }
              },
              "required" : [
                "topicName"
              ]
            }
          },
          "format" : "JSON",
          "apiQuery" : {
            "query" : "query TopicPackages($topicName: String! = \"example\", $limit: Int = 10, $offset: Int = 0) {\nTopicPackages(topicName: $topicName, limit: $limit, offset: $offset) {\ntopicName\npkgName\nlastSubmission\nnumSubmissions\nlatest {\nname\nversion\nvariant\nlatest\ntype\nlicense\nrepository\nhomepage\ndocumentation\nreadme\ndescription\nuniqueId\nkeywords\nrepoURL\nfile\nhash\nsubmissionTime\n}\n}\n\n}",
            "queryName" : "TopicPackages",
            "operationType" : "QUERY"
          },
          "mcpMethod" : "TOOL",
          "restMethod" : "GET",
          "uriTemplate" : "queries/TopicPackages{?offset,limit,topicName}"
        }
      ],
      "schema" : {
        "type" : "string",
        "schema" : "type Package {\n  name: String!\n  latest: Submission\n  versions(version: String!, variant: String!, limit: Int = 10, offset: Int = 0): [Submission!]\n}\n\ntype Query {\n  Package(name: String!, limit: Int = 10, offset: Int = 0): [Package!]\n  TopicSearch(topicName: String, limit: Int = 10, offset: Int = 0): [TopicSearch!]\n  TopicPackages(topicName: String! = \"example\", limit: Int = 10, offset: Int = 0): [TopicPackages!]\n}\n\ntype Submission {\n  name: String!\n  version: String!\n  variant: String!\n  latest: Boolean!\n  type: String\n  license: String\n  repository: String\n  homepage: String\n  documentation: String\n  readme: String\n  description: String\n  uniqueId: String!\n  keywords: [String!]\n  repoURL: String!\n  file: String!\n  hash: String!\n  submissionTime: String!\n}\n\ntype TopicSearch {\n  topicName: String!\n  numPackages: Int!\n}\n\ntype TopicPackages {\n  topicName: String!\n  pkgName: String!\n  lastSubmission: String!\n  numSubmissions: Int!\n  latest: Submission\n}"
      }
    }
  }
}
